gcal-3.6.3/0000755000175000017500000000000012125376245007441 500000000000000gcal-3.6.3/misc/0000755000175000017500000000000012125376244010373 500000000000000gcal-3.6.3/misc/wloc/0000755000175000017500000000000012125376244011337 500000000000000gcal-3.6.3/misc/wloc/wlocdrv1.awk0000644000175000017500000001065612125364452013532 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 2, 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-3.6.3/misc/wloc/wlocdrv.bat0000644000175000017500000001141212125364452013424 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 2, 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-3.6.3/misc/wloc/wlocdrv.in0000644000175000017500000002344112125364452013271 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 2, 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-3.6.3/misc/wloc/wlocdrv2.pl0000644000175000017500000000630712125364452013362 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 2, 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-3.6.3/misc/wloc/wlocdrv2.awk0000644000175000017500000000617612125364452013535 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 2, 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-3.6.3/misc/wloc/wlocdrv0000644000175000017500000002344112125375743012671 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 2, 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=3.6.3 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-3.6.3/misc/wloc/zone.tab0000644000175000017500000003623212125364452012726 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-3.6.3/misc/wloc/wlocdrv1.pl0000644000175000017500000001027012125364452013353 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 2, 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-3.6.3/misc/magic.add0000644000175000017500000000042012125364452012037 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-3.6.3/misc/README0000644000175000017500000002213212125364451011170 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-3.6.3/misc/srss/0000755000175000017500000000000012125376244011365 500000000000000gcal-3.6.3/misc/srss/srss.rc0000644000175000017500000001057612125364452012634 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 2, 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-3.6.3/misc/srss/srss0000644000175000017500000003135012125375743012227 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 2, 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=3.6.3 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=pg # 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-3.6.3/misc/srss/srss.bat0000644000175000017500000001300512125364452012764 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 2, 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-3.6.3/misc/srss/srss.in0000644000175000017500000003137412125364452012635 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 2, 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-3.6.3/misc/srss/srss.pl0000644000175000017500000000766112125364452012644 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 2, 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-3.6.3/misc/srss/srss.awk0000644000175000017500000000770412125364452013011 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 2, 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-3.6.3/misc/Makefile.in0000644000175000017500000016143612125375435012374 00000000000000# Makefile.in generated by automake 1.11.6 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 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 2 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__make_dryrun = \ { \ am__dry=no; \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ *) \ for am__flg in $$MAKEFLAGS; do \ case $$am__flg in \ *=*|--*) ;; \ *n*) am__dry=yes; break;; \ esac; \ done;; \ esac; \ test $$am__dry = yes; \ } 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 DIST_COMMON = README $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.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/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/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/exponentd.m4 $(top_srcdir)/m4/exponentf.m4 \ $(top_srcdir)/m4/exponentl.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/fpieee.m4 \ $(top_srcdir)/m4/fpurge.m4 $(top_srcdir)/m4/freading.m4 \ $(top_srcdir)/m4/free.m4 $(top_srcdir)/m4/frexp.m4 \ $(top_srcdir)/m4/frexpl.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/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/iconv.m4 \ $(top_srcdir)/m4/iconv_h.m4 $(top_srcdir)/m4/iconv_open.m4 \ $(top_srcdir)/m4/include_next.m4 $(top_srcdir)/m4/inline.m4 \ $(top_srcdir)/m4/intlmacosx.m4 $(top_srcdir)/m4/intmax_t.m4 \ $(top_srcdir)/m4/inttypes_h.m4 $(top_srcdir)/m4/ioctl.m4 \ $(top_srcdir)/m4/isnand.m4 $(top_srcdir)/m4/isnanf.m4 \ $(top_srcdir)/m4/isnanl.m4 $(top_srcdir)/m4/langinfo_h.m4 \ $(top_srcdir)/m4/largefile.m4 $(top_srcdir)/m4/ldexpl.m4 \ $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ $(top_srcdir)/m4/lib-prefix.m4 \ $(top_srcdir)/m4/libunistring-base.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/malloca.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/nocrash.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/printf-frexp.m4 \ $(top_srcdir)/m4/printf-frexpl.m4 $(top_srcdir)/m4/printf.m4 \ $(top_srcdir)/m4/progtest.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/signbit.m4 \ $(top_srcdir)/m4/sin.m4 $(top_srcdir)/m4/size_max.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/stdint_h.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/ulonglong.m4 $(top_srcdir)/m4/unistd-safer.m4 \ $(top_srcdir)/m4/unistd_h.m4 $(top_srcdir)/m4/unlink.m4 \ $(top_srcdir)/m4/vasnprintf.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)/m4/xsize.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = 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_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ 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 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@ 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_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_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_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_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_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_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_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_SAME_LONG_DOUBLE_AS_DOUBLE = @HAVE_SAME_LONG_DOUBLE_AS_DOUBLE@ 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_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_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@ LIBUNISTRING_UNICONV_H = @LIBUNISTRING_UNICONV_H@ LIBUNISTRING_UNISTDIO_H = @LIBUNISTRING_UNISTDIO_H@ LIBUNISTRING_UNISTR_H = @LIBUNISTRING_UNISTR_H@ LIBUNISTRING_UNITYPES_H = @LIBUNISTRING_UNITYPES_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_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_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_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_DPRINTF = @REPLACE_DPRINTF@ REPLACE_DUP = @REPLACE_DUP@ REPLACE_DUP2 = @REPLACE_DUP2@ REPLACE_DUPLOCALE = @REPLACE_DUPLOCALE@ REPLACE_EXP2 = @REPLACE_EXP2@ REPLACE_EXP2L = @REPLACE_EXP2L@ 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_GETGROUPS = @REPLACE_GETGROUPS@ REPLACE_GETLINE = @REPLACE_GETLINE@ REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@ REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@ REPLACE_GETTIMEOFDAY = @REPLACE_GETTIMEOFDAY@ 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_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_RAISE = @REPLACE_RAISE@ REPLACE_RANDOM_R = @REPLACE_RANDOM_R@ REPLACE_READ = @REPLACE_READ@ REPLACE_READLINK = @REPLACE_READLINK@ 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_SLEEP = @REPLACE_SLEEP@ REPLACE_SNPRINTF = @REPLACE_SNPRINTF@ REPLACE_SPRINTF = @REPLACE_SPRINTF@ 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_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@ 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_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_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@ 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 .PRECIOUS: 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 TAGS: ctags: CTAGS CTAGS: 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 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 uninstall uninstall-am 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-3.6.3/misc/mrms/0000755000175000017500000000000012125376244011351 500000000000000gcal-3.6.3/misc/mrms/mrms.in0000644000175000017500000003140412125364452012577 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 2, 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-3.6.3/misc/mrms/mrms0000644000175000017500000003136012125375742012177 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 2, 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=3.6.3 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=pg # 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-3.6.3/misc/mrms/mrms.bat0000644000175000017500000001301512125364452012735 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 2, 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-3.6.3/misc/mrms/mrms.pl0000644000175000017500000000767312125364452012617 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 2, 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-3.6.3/misc/mrms/mrms.rc0000644000175000017500000001060012125364452012570 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 2, 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-3.6.3/misc/mrms/mrms.awk0000644000175000017500000000771612125364452012764 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 2, 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-3.6.3/misc/daily/0000755000175000017500000000000012125376244011475 500000000000000gcal-3.6.3/misc/daily/daily.bat0000644000175000017500000000746712125364451013222 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 2, 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-3.6.3/misc/daily/daily0000644000175000017500000002025112125375742012444 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 2, 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=3.6.3 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-3.6.3/misc/daily/daily.rc0000644000175000017500000000176112125364451013047 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-3.6.3/misc/daily/daily.pl0000644000175000017500000001457712125364451013067 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 2, 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-3.6.3/misc/daily/daily.in0000644000175000017500000002025412125364451013047 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 2, 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-3.6.3/misc/daily/daily.awk0000644000175000017500000001567512125364451013236 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 2, 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-3.6.3/misc/locale.alias0000644000175000017500000000365512125364452012574 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 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, 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-3.6.3/misc/Makefile.am0000644000175000017500000001071312125364451012346 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 2 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-3.6.3/misc/ddiff/0000755000175000017500000000000012125376244011447 500000000000000gcal-3.6.3/misc/ddiff/ddiff1.awk0000644000175000017500000000375212125364451013234 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 2, 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-3.6.3/misc/ddiff/ddiff1.pl0000644000175000017500000000417312125364451013063 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 2, 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-3.6.3/misc/ddiff/ddiffdrv.in0000644000175000017500000003214112125364451013505 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 2, 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-3.6.3/misc/ddiff/ddiff.in0000644000175000017500000002672512125364451013004 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 2, 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-3.6.3/misc/ddiff/ddiff0000644000175000017500000002672212125375742012401 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 2, 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=3.6.3 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-3.6.3/misc/ddiff/ddiffdrv0000644000175000017500000003214412125375742013110 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 2, 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=3.6.3 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-3.6.3/misc/ddiff/ddiffdrv.pl0000644000175000017500000000632112125364452013514 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 2, 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-3.6.3/misc/ddiff/ddiff2.pl0000644000175000017500000001340512125364451013062 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 2, 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-3.6.3/misc/ddiff/ddiffdrv.awk0000644000175000017500000000624212125364451013664 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 2, 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-3.6.3/misc/ddiff/ddiff2.awk0000644000175000017500000001264612125364451013237 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 2, 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-3.6.3/misc/ddiff/zone.tab0000644000175000017500000003623212125364452013036 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-3.6.3/misc/ddiff/ddiff.@0000644000175000017500000000032412125364451012540 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-3.6.3/misc/ddiff/ddiff.bat0000644000175000017500000001237112125364451013134 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 2, 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-3.6.3/misc/ddiff/ddiffdrv.bat0000644000175000017500000001631612125364451013653 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 2, 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-3.6.3/misc/gcalltx/0000755000175000017500000000000012125376244012031 500000000000000gcal-3.6.3/misc/gcalltx/gcalltx.in0000644000175000017500000000604512125364452013742 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-3.6.3/misc/gcalltx/gcalltx.sed0000644000175000017500000002007312125364452014104 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-3.6.3/misc/gcalltx/gcalltxp.in0000644000175000017500000006204512125364452014124 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-3.6.3/misc/gcalltx/gcalltx0000644000175000017500000000600112125375742013331 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=3.6.3 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-3.6.3/misc/gcalltx/gcalltx.pl0000744000175000017500000006205712125376136013757 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 = "3.6.3"; $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-3.6.3/misc/gcalltx/gcalltx.bat0000644000175000017500000000444212125364452014101 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-3.6.3/misc/moon/0000755000175000017500000000000012125376244011343 500000000000000gcal-3.6.3/misc/moon/moon.bat0000644000175000017500000001252312125364452012724 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 2, 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-3.6.3/misc/moon/moon.in0000644000175000017500000002623612125364452012572 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 2, 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-3.6.3/misc/moon/moon0000644000175000017500000002623712125375742012172 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 2, 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=3.6.3 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-3.6.3/misc/moon/moon2.awk0000644000175000017500000000234012125364452013016 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 2, 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-3.6.3/misc/moon/moon1.awk0000644000175000017500000000301412125364452013014 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 2, 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-3.6.3/misc/dst/0000755000175000017500000000000012125376244011165 500000000000000gcal-3.6.3/misc/dst/dst.pl0000644000175000017500000001643612125364452012244 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 2, 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-3.6.3/misc/dst/dst.in0000644000175000017500000002340512125364452012231 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 2, 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-3.6.3/misc/dst/dst0000644000175000017500000002340312125375742011626 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 2, 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=3.6.3 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/bin/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-3.6.3/misc/dst/dst.awk0000644000175000017500000001620712125364452012407 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 2, 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-3.6.3/misc/gcalmagic.add0000644000175000017500000000051112125364452012667 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-3.6.3/doc/0000755000175000017500000000000012125376245010206 500000000000000gcal-3.6.3/doc/Makefile.in0000644000175000017500000017052312125375434012202 00000000000000# Makefile.in generated by automake 1.11.6 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 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 2 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__make_dryrun = \ { \ am__dry=no; \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ *) \ for am__flg in $$MAKEFLAGS; do \ case $$am__flg in \ *=*|--*) ;; \ *n*) am__dry=yes; break;; \ esac; \ done;; \ esac; \ test $$am__dry = yes; \ } 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 DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ $(srcdir)/mksamp.in texinfo.tex ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.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/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/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/exponentd.m4 $(top_srcdir)/m4/exponentf.m4 \ $(top_srcdir)/m4/exponentl.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/fpieee.m4 \ $(top_srcdir)/m4/fpurge.m4 $(top_srcdir)/m4/freading.m4 \ $(top_srcdir)/m4/free.m4 $(top_srcdir)/m4/frexp.m4 \ $(top_srcdir)/m4/frexpl.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/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/iconv.m4 \ $(top_srcdir)/m4/iconv_h.m4 $(top_srcdir)/m4/iconv_open.m4 \ $(top_srcdir)/m4/include_next.m4 $(top_srcdir)/m4/inline.m4 \ $(top_srcdir)/m4/intlmacosx.m4 $(top_srcdir)/m4/intmax_t.m4 \ $(top_srcdir)/m4/inttypes_h.m4 $(top_srcdir)/m4/ioctl.m4 \ $(top_srcdir)/m4/isnand.m4 $(top_srcdir)/m4/isnanf.m4 \ $(top_srcdir)/m4/isnanl.m4 $(top_srcdir)/m4/langinfo_h.m4 \ $(top_srcdir)/m4/largefile.m4 $(top_srcdir)/m4/ldexpl.m4 \ $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ $(top_srcdir)/m4/lib-prefix.m4 \ $(top_srcdir)/m4/libunistring-base.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/malloca.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/nocrash.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/printf-frexp.m4 \ $(top_srcdir)/m4/printf-frexpl.m4 $(top_srcdir)/m4/printf.m4 \ $(top_srcdir)/m4/progtest.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/signbit.m4 \ $(top_srcdir)/m4/sin.m4 $(top_srcdir)/m4/size_max.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/stdint_h.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/ulonglong.m4 $(top_srcdir)/m4/unistd-safer.m4 \ $(top_srcdir)/m4/unistd_h.m4 $(top_srcdir)/m4/unlink.m4 \ $(top_srcdir)/m4/vasnprintf.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)/m4/xsize.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = mksamp CONFIG_CLEAN_VPATH_FILES = 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_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ SOURCES = DIST_SOURCES = RECURSIVE_TARGETS = all-recursive check-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 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=) \ $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ distdir ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) 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@ 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_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_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_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_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_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_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_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_SAME_LONG_DOUBLE_AS_DOUBLE = @HAVE_SAME_LONG_DOUBLE_AS_DOUBLE@ 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_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_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@ LIBUNISTRING_UNICONV_H = @LIBUNISTRING_UNICONV_H@ LIBUNISTRING_UNISTDIO_H = @LIBUNISTRING_UNISTDIO_H@ LIBUNISTRING_UNISTR_H = @LIBUNISTRING_UNISTR_H@ LIBUNISTRING_UNITYPES_H = @LIBUNISTRING_UNITYPES_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_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_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_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_DPRINTF = @REPLACE_DPRINTF@ REPLACE_DUP = @REPLACE_DUP@ REPLACE_DUP2 = @REPLACE_DUP2@ REPLACE_DUPLOCALE = @REPLACE_DUPLOCALE@ REPLACE_EXP2 = @REPLACE_EXP2@ REPLACE_EXP2L = @REPLACE_EXP2L@ 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_GETGROUPS = @REPLACE_GETGROUPS@ REPLACE_GETLINE = @REPLACE_GETLINE@ REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@ REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@ REPLACE_GETTIMEOFDAY = @REPLACE_GETTIMEOFDAY@ 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_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_RAISE = @REPLACE_RAISE@ REPLACE_RANDOM_R = @REPLACE_RANDOM_R@ REPLACE_READ = @REPLACE_READ@ REPLACE_READLINK = @REPLACE_READLINK@ 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_SLEEP = @REPLACE_SLEEP@ REPLACE_SNPRINTF = @REPLACE_SNPRINTF@ REPLACE_SPRINTF = @REPLACE_SPRINTF@ 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_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@ 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_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_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@ 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 .PRECIOUS: 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. $(RECURSIVE_TARGETS): @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ list='$(SUBDIRS)'; 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" $(RECURSIVE_CLEAN_TARGETS): @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ rev=''; for subdir in $$list; do \ if test "$$subdir" = "."; then :; else \ rev="$$subdir $$rev"; \ fi; \ done; \ rev="$$rev ."; \ target=`echo $@ | sed s/-recursive//`; \ for subdir in $$rev; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done ctags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) 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; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ 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 CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ 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" 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: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \ install-am install-strip tags-recursive .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ all all-am check check-am clean clean-generic ctags \ ctags-recursive 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-recursive uninstall uninstall-am 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-3.6.3/doc/texinfo.tex0000644000175000017500000060750312125364451012333 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{2000-05-28.15} % % Copyright (C) 1985, 1986, 1988, 1990, 1991, 1992, 1993, 1994, 1995, % 1996, 1997, 1998, 1999, 2010, 2011, 2013 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 2, 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-3.6.3/doc/Makefile.am0000644000175000017500000000156712125364444012171 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 2 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-3.6.3/doc/GREG-REFORM0000644000175000017500000000550612125364444011571 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-3.6.3/doc/mksamp.in0000644000175000017500000002675212125364451011756 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 2, 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-3.6.3/doc/en/0000755000175000017500000000000012125376245010610 500000000000000gcal-3.6.3/doc/en/gcal.texi0000644000175000017500000326507012125364451012342 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 @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 3.6 @set UPDATE-DATE 24 June 2000 @set UPDATE-MONTH June 2000 @set GCAL-VERSION 3.6 @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/Nordwest 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 Islands @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 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 @itemx %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 @itemx %(*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-3.6.3/doc/en/examples/0000755000175000017500000000000012125376245012426 500000000000000gcal-3.6.3/doc/en/examples/sun-1a.in0000644000175000017500000000105312125364450013774 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-3.6.3/doc/en/examples/tdemo-1a.in0000644000175000017500000000113312125364450014276 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-3.6.3/doc/en/examples/dvar-1.sh0000755000175000017500000000016612125364447014003 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-3.6.3/doc/en/examples/lbrk-1.texi0000644000175000017500000000103312125364450014321 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-3.6.3/doc/en/examples/tvar-3a.sh0000755000175000017500000000045712125364451014164 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-3.6.3/doc/en/examples/remark.texi0000644000175000017500000000372512125364450014524 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-3.6.3/doc/en/examples/wspc-1a.sh0000755000175000017500000000036612125364451014161 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-3.6.3/doc/en/examples/remark.in0000644000175000017500000000410112125364450014146 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-3.6.3/doc/en/examples/tvarc-1.texi0000644000175000017500000000033312125364451014511 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-3.6.3/doc/en/examples/tvaro-1.in0000644000175000017500000000142212125364451014162 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-3.6.3/doc/en/examples/tvar-3.texi0000644000175000017500000000051412125364451014351 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-3.6.3/doc/en/examples/include.in0000644000175000017500000000076412125364447014331 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-3.6.3/doc/en/examples/sun-1.texi0000644000175000017500000000400112125364450014172 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-3.6.3/doc/en/examples/demo-3.rc0000644000175000017500000000032712125364447013763 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-3.6.3/doc/en/examples/dvar-1a.sh0000755000175000017500000000054612125364447014146 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-3.6.3/doc/en/examples/speci-1a.sh0000755000175000017500000000036012125364450014301 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-3.6.3/doc/en/examples/tvarf-1.texi0000644000175000017500000000060412125364451014515 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-3.6.3/doc/en/examples/cycle-2.sh0000755000175000017500000000070612125364447014147 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-3.6.3/doc/en/examples/tvar-2a.in0000644000175000017500000000130712125364450014146 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-3.6.3/doc/en/examples/wspc-1.texi0000644000175000017500000000076512125364451014357 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-3.6.3/doc/en/examples/wspc-1a.texi0000644000175000017500000000134612125364451014514 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-3.6.3/doc/en/examples/redir-1.in0000644000175000017500000000114512125364450014135 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-3.6.3/doc/en/examples/tdemo-1.rc0000644000175000017500000000037112125364450014136 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-3.6.3/doc/en/examples/tvar-3a.in0000644000175000017500000000122512125364451014147 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-3.6.3/doc/en/examples/wspc-1a.in0000644000175000017500000000114012125364451014141 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-3.6.3/doc/en/examples/tvarc-1.rc0000644000175000017500000000002612125364451014143 00000000000000%t $a $>+06*b $>1u*c gcal-3.6.3/doc/en/examples/tvaro-1.sh0000755000175000017500000000017112125364451014171 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-3.6.3/doc/en/examples/speci-1.texi0000644000175000017500000000103412125364450014473 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-3.6.3/doc/en/examples/sun-1a.sh0000755000175000017500000000030112125364450013776 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-3.6.3/doc/en/examples/remark.sh0000755000175000017500000000016612125364450014164 00000000000000#! /bin/sh # Automatically generated by mksamp-1.sed from remark.in. echo "$ cat remark.rc" cat ./remark.rc exit 0 gcal-3.6.3/doc/en/examples/tvarf-1.in0000644000175000017500000000115712125364451014156 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-3.6.3/doc/en/examples/limit.texi0000644000175000017500000000117712125364450014360 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-3.6.3/doc/en/examples/tvarf-1a.sh0000755000175000017500000000041412125364451014321 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-3.6.3/doc/en/examples/tvar-1a.sh0000755000175000017500000000037612125364450014161 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-3.6.3/doc/en/examples/tvar-1.sh0000755000175000017500000000016612125364450014015 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-3.6.3/doc/en/examples/speci-1a.texi0000644000175000017500000000115612125364450014641 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-3.6.3/doc/en/examples/tdemo-1c.texi0000644000175000017500000000072112125364450014645 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-3.6.3/doc/en/examples/redir-1.texi0000644000175000017500000000055012125364450014477 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-3.6.3/doc/en/examples/tvar-2a.sh0000755000175000017500000000053712125364450014161 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-3.6.3/doc/en/examples/demo-2.in0000644000175000017500000000152512125364447013765 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-3.6.3/doc/en/examples/tvarc-1a.sh0000755000175000017500000000043212125364451014316 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-3.6.3/doc/en/examples/tvar-3a.texi0000644000175000017500000000057512125364451014521 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-3.6.3/doc/en/examples/tdemo-1.sh0000755000175000017500000000022612125364450014146 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-3.6.3/doc/en/examples/speci-1a.in0000644000175000017500000000113212125364450014270 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-3.6.3/doc/en/examples/tvar-2.texi0000644000175000017500000000050212125364450014344 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-3.6.3/doc/en/examples/lbrk-1.sh0000755000175000017500000000016612125364450013773 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-3.6.3/doc/en/examples/demo-3a.texi0000644000175000017500000000212312125364447014465 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-3.6.3/doc/en/examples/lbrk-1.in0000644000175000017500000000142112125364447013765 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-3.6.3/doc/en/examples/tvaro-1.rc0000644000175000017500000000034412125364451014162 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-3.6.3/doc/en/examples/swtim-1.in0000644000175000017500000000143612125364450014176 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-3.6.3/doc/en/examples/tdemo-1.in0000644000175000017500000000136012125364450014137 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-3.6.3/doc/en/examples/Makefile.in0000644000175000017500000015671012125375435014425 00000000000000# Makefile.in generated by automake 1.11.6 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 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 2 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__make_dryrun = \ { \ am__dry=no; \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ *) \ for am__flg in $$MAKEFLAGS; do \ case $$am__flg in \ *=*|--*) ;; \ *n*) am__dry=yes; break;; \ esac; \ done;; \ esac; \ test $$am__dry = yes; \ } 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 DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.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/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/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/exponentd.m4 $(top_srcdir)/m4/exponentf.m4 \ $(top_srcdir)/m4/exponentl.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/fpieee.m4 \ $(top_srcdir)/m4/fpurge.m4 $(top_srcdir)/m4/freading.m4 \ $(top_srcdir)/m4/free.m4 $(top_srcdir)/m4/frexp.m4 \ $(top_srcdir)/m4/frexpl.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/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/iconv.m4 \ $(top_srcdir)/m4/iconv_h.m4 $(top_srcdir)/m4/iconv_open.m4 \ $(top_srcdir)/m4/include_next.m4 $(top_srcdir)/m4/inline.m4 \ $(top_srcdir)/m4/intlmacosx.m4 $(top_srcdir)/m4/intmax_t.m4 \ $(top_srcdir)/m4/inttypes_h.m4 $(top_srcdir)/m4/ioctl.m4 \ $(top_srcdir)/m4/isnand.m4 $(top_srcdir)/m4/isnanf.m4 \ $(top_srcdir)/m4/isnanl.m4 $(top_srcdir)/m4/langinfo_h.m4 \ $(top_srcdir)/m4/largefile.m4 $(top_srcdir)/m4/ldexpl.m4 \ $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ $(top_srcdir)/m4/lib-prefix.m4 \ $(top_srcdir)/m4/libunistring-base.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/malloca.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/nocrash.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/printf-frexp.m4 \ $(top_srcdir)/m4/printf-frexpl.m4 $(top_srcdir)/m4/printf.m4 \ $(top_srcdir)/m4/progtest.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/signbit.m4 \ $(top_srcdir)/m4/sin.m4 $(top_srcdir)/m4/size_max.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/stdint_h.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/ulonglong.m4 $(top_srcdir)/m4/unistd-safer.m4 \ $(top_srcdir)/m4/unistd_h.m4 $(top_srcdir)/m4/unlink.m4 \ $(top_srcdir)/m4/vasnprintf.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)/m4/xsize.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = 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_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ 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 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@ 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_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_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_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_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_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_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_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_SAME_LONG_DOUBLE_AS_DOUBLE = @HAVE_SAME_LONG_DOUBLE_AS_DOUBLE@ 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_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_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@ LIBUNISTRING_UNICONV_H = @LIBUNISTRING_UNICONV_H@ LIBUNISTRING_UNISTDIO_H = @LIBUNISTRING_UNISTDIO_H@ LIBUNISTRING_UNISTR_H = @LIBUNISTRING_UNISTR_H@ LIBUNISTRING_UNITYPES_H = @LIBUNISTRING_UNITYPES_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_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_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_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_DPRINTF = @REPLACE_DPRINTF@ REPLACE_DUP = @REPLACE_DUP@ REPLACE_DUP2 = @REPLACE_DUP2@ REPLACE_DUPLOCALE = @REPLACE_DUPLOCALE@ REPLACE_EXP2 = @REPLACE_EXP2@ REPLACE_EXP2L = @REPLACE_EXP2L@ 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_GETGROUPS = @REPLACE_GETGROUPS@ REPLACE_GETLINE = @REPLACE_GETLINE@ REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@ REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@ REPLACE_GETTIMEOFDAY = @REPLACE_GETTIMEOFDAY@ 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_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_RAISE = @REPLACE_RAISE@ REPLACE_RANDOM_R = @REPLACE_RANDOM_R@ REPLACE_READ = @REPLACE_READ@ REPLACE_READLINK = @REPLACE_READLINK@ 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_SLEEP = @REPLACE_SLEEP@ REPLACE_SNPRINTF = @REPLACE_SNPRINTF@ REPLACE_SPRINTF = @REPLACE_SPRINTF@ 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_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@ 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_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_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@ 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 .PRECIOUS: 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 TAGS: ctags: CTAGS CTAGS: 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 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 uninstall uninstall-am # 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-3.6.3/doc/en/examples/tdemo-1c.sh0000755000175000017500000000023312125364450014307 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-3.6.3/doc/en/examples/redir-1.sh0000755000175000017500000000017112125364450014142 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-3.6.3/doc/en/examples/swtim-1.sh0000755000175000017500000000017112125364450014200 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-3.6.3/doc/en/examples/dvar-1.rc0000644000175000017500000000021112125364447013761 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-3.6.3/doc/en/examples/dvar-1.in0000644000175000017500000000120112125364447013763 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-3.6.3/doc/en/examples/common.rc0000644000175000017500000000232612125364447014170 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-3.6.3/doc/en/examples/swtim-1a.texi0000644000175000017500000000277212125364450014706 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-3.6.3/doc/en/examples/lbrk-1a.sh0000755000175000017500000000041212125364450014126 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-3.6.3/doc/en/examples/redir-1.rc0000644000175000017500000000015512125364450014133 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-3.6.3/doc/en/examples/tdemo-1a.texi0000644000175000017500000000103112125364450014636 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-3.6.3/doc/en/examples/swtim-1.rc0000644000175000017500000000042712125364450014173 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-3.6.3/doc/en/examples/tvar-1a.in0000644000175000017500000000115012125364450014141 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-3.6.3/doc/en/examples/tvar-2.rc0000644000175000017500000000007712125364450014006 00000000000000; tvar-2.rc ; $a=$b foo $b=0@e $a bar $b \$b 0 \$a:$a 0 \$b:$b gcal-3.6.3/doc/en/examples/cycle-2.texi0000644000175000017500000000163112125364447014501 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-3.6.3/doc/en/examples/include.texi0000644000175000017500000000032312125364447014663 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-3.6.3/doc/en/examples/wspc-1.in0000644000175000017500000000132712125364451014007 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-3.6.3/doc/en/examples/swtim-1a.sh0000755000175000017500000000031712125364450014343 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-3.6.3/doc/en/examples/cycle-2.in0000644000175000017500000000144412125364447014140 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-3.6.3/doc/en/examples/tvar-2a.texi0000644000175000017500000000065312125364451014515 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-3.6.3/doc/en/examples/speci-1.rc0000644000175000017500000000043012125364450014125 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-3.6.3/doc/en/examples/remark.rc0000644000175000017500000000300412125364450014145 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-3.6.3/doc/en/examples/demo-1.in0000644000175000017500000000221212125364447013756 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-3.6.3/doc/en/examples/tdemo-1b.sh0000755000175000017500000000033112125364450014305 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-3.6.3/doc/en/examples/demo-1.sh0000755000175000017500000000016612125364447013773 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-3.6.3/doc/en/examples/demo-2.rc0000644000175000017500000000050212125364447013755 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-3.6.3/doc/en/examples/tvar-3.sh0000755000175000017500000000016612125364451014020 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-3.6.3/doc/en/examples/redir-1a.in0000644000175000017500000000117712125364450014303 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-3.6.3/doc/en/examples/demo-2a.in0000644000175000017500000000110412125364447014117 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-3.6.3/doc/en/examples/speci-1.in0000644000175000017500000000142312125364450014132 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-3.6.3/doc/en/examples/wspc-1.rc0000644000175000017500000000032612125364451014003 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-3.6.3/doc/en/examples/demo-1a.texi0000644000175000017500000000150512125364447014466 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-3.6.3/doc/en/examples/tvarf-1a.texi0000644000175000017500000000055612125364451014664 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-3.6.3/doc/en/examples/Makefile.am0000644000175000017500000000615312125364447014410 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 2 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-3.6.3/doc/en/examples/tvar-2.sh0000755000175000017500000000016612125364450014016 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-3.6.3/doc/en/examples/tvar-2.in0000644000175000017500000000106712125364450014010 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-3.6.3/doc/en/examples/demo-2a.sh0000755000175000017500000000033212125364447014130 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-3.6.3/doc/en/examples/cycle-1.in0000644000175000017500000000137412125364447014141 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-3.6.3/doc/en/examples/tvaro-1a.texi0000644000175000017500000000062412125364451014671 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-3.6.3/doc/en/examples/demo-3a.in0000644000175000017500000000116612125364447014130 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-3.6.3/doc/en/examples/bio.rc0000644000175000017500000000002412125364447013442 000000000000000*d1#999 %;19620921 gcal-3.6.3/doc/en/examples/lbrk-1a.texi0000644000175000017500000000140612125364450014466 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-3.6.3/doc/en/examples/tvar-3.in0000644000175000017500000000111012125364451013777 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-3.6.3/doc/en/examples/tvarc-1.sh0000755000175000017500000000017112125364451014155 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-3.6.3/doc/en/examples/demo-3.in0000644000175000017500000000137112125364447013765 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-3.6.3/doc/en/examples/demo-2.texi0000644000175000017500000000122512125364447014325 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-3.6.3/doc/en/examples/dvar-1a.texi0000644000175000017500000000111312125364447014471 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-3.6.3/doc/en/examples/limit.in0000644000175000017500000000151712125364450014013 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-3.6.3/doc/en/examples/moon.in0000644000175000017500000000113712125364450013643 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-3.6.3/doc/en/examples/tvar-1.texi0000644000175000017500000000120012125364450014337 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-3.6.3/doc/en/examples/dvar-1a.in0000644000175000017500000000131612125364447014133 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-3.6.3/doc/en/examples/cycle-1.texi0000644000175000017500000000162212125364447014500 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-3.6.3/doc/en/examples/moon.sh0000755000175000017500000000036512125364450013654 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-3.6.3/doc/en/examples/lbrk-1.rc0000644000175000017500000000043112125364450013755 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-3.6.3/doc/en/examples/dvar-1.texi0000644000175000017500000000061612125364447014337 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-3.6.3/doc/en/examples/cycle-1.sh0000755000175000017500000000063612125364447014150 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-3.6.3/doc/en/examples/sun-1.in0000644000175000017500000000400412125364450013632 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-3.6.3/doc/en/examples/tdemo-1a.sh0000755000175000017500000000036312125364450014311 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-3.6.3/doc/en/examples/tdemo-1b.texi0000644000175000017500000000103012125364450014636 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-3.6.3/doc/en/examples/tvarc-1a.texi0000644000175000017500000000111312125364451014647 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-3.6.3/doc/en/examples/bio.texi0000644000175000017500000000123312125364447014012 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-3.6.3/doc/en/examples/limit.sh0000755000175000017500000000076512125364450014026 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-3.6.3/doc/en/examples/sun-1.sh0000755000175000017500000000016312125364450013643 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-3.6.3/doc/en/examples/common.texi0000644000175000017500000000333512125364447014536 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-3.6.3/doc/en/examples/redir-1a.texi0000644000175000017500000000037712125364450014647 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-3.6.3/doc/en/examples/tvarc-1.in0000644000175000017500000000077412125364451014157 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-3.6.3/doc/en/examples/swtim-1a.in0000644000175000017500000000107112125364450014332 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-3.6.3/doc/en/examples/wspc-1.sh0000755000175000017500000000016612125364451014016 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-3.6.3/doc/en/examples/tdemo-1c.in0000644000175000017500000000100512125364450014276 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-3.6.3/doc/en/examples/sun-1a.texi0000644000175000017500000000123312125364450014337 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-3.6.3/doc/en/examples/tvar-1.in0000644000175000017500000000146412125364450014010 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-3.6.3/doc/en/examples/demo-1a.in0000644000175000017500000000110612125364447014120 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-3.6.3/doc/en/examples/tvar-1.rc0000644000175000017500000000043312125364450014001 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-3.6.3/doc/en/examples/redir-1a.sh0000755000175000017500000000042512125364450014305 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-3.6.3/doc/en/examples/tvarf-1a.in0000644000175000017500000000116612125364451014317 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-3.6.3/doc/en/examples/demo-1.texi0000644000175000017500000000203012125364447014317 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-3.6.3/doc/en/examples/swtim-1.texi0000644000175000017500000000110212125364450014527 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-3.6.3/doc/en/examples/common.in0000644000175000017500000000344212125364447014172 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-3.6.3/doc/en/examples/lbrk-1a.in0000644000175000017500000000116412125364450014124 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-3.6.3/doc/en/examples/demo-3.sh0000755000175000017500000000016612125364447013775 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-3.6.3/doc/en/examples/speci-1.sh0000755000175000017500000000017112125364450014140 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-3.6.3/doc/en/examples/tdemo-1.txt0000644000175000017500000000033112125364450014345 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-3.6.3/doc/en/examples/tvarf-1.rc0000644000175000017500000000015612125364451014152 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-3.6.3/doc/en/examples/bio.sh0000755000175000017500000000041412125364447013456 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-3.6.3/doc/en/examples/demo-2a.texi0000644000175000017500000000164512125364447014474 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-3.6.3/doc/en/examples/demo-2.sh0000755000175000017500000000016612125364447013774 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-3.6.3/doc/en/examples/tvaro-1a.sh0000755000175000017500000000027312125364451014335 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-3.6.3/doc/en/examples/moon.texi0000644000175000017500000000137712125364450014214 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-3.6.3/doc/en/examples/sun-1.rc0000644000175000017500000000263212125364450013635 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-3.6.3/doc/en/examples/tvar-1a.texi0000644000175000017500000000157512125364450014517 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-3.6.3/doc/en/examples/demo-3a.sh0000755000175000017500000000041412125364447014132 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-3.6.3/doc/en/examples/tvarf-1.sh0000755000175000017500000000017112125364451014160 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-3.6.3/doc/en/examples/include.rc0000644000175000017500000000001612125364447014315 00000000000000#include "$f" gcal-3.6.3/doc/en/examples/tvarc-1a.rc0000644000175000017500000000016612125364451014311 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-3.6.3/doc/en/examples/demo-3.texi0000644000175000017500000000114012125364447014322 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-3.6.3/doc/en/examples/tvar-3.rc0000644000175000017500000000012312125364451014000 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-3.6.3/doc/en/examples/common.sh0000755000175000017500000000016612125364447014201 00000000000000#! /bin/sh # Automatically generated by mksamp-1.sed from common.in. echo "$ cat common.rc" cat ./common.rc exit 0 gcal-3.6.3/doc/en/examples/bio.in0000644000175000017500000000121312125364447013445 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-3.6.3/doc/en/examples/tdemo-1b.in0000644000175000017500000000110312125364450014274 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-3.6.3/doc/en/examples/tvaro-1.texi0000644000175000017500000000120112125364451014520 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-3.6.3/doc/en/examples/tdemo-1.texi0000644000175000017500000000072512125364450014506 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-3.6.3/doc/en/examples/demo-1.rc0000644000175000017500000000112012125364447013751 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-3.6.3/doc/en/examples/include.sh0000755000175000017500000000017112125364447014330 00000000000000#! /bin/sh # Automatically generated by mksamp-1.sed from include.in. echo "$ cat include.rc" cat ./include.rc exit 0 gcal-3.6.3/doc/en/examples/demo-1a.sh0000755000175000017500000000033212125364447014127 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-3.6.3/doc/en/examples/tvaro-1a.in0000644000175000017500000000104512125364451014324 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-3.6.3/doc/en/examples/tvarc-1a.in0000644000175000017500000000142612125364451014313 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-3.6.3/doc/en/Makefile.in0000644000175000017500000021534612125375435012610 00000000000000# Makefile.in generated by automake 1.11.6 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 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 2 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__make_dryrun = \ { \ am__dry=no; \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ *) \ for am__flg in $$MAKEFLAGS; do \ case $$am__flg in \ *=*|--*) ;; \ *n*) am__dry=yes; break;; \ esac; \ done;; \ esac; \ test $$am__dry = yes; \ } 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 DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.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/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/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/exponentd.m4 $(top_srcdir)/m4/exponentf.m4 \ $(top_srcdir)/m4/exponentl.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/fpieee.m4 \ $(top_srcdir)/m4/fpurge.m4 $(top_srcdir)/m4/freading.m4 \ $(top_srcdir)/m4/free.m4 $(top_srcdir)/m4/frexp.m4 \ $(top_srcdir)/m4/frexpl.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/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/iconv.m4 \ $(top_srcdir)/m4/iconv_h.m4 $(top_srcdir)/m4/iconv_open.m4 \ $(top_srcdir)/m4/include_next.m4 $(top_srcdir)/m4/inline.m4 \ $(top_srcdir)/m4/intlmacosx.m4 $(top_srcdir)/m4/intmax_t.m4 \ $(top_srcdir)/m4/inttypes_h.m4 $(top_srcdir)/m4/ioctl.m4 \ $(top_srcdir)/m4/isnand.m4 $(top_srcdir)/m4/isnanf.m4 \ $(top_srcdir)/m4/isnanl.m4 $(top_srcdir)/m4/langinfo_h.m4 \ $(top_srcdir)/m4/largefile.m4 $(top_srcdir)/m4/ldexpl.m4 \ $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ $(top_srcdir)/m4/lib-prefix.m4 \ $(top_srcdir)/m4/libunistring-base.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/malloca.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/nocrash.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/printf-frexp.m4 \ $(top_srcdir)/m4/printf-frexpl.m4 $(top_srcdir)/m4/printf.m4 \ $(top_srcdir)/m4/progtest.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/signbit.m4 \ $(top_srcdir)/m4/sin.m4 $(top_srcdir)/m4/size_max.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/stdint_h.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/ulonglong.m4 $(top_srcdir)/m4/unistd-safer.m4 \ $(top_srcdir)/m4/unistd_h.m4 $(top_srcdir)/m4/unlink.m4 \ $(top_srcdir)/m4/vasnprintf.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)/m4/xsize.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = 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_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ SOURCES = DIST_SOURCES = 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 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 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=) \ $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ distdir ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) 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@ 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_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_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_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_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_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_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_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_SAME_LONG_DOUBLE_AS_DOUBLE = @HAVE_SAME_LONG_DOUBLE_AS_DOUBLE@ 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_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_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@ LIBUNISTRING_UNICONV_H = @LIBUNISTRING_UNICONV_H@ LIBUNISTRING_UNISTDIO_H = @LIBUNISTRING_UNISTDIO_H@ LIBUNISTRING_UNISTR_H = @LIBUNISTRING_UNISTR_H@ LIBUNISTRING_UNITYPES_H = @LIBUNISTRING_UNITYPES_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_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_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_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_DPRINTF = @REPLACE_DPRINTF@ REPLACE_DUP = @REPLACE_DUP@ REPLACE_DUP2 = @REPLACE_DUP2@ REPLACE_DUPLOCALE = @REPLACE_DUPLOCALE@ REPLACE_EXP2 = @REPLACE_EXP2@ REPLACE_EXP2L = @REPLACE_EXP2L@ 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_GETGROUPS = @REPLACE_GETGROUPS@ REPLACE_GETLINE = @REPLACE_GETLINE@ REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@ REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@ REPLACE_GETTIMEOFDAY = @REPLACE_GETTIMEOFDAY@ 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_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_RAISE = @REPLACE_RAISE@ REPLACE_RANDOM_R = @REPLACE_RANDOM_R@ REPLACE_READ = @REPLACE_READ@ REPLACE_READLINK = @REPLACE_READLINK@ 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_SLEEP = @REPLACE_SLEEP@ REPLACE_SNPRINTF = @REPLACE_SNPRINTF@ REPLACE_SPRINTF = @REPLACE_SPRINTF@ 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_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@ 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_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_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@ 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 .PRECIOUS: 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: 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: TEXINPUTS="$(am__TEXINFO_TEX_DIR)$(PATH_SEPARATOR)$$TEXINPUTS" \ MAKEINFO='$(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir)' \ $(TEXI2DVI) $< .texi.pdf: TEXINPUTS="$(am__TEXINFO_TEX_DIR)$(PATH_SEPARATOR)$$TEXINPUTS" \ MAKEINFO='$(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir)' \ $(TEXI2PDF) $< .texi.html: rm -rf $(@:.html=.htp) if $(MAKEINFOHTML) $(AM_MAKEINFOHTMLFLAGS) $(MAKEINFOFLAGS) -I $(srcdir) \ -o $(@:.html=.htp) $<; \ then \ rm -rf $@; \ if test ! -d $(@:.html=.htp) && test -d $(@:.html=); then \ mv $(@:.html=) $@; else mv $(@:.html=.htp) $@; fi; \ else \ if test ! -d $(@:.html=.htp) && test -d $(@:.html=); then \ rm -rf $(@:.html=); else rm -Rf $(@:.html=.htp) $@; fi; \ exit 1; \ fi $(srcdir)/gcal.info: gcal.texi gcal.dvi: gcal.texi gcal.pdf: gcal.texi gcal.html: gcal.texi .dvi.ps: TEXINPUTS="$(am__TEXINFO_TEX_DIR)$(PATH_SEPARATOR)$$TEXINPUTS" \ $(DVIPS) -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.ar gcal.ars gcal.aux gcal.cp gcal.cps gcal.fn gcal.fns gcal.ky \ gcal.kys gcal.log gcal.pg gcal.pgs gcal.tb gcal.tbs gcal.tmp \ gcal.toc gcal.tp gcal.tps gcal.vr gcal.vrs 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. $(RECURSIVE_TARGETS): @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ list='$(SUBDIRS)'; 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" $(RECURSIVE_CLEAN_TARGETS): @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ rev=''; for subdir in $$list; do \ if test "$$subdir" = "."; then :; else \ rev="$$subdir $$rev"; \ fi; \ done; \ rev="$$rev ."; \ target=`echo $@ | sed s/-recursive//`; \ for subdir in $$rev; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done ctags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) 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; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ 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 CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ 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" 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: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \ install-am install-strip tags-recursive .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ all all-am check check-am clean clean-aminfo clean-generic \ ctags ctags-recursive 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-recursive \ uninstall uninstall-am uninstall-dvi-am uninstall-html-am \ uninstall-info-am uninstall-pdf-am uninstall-ps-am # 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-3.6.3/doc/en/gcal.info0000644000175000017500000416204212125376137012324 00000000000000This is gcal.info, produced by makeinfo version 4.13 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 3.6. 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 3.6 of `Gcal, an Extended Calendar Program', 24 June 2000, for the 3.6 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/Nordwest 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 Islands `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 3.6 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 3.6 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 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 Type* *Dynamical* *Co-ordinate* *Timezone* `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 Type* *Dynamical* *Co-ordinate* *Timezone* `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 3.6 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 3.6 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 3.6 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 3.6 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 3.6 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 3.6 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 512) * -*dN: Fixed date options. (line 895) * -*dNWWW: Fixed date options. (line 1029) * -*wN[WWW]: Fixed date options. (line 1081) * --adjust-value=ARGUMENT: Fixed date options. (line 130) * --alternative-format: Fixed date options. (line 675) * --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 1207) * --biorhythm-axis=NUMBER: Fixed date options. (line 615) * --blocks=1: Calendar options. (line 1394) * --blocks=12: Calendar options. (line 1414) * --blocks=2: Calendar options. (line 1398) * --blocks=3: Calendar options. (line 1402) * --blocks=4: Calendar options. (line 1406) * --blocks=6: Calendar options. (line 1410) * --blocks=NUMBER: Calendar options. (line 1386) * --calendar-dates=both: Calendar options. (line 1430) * --calendar-dates=special: Calendar options. (line 1424) * --calendar-dates=special|both: Calendar options. (line 1418) * --cc-holidays=CC[_TT][+...]: Calendar options. (line 143) * --celtic-holidays: Calendar options. (line 61) * --chinese-flexible-holidays: Calendar options. (line 67) * --chinese-flexible-months: Calendar options. (line 1213) * --chinese-holidays: Calendar options. (line 75) * --chinese-months: Calendar options. (line 1220) * --christian-holidays: Calendar options. (line 82) * --coptic-months: Calendar options. (line 1226) * --copyleft: Common options. (line 33) * --copyright: Common options. (line 33) * --cycle-end=ARGUMENT: Fixed date options. (line 222) * --cycle-step=ARGUMENT: Fixed date options. (line 283) * --date-format=de|us|gb|TEXT: Calendar options. (line 1619) * --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 456) * --descending-fixed-dates=short: Fixed date options. (line 439) * --descending-fixed-dates[=short|long]: Fixed date options. (line 424) * --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 1390) * --end-of-week: Fixed date options. (line 1342) * --end-of-year: Fixed date options. (line 1427) * --ethiopic-months: Calendar options. (line 1231) * --exclude-fixed-dates-list-title: Fixed date options. (line 808) * --exclude-holiday-list-title: Calendar options. (line 45) * --execute-command: Fixed date options. (line 342) * --exit-status-help-non-zero: Common options. (line 41) * --export-date-variables <1>: Date variables. (line 104) * --export-date-variables: Fixed date options. (line 29) * --export-text-variables <1>: Text variables. (line 279) * --export-text-variables: Fixed date options. (line 125) * --filter-day=ARGUMENT: Fixed date options. (line 353) * --filter-period=ARGUMENT: Fixed date options. (line 368) * --filter-text=PATTERN: Fixed date options. (line 386) * --fixed-dates=both: Calendar options. (line 1466) * --fixed-dates=special: Calendar options. (line 1460) * --fixed-dates=special|both: Calendar options. (line 1453) * --force-highlighting: Global options. (line 91) * --french-revolutionary-months: Calendar options. (line 1236) * --gregorian-reform=1582|1700|1752|1753|ARGUMENT: Calendar options. (line 1556) * --grouping-text[=TEXT]: Fixed date options. (line 700) * --heading-text=TEXT: Fixed date options. (line 811) * --hebrew-holidays: Calendar options. (line 86) * --hebrew-months: Calendar options. (line 1241) * --help <1>: Invoking gcal2txt. (line 23) * --help <2>: Invoking txt2gcal. (line 21) * --help <3>: Invoking tcal. (line 34) * --help: Common options. (line 9) * --here=LINE: Fixed date options. (line 512) * --highlighting=no: Global options. (line 102) * --highlighting=TEXT: Global options. (line 107) * --highlighting=yes: Global options. (line 91) * --holiday-dates=both: Calendar options. (line 1448) * --holiday-dates=special: Calendar options. (line 1442) * --holiday-dates=special|both: Calendar options. (line 1435) * --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 411) * --include-consecutive-number: Fixed date options. (line 853) * --include-holidays=long: Fixed date options. (line 690) * --include-holidays=short: Fixed date options. (line 695) * --include-resource-file-name: Fixed date options. (line 666) * --include-today: Fixed date options. (line 878) * --include-week-number: Fixed date options. (line 757) * --indian-civil-months: Calendar options. (line 1246) * --islamic-civil-holidays: Calendar options. (line 89) * --islamic-civil-months: Calendar options. (line 1251) * --iso-week-number=no: Calendar options. (line 1374) * --iso-week-number=yes: Calendar options. (line 1363) * --iso-week-number=yes|no: Calendar options. (line 1356) * --japanese-flexible-holidays: Calendar options. (line 94) * --japanese-flexible-months: Calendar options. (line 1258) * --japanese-holidays: Calendar options. (line 101) * --japanese-months: Calendar options. (line 1265) * --leap-day=february: Fixed date options. (line 867) * --leap-day=february|march: Fixed date options. (line 863) * --leap-day=march: Fixed date options. (line 872) * --license: Common options. (line 33) * --limit: Fixed date options. (line 171) * --list-mode: Fixed date options. (line 884) * --list-of-fixed-dates=long: Fixed date options. (line 448) * --list-of-fixed-dates=short: Fixed date options. (line 430) * --list-of-fixed-dates[=short|long]: Fixed date options. (line 424) * --long-help=?: Common options. (line 25) * --long-help[=ARGUMENT]: Common options. (line 16) * --mail[=ADDRESS]: Global options. (line 183) * --month: Fixed date options. (line 1383) * --moonimage-lines=NUMBER: Fixed date options. (line 643) * --multicultural-new-year-holidays: Calendar options. (line 107) * --old-armenic-months: Calendar options. (line 1271) * --old-egyptic-months: Calendar options. (line 1276) * --omit-multiple-date-part: Fixed date options. (line 766) * --orthodox-calendar: Calendar options. (line 1322) * --orthodox-new-holidays: Calendar options. (line 114) * --orthodox-old-holidays: Calendar options. (line 121) * --pager: Global options. (line 48) * --period-of-fixed-dates=ARGUMENT: Fixed date options. (line 892) * --persian-jalaali-holidays: Calendar options. (line 128) * --persian-jalaali-months: Calendar options. (line 1281) * --precise: Fixed date options. (line 330) * --resource-file=NAME[+...]: Fixed date options. (line 465) * --response-file=NAME: Global options. (line 8) * --revert-match: Fixed date options. (line 416) * --shell-script=NAME: Global options. (line 15) * --shift=[+|-]NUMBER: Invoking tcal. (line 41) * --start-of-month: Fixed date options. (line 1402) * --start-of-week: Fixed date options. (line 1342) * --start-of-year: Fixed date options. (line 1439) * --starting-day=ARGUMENT: Calendar options. (line 1471) * --suppress-calendar: Calendar options. (line 1382) * --suppress-date-part: Fixed date options. (line 788) * --suppress-fixed-dates-list-separator: Fixed date options. (line 778) * --suppress-holiday-list-separator: Calendar options. (line 40) * --suppress-text-part: Fixed date options. (line 798) * --text-variable=ARGUMENT: Fixed date options. (line 35) * --time-offset=ARGUMENT: Calendar options. (line 1492) * --today: Fixed date options. (line 424) * --tomorrow: Fixed date options. (line 1330) * --transform-year=ARGUMENT: Calendar options. (line 1535) * --translate-string=TEXT: Calendar options. (line 1718) * --type=special|standard: Calendar options. (line 1289) * --usage=?: Common options. (line 25) * --usage[=ARGUMENT]: Common options. (line 16) * --version <1>: Invoking gcal2txt. (line 27) * --version <2>: Invoking txt2gcal. (line 25) * --version <3>: Invoking tcal. (line 38) * --version: Common options. (line 37) * --week: Fixed date options. (line 1342) * --with-week-number: Calendar options. (line 1349) * --year: Fixed date options. (line 1420) * --zero-dates-only: Fixed date options. (line 857) * --zodical-marker-holidays: Calendar options. (line 134) * -?: Common options. (line 9) * -??: Common options. (line 16) * -@DVAR[+|-]NWWW: Fixed date options. (line 1302) * -@DVAR[[+|-]N]: Fixed date options. (line 1269) * -@e[+|-]NWWW: Fixed date options. (line 1188) * -@e[[+|-]N]: Fixed date options. (line 1155) * -@t[+|-]NWWW: Fixed date options. (line 1243) * -@t[[+|-]N]: Fixed date options. (line 1214) * -A: Fixed date options. (line 675) * -a: Fixed date options. (line 666) * -b 1: Calendar options. (line 1394) * -b 12: Calendar options. (line 1414) * -b 2: Calendar options. (line 1398) * -b 3: Calendar options. (line 1402) * -b 4: Calendar options. (line 1406) * -b 6: Calendar options. (line 1410) * -b NUMBER: Calendar options. (line 1386) * -C: Fixed date options. (line 448) * -c: Fixed date options. (line 430) * -c*dN: Fixed date options. (line 895) * -c*dNWWW: Fixed date options. (line 1029) * -c*wN[WWW]: Fixed date options. (line 1081) * -C-: Fixed date options. (line 456) * -c-: Fixed date options. (line 439) * -c@DVAR[+|-]NWWW: Fixed date options. (line 1302) * -c@DVAR[[+|-]N]: Fixed date options. (line 1269) * -c@e[+|-]NWWW: Fixed date options. (line 1188) * -c@e[[+|-]N]: Fixed date options. (line 1155) * -c@t[+|-]NWWW: Fixed date options. (line 1243) * -c@t[[+|-]N]: Fixed date options. (line 1214) * -c[m|M[+|-]]: Fixed date options. (line 1380) * -c[t|T]: Fixed date options. (line 1330) * -c[w|W[+|-]]: Fixed date options. (line 1342) * -c[y|Y[+|-]]: Fixed date options. (line 1417) * -cA: Fixed date options. (line 675) * -ca: Fixed date options. (line 666) * -cd: Fixed date options. (line 878) * -cE: Fixed date options. (line 695) * -ce: Fixed date options. (line 690) * -cg[TEXT]: Fixed date options. (line 700) * -cJ: Fixed date options. (line 798) * -ck: Fixed date options. (line 757) * -cl: Fixed date options. (line 884) * -cl*dN: Fixed date options. (line 907) * -cl*dNWWW: Fixed date options. (line 1052) * -cl*wN[WWW]: Fixed date options. (line 1115) * -cl@DVAR[+|-]NWWW: Fixed date options. (line 1314) * -cl@DVAR[[+|-]N]: Fixed date options. (line 1284) * -cl@e[+|-]NWWW: Fixed date options. (line 1200) * -cl@e[[+|-]N]: Fixed date options. (line 1170) * -cl@t[+|-]NWWW: Fixed date options. (line 1255) * -cl@t[[+|-]N]: Fixed date options. (line 1228) * -clMMDD: Fixed date options. (line 993) * -clMMWWWN: Fixed date options. (line 1015) * -clN+|-: Fixed date options. (line 926) * -clNd: Fixed date options. (line 907) * -clNw: Fixed date options. (line 968) * -cm: Fixed date options. (line 1383) * -cm+: Fixed date options. (line 1390) * -cm-: Fixed date options. (line 1402) * -cMMDD: Fixed date options. (line 986) * -cMMWWWN: Fixed date options. (line 1004) * -cN+|-: Fixed date options. (line 916) * -cNd: Fixed date options. (line 895) * -cNw: Fixed date options. (line 938) * -co: Fixed date options. (line 766) * -cQ: Fixed date options. (line 778) * -cT: Fixed date options. (line 1330) * -ct: Fixed date options. (line 1330) * -cU: Fixed date options. (line 788) * -cw: Fixed date options. (line 1346) * -cw+: Fixed date options. (line 1353) * -cw-: Fixed date options. (line 1365) * -cx: Fixed date options. (line 808) * -cy: Fixed date options. (line 1420) * -cy+: Fixed date options. (line 1427) * -cy-: Fixed date options. (line 1439) * -cZ: Fixed date options. (line 857) * -cz: Fixed date options. (line 853) * -c|C[-]: Fixed date options. (line 424) * -d: Fixed date options. (line 878) * -D ARGUMENT: Fixed date options. (line 353) * -E: Fixed date options. (line 695) * -e: Fixed date options. (line 690) * -f|F NAME[+...]: Fixed date options. (line 465) * -G: Calendar options. (line 40) * -g[TEXT]: Fixed date options. (line 700) * -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 1289) * -I PATTERN: Fixed date options. (line 386) * -i[-]: Calendar options. (line 1289) * -J: Fixed date options. (line 798) * -j: Calendar options. (line 1424) * -j[b]: Calendar options. (line 1418) * -jb: Calendar options. (line 1430) * -jc: Calendar options. (line 1460) * -jc[b]: Calendar options. (line 1453) * -jcb: Calendar options. (line 1466) * -jn: Calendar options. (line 1442) * -jn[b]: Calendar options. (line 1435) * -jnb: Calendar options. (line 1448) * -k: Fixed date options. (line 757) * -K: Calendar options. (line 1349) * -l: Fixed date options. (line 884) * -L: Common options. (line 33) * -l*dN: Fixed date options. (line 907) * -l*dNWWW: Fixed date options. (line 1052) * -l*wN[WWW]: Fixed date options. (line 1115) * -l@DVAR[+|-]NWWW: Fixed date options. (line 1314) * -l@DVAR[[+|-]N]: Fixed date options. (line 1284) * -l@e[+|-]NWWW: Fixed date options. (line 1200) * -l@e[[+|-]N]: Fixed date options. (line 1170) * -l@t[+|-]NWWW: Fixed date options. (line 1255) * -l@t[[+|-]N]: Fixed date options. (line 1228) * -lMMDD: Fixed date options. (line 993) * -lMMWWWN: Fixed date options. (line 1015) * -lN+|-: Fixed date options. (line 926) * -lNd: Fixed date options. (line 907) * -lNw: Fixed date options. (line 968) * -m: Fixed date options. (line 1383) * -M: Fixed date options. (line 1380) * -m: Fixed date options. (line 1380) * -m+: Fixed date options. (line 1390) * -m-: Fixed date options. (line 1402) * -M[+|-]]: Fixed date options. (line 1380) * -m[+|-]]: Fixed date options. (line 1380) * -m|M[+|-]]: Fixed date options. (line 1380) * -N: Calendar options. (line 30) * -n: Calendar options. (line 18) * -N-: Calendar options. (line 35) * -n-: Calendar options. (line 24) * -n|N[-]: Calendar options. (line 9) * -o: Fixed date options. (line 766) * -O: Calendar options. (line 1322) * -p: Global options. (line 48) * -P ARGUMENT: Fixed date options. (line 368) * -Q: Fixed date options. (line 778) * -q CC[_TT][+...]: Calendar options. (line 143) * -r ARGUMENT: Fixed date options. (line 35) * -R NAME: Global options. (line 8) * -s ARGUMENT: Calendar options. (line 1471) * -S NAME: Global options. (line 15) * -T: Fixed date options. (line 1330) * -t: Fixed date options. (line 1330) * -U: Fixed date options. (line 788) * -u: Calendar options. (line 1382) * -V: Common options. (line 37) * -v ARGUMENT: Fixed date options. (line 8) * -w: Fixed date options. (line 1346) * -W: Fixed date options. (line 1342) * -w: Fixed date options. (line 1342) * -w+: Fixed date options. (line 1353) * -w-: Fixed date options. (line 1365) * -W[+|-]]: Fixed date options. (line 1342) * -w[+|-]]: Fixed date options. (line 1342) * -w|W[+|-]]: Fixed date options. (line 1342) * -X: Calendar options. (line 45) * -y: Fixed date options. (line 1420) * -Y: Fixed date options. (line 1417) * -y: Fixed date options. (line 1417) * -y+: Fixed date options. (line 1427) * -y-: Fixed date options. (line 1439) * -Y[+|-]]: Fixed date options. (line 1417) * -y[+|-]]: Fixed date options. (line 1417) * -y|Y[+|-]]: Fixed date options. (line 1417) * -Z: Fixed date options. (line 857) * -z: Fixed date options. (line 853) * @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 <1>: Environment Variables. (line 14) * COLUMNS: Global options. (line 70) * GCAL <1>: Environment Variables. (line 10) * GCAL <2>: The GCAL environment variable. (line 6) * GCAL: Global options. (line 8) * GCAL_COLUMNS <1>: Environment Variables. (line 14) * GCAL_COLUMNS: Global options. (line 65) * GCAL_DATE_FORMAT <1>: Environment Variables. (line 19) * GCAL_DATE_FORMAT: Calendar options. (line 1647) * GCAL_LINES <1>: Environment Variables. (line 25) * GCAL_LINES: Global options. (line 65) * GCAL_OPT <1>: Environment Variables. (line 10) * GCAL_OPT: The GCAL environment variable. (line 24) * GCAL_SYS_DATADIR <1>: Environment Variables. (line 30) * GCAL_SYS_DATADIR: Resource file. (line 50) * GCAL_USR_DATADIR <1>: Environment Variables. (line 35) * GCAL_USR_DATADIR: Resource file. (line 38) * GCALANSI <1>: Environment Variables. (line 41) * GCALANSI: Global options. (line 176) * GCALPATH <1>: Environment Variables. (line 47) * GCALPATH: Resource file. (line 24) * GCALPROG <1>: Environment Variables. (line 52) * GCALPROG: Invoking tcal. (line 20) * HOME <1>: Environment Variables. (line 61) * HOME <2>: Resource file. (line 32) * HOME: Fixed date options. (line 478) * LANG <1>: Environment Variables. (line 80) * LANG: Internationalization. (line 33) * LANGUAGE <1>: Environment Variables. (line 66) * LANGUAGE: Internationalization. (line 30) * LC_ALL <1>: Environment Variables. (line 71) * LC_ALL: Internationalization. (line 31) * LC_MESSAGES <1>: Environment Variables. (line 76) * LC_MESSAGES: Internationalization. (line 32) * LINES <1>: Environment Variables. (line 25) * LINES: Global options. (line 70) * LOGNAME <1>: Environment Variables. (line 84) * LOGNAME: Global options. (line 201) * MAILPROG <1>: Environment Variables. (line 88) * MAILPROG: Global options. (line 223) * MAILTO <1>: Environment Variables. (line 94) * MAILTO: Global options. (line 191) * PAGER <1>: Environment Variables. (line 99) * PAGER: Global options. (line 48) * PATH <1>: Environment Variables. (line 104) * PATH: Global options. (line 53) * TERM <1>: Environment Variables. (line 109) * TERM: Global options. (line 75) * TXT2GCALPROG <1>: Environment Variables. (line 112) * TXT2GCALPROG: Text variables. (line 112) * TZ: Environment Variables. (line 122) * USER <1>: Environment Variables. (line 126) * USER: Global options. (line 196)  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 1012) * 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 167) * 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 1670) * 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 118) * Entries in resource file: Structure of resource file. (line 43) * 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 917) * Event oriented texts of Sun data and times, special: Sun data. (line 917) * Exit codes: Error Codes. (line 6) * Fixed date, line structure: Structure of resource file. (line 31) * Format elements and character replacement instructions in date format text: Calendar options. (line 1670) * Format Instruction: Format Instruction. (line 6) * Geographical distance and course angle, modes: Geographical distance and course angle. (line 15) * Glossary: Glossary. (line 6) * GNU long-style options: Options. (line 36) * Holidays, country specific: Calendar options. (line 167) * ISO-6709:1983 co-ordinate: Sun data. (line 1012) * Line structure of fixed date: Structure of resource file. (line 31) * 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 15) * Modes, Moon oriented special texts: Moon data. (line 34) * Modes, Sun oriented special texts: Sun data. (line 34) * Moon data and times, special event oriented texts: Sun data. (line 917) * Moon oriented special texts, modes: Moon data. (line 34) * Moon oriented special texts, representation types: Moon data. (line 826) * 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 118) * Operations on text variables: Text variables. (line 293) * Regular expression programming libraries, supported: Regular Expressions. (line 21) * Regular expressions: Regexp Summary. (line 6) * Representation types of the Moon oriented special texts: Moon data. (line 826) * Representation types of the Sun oriented special texts: Sun data. (line 1089) * Resource file, entries: Structure of resource file. (line 43) * 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 917) * Special event oriented texts, Sun data and times: Sun data. (line 917) * 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 917) * Sun oriented special texts, modes: Sun data. (line 34) * Sun oriented special texts, representation types: Sun data. (line 1089) * Supported native languages: Internationalization. (line 11) * Supported regular expression programming libraries: Regular Expressions. (line 21) * Text variables, operations: Text variables. (line 293) * 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 A GNU Free Documentation License ***************************************** Version 1.3, 3 November 2008 Copyright (C) 2000, 2001, 2002, 2007, 2008, 2010, 2011, 2013 Free Software Foundation, Inc. `http://fsf.org/' 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 `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. 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 175) * %,[DATE] special text, biorhythm text: Biorhythm. (line 34) * %0 special text, end of highlighting sequence 1 or 2: Highlighting. (line 126) * %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 62) * %=[ARGUMENT] special text, numerical local time timezone offset value: Actual clocktime. (line 191) * %>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 29) * %>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 119) * %>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 104) * %[FORMAT]'[ARGUMENT] special text, actual local time in M[M...] format: Actual clocktime. (line 51) * %[FORMAT]-[ARGUMENT] special text, environment variable: Contents of Environment variable. (line 6) * %[FORMAT].[ARGUMENT] special text, actual Universal time hour: Actual clocktime. (line 134) * %[FORMAT]/[ARGUMENT] special text, actual Universal time minute: Actual clocktime. (line 147) * %[FORMAT]? special texts, difference value: Other difference values. (line 6) * %[FORMAT]?[ARGUMENT] special text, actual local time minute: Actual clocktime. (line 78) * %[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]?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 hour: Actual clocktime. (line 65) * %[FORMAT]`[ARGUMENT] special text, actual Universal time in M[M...]/DATE format: Actual clocktime. (line 119) * %[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 12-hour format suffix: Actual clocktime. (line 91) * %[FORMAT]}[ARGUMENT] special text, actual Universal time 12-hour format suffix: Actual clocktime. (line 161) * %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) * %D[DATE] special text, day number: Day number. (line 7) * %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) * %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 14) * %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 27) * %t[ARGUMENT] special text, actual local time in HH:MM format: Actual clocktime. (line 19) * %T[DATE] special text, weekday number: Weekday number. (line 108) * %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) * %Y[DATE] special text, year number: Year number. (line 7) * %yDATE special text, relative year number: Difference value. (line 10) * %Z[DATE] special text, Moon phase text graphics: Moon phase. (line 44) * (...) regexp, grouping: Regexp Operators. (line 184) * * regexp, operator: Regexp Operators. (line 191) * + regexp, operator: Regexp Operators. (line 211) * + separator character <1>: Fixed date options. (line 478) * + separator character: Calendar options. (line 157) * , 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 54) * / switch character: Command line arguments. (line 22) * 12-hours display format of time: Actual clocktime. (line 27) * 2-letter weekday name %>2#K[DATE] special text <1>: Special Texts Summary. (line 98) * 2-letter weekday name %>2#K[DATE] special text: Weekday name. (line 23) * 24-hours display format of time: Actual clocktime. (line 27) * 3-letter month name %>3#U[DATE] special text <1>: Special Texts Summary. (line 177) * 3-letter month name %>3#U[DATE] special text: Month name. (line 15) * 3-letter weekday name %>3#K[DATE] special text <1>: Special Texts Summary. (line 95) * 3-letter weekday name %>3#K[DATE] special text: Weekday name. (line 15) * 3-Month mode command: Glossary. (line 634) * 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 <1>: 3-Month mode commands. (line 6) * 3-Month mode commands: Commands. (line 6) * 3-Month mode, limitations <1>: Date variables. (line 49) * 3-Month mode, limitations: Further date part attributes. (line 29) * : separator character <1>: Fixed date options. (line 8) * : separator character: Global options. (line 107) * :N repetition factor of days: Repetition factor of days. (line 6) * ; comment character <1>: Comment line. (line 6) * ; comment character: Response file. (line 21) * ; remark character <1>: Comment line. (line 6) * ; remark character: Response file. (line 21) * ? regexp, operator: Regexp Operators. (line 223) * @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 50) * [.ELEMENT.] regexp, collating symbols: Regexp Operators. (line 140) * [:alnum:] regexp, character class: Regexp Operators. (line 88) * [:alpha:] regexp, character class: Regexp Operators. (line 91) * [:blank:] regexp, character class: Regexp Operators. (line 94) * [:cntrl:] regexp, character class: Regexp Operators. (line 97) * [:digit:] regexp, character class: Regexp Operators. (line 100) * [:graph:] regexp, character class: Regexp Operators. (line 103) * [:KEYWORD:] regexp, character classes: Regexp Operators. (line 74) * [:lower:] regexp, character class: Regexp Operators. (line 107) * [:print:] regexp, character class: Regexp Operators. (line 110) * [:punct:] regexp, character class: Regexp Operators. (line 113) * [:space:] regexp, character class: Regexp Operators. (line 117) * [:upper:] regexp, character class: Regexp Operators. (line 120) * [:xdigit:] regexp, character class: Regexp Operators. (line 123) * [=LIST=] regexp, equivalence classes: Regexp Operators. (line 147) * [^ ...] regexp, complemented character list: Regexp Operators. (line 160) * \ depreciation character <1>: Other difference values. (line 11) * \ depreciation character <2>: Text variables. (line 91) * \ depreciation character <3>: Special Texts processed. (line 6) * \ depreciation character <4>: Text part of a line. (line 52) * \ depreciation character: Fixed date options. (line 101) * \ line continuation character: Text part of a line. (line 29) * \ protection character <1>: Other difference values. (line 11) * \ protection character <2>: Text variables. (line 91) * \ protection character <3>: Special Texts processed. (line 6) * \ protection character <4>: Text part of a line. (line 52) * \ protection character: Fixed date options. (line 101) * \ regexp, metacharacter: Regexp Operators. (line 14) * \' regexp, operator: Regexp Operators. (line 299) * \< regexp, operator: Regexp Operators. (line 266) * \> regexp, operator: Regexp Operators. (line 270) * \` regexp, operator: Regexp Operators. (line 295) * \B regexp, operator: Regexp Operators. (line 279) * \b regexp, operator: Regexp Operators. (line 274) * \W regexp, operator: Regexp Operators. (line 262) * \w regexp, operator: Regexp Operators. (line 257) * ^ line break-up character <1>: Text part of a line. (line 6) * ^ line break-up character: Fixed date options. (line 386) * ^ regexp, anchor metacharacter: Regexp Operators. (line 22) * _ pseudo space character: Fixed date options. (line 115) * Accuracy of astronomical calculations: Preface. (line 20) * Activate fixed date function: Fixed date options. (line 424) * Actual clocktime %[FORMAT]?[ARGUMENT] special texts <1>: Special Texts Summary. (line 233) * Actual clocktime %[FORMAT]?[ARGUMENT] special texts: Actual clocktime. (line 6) * 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]{[[+|-]MMMM|HH:[MM]] special text: Special Texts Summary. (line 247) * Actual local time 12-hour format suffix %[FORMAT]{[ARGUMENT] special text: Actual clocktime. (line 91) * 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 65) * Actual local time in HH:MM format %t[ARGUMENT] special text <1>: Special Texts Summary. (line 235) * Actual local time in HH:MM format %t[ARGUMENT] special text: Actual clocktime. (line 19) * Actual local time in M[M...] format %[FORMAT]'[ARGUMENT] special text <1>: Special Texts Summary. (line 238) * Actual local time in M[M...] format %[FORMAT]'[ARGUMENT] special text: Actual clocktime. (line 51) * Actual local time minute %[FORMAT]?[[+|-]MMMM|HH:[MM]] special text: Special Texts Summary. (line 244) * Actual local time minute %[FORMAT]?[ARGUMENT] special text: Actual clocktime. (line 78) * Actual Universal time 12-hour format suffix %[FORMAT]}[[+|-]MMMM|HH:[MM]] special text: Special Texts Summary. (line 262) * Actual Universal time 12-hour format suffix %[FORMAT]}[ARGUMENT] special text: Actual clocktime. (line 161) * 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 134) * Actual Universal time in HH:MM/DATE format %@[ARGUMENT] special text <1>: Special Texts Summary. (line 250) * Actual Universal time in HH:MM/DATE format %@[ARGUMENT] special text: Actual clocktime. (line 104) * Actual Universal time in M[M...]/DATE format %[FORMAT]`[ARGUMENT] special text <1>: Special Texts Summary. (line 253) * Actual Universal time in M[M...]/DATE format %[FORMAT]`[ARGUMENT] special text: Actual clocktime. (line 119) * Actual Universal time minute %[FORMAT]/[[+|-]MMMM|HH:[MM]] special text: Special Texts Summary. (line 259) * Actual Universal time minute %[FORMAT]/[ARGUMENT] special text: Actual clocktime. (line 147) * 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 465) * Additional resource file line: Fixed date options. (line 512) * Age value %>1&*B[DATE] special text: Difference value. (line 30) * Age value %B[DATE] special text <1>: Special Texts Summary. (line 230) * Age value %B[DATE] special text: Difference value. (line 18) * 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 1418) * Alternative date format in eternal holiday list: Calendar options. (line 1435) * Alternative date format in fixed date list: Calendar options. (line 1453) * Amateur-astronomical twilight: Glossary. (line 19) * Amateur-astronomical twilight, Sun: Sun data. (line 283) * 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 49) * Assignment of special texts to text variables, limitations: Special Texts. (line 20) * Assignments to date variables <1>: Date variables. (line 6) * Assignments to date variables <2>: Structure of resource file. (line 57) * Assignments to date variables: Fixed date options. (line 8) * Assignments to text variables <1>: Text variables. (line 6) * Assignments to text variables <2>: Structure of resource file. (line 72) * Assignments to text variables: Fixed date options. (line 35) * Astronomical calculations, accuracy: Preface. (line 20) * Astronomical calculations, precision: Preface. (line 20) * Astronomical data and times, more precise representation: Fixed date options. (line 330) * Astronomical data in eternal holiday list: Calendar options. (line 48) * Astronomical midnight time, Moon: Moon data. (line 37) * Astronomical midnight time, Sun: Sun data. (line 37) * Astronomical noon time, Moon: Moon data. (line 57) * Astronomical noon time, Sun: Sun data. (line 49) * Astronomical twilight: Glossary. (line 36) * Astronomical twilight, Sun: Sun data. (line 309) * Astronomical unit: Glossary. (line 40) * Astronomical unit, Sun: Sun data. (line 397) * Atmospheric refraction: Fixed date options. (line 152) * Autumnal equinox: Calendar options. (line 48) * Autumnal equinox point on the ecliptic: Glossary. (line 45) * Azimuth: Glossary. (line 49) * Azimuth, Moon: Moon data. (line 37) * Azimuth, Sun: Sun data. (line 37) * 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 <1>: Moon data. (line 450) * Base time of astronomical functions, output: Sun data. (line 482) * Base time of the astronomical functions, change: Calendar options. (line 1492) * Base year of calendar, change: Calendar options. (line 1535) * Biorhythm: Glossary. (line 53) * Biorhythm %?[DATE] special texts <1>: Special Texts Summary. (line 214) * Biorhythm %?[DATE] special texts: Biorhythm. (line 6) * Biorhythm text %,[DATE] special text <1>: Special Texts Summary. (line 216) * Biorhythm text %,[DATE] special text: Biorhythm. (line 34) * Biorhythm text graphics %;[DATE] special text <1>: Special Texts Summary. (line 219) * Biorhythm text graphics %;[DATE] special text: Biorhythm. (line 62) * Biorhythm, critical day: Biorhythm. (line 21) * Biorhythm, negative day: Biorhythm. (line 21) * Biorhythm, positive day: Biorhythm. (line 21) * Birthday: Difference value. (line 18) * BSD: Glossary. (line 58) * Buffer matching operators, regexp: Regexp Operators. (line 294) * Buffer, regexp: Regexp Operators. (line 285) * C: Glossary. (line 62) * C Preprocessor symbol USE_PAGER: Global options. (line 170) * Calendar format, special: Calendar options. (line 1289) * Calendar format, standard: Calendar options. (line 1289) * Calendar mode, hybrid: Calendar options. (line 1556) * Calendar mode, proleptic: Calendar options. (line 1589) * Calendar option class <1>: Glossary. (line 66) * Calendar option class: Options. (line 13) * Calendar options: Calendar options. (line 6) * Calendar sheet, alternative date format: Calendar options. (line 1418) * Calendar sheet, provide with week numbers: Calendar options. (line 1349) * Calendar sheet, special date format: Calendar options. (line 1424) * Calendar sheet, standard and special date format: Calendar options. (line 1430) * Calendar sheet, suppress: Calendar options. (line 1382) * Calendar, Chinese: Preface. (line 187) * Calendar, Gregorian: Todays Calendar. (line 6) * Calendar, Japanese: Preface. (line 187) * Calendar, Julian: Todays Calendar. (line 6) * Calendar, leap year rule as used by Eastern churches: Calendar options. (line 1322) * Case sensitivity in matching, regexp: Regexp Operators. (line 306) * Celestial axis: Glossary. (line 69) * Celestial body elevation: Glossary. (line 73) * Celestial equator <1>: Glossary. (line 77) * Celestial equator <2>: Moon data. (line 313) * Celestial equator: Sun data. (line 372) * Celestial Pole: Glossary. (line 82) * Celtic holidays in eternal holiday list: Calendar options. (line 61) * Change base time of the astronomical functions: Calendar options. (line 1492) * Change base year of calendar: Calendar options. (line 1535) * Character class: Glossary. (line 86) * Character class, [:alnum:] regexp: Regexp Operators. (line 88) * Character class, [:alpha:] regexp: Regexp Operators. (line 91) * Character class, [:blank:] regexp: Regexp Operators. (line 94) * Character class, [:cntrl:] regexp: Regexp Operators. (line 97) * Character class, [:digit:] regexp: Regexp Operators. (line 100) * Character class, [:graph:] regexp: Regexp Operators. (line 103) * Character class, [:lower:] regexp: Regexp Operators. (line 107) * Character class, [:print:] regexp: Regexp Operators. (line 110) * Character class, [:punct:] regexp: Regexp Operators. (line 113) * Character class, [:space:] regexp: Regexp Operators. (line 117) * Character class, [:upper:] regexp: Regexp Operators. (line 120) * Character class, [:xdigit:] regexp: Regexp Operators. (line 123) * Character classes, [:KEYWORD:] regexp: Regexp Operators. (line 74) * Character classes, regexp: Regexp Operators. (line 74) * Character list: Glossary. (line 92) * Character list in regexp, complemented: Regexp Operators. (line 160) * Character list in regexp, negated: Regexp Operators. (line 160) * Character list, [...] regexp: Regexp Operators. (line 50) * Character list, regexp: Regexp Operators. (line 50) * Character replacement instruction: Calendar options. (line 1656) * Character set: Glossary. (line 96) * Characters, command separator: Commands. (line 37) * Chinese calendar: Preface. (line 187) * Chinese holidays in eternal holiday list: Calendar options. (line 75) * Christian holidays in eternal holiday list: Calendar options. (line 82) * Civil Islamic calendar <1>: Glossary. (line 104) * Civil Islamic calendar: Preface. (line 164) * Civil midnight time <1>: Glossary. (line 107) * Civil midnight time: Calendar options. (line 1492) * Civil twilight: Glossary. (line 112) * Civil twilight, Sun: Sun data. (line 231) * Clocktime value, Sun and Moon oriented special texts: Sun data. (line 909) * Co-ordinate termination character, /: Geographical distance and course angle. (line 54) * Co-ordinate, ISO-6709:1983 <1>: Moon data. (line 807) * Co-ordinate, ISO-6709:1983 <2>: Sun data. (line 1006) * Co-ordinate, ISO-6709:1983: Geographical distance and course angle. (line 54) * 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 116) * Collating elements, regexp: Regexp Operators. (line 132) * Collating symbol: Glossary. (line 123) * Collating symbols, [.ELEMENT.] regexp: Regexp Operators. (line 140) * Collating symbols, regexp: Regexp Operators. (line 140) * COLUMNS environment variable: Environment Variables. (line 14) * Command: Glossary. (line 131) * Command execution <1>: Shell Command. (line 24) * Command execution <2>: Text variables. (line 42) * Command execution: Fixed date options. (line 73) * Command line argument: Glossary. (line 127) * Command line argument %DATE: Actual date modifier. (line 6) * Command line argument @FILE: Response file. (line 6) * Command line interpreter <1>: Shell Command. (line 6) * Command line interpreter <2>: Text variables. (line 97) * Command line interpreter <3>: Fixed date options. (line 342) * Command line interpreter: Invoking Gcal. (line 11) * 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 582) * Command line, arguments: Command line arguments. (line 6) * Command separator characters: Commands. (line 37) * Command separator characters, table: Commands. (line 37) * 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 <1>: Single commands. (line 6) * Commands, single: Commands. (line 6) * Comment character, ; <1>: Comment line. (line 6) * Comment character, ;: Response file. (line 21) * Comment line in resource file <1>: Comment line. (line 6) * Comment line in resource file: Structure of resource file. (line 46) * Common option class <1>: Glossary. (line 135) * Common option class: Options. (line 13) * Common options: Common options. (line 6) * Complemented character list: Glossary. (line 487) * Complemented character list, [^ ...] regexp: Regexp Operators. (line 160) * Complemented character list, regexp: Regexp Operators. (line 160) * Complemented regular expression: Fixed date options. (line 416) * Complete month name %U[DATE] special text <1>: Special Texts Summary. (line 174) * Complete month name %U[DATE] special text: Month name. (line 7) * Complete weekday name %K[DATE] special text <1>: Special Texts Summary. (line 92) * Complete weekday name %K[DATE] special text: Weekday name. (line 7) * Conjunction: Glossary. (line 139) * Conjunction, Moon: Moon data. (line 37) * Continue line in resource file: Text part of a line. (line 29) * Control character sequence: Global options. (line 107) * Copyleft: Common options. (line 33) * Copyright: Common options. (line 33) * Country code <1>: Internationalization. (line 122) * Country code: Calendar options. (line 148) * Country specific holidays in eternal holiday list: Calendar options. (line 143) * Country specific special characters: Calendar options. (line 1718) * Course angle: Glossary. (line 707) * Course angle (true track) %b*1ARGUMENT special text <1>: Special Texts Summary. (line 289) * Course angle (true track) %b*1ARGUMENT special text: Geographical distance and course angle. (line 29) * Course angle (true track) %b*2ARGUMENT special text <1>: Special Texts Summary. (line 297) * Course angle (true track) %b*2ARGUMENT special text: Geographical distance and course angle. (line 44) * Course angle (true track) %b1ARGUMENT special text <1>: Special Texts Summary. (line 285) * Course angle (true track) %b1ARGUMENT special text: Geographical distance and course angle. (line 29) * Course angle (true track) %b2ARGUMENT special text <1>: Special Texts Summary. (line 293) * Course angle (true track) %b2ARGUMENT special text: Geographical distance and course angle. (line 44) * Critical day: Glossary. (line 144) * Critical day, biorhythm: Biorhythm. (line 21) * 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 283) * Cycle ending time value for Sun and Moon data and times, set: Fixed date options. (line 222) * Cycle mode <1>: Glossary. (line 150) * Cycle mode: Fixed date options. (line 222) * Cycle timestep value for Sun and Moon data and times, set: Fixed date options. (line 283) * Date exclusion %?... special texts: Exclusions. (line 6) * Date format elements <1>: Table of Obsolete Date Format Elements. (line 6) * Date format elements: Calendar options. (line 1656) * Date format texts, fixed default <1>: Table of Obsolete Date Formats. (line 6) * Date format texts, fixed default: Calendar options. (line 1628) * Date format texts, individual <1>: Table of Obsolete Date Format Elements. (line 6) * Date format texts, individual: Calendar options. (line 1647) * Date formats: Calendar options. (line 1628) * Date formats, fixed default: Calendar options. (line 1628) * Date formats, individual: Calendar options. (line 1647) * Date part: Glossary. (line 156) * 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 <1>: Date variables. (line 6) * Date variables, assignments <2>: Structure of resource file. (line 57) * Date variables, assignments: Fixed date options. (line 8) * Date variables, definition <1>: Date variables. (line 6) * Date variables, definition: Fixed date options. (line 8) * Date variables, export of local <1>: Date variables. (line 104) * Date variables, export of local: Fixed date options. (line 29) * Date variables, global <1>: Date variables. (line 6) * Date variables, global: Fixed date options. (line 8) * Date variables, local: Date variables. (line 6) * Date variables, management <1>: Date variables. (line 6) * Date variables, management: Fixed date options. (line 8) * Date variables, name space <1>: Date variables. (line 55) * Date variables, name space: Fixed date options. (line 8) * Date variables, operations <1>: Date variables. (line 118) * Date variables, operations <2>: Structure of resource file. (line 57) * Date variables, operations: Fixed date options. (line 8) * Date variables, scope <1>: Date variables. (line 129) * Date variables, scope: Fixed date options. (line 8) * Date variables, simple decrement: Date variables. (line 123) * Date variables, simple increment: Date variables. (line 122) * 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 <1>: Date variables. (line 104) * Date variables, visibility of local: Fixed date options. (line 29) * Day number %>02&*D[DATE] special text <1>: Special Texts Summary. (line 165) * Day number %>02&*D[DATE] special text: Day number. (line 30) * Day number %>02*D[DATE] special text <1>: Special Texts Summary. (line 159) * Day number %>02*D[DATE] special text: Day number. (line 14) * Day number %>1&*D[DATE] special text <1>: Special Texts Summary. (line 162) * Day number %>1&*D[DATE] special text: Day number. (line 22) * Day number %[FORMAT]D[DATE] special text <1>: Special Texts Summary. (line 154) * Day number %[FORMAT]D[DATE] special text: Day number. (line 6) * Day number %[FORMAT]N[DATE] special text: Special Texts Summary. (line 139) * Day number %D[DATE] special text <1>: Special Texts Summary. (line 156) * Day number %D[DATE] special text: Day number. (line 7) * 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 32) * Day-of-year number %>03*N[DATE] special text <1>: Special Texts Summary. (line 144) * Day-of-year number %>03*N[DATE] special text: Day-of-year number. (line 15) * Day-of-year number %>1&*N[DATE] special text <1>: Special Texts Summary. (line 147) * Day-of-year number %>1&*N[DATE] special text: Day-of-year number. (line 24) * Day-of-year number %[FORMAT]N[DATE] special text: Day-of-year number. (line 6) * Day-of-year number %N[DATE] special text <1>: Special Texts Summary. (line 141) * Day-of-year number %N[DATE] special text: Day-of-year number. (line 7) * Daylight Savings: Sun data. (line 1058) * Decimal system: Glossary. (line 160) * Declination: Glossary. (line 163) * Declination, Moon: Moon data. (line 313) * Declination, Sun: Sun data. (line 372) * Default mode, geographical distance and course angle: Geographical distance and course angle. (line 48) * Default mode, Moon data and times: Moon data. (line 793) * Default mode, Sun data and times: Sun data. (line 864) * Defaults of native language: Internationalization. (line 53) * Definition of date variables <1>: Date variables. (line 6) * Definition of date variables: Fixed date options. (line 8) * Definition of global date variables: Fixed date options. (line 8) * Definition of global text variables: Fixed date options. (line 35) * Definition of local date variables: Date variables. (line 6) * Definition of local text variables: Text variables. (line 6) * Definition of text variables <1>: Text variables. (line 6) * Definition of text variables: Fixed date options. (line 35) * Deletion of local date variables: Date variables. (line 75) * Delta-t: Glossary. (line 167) * Delta-t, Moon: Moon data. (line 428) * Delta-t, Sun: Sun data. (line 460) * Depreciation character, \ <1>: Other difference values. (line 11) * Depreciation character, \ <2>: Text variables. (line 91) * Depreciation character, \ <3>: Special Texts processed. (line 6) * Depreciation character, \ <4>: Text part of a line. (line 52) * Depreciation character, \: Fixed date options. (line 101) * Depreciation of special characters <1>: Other difference values. (line 11) * Depreciation of special characters <2>: Text variables. (line 91) * Depreciation of special characters <3>: Special Texts processed. (line 6) * Depreciation of special characters <4>: Text part of a line. (line 52) * Depreciation of special characters <5>: Response file. (line 6) * Depreciation of special characters <6>: Fixed date options. (line 101) * Depreciation of special characters: Command line arguments. (line 28) * 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 1356) * Difference value %[FORMAT]? special texts <1>: Special Texts Summary. (line 1844) * Difference value %[FORMAT]? special texts: Other difference values. (line 6) * Difference value %[FORMAT]?[DATE] special texts <1>: Special Texts Summary. (line 222) * Difference value %[FORMAT]?[DATE] special texts: Difference value. (line 6) * Direction to Makkah, Islamic prayer: Geographical distance and course angle. (line 84) * 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 853) * Double shadow length at afternoon: Sun data. (line 837) * Double shadow length at forenoon: Sun data. (line 828) * Early years: Glossary. (line 173) * Earth equator radius, unit: Moon data. (line 350) * 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 1322) * Eclipse, lunar: Calendar options. (line 48) * Eclipse, solar: Calendar options. (line 48) * Ecliptic <1>: Glossary. (line 186) * Ecliptic <2>: Moon data. (line 324) * Ecliptic: Sun data. (line 382) * Ecliptic latitude: Glossary. (line 178) * Ecliptic latitude, Moon: Moon data. (line 332) * Ecliptic longitude: Glossary. (line 182) * Ecliptic longitude, Moon: Moon data. (line 324) * Ecliptic longitude, Sun: Sun data. (line 382) * Electronic Mail: Global options. (line 183) * Elevation, Moon: Moon data. (line 299) * Elevation, Sun: Sun data. (line 344) * Elongation: Glossary. (line 189) * Elongation, Moon: Moon data. (line 356) * EMail, empty message body: Global options. (line 209) * EMail, error code: Error Codes. (line 6) * EMail, methods of sending: Global options. (line 188) * EMail, option: Global options. (line 183) * Empty local text variables: Text variables. (line 56) * Empty message body in Mail: Global options. (line 209) * End of highlighting sequence 1 %2 special text <1>: Special Texts Summary. (line 1863) * End of highlighting sequence 1 %2 special text: Highlighting. (line 28) * End of highlighting sequence 1 %6 special text <1>: Special Texts Summary. (line 1876) * End of highlighting sequence 1 %6 special text: Highlighting. (line 78) * End of highlighting sequence 1 or 2 %0 special text <1>: Special Texts Summary. (line 1893) * End of highlighting sequence 1 or 2 %0 special text: Highlighting. (line 126) * End of highlighting sequence 2 %4 special text <1>: Special Texts Summary. (line 1869) * End of highlighting sequence 2 %4 special text: Highlighting. (line 56) * End of highlighting sequence 2 %8 special text <1>: Special Texts Summary. (line 1884) * End of highlighting sequence 2 %8 special text: Highlighting. (line 100) * Ending date: Glossary. (line 193) * Ending date of fixed date <1>: Exclusive date period. (line 32) * Ending date of fixed date: Inclusive date period. (line 31) * Environment: Glossary. (line 197) * Environment variable %[FORMAT]-[ARGUMENT] special text <1>: Special Texts Summary. (line 1841) * Environment variable %[FORMAT]-[ARGUMENT] special text: Contents of Environment variable. (line 6) * Environment variable, COLUMNS: Environment Variables. (line 14) * Environment variable, GCAL <1>: Environment Variables. (line 10) * Environment variable, GCAL <2>: The GCAL environment variable. (line 6) * Environment variable, GCAL: Global options. (line 8) * 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 <1>: Environment Variables. (line 10) * Environment variable, GCAL_OPT: The GCAL environment variable. (line 24) * Environment variable, GCAL_SYS_DATADIR <1>: Environment Variables. (line 30) * Environment variable, GCAL_SYS_DATADIR: Resource file. (line 50) * Environment variable, GCAL_USR_DATADIR <1>: Environment Variables. (line 35) * Environment variable, GCAL_USR_DATADIR: Resource file. (line 38) * Environment variable, GCALANSI <1>: Environment Variables. (line 41) * Environment variable, GCALANSI: Global options. (line 176) * Environment variable, GCALPATH <1>: Environment Variables. (line 47) * Environment variable, GCALPATH: Resource file. (line 24) * Environment variable, GCALPROG <1>: Environment Variables. (line 52) * Environment variable, GCALPROG: Invoking tcal. (line 20) * Environment variable, HOME <1>: Environment Variables. (line 61) * Environment variable, HOME: Resource file. (line 32) * Environment variable, LANG <1>: Environment Variables. (line 80) * Environment variable, LANG: Internationalization. (line 33) * Environment variable, LANGUAGE <1>: Environment Variables. (line 66) * Environment variable, LANGUAGE: Internationalization. (line 30) * Environment variable, LC_ALL <1>: Environment Variables. (line 71) * Environment variable, LC_ALL: Internationalization. (line 31) * Environment variable, LC_MESSAGES <1>: Environment Variables. (line 76) * Environment variable, LC_MESSAGES: Internationalization. (line 32) * Environment variable, LINES: Environment Variables. (line 25) * Environment variable, LOGNAME <1>: Environment Variables. (line 84) * Environment variable, LOGNAME: Global options. (line 201) * Environment variable, MAILPROG <1>: Environment Variables. (line 88) * Environment variable, MAILPROG: Global options. (line 223) * Environment variable, MAILTO <1>: Environment Variables. (line 94) * Environment variable, MAILTO: Global options. (line 191) * Environment variable, PAGER <1>: Environment Variables. (line 99) * Environment variable, PAGER: Global options. (line 48) * Environment variable, PATH <1>: Environment Variables. (line 104) * Environment variable, PATH: Global options. (line 53) * Environment variable, TERM: Environment Variables. (line 109) * Environment variable, TXT2GCALPROG <1>: Environment Variables. (line 112) * Environment variable, TXT2GCALPROG: Text variables. (line 112) * Environment variable, TZ: Environment Variables. (line 122) * Environment variable, USER <1>: Environment Variables. (line 126) * Environment variable, USER: Global options. (line 196) * Environment variables, table: Environment Variables. (line 6) * Ephemeris date, Julian <1>: Moon data. (line 465) * Ephemeris date, Julian: Sun data. (line 497) * Ephemeris time (ET) <1>: Moon data. (line 428) * Ephemeris time (ET): Sun data. (line 460) * Equation of time <1>: Glossary. (line 204) * Equation of time: Sun data. (line 501) * Equinox, autumnal: Calendar options. (line 48) * Equinox, vernal: Calendar options. (line 48) * Equivalence class: Glossary. (line 208) * Equivalence classes, [=LIST=] regexp: Regexp Operators. (line 147) * Equivalence classes, regexp: Regexp Operators. (line 147) * Error code 1: Fixed date options. (line 430) * Error code 113: Date variables. (line 55) * Error code 118: Resource file. (line 62) * Error code 119: Include directives. (line 51) * Error code 126: Fixed date options. (line 957) * Error code 127: Common options. (line 41) * Error code 2 <1>: Shell Command. (line 18) * Error code 2: Text variables. (line 134) * Error code of executed commands: Shell Command. (line 6) * Error codes, table: Error Codes. (line 6) * Escape sequence <1>: Glossary. (line 212) * Escape sequence: Global options. (line 107) * Eternal holiday list, alternative date format: Calendar options. (line 1435) * 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 143) * 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 1207) * Eternal holiday list, months from flexible Chinese calendar: Calendar options. (line 1213) * Eternal holiday list, months from flexible Japanese calendar: Calendar options. (line 1258) * Eternal holiday list, months from the Chinese calendar: Calendar options. (line 1220) * Eternal holiday list, months from the civil Indian calendar: Calendar options. (line 1246) * Eternal holiday list, months from the civil Islamic calendar: Calendar options. (line 1251) * Eternal holiday list, months from the Coptic calendar: Calendar options. (line 1226) * Eternal holiday list, months from the Ethiopic calendar: Calendar options. (line 1231) * Eternal holiday list, months from the French Revolutionary calendar: Calendar options. (line 1236) * Eternal holiday list, months from the Hebrew calendar: Calendar options. (line 1241) * Eternal holiday list, months from the Japanese calendar: Calendar options. (line 1265) * Eternal holiday list, months from the Old-Armenic calendar: Calendar options. (line 1271) * Eternal holiday list, months from the Old-Egyptic calendar: Calendar options. (line 1276) * Eternal holiday list, months from the Persian Jalaali calendar: Calendar options. (line 1281) * 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 114) * Eternal holiday list, Orthodox old calendar holidays: Calendar options. (line 121) * Eternal holiday list, Persian Jalaali holidays: Calendar options. (line 128) * Eternal holiday list, special date format: Calendar options. (line 1442) * Eternal holiday list, standard and special date format: Calendar options. (line 1448) * 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 134) * Eternal Holidays: Eternal Holidays. (line 6) * Evening width: Glossary. (line 218) * Evening width geocentric, Sun: Sun data. (line 783) * Evening width topocentric, Sun: Sun data. (line 738) * Event oriented texts of Moon data and times, special: Sun data. (line 917) * Event oriented texts of Sun data and times, special: Sun data. (line 917) * 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 57) * 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 <1>: Special Texts Summary. (line 60) * Exclusive all holidays %X special text: Exclusive day period. (line 14) * Exclusive date period <1>: Glossary. (line 223) * Exclusive date period: Exclusions with date argument. (line 11) * Exclusive date period %e[DATE][#[DATE]] special text <1>: Special Texts Summary. (line 17) * Exclusive date period %e[DATE][#[DATE]] special text: Exclusive date period. (line 6) * Exclusive day period <1>: Glossary. (line 223) * Exclusive day period: Exclusions without any argument. (line 11) * Exclusive day period %? special texts <1>: Special Texts Summary. (line 55) * Exclusive day period %? special texts: Exclusive day period. (line 6) * Exclusive Friday %H special text <1>: Special Texts Summary. (line 75) * Exclusive Friday %H special text: Exclusive day period. (line 30) * Exclusive legal holidays %V special text <1>: Special Texts Summary. (line 57) * Exclusive legal holidays %V special text: Exclusive day period. (line 10) * Exclusive Monday %A special text <1>: Special Texts Summary. (line 63) * Exclusive Monday %A special text: Exclusive day period. (line 18) * Exclusive Monday...Friday %R special text <1>: Special Texts Summary. (line 87) * Exclusive Monday...Friday %R special text: Exclusive day period. (line 42) * Exclusive Monday...Thursday %Q special text <1>: Special Texts Summary. (line 84) * Exclusive Monday...Thursday %Q special text: Exclusive day period. (line 39) * Exclusive Saturday %L special text <1>: Special Texts Summary. (line 78) * Exclusive Saturday %L special text: Exclusive day period. (line 33) * Exclusive Sunday %P special text <1>: Special Texts Summary. (line 81) * Exclusive Sunday %P special text: Exclusive day period. (line 36) * Exclusive Thursday %G special text <1>: Special Texts Summary. (line 72) * Exclusive Thursday %G special text: Exclusive day period. (line 27) * Exclusive Tuesday %C special text <1>: Special Texts Summary. (line 66) * Exclusive Tuesday %C special text: Exclusive day period. (line 21) * Exclusive Wednesday %F special text <1>: Special Texts Summary. (line 69) * Exclusive Wednesday %F special text: Exclusive day period. (line 24) * Execute command <1>: Shell Command. (line 24) * Execute command <2>: Text variables. (line 42) * Execute command: Fixed date options. (line 73) * Executed commands, error code: Shell Command. (line 6) * Executed commands, exit code: Shell Command. (line 6) * Exit code 1: Fixed date options. (line 430) * Exit code 113: Date variables. (line 55) * Exit code 118: Resource file. (line 62) * Exit code 119: Include directives. (line 51) * Exit code 126: Fixed date options. (line 957) * Exit code 127: Common options. (line 41) * Exit code 2 <1>: Shell Command. (line 18) * Exit code 2: Text variables. (line 134) * Exit code of executed commands: Shell Command. (line 6) * Exit codes, table: Error Codes. (line 6) * Explicit fiscal year: Single commands. (line 53) * Export of local date variables <1>: Date variables. (line 104) * Export of local date variables: Fixed date options. (line 29) * Export of local text variables <1>: Text variables. (line 279) * Export of local text variables: Fixed date options. (line 125) * Extended file name <1>: Glossary. (line 228) * Extended file name: Resource file. (line 75) * Extended help text: Common options. (line 16) * Extended language code information <1>: Glossary. (line 234) * Extended language code information: Internationalization. (line 122) * External pager program: Global options. (line 48) * Fajr prayer time: Glossary. (line 239) * Fajr, Islamic prayer time: Sun data. (line 309) * File directory, actual: Resource file. (line 32) * File name, extended: Resource file. (line 75) * File name, simple: Resource file. (line 85) * File searching mechanism: Resource file. (line 6) * Filtration, days of fixed dates: Fixed date options. (line 353) * Filtration, fixed date texts: Fixed date options. (line 386) * Filtration, periods of fixed dates: Fixed date options. (line 368) * Fiscal year, explicit: Single commands. (line 53) * Fiscal year, implicit: Single commands. (line 46) * Fiscal year, limitations <1>: Date variables. (line 49) * Fiscal year, limitations: Further date part attributes. (line 29) * Fiscal year, single: Single commands. (line 46) * 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 424) * Fixed date list, alternative date format: Calendar options. (line 1453) * Fixed date list, special date format: Calendar options. (line 1460) * Fixed date list, standard and special date format: Calendar options. (line 1466) * Fixed date list, suppression of leading blank line: Fixed date options. (line 778) * Fixed date list, suppression of title text: Fixed date options. (line 808) * Fixed date option class <1>: Glossary. (line 243) * Fixed date option class: Options. (line 13) * Fixed date option, --heading-text=TEXT: Fixed date options. (line 811) * Fixed date options: Fixed date options. (line 6) * Fixed date period long-style option, --end-of-month: Fixed date options. (line 1380) * Fixed date period long-style option, --end-of-week: Fixed date options. (line 1342) * Fixed date period long-style option, --end-of-year: Fixed date options. (line 1417) * Fixed date period long-style option, --month: Fixed date options. (line 1380) * Fixed date period long-style option, --start-of-month: Fixed date options. (line 1380) * Fixed date period long-style option, --start-of-week: Fixed date options. (line 1342) * Fixed date period long-style option, --start-of-year: Fixed date options. (line 1417) * Fixed date period long-style option, --today: Fixed date options. (line 424) * Fixed date period long-style option, --tomorrow: Fixed date options. (line 1330) * Fixed date period long-style option, --week: Fixed date options. (line 1342) * Fixed date period long-style option, --year: Fixed date options. (line 1417) * Fixed date period modifier, *dN: Fixed date options. (line 895) * Fixed date period modifier, *dNWWW: Fixed date options. (line 1029) * Fixed date period modifier, *wN[WWW]: Fixed date options. (line 1081) * Fixed date period modifier, 0MMDD: Fixed date options. (line 993) * Fixed date period modifier, @DVAR[+|-]NWWW: Fixed date options. (line 1302) * Fixed date period modifier, @DVAR[[+|-]N]: Fixed date options. (line 1269) * Fixed date period modifier, @e[+|-]NWWW: Fixed date options. (line 1188) * Fixed date period modifier, @e[[+|-]N]: Fixed date options. (line 1155) * Fixed date period modifier, @t[+|-]NWWW: Fixed date options. (line 1243) * Fixed date period modifier, @t[[+|-]N]: Fixed date options. (line 1214) * Fixed date period modifier, d: Fixed date options. (line 579) * Fixed date period modifier, l: Fixed date options. (line 579) * Fixed date period modifier, l*dN: Fixed date options. (line 907) * Fixed date period modifier, l*dNWWW: Fixed date options. (line 1052) * Fixed date period modifier, l*wN[WWW]: Fixed date options. (line 1115) * Fixed date period modifier, l@DVAR[+|-]NWWW: Fixed date options. (line 1314) * Fixed date period modifier, l@DVAR[[+|-]N]: Fixed date options. (line 1284) * Fixed date period modifier, l@e[+|-]NWWW: Fixed date options. (line 1200) * Fixed date period modifier, l@e[[+|-]N]: Fixed date options. (line 1170) * Fixed date period modifier, l@t[+|-]NWWW: Fixed date options. (line 1255) * Fixed date period modifier, l@t[[+|-]N]: Fixed date options. (line 1228) * Fixed date period modifier, lMMWWWN: Fixed date options. (line 1015) * Fixed date period modifier, lN+|-: Fixed date options. (line 926) * Fixed date period modifier, lNd: Fixed date options. (line 907) * Fixed date period modifier, lNw: Fixed date options. (line 968) * Fixed date period modifier, MMDD: Fixed date options. (line 986) * Fixed date period modifier, MMWWWN: Fixed date options. (line 1004) * Fixed date period modifier, m|M[+|-]: Fixed date options. (line 1380) * Fixed date period modifier, N+|-: Fixed date options. (line 916) * Fixed date period modifier, Nd: Fixed date options. (line 895) * Fixed date period modifier, Nw: Fixed date options. (line 938) * Fixed date period modifier, t|T: Fixed date options. (line 1330) * Fixed date period modifier, w|W[+|-]: Fixed date options. (line 1342) * Fixed date period modifier, y|Y[+|-]: Fixed date options. (line 1417) * Fixed date period modifiers and options: Fixed date options. (line 860) * Fixed date period option, --leap-day=february: Fixed date options. (line 867) * Fixed date period option, --leap-day=february|march: Fixed date options. (line 579) * Fixed date period option, --leap-day=march: Fixed date options. (line 872) * Fixed date text modifier, A: Fixed date options. (line 675) * Fixed date text modifier, a: Fixed date options. (line 666) * Fixed date text modifier, alternative list format: Fixed date options. (line 675) * Fixed date text modifier, E: Fixed date options. (line 695) * Fixed date text modifier, e: Fixed date options. (line 690) * Fixed date text modifier, g[TEXT]: Fixed date options. (line 700) * Fixed date text modifier, J: Fixed date options. (line 798) * Fixed date text modifier, k: Fixed date options. (line 757) * Fixed date text modifier, o: Fixed date options. (line 766) * Fixed date text modifier, Q: Fixed date options. (line 778) * Fixed date text modifier, U: Fixed date options. (line 788) * Fixed date text modifier, x: Fixed date options. (line 808) * Fixed date text modifier, Z: Fixed date options. (line 857) * Fixed date text modifier, z: Fixed date options. (line 853) * Fixed date text modifiers: Fixed date options. (line 612) * Fixed date text option, --biorhythm-axis=NUMBER: Fixed date options. (line 615) * Fixed date text option, --moonimage-lines=NUMBER: Fixed date options. (line 643) * Fixed date texts, filtration: Fixed date options. (line 386) * Fixed date, ending date <1>: Exclusive date period. (line 32) * Fixed date, ending date: Inclusive date period. (line 31) * Fixed date, line structure: Structure of resource file. (line 31) * Fixed date, option: Fixed date options. (line 424) * Fixed date, starting date <1>: Exclusive date period. (line 12) * Fixed date, starting date: Inclusive date period. (line 11) * Fixed dates <1>: Fixed Dates. (line 6) * Fixed dates: Fixed date options. (line 424) * Fixed dates for _today_: Fixed date options. (line 424) * Fixed dates for _tomorrow_: Fixed date options. (line 1330) * Fixed dates for the _month_: Fixed date options. (line 1380) * Fixed dates for the _week_: Fixed date options. (line 1342) * Fixed dates for the _year_: Fixed date options. (line 1417) * Fixed dates, filtration of days: Fixed date options. (line 353) * Fixed dates, filtration of periods: Fixed date options. (line 368) * Fixed default date format texts <1>: Table of Obsolete Date Formats. (line 6) * Fixed default date format texts: Calendar options. (line 1628) * Fixed default date formats: Calendar options. (line 1628) * Fixed format date text: Textual date. (line 6) * Floating Point number: Glossary. (line 554) * Force line break-up: Fixed date options. (line 735) * Force line break-up in resource file: Text part of a line. (line 42) * Force year calendar sheet: Calendar options. (line 1386) * Forcing highlighting sequences: Global options. (line 91) * Format elements <1>: Table of Obsolete Date Formats. (line 6) * Format elements: Calendar options. (line 1656) * Format elements, obsolete: Obsolete Special Texts. (line 6) * Format instruction <1>: Glossary. (line 246) * Format instruction <2>: Special Texts. (line 20) * Format instruction <3>: Text variables. (line 60) * Format instruction <4>: Special Texts processed. (line 6) * Format instruction: Calendar options. (line 1656) * 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 512) * GCAL environment variable <1>: Environment Variables. (line 10) * GCAL environment variable <2>: The GCAL environment variable. (line 6) * GCAL environment variable: Global options. (line 8) * 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) * 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 <1>: Environment Variables. (line 10) * GCAL_OPT environment variable: The GCAL environment variable. (line 24) * GCAL_SYS_DATADIR environment variable <1>: Environment Variables. (line 30) * GCAL_SYS_DATADIR environment variable: Resource file. (line 50) * GCAL_USR_DATADIR environment variable <1>: Environment Variables. (line 35) * GCAL_USR_DATADIR environment variable: Resource file. (line 38) * GCALANSI environment variable <1>: Environment Variables. (line 41) * GCALANSI environment variable: Global options. (line 176) * GCALPATH environment variable <1>: Environment Variables. (line 47) * GCALPATH environment variable: Resource file. (line 24) * GCALPROG environment variable <1>: Environment Variables. (line 52) * GCALPROG environment variable: Invoking tcal. (line 20) * General Public License: Glossary. (line 293) * Geocentric data: Glossary. (line 258) * Geocentric data, Moon: Moon data. (line 256) * Geocentric data, Sun: Sun data. (line 344) * Geocentrical horizon: Glossary. (line 262) * Geographical data, more precise representation: Fixed date options. (line 330) * Geographical distance %b*0ARGUMENT special text <1>: Special Texts Summary. (line 282) * Geographical distance %b*0ARGUMENT special text: Geographical distance and course angle. (line 17) * Geographical distance %b0ARGUMENT special text <1>: Special Texts Summary. (line 279) * Geographical distance %b0ARGUMENT special text: Geographical distance and course angle. (line 17) * Geographical distance and course angle %[FORMAT]b[ARGUMENT] special text: Geographical distance and course angle. (line 6) * Geographical distance and course angle %[FORMAT]bARGUMENT special texts: Special Texts Summary. (line 277) * Geographical distance and course angle, default mode: Geographical distance and course angle. (line 48) * Geographical distance and course angle, mode characters: Geographical distance and course angle. (line 15) * Geographical distance and course angle, style of representation: Geographical distance and course angle. (line 15) * Geometric horizon, Moon: Moon data. (line 69) * Geometrical horizon: Glossary. (line 268) * Global date variable: Glossary. (line 273) * Global date variables, definition: Fixed date options. (line 8) * Global option class <1>: Glossary. (line 277) * Global option class: Options. (line 13) * Global options: Global options. (line 6) * Global text variable: Glossary. (line 280) * Global text variables, definition: Fixed date options. (line 35) * Glossary: Glossary. (line 6) * Gnomon <1>: Glossary. (line 284) * Gnomon: Sun data. (line 49) * GNU: Glossary. (line 287) * GNU specific regexp operators: Regexp Operators. (line 249) * GNU style options: Options. (line 21) * GPL: Glossary. (line 293) * Greenwich Mean time (GMT) <1>: Moon data. (line 450) * Greenwich Mean time (GMT) <2>: Sun data. (line 482) * Greenwich Mean time (GMT) <3>: Julian day number. (line 6) * Greenwich Mean time (GMT) <4>: Actual clocktime. (line 6) * Greenwich Mean time (GMT) <5>: Moon phase. (line 6) * Greenwich Mean time (GMT): Calendar options. (line 1492) * Gregorian calendar: Glossary. (line 296) * Gregorian calendar, genesis: Todays Calendar. (line 6) * Gregorian Reformation, set period: Calendar options. (line 1556) * Grouping, (...) regexp: Regexp Operators. (line 184) * 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) * Hexadecimal system: Glossary. (line 301) * Highest culmination point: Glossary. (line 306) * Highest culmination point, Moon: Moon data. (line 57) * Highest culmination point, Sun: Sun data. (line 49) * Highlighting %? special texts <1>: Special Texts Summary. (line 1858) * Highlighting %? special texts: Highlighting. (line 6) * Highlighting sequence: Glossary. (line 310) * 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 142) * 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 <1>: Environment Variables. (line 61) * HOME environment variable: Resource file. (line 32) * Horizontal parallax: Glossary. (line 317) * Horizontal parallax, moon: Moon data. (line 256) * Horizontal parallax, Sun: Sun data. (line 404) * How to use regular expressions: Regexp Usage. (line 6) * Hybrid calendar mode <1>: Glossary. (line 321) * Hybrid calendar mode: Calendar options. (line 1556) * Ignoring case distinctions in regular expression <1>: Regexp Operators. (line 311) * Ignoring case distinctions in regular expression: Fixed date options. (line 411) * Ignoring case, regexp <1>: Regexp Operators. (line 311) * Ignoring case, regexp: Fixed date options. (line 411) * Implicit fiscal year: Single commands. (line 46) * Include directives <1>: Include directives. (line 6) * Include directives: Structure of resource file. (line 52) * Inclusive all holidays %x special text <1>: Special Texts Summary. (line 25) * Inclusive all holidays %x special text: Inclusive day period. (line 14) * Inclusive date period <1>: Glossary. (line 329) * Inclusive date period: Exclusions with date argument. (line 11) * Inclusive date period %i[DATE][#[DATE]] special text <1>: Special Texts Summary. (line 14) * Inclusive date period %i[DATE][#[DATE]] special text: Inclusive date period. (line 6) * Inclusive day period <1>: Glossary. (line 329) * Inclusive day period: Exclusions without any argument. (line 11) * Inclusive day period %? special texts <1>: Special Texts Summary. (line 20) * Inclusive day period %? special texts: Inclusive day period. (line 6) * Inclusive Friday %h special text <1>: Special Texts Summary. (line 40) * Inclusive Friday %h special text: Inclusive day period. (line 30) * Inclusive legal holidays %v special text <1>: Special Texts Summary. (line 22) * Inclusive legal holidays %v special text: Inclusive day period. (line 10) * Inclusive Monday %a special text <1>: Special Texts Summary. (line 28) * Inclusive Monday %a special text: Inclusive day period. (line 18) * Inclusive Monday...Friday %r special text <1>: Special Texts Summary. (line 52) * Inclusive Monday...Friday %r special text: Inclusive day period. (line 42) * Inclusive Monday...Thursday %q special text <1>: Special Texts Summary. (line 49) * Inclusive Monday...Thursday %q special text: Inclusive day period. (line 39) * Inclusive Saturday %l special text <1>: Special Texts Summary. (line 43) * Inclusive Saturday %l special text: Inclusive day period. (line 33) * Inclusive Sunday %p special text <1>: Special Texts Summary. (line 46) * Inclusive Sunday %p special text: Inclusive day period. (line 36) * Inclusive Thursday %g special text <1>: Special Texts Summary. (line 37) * Inclusive Thursday %g special text: Inclusive day period. (line 27) * Inclusive Tuesday %c special text <1>: Special Texts Summary. (line 31) * Inclusive Tuesday %c special text: Inclusive day period. (line 21) * Inclusive Wednesday %f special text <1>: Special Texts Summary. (line 34) * Inclusive Wednesday %f special text: Inclusive day period. (line 24) * Individual date format texts <1>: Table of Obsolete Date Format Elements. (line 6) * Individual date format texts: Calendar options. (line 1647) * Individual date formats: Calendar options. (line 1647) * Integer number: Glossary. (line 334) * Internal pager, simple: Global options. (line 60) * Internationalization aspects: Internationalization. (line 6) * Interval expression: Glossary. (line 337) * Interval expressions, regexp: Regexp Operators. (line 233) * Interval expressions, {EXPRESSION} regexp: Regexp Operators. (line 233) * 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 340) * Isha, Islamic prayer time: Sun data. (line 323) * Islamic calendar, civil: Preface. (line 164) * Islamic calendar, religious: Preface. (line 164) * Islamic holidays in eternal holiday list: Calendar options. (line 89) * Islamic prayer time, Asr: Sun data. (line 49) * Islamic prayer time, Fajr: Sun data. (line 309) * Islamic prayer time, Isha: Sun data. (line 323) * Islamic prayer time, Maghrib: Sun data. (line 195) * Islamic prayer time, Zuhr: Sun data. (line 49) * Islamic prayer, direction to Makkah: Geographical distance and course angle. (line 84) * ISO: Glossary. (line 345) * ISO week number: Glossary. (line 349) * ISO-3166 <1>: Internationalization. (line 122) * ISO-3166: Calendar options. (line 148) * ISO-639:1988: Internationalization. (line 46) * ISO-6709:1983 co-ordinate <1>: Moon data. (line 807) * ISO-6709:1983 co-ordinate <2>: Sun data. (line 1006) * ISO-6709:1983 co-ordinate: Geographical distance and course angle. (line 54) * ISO-8601:1988 week number <1>: Week number. (line 7) * ISO-8601:1988 week number <2>: Date part of a line. (line 57) * ISO-8601:1988 week number <3>: Fixed date options. (line 757) * ISO-8601:1988 week number: Calendar options. (line 1363) * Japanese calendar: Preface. (line 187) * Japanese holidays in eternal holiday list: Calendar options. (line 101) * Julian calendar <1>: Glossary. (line 357) * Julian calendar: Todays Calendar. (line 6) * Julian date: Glossary. (line 364) * Julian day number: Glossary. (line 364) * Julian day number %[FORMAT]j[ARGUMENT] special text <1>: Special Texts Summary. (line 274) * Julian day number %[FORMAT]j[ARGUMENT] special text: Julian day number. (line 6) * Julian Ephemeris date <1>: Glossary. (line 354) * Julian Ephemeris date <2>: Moon data. (line 465) * Julian Ephemeris date: Sun data. (line 497) * LANG environment variable <1>: Environment Variables. (line 80) * LANG environment variable: Internationalization. (line 33) * Language code information, extended: Internationalization. (line 122) * Language code information, simple: Internationalization. (line 46) * Language codes: Internationalization. (line 46) * LANGUAGE environment variable <1>: Environment Variables. (line 66) * LANGUAGE environment variable: Internationalization. (line 30) * LC_ALL environment variable <1>: Environment Variables. (line 71) * LC_ALL environment variable: Internationalization. (line 31) * LC_MESSAGES environment variable <1>: Environment Variables. (line 76) * LC_MESSAGES environment variable: Internationalization. (line 32) * Leap day <1>: Glossary. (line 371) * Leap day: Fixed date options. (line 863) * Leap year: Glossary. (line 374) * Leap year rule as used by Eastern Orthodox churches: Calendar options. (line 1322) * Legal holiday <1>: Glossary. (line 384) * Legal holiday: Preface. (line 142) * Length preserving behavior of numerical text variables: Text variables. (line 349) * Limit sunrise and sunset to actual day: Fixed date options. (line 171) * Limitations concerning the assignment of special texts to text variables: Special Texts. (line 20) * Limitations in a resource file <1>: Date variables. (line 6) * Limitations in a resource file <2>: Text part of a line. (line 6) * Limitations in a resource file <3>: Structure of resource file. (line 6) * Limitations in a resource file: Global options. (line 213) * Limitations in the text part of a line: Text part of a line. (line 6) * Limitations of use of 3-Month modes <1>: Date variables. (line 49) * Limitations of use of 3-Month modes: Further date part attributes. (line 29) * Limitations of use of fiscal years <1>: Date variables. (line 49) * Limitations of use of fiscal years: Further date part attributes. (line 29) * Limitations, Moon oriented special texts: Moon data. (line 929) * Limitations, Sun oriented special texts: Sun data. (line 1185) * Line break-up character, ^ <1>: Text part of a line. (line 6) * Line break-up character, ^: Fixed date options. (line 386) * Line break-up character, ~ <1>: Text part of a line. (line 6) * Line break-up character, ~: Fixed date options. (line 386) * Line continuation character, \: Text part of a line. (line 29) * Line structure of fixed date: Structure of resource file. (line 31) * 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 <1>: Glossary. (line 389) * Lists of commands <2>: Lists of commands. (line 6) * Lists of commands: Commands. (line 6) * 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 392) * 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 398) * Local star time: Glossary. (line 398) * Local text variable: Glossary. (line 405) * Local text variables: Text variables. (line 6) * Local text variables, definition: Text variables. (line 6) * Local text variables, empty: Text variables. (line 56) * Local time: Sun data. (line 1058) * Local time 12-hour format suffix, display: Actual clocktime. (line 91) * Local time hour, display: Actual clocktime. (line 65) * Local time in HH:MM format, display: Actual clocktime. (line 19) * Local time in M[M...] format, display: Actual clocktime. (line 51) * Local time minute, display: Actual clocktime. (line 78) * LOGNAME environment variable <1>: Environment Variables. (line 84) * LOGNAME environment variable: Global options. (line 201) * Long help text: Common options. (line 16) * Long text part in resource file line: Text part of a line. (line 42) * Long-style option <1>: Glossary. (line 410) * Long-style option: Options. (line 21) * Long-style option names, list: Common options. (line 25) * Longer than double shadow length, period: Sun data. (line 858) * Longer than single shadow length, period: Sun data. (line 822) * Lowest culmination point: Glossary. (line 413) * Lowest culmination point, Moon: Moon data. (line 37) * Lowest culmination point, Sun: Sun data. (line 37) * Lunar Arctic Circle <1>: Glossary. (line 417) * Lunar Arctic Circle: Moon data. (line 962) * Lunar day length: Moon data. (line 6) * Lunar eclipse: Calendar options. (line 48) * Lunar night length: Moon data. (line 6) * Lunation: Glossary. (line 422) * Lunation, Moon: Moon data. (line 37) * Maghrib prayer time: Glossary. (line 425) * Maghrib, Islamic prayer time: Sun data. (line 195) * Magnitude unit: Glossary. (line 429) * Magnitude units, Moon: Moon data. (line 281) * Mail, empty message body: Global options. (line 209) * Mail, methods of sending: Global options. (line 188) * Mail, sending: Global options. (line 183) * MAILPROG environment variable <1>: Environment Variables. (line 88) * MAILPROG environment variable: Global options. (line 223) * MAILTO environment variable <1>: Environment Variables. (line 94) * MAILTO environment variable: Global options. (line 191) * Management of date variables <1>: Date variables. (line 6) * Management of date variables: Fixed date options. (line 8) * Management of text variables <1>: Text variables. (line 6) * Management of text variables: Fixed date options. (line 35) * Marking character: Glossary. (line 439) * Marking characters, disabling: Global options. (line 102) * Marking characters, setting: Global options. (line 107) * Matching word boundaries in regexp: Regexp Operators. (line 274) * Mathematical horizon: Glossary. (line 268) * Mathematical-geocentric horizon: Glossary. (line 268) * Mathematical-geocentric horizon, Moon: Moon data. (line 69) * Mean Earth equator radius: Glossary. (line 443) * Mean solar day <1>: Glossary. (line 449) * Mean solar day: Sun data. (line 501) * Mean solar time <1>: Glossary. (line 449) * Mean solar time: Sun data. (line 501) * Mean sun: Glossary. (line 449) * Mean Sun: Sun data. (line 501) * Meridian <1>: Glossary. (line 458) * Meridian: Geographical distance and course angle. (line 6) * Message catalog: Internationalization. (line 11) * Metacharacter, . regexp: Regexp Operators. (line 40) * Metacharacter, \ regexp: Regexp Operators. (line 14) * Metacharacters: Glossary. (line 462) * Metacharacters, regexp: Regexp Operators. (line 6) * Metasymbols within this document, table: Metasymbols. (line 6) * Methods of sending Mail: Global options. (line 188) * Midnight height: Glossary. (line 465) * Midnight height geocentric, Moon: Moon data. (line 719) * Midnight height geocentric, Sun: Sun data. (line 747) * Midnight height topocentric, Moon: Moon data. (line 643) * Midnight height topocentric, Sun: Sun data. (line 700) * Midnight phase angle: Glossary. (line 469) * Midnight phase angle geocentric, Moon: Moon data. (line 726) * Midnight phase angle topocentric, Moon: Moon data. (line 650) * Midnight time of Moon, astronomical: Moon data. (line 37) * Midnight time of Sun, astronomical: Sun data. (line 37) * 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 15) * Mode characters, Moon data and times: Moon data. (line 23) * Mode characters, Sun data and times: Sun data. (line 23) * Modifier <1>: Glossary. (line 473) * Modifier: Options. (line 73) * Modifiers, fixed date period: Fixed date options. (line 860) * Modifiers, fixed date text: Fixed date options. (line 612) * 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 <1>: Special Texts Summary. (line 172) * Month name %[FORMAT]U[DATE] special text: Month name. (line 6) * Month number %>02&*M[DATE] special text <1>: Special Texts Summary. (line 191) * Month number %>02&*M[DATE] special text: Month number. (line 31) * Month number %>02*M[DATE] special text <1>: Special Texts Summary. (line 185) * Month number %>02*M[DATE] special text: Month number. (line 15) * Month number %>1&*M[DATE] special text <1>: Special Texts Summary. (line 188) * Month number %>1&*M[DATE] special text: Month number. (line 23) * Month number %[FORMAT]M[DATE] special text: Month number. (line 6) * Month number %M[DATE] special text <1>: Special Texts Summary. (line 182) * Month number %M[DATE] special text: Month number. (line 7) * Months from the Baha''i` calendar in eternal holiday list: Calendar options. (line 1207) * Months from the Chinese calendar in eternal holiday list: Calendar options. (line 1220) * Months from the civil Indian calendar in eternal holiday list: Calendar options. (line 1246) * Months from the civil Islamic calendar in eternal holiday list: Calendar options. (line 1251) * Months from the Coptic calendar in eternal holiday list: Calendar options. (line 1226) * Months from the Ethiopic calendar in eternal holiday list: Calendar options. (line 1231) * Months from the flexible Chinese calendar in eternal holiday list: Calendar options. (line 1213) * Months from the flexible Japanese calendar in eternal holiday list: Calendar options. (line 1258) * Months from the French Revolutionary calendar in eternal holiday list: Calendar options. (line 1236) * Months from the Hebrew calendar in eternal holiday list: Calendar options. (line 1241) * Months from the Japanese calendar in eternal holiday list: Calendar options. (line 1265) * Months from the Old-Armenic calendar in eternal holiday list: Calendar options. (line 1271) * Months from the Old-Egyptic calendar in eternal holiday list: Calendar options. (line 1276) * Months from the Persian Jalaali calendar in eternal holiday list: Calendar options. (line 1281) * 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 1380) * Months, mixed list: Lists of commands. (line 38) * Moon data %[FORMAT]?ARGUMENT special texts <1>: Special Texts Summary. (line 1100) * Moon data %[FORMAT]?ARGUMENT special texts: Moon data. (line 6) * Moon data and times, default mode: Moon data. (line 793) * Moon data and times, mode characters: Moon data. (line 23) * Moon data and times, special event oriented texts: Sun data. (line 917) * Moon data and times, style of representation <1>: Moon data. (line 799) * Moon data and times, style of representation: Sun data. (line 870) * Moon data and times, type of representation <1>: Moon data. (line 799) * Moon data and times, type of representation: Sun data. (line 870) * Moon oriented special texts, limitations: Moon data. (line 929) * Moon oriented special texts, reference systems used: Moon data. (line 929) * Moon oriented special texts, table of modes: Moon data. (line 34) * Moon oriented special texts, table of representation types: Moon data. (line 826) * Moon phase %[FORMAT]?[DATE] special texts <1>: Special Texts Summary. (line 203) * Moon phase %[FORMAT]?[DATE] special texts: Moon phase. (line 6) * Moon phase text %>03*O[DATE] special text <1>: Special Texts Summary. (line 208) * Moon phase text %>03*O[DATE] special text: Moon phase. (line 29) * Moon phase text %O[DATE] special text <1>: Special Texts Summary. (line 205) * Moon phase text %O[DATE] special text: Moon phase. (line 14) * Moon phase text graphics %Z[DATE] special text <1>: Special Texts Summary. (line 211) * Moon phase text graphics %Z[DATE] special text: Moon phase. (line 44) * 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 374) * Moon's center, geocentric brightness %(lARGUMENT special text: Moon data. (line 374) * Moon's center, geocentric brightness %)*lARGUMENT special text: Moon data. (line 374) * Moon's center, geocentric brightness %)lARGUMENT special text: Moon data. (line 374) * Moon's center, geocentric horizontal parallax %(*jARGUMENT special text: Moon data. (line 366) * Moon's center, geocentric horizontal parallax %(jARGUMENT special text: Moon data. (line 366) * Moon's center, geocentric horizontal parallax %)*jARGUMENT special text: Moon data. (line 366) * Moon's center, geocentric horizontal parallax %)jARGUMENT special text: Moon data. (line 366) * Moon's center, geocentric phase angle %(*mARGUMENT special text: Moon data. (line 378) * Moon's center, geocentric phase angle %(mARGUMENT special text: Moon data. (line 378) * Moon's center, geocentric phase angle %)*mARGUMENT special text: Moon data. (line 378) * Moon's center, geocentric phase angle %)mARGUMENT special text: Moon data. (line 378) * Moon's center, geocentric semidiameter %(*kARGUMENT special text: Moon data. (line 370) * Moon's center, geocentric semidiameter %(kARGUMENT special text: Moon data. (line 370) * Moon's center, geocentric semidiameter %)*kARGUMENT special text: Moon data. (line 370) * Moon's center, geocentric semidiameter %)kARGUMENT special text: Moon data. (line 370) * Moon's center, geometrical non-visibility %]*2ARGUMENT special text <1>: Special Texts Summary. (line 1148) * Moon's center, geometrical non-visibility %]*2ARGUMENT special text: Moon data. (line 104) * Moon's center, geometrical non-visibility %]2ARGUMENT special text <1>: Special Texts Summary. (line 1144) * Moon's center, geometrical non-visibility %]2ARGUMENT special text: Moon data. (line 104) * Moon's center, geometrical rise time %(*2ARGUMENT special text <1>: Special Texts Summary. (line 1124) * Moon's center, geometrical rise time %(*2ARGUMENT special text: Moon data. (line 69) * Moon's center, geometrical rise time %(2ARGUMENT special text <1>: Special Texts Summary. (line 1120) * Moon's center, geometrical rise time %(2ARGUMENT special text: Moon data. (line 69) * Moon's center, geometrical set time %)*2ARGUMENT special text <1>: Special Texts Summary. (line 1132) * Moon's center, geometrical set time %)*2ARGUMENT special text: Moon data. (line 89) * Moon's center, geometrical set time %)2ARGUMENT special text <1>: Special Texts Summary. (line 1128) * Moon's center, geometrical set time %)2ARGUMENT special text: Moon data. (line 89) * Moon's center, geometrical visibility %[*2ARGUMENT special text <1>: Special Texts Summary. (line 1140) * Moon's center, geometrical visibility %[*2ARGUMENT special text: Moon data. (line 99) * Moon's center, geometrical visibility %[2ARGUMENT special text <1>: Special Texts Summary. (line 1136) * Moon's center, geometrical visibility %[2ARGUMENT special text: Moon data. (line 99) * Moon's center, non-visibility %]*4ARGUMENT special text <1>: Special Texts Summary. (line 1210) * Moon's center, non-visibility %]*4ARGUMENT special text: Moon data. (line 188) * Moon's center, non-visibility %]4ARGUMENT special text <1>: Special Texts Summary. (line 1206) * Moon's center, non-visibility %]4ARGUMENT special text: Moon data. (line 188) * Moon's center, rise time %(*4ARGUMENT special text <1>: Special Texts Summary. (line 1187) * Moon's center, rise time %(*4ARGUMENT special text: Moon data. (line 146) * Moon's center, rise time %(4ARGUMENT special text <1>: Special Texts Summary. (line 1184) * Moon's center, rise time %(4ARGUMENT special text: Moon data. (line 146) * Moon's center, set time %)*4ARGUMENT special text <1>: Special Texts Summary. (line 1194) * Moon's center, set time %)*4ARGUMENT special text: Moon data. (line 167) * Moon's center, set time %)4ARGUMENT special text <1>: Special Texts Summary. (line 1191) * Moon's center, set time %)4ARGUMENT special text: Moon data. (line 167) * Moon's center, topocentric brightness %(*8ARGUMENT special text: Moon data. (line 281) * Moon's center, topocentric brightness %(8ARGUMENT special text: Moon data. (line 281) * Moon's center, topocentric brightness %)*8ARGUMENT special text: Moon data. (line 281) * Moon's center, topocentric brightness %)8ARGUMENT special text: Moon data. (line 281) * Moon's center, topocentric horizontal parallax %(*6ARGUMENT special text: Moon data. (line 256) * Moon's center, topocentric horizontal parallax %(6ARGUMENT special text: Moon data. (line 256) * Moon's center, topocentric horizontal parallax %)*6ARGUMENT special text: Moon data. (line 256) * Moon's center, topocentric horizontal parallax %)6ARGUMENT special text: Moon data. (line 256) * Moon's center, topocentric phase angle %(*9ARGUMENT special text: Moon data. (line 295) * Moon's center, topocentric phase angle %(9ARGUMENT special text: Moon data. (line 295) * Moon's center, topocentric phase angle %)*9ARGUMENT special text: Moon data. (line 295) * Moon's center, topocentric phase angle %)9ARGUMENT special text: Moon data. (line 295) * Moon's center, topocentric semidiameter %(*7ARGUMENT special text: Moon data. (line 277) * Moon's center, topocentric semidiameter %(7ARGUMENT special text: Moon data. (line 277) * Moon's center, topocentric semidiameter %)*7ARGUMENT special text: Moon data. (line 277) * Moon's center, topocentric semidiameter %)7ARGUMENT special text: Moon data. (line 277) * Moon's center, visibility %[*4ARGUMENT special text <1>: Special Texts Summary. (line 1202) * Moon's center, visibility %[*4ARGUMENT special text: Moon data. (line 183) * Moon's center, visibility %[4ARGUMENT special text <1>: Special Texts Summary. (line 1198) * Moon's center, visibility %[4ARGUMENT special text: Moon data. (line 183) * Moon's upper limb, geometrical non-visibility %]*3ARGUMENT special text <1>: Special Texts Summary. (line 1180) * Moon's upper limb, geometrical non-visibility %]*3ARGUMENT special text: Moon data. (line 141) * Moon's upper limb, geometrical non-visibility %]3ARGUMENT special text <1>: Special Texts Summary. (line 1176) * Moon's upper limb, geometrical non-visibility %]3ARGUMENT special text: Moon data. (line 141) * Moon's upper limb, geometrical rise time %(*3ARGUMENT special text <1>: Special Texts Summary. (line 1156) * Moon's upper limb, geometrical rise time %(*3ARGUMENT special text: Moon data. (line 109) * Moon's upper limb, geometrical rise time %(3ARGUMENT special text <1>: Special Texts Summary. (line 1152) * Moon's upper limb, geometrical rise time %(3ARGUMENT special text: Moon data. (line 109) * Moon's upper limb, geometrical set time %)*3ARGUMENT special text <1>: Special Texts Summary. (line 1164) * Moon's upper limb, geometrical set time %)*3ARGUMENT special text: Moon data. (line 125) * Moon's upper limb, geometrical set time %)3ARGUMENT special text <1>: Special Texts Summary. (line 1160) * Moon's upper limb, geometrical set time %)3ARGUMENT special text: Moon data. (line 125) * Moon's upper limb, geometrical visibility %[*3ARGUMENT special text <1>: Special Texts Summary. (line 1172) * Moon's upper limb, geometrical visibility %[*3ARGUMENT special text: Moon data. (line 136) * Moon's upper limb, geometrical visibility %[3ARGUMENT special text <1>: Special Texts Summary. (line 1168) * Moon's upper limb, geometrical visibility %[3ARGUMENT special text: Moon data. (line 136) * Moon's upper limb, non-visibility standard %]*5ARGUMENT special text: Special Texts Summary. (line 1242) * Moon's upper limb, non-visibility standard %]5ARGUMENT special text: Special Texts Summary. (line 1238) * Moon's upper limb, standard non-visibility %]*5ARGUMENT special text: Moon data. (line 248) * Moon's upper limb, standard non-visibility %]5ARGUMENT special text: Moon data. (line 248) * Moon's upper limb, standard rise time %(*5ARGUMENT special text <1>: Special Texts Summary. (line 1218) * Moon's upper limb, standard rise time %(*5ARGUMENT special text: Moon data. (line 193) * Moon's upper limb, standard rise time %(5ARGUMENT special text <1>: Special Texts Summary. (line 1214) * Moon's upper limb, standard rise time %(5ARGUMENT special text: Moon data. (line 193) * Moon's upper limb, standard set time %)*5ARGUMENT special text <1>: Special Texts Summary. (line 1226) * Moon's upper limb, standard set time %)*5ARGUMENT special text: Moon data. (line 221) * Moon's upper limb, standard set time %)5ARGUMENT special text <1>: Special Texts Summary. (line 1222) * Moon's upper limb, standard set time %)5ARGUMENT special text: Moon data. (line 221) * Moon's upper limb, standard visibility %[*5ARGUMENT special text: Moon data. (line 240) * Moon's upper limb, standard visibility %[5ARGUMENT special text: Moon data. (line 240) * Moon's upper limb, visibility standard %[*5ARGUMENT special text: Special Texts Summary. (line 1234) * Moon's upper limb, visibility standard %[5ARGUMENT special text: Special Texts Summary. (line 1230) * Moon, astronomical midnight time %(*0ARGUMENT special text <1>: Special Texts Summary. (line 1107) * Moon, astronomical midnight time %(*0ARGUMENT special text: Moon data. (line 37) * Moon, astronomical midnight time %(0ARGUMENT special text <1>: Special Texts Summary. (line 1103) * Moon, astronomical midnight time %(0ARGUMENT special text: Moon data. (line 37) * Moon, astronomical midnight time %)*0ARGUMENT special text <1>: Special Texts Summary. (line 1107) * Moon, astronomical midnight time %)*0ARGUMENT special text: Moon data. (line 37) * Moon, astronomical midnight time %)0ARGUMENT special text <1>: Special Texts Summary. (line 1103) * Moon, astronomical midnight time %)0ARGUMENT special text: Moon data. (line 37) * Moon, astronomical noon time %(*1ARGUMENT special text <1>: Special Texts Summary. (line 1116) * Moon, astronomical noon time %(*1ARGUMENT special text: Moon data. (line 57) * Moon, astronomical noon time %(1ARGUMENT special text <1>: Special Texts Summary. (line 1112) * Moon, astronomical noon time %(1ARGUMENT special text: Moon data. (line 57) * Moon, astronomical noon time %)*1ARGUMENT special text <1>: Special Texts Summary. (line 1116) * Moon, astronomical noon time %)*1ARGUMENT special text: Moon data. (line 57) * Moon, astronomical noon time %)1ARGUMENT special text <1>: Special Texts Summary. (line 1112) * Moon, astronomical noon time %)1ARGUMENT special text: Moon data. (line 57) * Moon, azimuth: Moon data. (line 37) * Moon, base time %(*xARGUMENT special text <1>: Special Texts Summary. (line 1508) * Moon, base time %(*xARGUMENT special text: Moon data. (line 450) * Moon, base time %(xARGUMENT special text <1>: Special Texts Summary. (line 1503) * Moon, base time %(xARGUMENT special text: Moon data. (line 450) * Moon, base time %)*xARGUMENT special text <1>: Special Texts Summary. (line 1508) * Moon, base time %)*xARGUMENT special text: Moon data. (line 450) * Moon, base time %)xARGUMENT special text <1>: Special Texts Summary. (line 1503) * Moon, base time %)xARGUMENT special text: Moon data. (line 450) * Moon, conjunction: Moon data. (line 37) * Moon, delta-t %(*vARGUMENT special text <1>: Special Texts Summary. (line 1490) * Moon, delta-t %(*vARGUMENT special text: Moon data. (line 428) * Moon, delta-t %(vARGUMENT special text <1>: Special Texts Summary. (line 1490) * Moon, delta-t %(vARGUMENT special text: Moon data. (line 428) * Moon, delta-t %)*vARGUMENT special text <1>: Special Texts Summary. (line 1490) * Moon, delta-t %)*vARGUMENT special text: Moon data. (line 428) * Moon, delta-t %)vARGUMENT special text <1>: Special Texts Summary. (line 1490) * Moon, delta-t %)vARGUMENT special text: Moon data. (line 428) * Moon, geocentric azimuth %(*oARGUMENT special text <1>: Special Texts Summary. (line 1424) * Moon, geocentric azimuth %(*oARGUMENT special text: Moon data. (line 390) * Moon, geocentric azimuth %(oARGUMENT special text <1>: Special Texts Summary. (line 1419) * Moon, geocentric azimuth %(oARGUMENT special text: Moon data. (line 390) * Moon, geocentric azimuth %)*oARGUMENT special text <1>: Special Texts Summary. (line 1424) * Moon, geocentric azimuth %)*oARGUMENT special text: Moon data. (line 390) * Moon, geocentric azimuth %)oARGUMENT special text <1>: Special Texts Summary. (line 1419) * Moon, geocentric azimuth %)oARGUMENT special text: Moon data. (line 390) * Moon, geocentric azimuth at standard rise time %(*XARGUMENT special text <1>: Special Texts Summary. (line 1813) * Moon, geocentric azimuth at standard rise time %(*XARGUMENT special text: Moon data. (line 761) * Moon, geocentric azimuth at standard rise time %(XARGUMENT special text <1>: Special Texts Summary. (line 1809) * Moon, geocentric azimuth at standard rise time %(XARGUMENT special text: Moon data. (line 761) * Moon, geocentric azimuth at standard set time %)*XARGUMENT special text <1>: Special Texts Summary. (line 1821) * Moon, geocentric azimuth at standard set time %)*XARGUMENT special text: Moon data. (line 771) * Moon, geocentric azimuth at standard set time %)XARGUMENT special text <1>: Special Texts Summary. (line 1817) * Moon, geocentric azimuth at standard set time %)XARGUMENT special text: Moon data. (line 771) * Moon, geocentric brightness %(*lARGUMENT special text: Special Texts Summary. (line 1394) * Moon, geocentric brightness %(lARGUMENT special text: Special Texts Summary. (line 1394) * Moon, geocentric brightness %)*lARGUMENT special text: Special Texts Summary. (line 1394) * Moon, geocentric brightness %)lARGUMENT special text: Special Texts Summary. (line 1394) * Moon, geocentric data: Moon data. (line 256) * Moon, geocentric declination %(*pARGUMENT special text <1>: Special Texts Summary. (line 1434) * Moon, geocentric declination %(*pARGUMENT special text: Moon data. (line 394) * Moon, geocentric declination %(pARGUMENT special text <1>: Special Texts Summary. (line 1429) * Moon, geocentric declination %(pARGUMENT special text: Moon data. (line 394) * Moon, geocentric declination %)*pARGUMENT special text <1>: Special Texts Summary. (line 1434) * Moon, geocentric declination %)*pARGUMENT special text: Moon data. (line 394) * Moon, geocentric declination %)pARGUMENT special text <1>: Special Texts Summary. (line 1429) * Moon, geocentric declination %)pARGUMENT special text: Moon data. (line 394) * Moon, geocentric distance %(*tARGUMENT special text <1>: Special Texts Summary. (line 1474) * Moon, geocentric distance %(*tARGUMENT special text: Moon data. (line 420) * Moon, geocentric distance %(tARGUMENT special text <1>: Special Texts Summary. (line 1469) * Moon, geocentric distance %(tARGUMENT special text: Moon data. (line 420) * Moon, geocentric distance %)*tARGUMENT special text <1>: Special Texts Summary. (line 1474) * Moon, geocentric distance %)*tARGUMENT special text: Moon data. (line 420) * Moon, geocentric distance %)tARGUMENT special text <1>: Special Texts Summary. (line 1469) * Moon, geocentric distance %)tARGUMENT special text: Moon data. (line 420) * Moon, geocentric ecliptic latitude %(*rARGUMENT special text <1>: Special Texts Summary. (line 1454) * Moon, geocentric ecliptic latitude %(*rARGUMENT special text: Moon data. (line 407) * Moon, geocentric ecliptic latitude %(rARGUMENT special text <1>: Special Texts Summary. (line 1449) * Moon, geocentric ecliptic latitude %(rARGUMENT special text: Moon data. (line 407) * Moon, geocentric ecliptic latitude %)*rARGUMENT special text <1>: Special Texts Summary. (line 1454) * Moon, geocentric ecliptic latitude %)*rARGUMENT special text: Moon data. (line 407) * Moon, geocentric ecliptic latitude %)rARGUMENT special text <1>: Special Texts Summary. (line 1449) * Moon, geocentric ecliptic latitude %)rARGUMENT special text: Moon data. (line 407) * Moon, geocentric ecliptic longitude %(*qARGUMENT special text <1>: Special Texts Summary. (line 1444) * Moon, geocentric ecliptic longitude %(*qARGUMENT special text: Moon data. (line 403) * Moon, geocentric ecliptic longitude %(qARGUMENT special text <1>: Special Texts Summary. (line 1439) * Moon, geocentric ecliptic longitude %(qARGUMENT special text: Moon data. (line 403) * Moon, geocentric ecliptic longitude %)*qARGUMENT special text <1>: Special Texts Summary. (line 1444) * Moon, geocentric ecliptic longitude %)*qARGUMENT special text: Moon data. (line 403) * Moon, geocentric ecliptic longitude %)qARGUMENT special text <1>: Special Texts Summary. (line 1439) * Moon, geocentric ecliptic longitude %)qARGUMENT special text: Moon data. (line 403) * Moon, geocentric elevation %(*nARGUMENT special text <1>: Special Texts Summary. (line 1414) * Moon, geocentric elevation %(*nARGUMENT special text: Moon data. (line 382) * Moon, geocentric elevation %(nARGUMENT special text <1>: Special Texts Summary. (line 1409) * Moon, geocentric elevation %(nARGUMENT special text: Moon data. (line 382) * Moon, geocentric elevation %)*nARGUMENT special text <1>: Special Texts Summary. (line 1414) * Moon, geocentric elevation %)*nARGUMENT special text: Moon data. (line 382) * Moon, geocentric elevation %)nARGUMENT special text <1>: Special Texts Summary. (line 1409) * Moon, geocentric elevation %)nARGUMENT special text: Moon data. (line 382) * Moon, geocentric elevation at Moon's astronomical midnight time %(*SARGUMENT special text <1>: Special Texts Summary. (line 1758) * Moon, geocentric elevation at Moon's astronomical midnight time %(*SARGUMENT special text: Moon data. (line 719) * Moon, geocentric elevation at Moon's astronomical midnight time %(SARGUMENT special text <1>: Special Texts Summary. (line 1753) * Moon, geocentric elevation at Moon's astronomical midnight time %(SARGUMENT special text: Moon data. (line 719) * Moon, geocentric elevation at Moon's astronomical midnight time %)*SARGUMENT special text <1>: Special Texts Summary. (line 1758) * Moon, geocentric elevation at Moon's astronomical midnight time %)*SARGUMENT special text: Moon data. (line 719) * Moon, geocentric elevation at Moon's astronomical midnight time %)SARGUMENT special text <1>: Special Texts Summary. (line 1753) * Moon, geocentric elevation at Moon's astronomical midnight time %)SARGUMENT special text: Moon data. (line 719) * Moon, geocentric elevation at Moon's astronomical noon time %(*UARGUMENT special text <1>: Special Texts Summary. (line 1779) * Moon, geocentric elevation at Moon's astronomical noon time %(*UARGUMENT special text: Moon data. (line 733) * Moon, geocentric elevation at Moon's astronomical noon time %(UARGUMENT special text <1>: Special Texts Summary. (line 1774) * Moon, geocentric elevation at Moon's astronomical noon time %(UARGUMENT special text: Moon data. (line 733) * Moon, geocentric elevation at Moon's astronomical noon time %)*UARGUMENT special text <1>: Special Texts Summary. (line 1779) * Moon, geocentric elevation at Moon's astronomical noon time %)*UARGUMENT special text: Moon data. (line 733) * Moon, geocentric elevation at Moon's astronomical noon time %)UARGUMENT special text <1>: Special Texts Summary. (line 1774) * Moon, geocentric elevation at Moon's astronomical noon time %)UARGUMENT special text: Moon data. (line 733) * Moon, geocentric elevation at standard rise time %(*WARGUMENT special text <1>: Special Texts Summary. (line 1797) * Moon, geocentric elevation at standard rise time %(*WARGUMENT special text: Moon data. (line 747) * Moon, geocentric elevation at standard rise time %(WARGUMENT special text <1>: Special Texts Summary. (line 1793) * Moon, geocentric elevation at standard rise time %(WARGUMENT special text: Moon data. (line 747) * Moon, geocentric elevation at standard set time %)*WARGUMENT special text <1>: Special Texts Summary. (line 1805) * Moon, geocentric elevation at standard set time %)*WARGUMENT special text: Moon data. (line 754) * Moon, geocentric elevation at standard set time %)WARGUMENT special text <1>: Special Texts Summary. (line 1801) * Moon, geocentric elevation at standard set time %)WARGUMENT special text: Moon data. (line 754) * Moon, geocentric elongation %(*uARGUMENT special text <1>: Special Texts Summary. (line 1483) * Moon, geocentric elongation %(*uARGUMENT special text: Moon data. (line 424) * Moon, geocentric elongation %(uARGUMENT special text <1>: Special Texts Summary. (line 1478) * Moon, geocentric elongation %(uARGUMENT special text: Moon data. (line 424) * Moon, geocentric elongation %)*uARGUMENT special text <1>: Special Texts Summary. (line 1483) * Moon, geocentric elongation %)*uARGUMENT special text: Moon data. (line 424) * Moon, geocentric elongation %)uARGUMENT special text <1>: Special Texts Summary. (line 1478) * Moon, geocentric elongation %)uARGUMENT special text: Moon data. (line 424) * Moon, geocentric horizontal parallax %(*jARGUMENT special text: Special Texts Summary. (line 1377) * Moon, geocentric horizontal parallax %(jARGUMENT special text: Special Texts Summary. (line 1372) * Moon, geocentric horizontal parallax %)*jARGUMENT special text: Special Texts Summary. (line 1377) * Moon, geocentric horizontal parallax %)jARGUMENT special text: Special Texts Summary. (line 1372) * Moon, geocentric phase angle %(*mARGUMENT special text: Special Texts Summary. (line 1404) * Moon, geocentric phase angle %(mARGUMENT special text: Special Texts Summary. (line 1399) * Moon, geocentric phase angle %)*mARGUMENT special text: Special Texts Summary. (line 1404) * Moon, geocentric phase angle %)mARGUMENT special text: Special Texts Summary. (line 1399) * Moon, geocentric phase angle at Moon's astronomical midnight time %(*TARGUMENT special text <1>: Special Texts Summary. (line 1768) * Moon, geocentric phase angle at Moon's astronomical midnight time %(*TARGUMENT special text: Moon data. (line 726) * Moon, geocentric phase angle at Moon's astronomical midnight time %(TARGUMENT special text <1>: Special Texts Summary. (line 1763) * Moon, geocentric phase angle at Moon's astronomical midnight time %(TARGUMENT special text: Moon data. (line 726) * Moon, geocentric phase angle at Moon's astronomical midnight time %)*TARGUMENT special text <1>: Special Texts Summary. (line 1768) * Moon, geocentric phase angle at Moon's astronomical midnight time %)*TARGUMENT special text: Moon data. (line 726) * Moon, geocentric phase angle at Moon's astronomical midnight time %)TARGUMENT special text <1>: Special Texts Summary. (line 1763) * Moon, geocentric phase angle at Moon's astronomical midnight time %)TARGUMENT special text: Moon data. (line 726) * Moon, geocentric phase angle at Moon's astronomical noon time %(*VARGUMENT special text <1>: Special Texts Summary. (line 1789) * Moon, geocentric phase angle at Moon's astronomical noon time %(*VARGUMENT special text: Moon data. (line 740) * Moon, geocentric phase angle at Moon's astronomical noon time %(VARGUMENT special text <1>: Special Texts Summary. (line 1784) * Moon, geocentric phase angle at Moon's astronomical noon time %(VARGUMENT special text: Moon data. (line 740) * Moon, geocentric phase angle at Moon's astronomical noon time %)*VARGUMENT special text <1>: Special Texts Summary. (line 1789) * Moon, geocentric phase angle at Moon's astronomical noon time %)*VARGUMENT special text: Moon data. (line 740) * Moon, geocentric phase angle at Moon's astronomical noon time %)VARGUMENT special text <1>: Special Texts Summary. (line 1784) * Moon, geocentric phase angle at Moon's astronomical noon time %)VARGUMENT special text: Moon data. (line 740) * Moon, geocentric phase angle at standard rise time %(*YARGUMENT special text <1>: Special Texts Summary. (line 1829) * Moon, geocentric phase angle at standard rise time %(*YARGUMENT special text: Moon data. (line 780) * Moon, geocentric phase angle at standard rise time %(YARGUMENT special text <1>: Special Texts Summary. (line 1825) * Moon, geocentric phase angle at standard rise time %(YARGUMENT special text: Moon data. (line 780) * Moon, geocentric phase angle at standard set time %)*YARGUMENT special text <1>: Special Texts Summary. (line 1837) * Moon, geocentric phase angle at standard set time %)*YARGUMENT special text: Moon data. (line 787) * Moon, geocentric phase angle at standard set time %)YARGUMENT special text <1>: Special Texts Summary. (line 1833) * Moon, geocentric phase angle at standard set time %)YARGUMENT special text: Moon data. (line 787) * Moon, geocentric right ascension %(*sARGUMENT special text <1>: Special Texts Summary. (line 1464) * Moon, geocentric right ascension %(*sARGUMENT special text: Moon data. (line 416) * Moon, geocentric right ascension %(sARGUMENT special text <1>: Special Texts Summary. (line 1459) * Moon, geocentric right ascension %(sARGUMENT special text: Moon data. (line 416) * Moon, geocentric right ascension %)*sARGUMENT special text <1>: Special Texts Summary. (line 1464) * Moon, geocentric right ascension %)*sARGUMENT special text: Moon data. (line 416) * Moon, geocentric right ascension %)sARGUMENT special text <1>: Special Texts Summary. (line 1459) * Moon, geocentric right ascension %)sARGUMENT special text: Moon data. (line 416) * Moon, geocentric semidiameter %(*kARGUMENT special text: Special Texts Summary. (line 1387) * Moon, geocentric semidiameter %(kARGUMENT special text: Special Texts Summary. (line 1382) * Moon, geocentric semidiameter %)*kARGUMENT special text: Special Texts Summary. (line 1387) * Moon, geocentric semidiameter %)kARGUMENT special text: Special Texts Summary. (line 1382) * Moon, geometric horizon: Moon data. (line 69) * Moon, highest culmination point: Moon data. (line 57) * Moon, Julian date %(*yARGUMENT special text <1>: Special Texts Summary. (line 1514) * Moon, Julian date %(*yARGUMENT special text: Moon data. (line 460) * Moon, Julian date %(yARGUMENT special text <1>: Special Texts Summary. (line 1514) * Moon, Julian date %(yARGUMENT special text: Moon data. (line 460) * Moon, Julian date %)*yARGUMENT special text <1>: Special Texts Summary. (line 1514) * Moon, Julian date %)*yARGUMENT special text: Moon data. (line 460) * Moon, Julian date %)yARGUMENT special text <1>: Special Texts Summary. (line 1514) * Moon, Julian date %)yARGUMENT special text: Moon data. (line 460) * Moon, Julian Ephemeris date %(*zARGUMENT special text <1>: Special Texts Summary. (line 1520) * Moon, Julian Ephemeris date %(*zARGUMENT special text: Moon data. (line 465) * Moon, Julian Ephemeris date %(zARGUMENT special text <1>: Special Texts Summary. (line 1520) * Moon, Julian Ephemeris date %(zARGUMENT special text: Moon data. (line 465) * Moon, Julian Ephemeris date %)*zARGUMENT special text <1>: Special Texts Summary. (line 1520) * Moon, Julian Ephemeris date %)*zARGUMENT special text: Moon data. (line 465) * Moon, Julian Ephemeris date %)zARGUMENT special text <1>: Special Texts Summary. (line 1520) * Moon, Julian Ephemeris date %)zARGUMENT special text: Moon data. (line 465) * Moon, local sidereal time %(*wARGUMENT special text <1>: Special Texts Summary. (line 1498) * Moon, local sidereal time %(*wARGUMENT special text: Moon data. (line 435) * Moon, local sidereal time %(wARGUMENT special text <1>: Special Texts Summary. (line 1494) * Moon, local sidereal time %(wARGUMENT special text: Moon data. (line 435) * Moon, local sidereal time %)*wARGUMENT special text <1>: Special Texts Summary. (line 1498) * Moon, local sidereal time %)*wARGUMENT special text: Moon data. (line 435) * Moon, local sidereal time %)wARGUMENT special text <1>: Special Texts Summary. (line 1494) * Moon, local sidereal time %)wARGUMENT special text: Moon data. (line 435) * Moon, lowest culmination point: Moon data. (line 37) * Moon, lunation: Moon data. (line 37) * Moon, magnitude units: Moon data. (line 281) * Moon, mathematical-geocentric horizon: Moon data. (line 69) * Moon, midnight height geocentric: Moon data. (line 719) * Moon, midnight height topocentric: Moon data. (line 643) * Moon, midnight phase angle geocentric: Moon data. (line 726) * Moon, midnight phase angle topocentric: Moon data. (line 650) * Moon, noon height geocentric: Moon data. (line 733) * Moon, noon height topocentric: Moon data. (line 657) * Moon, noon phase angle geocentric: Moon data. (line 740) * Moon, noon phase angle topocentric: Moon data. (line 664) * Moon, refraction %(*iARGUMENT special text <1>: Special Texts Summary. (line 1368) * Moon, refraction %(*iARGUMENT special text: Moon data. (line 362) * Moon, refraction %(iARGUMENT special text <1>: Special Texts Summary. (line 1363) * Moon, refraction %(iARGUMENT special text: Moon data. (line 362) * Moon, refraction %)*iARGUMENT special text <1>: Special Texts Summary. (line 1368) * Moon, refraction %)*iARGUMENT special text: Moon data. (line 362) * Moon, refraction %)iARGUMENT special text <1>: Special Texts Summary. (line 1363) * Moon, refraction %)iARGUMENT special text: Moon data. (line 362) * Moon, rise azimuth geocentric: Moon data. (line 761) * Moon, rise azimuth topocentric: Moon data. (line 685) * Moon, rise height geocentric: Moon data. (line 747) * Moon, rise height topocentric: Moon data. (line 671) * Moon, rise phase angle geocentric: Moon data. (line 780) * Moon, rise phase angle topocentric: Moon data. (line 705) * Moon, rise width geocentric: Moon data. (line 761) * Moon, rise width topocentric: Moon data. (line 685) * Moon, set azimuth geocentric: Moon data. (line 771) * Moon, set azimuth topocentric: Moon data. (line 695) * Moon, set height geocentric: Moon data. (line 754) * Moon, set height topocentric: Moon data. (line 678) * Moon, set phase angle geocentric: Moon data. (line 787) * Moon, set phase angle topocentric: Moon data. (line 712) * Moon, set width geocentric: Moon data. (line 771) * Moon, set width topocentric: Moon data. (line 695) * Moon, standard non-visibility period: Moon data. (line 248) * Moon, standard rise time: Moon data. (line 193) * Moon, standard set time: Moon data. (line 221) * Moon, standard visibility period: Moon data. (line 240) * Moon, synodic month: Moon data. (line 37) * Moon, topocentric azimuth %(*bARGUMENT special text <1>: Special Texts Summary. (line 1299) * Moon, topocentric azimuth %(*bARGUMENT special text: Moon data. (line 309) * Moon, topocentric azimuth %(bARGUMENT special text <1>: Special Texts Summary. (line 1294) * Moon, topocentric azimuth %(bARGUMENT special text: Moon data. (line 309) * Moon, topocentric azimuth %)*bARGUMENT special text <1>: Special Texts Summary. (line 1299) * Moon, topocentric azimuth %)*bARGUMENT special text: Moon data. (line 309) * Moon, topocentric azimuth %)bARGUMENT special text <1>: Special Texts Summary. (line 1294) * Moon, topocentric azimuth %)bARGUMENT special text: Moon data. (line 309) * Moon, topocentric azimuth at standard rise time %(*QARGUMENT special text <1>: Special Texts Summary. (line 1724) * Moon, topocentric azimuth at standard rise time %(*QARGUMENT special text: Moon data. (line 685) * Moon, topocentric azimuth at standard rise time %(QARGUMENT special text <1>: Special Texts Summary. (line 1720) * Moon, topocentric azimuth at standard rise time %(QARGUMENT special text: Moon data. (line 685) * Moon, topocentric azimuth at standard set time %)*QARGUMENT special text <1>: Special Texts Summary. (line 1732) * Moon, topocentric azimuth at standard set time %)*QARGUMENT special text: Moon data. (line 695) * Moon, topocentric azimuth at standard set time %)QARGUMENT special text <1>: Special Texts Summary. (line 1728) * Moon, topocentric azimuth at standard set time %)QARGUMENT special text: Moon data. (line 695) * Moon, topocentric brightness %(*8ARGUMENT special text: Special Texts Summary. (line 1269) * Moon, topocentric brightness %(8ARGUMENT special text: Special Texts Summary. (line 1269) * Moon, topocentric brightness %)*8ARGUMENT special text: Special Texts Summary. (line 1269) * Moon, topocentric brightness %)8ARGUMENT special text: Special Texts Summary. (line 1269) * Moon, topocentric data: Moon data. (line 256) * Moon, topocentric declination %(*cARGUMENT special text <1>: Special Texts Summary. (line 1309) * Moon, topocentric declination %(*cARGUMENT special text: Moon data. (line 313) * Moon, topocentric declination %(cARGUMENT special text <1>: Special Texts Summary. (line 1304) * Moon, topocentric declination %(cARGUMENT special text: Moon data. (line 313) * Moon, topocentric declination %)*cARGUMENT special text <1>: Special Texts Summary. (line 1309) * Moon, topocentric declination %)*cARGUMENT special text: Moon data. (line 313) * Moon, topocentric declination %)cARGUMENT special text <1>: Special Texts Summary. (line 1304) * Moon, topocentric declination %)cARGUMENT special text: Moon data. (line 313) * Moon, topocentric distance %(*gARGUMENT special text <1>: Special Texts Summary. (line 1349) * Moon, topocentric distance %(*gARGUMENT special text: Moon data. (line 350) * Moon, topocentric distance %(gARGUMENT special text <1>: Special Texts Summary. (line 1344) * Moon, topocentric distance %(gARGUMENT special text: Moon data. (line 350) * Moon, topocentric distance %)*gARGUMENT special text <1>: Special Texts Summary. (line 1349) * Moon, topocentric distance %)*gARGUMENT special text: Moon data. (line 350) * Moon, topocentric distance %)gARGUMENT special text <1>: Special Texts Summary. (line 1344) * Moon, topocentric distance %)gARGUMENT special text: Moon data. (line 350) * Moon, topocentric ecliptic latitude %(*eARGUMENT special text <1>: Special Texts Summary. (line 1329) * Moon, topocentric ecliptic latitude %(*eARGUMENT special text: Moon data. (line 332) * Moon, topocentric ecliptic latitude %(eARGUMENT special text <1>: Special Texts Summary. (line 1324) * Moon, topocentric ecliptic latitude %(eARGUMENT special text: Moon data. (line 332) * Moon, topocentric ecliptic latitude %)*eARGUMENT special text <1>: Special Texts Summary. (line 1329) * Moon, topocentric ecliptic latitude %)*eARGUMENT special text: Moon data. (line 332) * Moon, topocentric ecliptic latitude %)eARGUMENT special text <1>: Special Texts Summary. (line 1324) * Moon, topocentric ecliptic latitude %)eARGUMENT special text: Moon data. (line 332) * Moon, topocentric ecliptic longitude %(*dARGUMENT special text <1>: Special Texts Summary. (line 1319) * Moon, topocentric ecliptic longitude %(*dARGUMENT special text: Moon data. (line 324) * Moon, topocentric ecliptic longitude %(dARGUMENT special text <1>: Special Texts Summary. (line 1314) * Moon, topocentric ecliptic longitude %(dARGUMENT special text: Moon data. (line 324) * Moon, topocentric ecliptic longitude %)*dARGUMENT special text <1>: Special Texts Summary. (line 1319) * Moon, topocentric ecliptic longitude %)*dARGUMENT special text: Moon data. (line 324) * Moon, topocentric ecliptic longitude %)dARGUMENT special text <1>: Special Texts Summary. (line 1314) * Moon, topocentric ecliptic longitude %)dARGUMENT special text: Moon data. (line 324) * Moon, topocentric elevation %(*aARGUMENT special text <1>: Special Texts Summary. (line 1289) * Moon, topocentric elevation %(*aARGUMENT special text: Moon data. (line 299) * Moon, topocentric elevation %(aARGUMENT special text <1>: Special Texts Summary. (line 1284) * Moon, topocentric elevation %(aARGUMENT special text: Moon data. (line 299) * Moon, topocentric elevation %)*aARGUMENT special text <1>: Special Texts Summary. (line 1289) * Moon, topocentric elevation %)*aARGUMENT special text: Moon data. (line 299) * Moon, topocentric elevation %)aARGUMENT special text <1>: Special Texts Summary. (line 1284) * Moon, topocentric elevation %)aARGUMENT special text: Moon data. (line 299) * Moon, topocentric elevation at Moon's astronomical midnight time %(*LARGUMENT special text <1>: Special Texts Summary. (line 1669) * Moon, topocentric elevation at Moon's astronomical midnight time %(*LARGUMENT special text: Moon data. (line 643) * Moon, topocentric elevation at Moon's astronomical midnight time %(LARGUMENT special text <1>: Special Texts Summary. (line 1664) * Moon, topocentric elevation at Moon's astronomical midnight time %(LARGUMENT special text: Moon data. (line 643) * Moon, topocentric elevation at Moon's astronomical midnight time %)*LARGUMENT special text <1>: Special Texts Summary. (line 1669) * Moon, topocentric elevation at Moon's astronomical midnight time %)*LARGUMENT special text: Moon data. (line 643) * Moon, topocentric elevation at Moon's astronomical midnight time %)LARGUMENT special text <1>: Special Texts Summary. (line 1664) * Moon, topocentric elevation at Moon's astronomical midnight time %)LARGUMENT special text: Moon data. (line 643) * Moon, topocentric elevation at Moon's astronomical noon time %(*NARGUMENT special text <1>: Special Texts Summary. (line 1690) * Moon, topocentric elevation at Moon's astronomical noon time %(*NARGUMENT special text: Moon data. (line 657) * Moon, topocentric elevation at Moon's astronomical noon time %(NARGUMENT special text <1>: Special Texts Summary. (line 1685) * Moon, topocentric elevation at Moon's astronomical noon time %(NARGUMENT special text: Moon data. (line 657) * Moon, topocentric elevation at Moon's astronomical noon time %)*NARGUMENT special text <1>: Special Texts Summary. (line 1690) * Moon, topocentric elevation at Moon's astronomical noon time %)*NARGUMENT special text: Moon data. (line 657) * Moon, topocentric elevation at Moon's astronomical noon time %)NARGUMENT special text <1>: Special Texts Summary. (line 1685) * Moon, topocentric elevation at Moon's astronomical noon time %)NARGUMENT special text: Moon data. (line 657) * Moon, topocentric elevation at standard rise time %(*PARGUMENT special text <1>: Special Texts Summary. (line 1708) * Moon, topocentric elevation at standard rise time %(*PARGUMENT special text: Moon data. (line 671) * Moon, topocentric elevation at standard rise time %(PARGUMENT special text <1>: Special Texts Summary. (line 1704) * Moon, topocentric elevation at standard rise time %(PARGUMENT special text: Moon data. (line 671) * Moon, topocentric elevation at standard set time %)*PARGUMENT special text <1>: Special Texts Summary. (line 1716) * Moon, topocentric elevation at standard set time %)*PARGUMENT special text: Moon data. (line 678) * Moon, topocentric elevation at standard set time %)PARGUMENT special text <1>: Special Texts Summary. (line 1712) * Moon, topocentric elevation at standard set time %)PARGUMENT special text: Moon data. (line 678) * Moon, topocentric elongation %(*hARGUMENT special text <1>: Special Texts Summary. (line 1358) * Moon, topocentric elongation %(*hARGUMENT special text: Moon data. (line 356) * Moon, topocentric elongation %(hARGUMENT special text <1>: Special Texts Summary. (line 1353) * Moon, topocentric elongation %(hARGUMENT special text: Moon data. (line 356) * Moon, topocentric elongation %)*hARGUMENT special text <1>: Special Texts Summary. (line 1358) * Moon, topocentric elongation %)*hARGUMENT special text: Moon data. (line 356) * Moon, topocentric elongation %)hARGUMENT special text <1>: Special Texts Summary. (line 1353) * Moon, topocentric elongation %)hARGUMENT special text: Moon data. (line 356) * Moon, topocentric horizontal parallax %(*6ARGUMENT special text: Special Texts Summary. (line 1252) * Moon, topocentric horizontal parallax %(6ARGUMENT special text: Special Texts Summary. (line 1247) * Moon, topocentric horizontal parallax %)*6ARGUMENT special text: Special Texts Summary. (line 1252) * Moon, topocentric horizontal parallax %)6ARGUMENT special text: Special Texts Summary. (line 1247) * Moon, topocentric phase angle %(*9ARGUMENT special text: Special Texts Summary. (line 1279) * Moon, topocentric phase angle %(9ARGUMENT special text: Special Texts Summary. (line 1274) * Moon, topocentric phase angle %)*9ARGUMENT special text: Special Texts Summary. (line 1279) * Moon, topocentric phase angle %)9ARGUMENT special text: Special Texts Summary. (line 1274) * Moon, topocentric phase angle at Moon's astronomical midnight time %(*MARGUMENT special text <1>: Special Texts Summary. (line 1679) * Moon, topocentric phase angle at Moon's astronomical midnight time %(*MARGUMENT special text: Moon data. (line 650) * Moon, topocentric phase angle at Moon's astronomical midnight time %(MARGUMENT special text <1>: Special Texts Summary. (line 1674) * Moon, topocentric phase angle at Moon's astronomical midnight time %(MARGUMENT special text: Moon data. (line 650) * Moon, topocentric phase angle at Moon's astronomical midnight time %)*MARGUMENT special text <1>: Special Texts Summary. (line 1679) * Moon, topocentric phase angle at Moon's astronomical midnight time %)*MARGUMENT special text: Moon data. (line 650) * Moon, topocentric phase angle at Moon's astronomical midnight time %)MARGUMENT special text <1>: Special Texts Summary. (line 1674) * Moon, topocentric phase angle at Moon's astronomical midnight time %)MARGUMENT special text: Moon data. (line 650) * Moon, topocentric phase angle at Moon's astronomical noon time %(*OARGUMENT special text <1>: Special Texts Summary. (line 1700) * Moon, topocentric phase angle at Moon's astronomical noon time %(*OARGUMENT special text: Moon data. (line 664) * Moon, topocentric phase angle at Moon's astronomical noon time %(OARGUMENT special text <1>: Special Texts Summary. (line 1695) * Moon, topocentric phase angle at Moon's astronomical noon time %(OARGUMENT special text: Moon data. (line 664) * Moon, topocentric phase angle at Moon's astronomical noon time %)*OARGUMENT special text <1>: Special Texts Summary. (line 1700) * Moon, topocentric phase angle at Moon's astronomical noon time %)*OARGUMENT special text: Moon data. (line 664) * Moon, topocentric phase angle at Moon's astronomical noon time %)OARGUMENT special text <1>: Special Texts Summary. (line 1695) * Moon, topocentric phase angle at Moon's astronomical noon time %)OARGUMENT special text: Moon data. (line 664) * Moon, topocentric phase angle at standard rise time %(*RARGUMENT special text <1>: Special Texts Summary. (line 1740) * Moon, topocentric phase angle at standard rise time %(*RARGUMENT special text: Moon data. (line 705) * Moon, topocentric phase angle at standard rise time %(RARGUMENT special text <1>: Special Texts Summary. (line 1736) * Moon, topocentric phase angle at standard rise time %(RARGUMENT special text: Moon data. (line 705) * Moon, topocentric phase angle at standard set time %)*RARGUMENT special text <1>: Special Texts Summary. (line 1748) * Moon, topocentric phase angle at standard set time %)*RARGUMENT special text: Moon data. (line 712) * Moon, topocentric phase angle at standard set time %)RARGUMENT special text <1>: Special Texts Summary. (line 1744) * Moon, topocentric phase angle at standard set time %)RARGUMENT special text: Moon data. (line 712) * Moon, topocentric right ascension %(*fARGUMENT special text <1>: Special Texts Summary. (line 1339) * Moon, topocentric right ascension %(*fARGUMENT special text: Moon data. (line 343) * Moon, topocentric right ascension %(fARGUMENT special text <1>: Special Texts Summary. (line 1334) * Moon, topocentric right ascension %(fARGUMENT special text: Moon data. (line 343) * Moon, topocentric right ascension %)*fARGUMENT special text <1>: Special Texts Summary. (line 1339) * Moon, topocentric right ascension %)*fARGUMENT special text: Moon data. (line 343) * Moon, topocentric right ascension %)fARGUMENT special text <1>: Special Texts Summary. (line 1334) * Moon, topocentric right ascension %)fARGUMENT special text: Moon data. (line 343) * Moon, topocentric semidiameter %(*7ARGUMENT special text: Special Texts Summary. (line 1262) * Moon, topocentric semidiameter %(7ARGUMENT special text: Special Texts Summary. (line 1257) * Moon, topocentric semidiameter %)*7ARGUMENT special text: Special Texts Summary. (line 1262) * Moon, topocentric semidiameter %)7ARGUMENT special text: Special Texts Summary. (line 1257) * Moon/Sun, delta astronomical midnight time %(*IARGUMENT special text <1>: Special Texts Summary. (line 1633) * Moon/Sun, delta astronomical midnight time %(*IARGUMENT special text: Moon data. (line 577) * Moon/Sun, delta astronomical midnight time %(IARGUMENT special text <1>: Special Texts Summary. (line 1628) * Moon/Sun, delta astronomical midnight time %(IARGUMENT special text: Moon data. (line 577) * Moon/Sun, delta astronomical midnight time %)*IARGUMENT special text <1>: Special Texts Summary. (line 1633) * Moon/Sun, delta astronomical midnight time %)*IARGUMENT special text: Moon data. (line 577) * Moon/Sun, delta astronomical midnight time %)IARGUMENT special text <1>: Special Texts Summary. (line 1628) * Moon/Sun, delta astronomical midnight time %)IARGUMENT special text: Moon data. (line 577) * Moon/Sun, delta astronomical noon time %(*JARGUMENT special text <1>: Special Texts Summary. (line 1643) * Moon/Sun, delta astronomical noon time %(*JARGUMENT special text: Moon data. (line 595) * Moon/Sun, delta astronomical noon time %(JARGUMENT special text <1>: Special Texts Summary. (line 1638) * Moon/Sun, delta astronomical noon time %(JARGUMENT special text: Moon data. (line 595) * Moon/Sun, delta astronomical noon time %)*JARGUMENT special text <1>: Special Texts Summary. (line 1643) * Moon/Sun, delta astronomical noon time %)*JARGUMENT special text: Moon data. (line 595) * Moon/Sun, delta astronomical noon time %)JARGUMENT special text <1>: Special Texts Summary. (line 1638) * Moon/Sun, delta astronomical noon time %)JARGUMENT special text: Moon data. (line 595) * Moon/Sun, delta geocentric azimuth %(*DARGUMENT special text <1>: Special Texts Summary. (line 1559) * Moon/Sun, delta geocentric azimuth %(*DARGUMENT special text: Moon data. (line 507) * Moon/Sun, delta geocentric azimuth %(DARGUMENT special text <1>: Special Texts Summary. (line 1554) * Moon/Sun, delta geocentric azimuth %(DARGUMENT special text: Moon data. (line 507) * Moon/Sun, delta geocentric azimuth %)*DARGUMENT special text <1>: Special Texts Summary. (line 1559) * Moon/Sun, delta geocentric azimuth %)*DARGUMENT special text: Moon data. (line 507) * Moon/Sun, delta geocentric azimuth %)DARGUMENT special text <1>: Special Texts Summary. (line 1554) * Moon/Sun, delta geocentric azimuth %)DARGUMENT special text: Moon data. (line 507) * Moon/Sun, delta geocentric azimuth at standard moonrise time %(*HARGUMENT special text <1>: Special Texts Summary. (line 1615) * Moon/Sun, delta geocentric azimuth at standard moonrise time %(*HARGUMENT special text: Moon data. (line 561) * Moon/Sun, delta geocentric azimuth at standard moonrise time %(HARGUMENT special text <1>: Special Texts Summary. (line 1611) * Moon/Sun, delta geocentric azimuth at standard moonrise time %(HARGUMENT special text: Moon data. (line 561) * Moon/Sun, delta geocentric azimuth at standard moonset time %)*HARGUMENT special text <1>: Special Texts Summary. (line 1623) * Moon/Sun, delta geocentric azimuth at standard moonset time %)*HARGUMENT special text: Moon data. (line 569) * Moon/Sun, delta geocentric azimuth at standard moonset time %)HARGUMENT special text <1>: Special Texts Summary. (line 1619) * Moon/Sun, delta geocentric azimuth at standard moonset time %)HARGUMENT special text: Moon data. (line 569) * Moon/Sun, delta geocentric elevation %(*CARGUMENT special text <1>: Special Texts Summary. (line 1549) * Moon/Sun, delta geocentric elevation %(*CARGUMENT special text: Moon data. (line 501) * Moon/Sun, delta geocentric elevation %(CARGUMENT special text <1>: Special Texts Summary. (line 1544) * Moon/Sun, delta geocentric elevation %(CARGUMENT special text: Moon data. (line 501) * Moon/Sun, delta geocentric elevation %)*CARGUMENT special text <1>: Special Texts Summary. (line 1549) * Moon/Sun, delta geocentric elevation %)*CARGUMENT special text: Moon data. (line 501) * Moon/Sun, delta geocentric elevation %)CARGUMENT special text <1>: Special Texts Summary. (line 1544) * Moon/Sun, delta geocentric elevation %)CARGUMENT special text: Moon data. (line 501) * Moon/Sun, delta geocentric elevation at standard moonrise time %(*GARGUMENT special text <1>: Special Texts Summary. (line 1599) * Moon/Sun, delta geocentric elevation at standard moonrise time %(*GARGUMENT special text: Moon data. (line 545) * Moon/Sun, delta geocentric elevation at standard moonrise time %(GARGUMENT special text <1>: Special Texts Summary. (line 1595) * Moon/Sun, delta geocentric elevation at standard moonrise time %(GARGUMENT special text: Moon data. (line 545) * Moon/Sun, delta geocentric elevation at standard moonset time %)*GARGUMENT special text <1>: Special Texts Summary. (line 1607) * Moon/Sun, delta geocentric elevation at standard moonset time %)*GARGUMENT special text: Moon data. (line 553) * Moon/Sun, delta geocentric elevation at standard moonset time %)GARGUMENT special text <1>: Special Texts Summary. (line 1603) * Moon/Sun, delta geocentric elevation at standard moonset time %)GARGUMENT special text: Moon data. (line 553) * Moon/Sun, delta standard rise time %(*KARGUMENT special text: Special Texts Summary. (line 1651) * Moon/Sun, delta standard rise time %(KARGUMENT special text: Special Texts Summary. (line 1647) * Moon/Sun, delta standard set time %)*KARGUMENT special text: Special Texts Summary. (line 1659) * Moon/Sun, delta standard set time %)KARGUMENT special text: Special Texts Summary. (line 1655) * Moon/Sun, delta topocentric azimuth %(*BARGUMENT special text <1>: Special Texts Summary. (line 1539) * Moon/Sun, delta topocentric azimuth %(*BARGUMENT special text: Moon data. (line 482) * Moon/Sun, delta topocentric azimuth %(BARGUMENT special text <1>: Special Texts Summary. (line 1534) * Moon/Sun, delta topocentric azimuth %(BARGUMENT special text: Moon data. (line 482) * Moon/Sun, delta topocentric azimuth %)*BARGUMENT special text <1>: Special Texts Summary. (line 1539) * Moon/Sun, delta topocentric azimuth %)*BARGUMENT special text: Moon data. (line 482) * Moon/Sun, delta topocentric azimuth %)BARGUMENT special text <1>: Special Texts Summary. (line 1534) * Moon/Sun, delta topocentric azimuth %)BARGUMENT special text: Moon data. (line 482) * Moon/Sun, delta topocentric azimuth at standard moonrise time %(*FARGUMENT special text <1>: Special Texts Summary. (line 1583) * Moon/Sun, delta topocentric azimuth at standard moonrise time %(*FARGUMENT special text: Moon data. (line 529) * Moon/Sun, delta topocentric azimuth at standard moonrise time %(FARGUMENT special text <1>: Special Texts Summary. (line 1579) * Moon/Sun, delta topocentric azimuth at standard moonrise time %(FARGUMENT special text: Moon data. (line 529) * Moon/Sun, delta topocentric azimuth at standard moonset time %)*FARGUMENT special text <1>: Special Texts Summary. (line 1591) * Moon/Sun, delta topocentric azimuth at standard moonset time %)*FARGUMENT special text: Moon data. (line 537) * Moon/Sun, delta topocentric azimuth at standard moonset time %)FARGUMENT special text <1>: Special Texts Summary. (line 1587) * Moon/Sun, delta topocentric azimuth at standard moonset time %)FARGUMENT special text: Moon data. (line 537) * Moon/Sun, delta topocentric elevation %(*AARGUMENT special text <1>: Special Texts Summary. (line 1529) * Moon/Sun, delta topocentric elevation %(*AARGUMENT special text: Moon data. (line 469) * Moon/Sun, delta topocentric elevation %(AARGUMENT special text <1>: Special Texts Summary. (line 1524) * Moon/Sun, delta topocentric elevation %(AARGUMENT special text: Moon data. (line 469) * Moon/Sun, delta topocentric elevation %)*AARGUMENT special text <1>: Special Texts Summary. (line 1529) * Moon/Sun, delta topocentric elevation %)*AARGUMENT special text: Moon data. (line 469) * Moon/Sun, delta topocentric elevation %)AARGUMENT special text <1>: Special Texts Summary. (line 1524) * Moon/Sun, delta topocentric elevation %)AARGUMENT special text: Moon data. (line 469) * Moon/Sun, delta topocentric elevation at standard moonrise time %(*EARGUMENT special text <1>: Special Texts Summary. (line 1567) * Moon/Sun, delta topocentric elevation at standard moonrise time %(*EARGUMENT special text: Moon data. (line 513) * Moon/Sun, delta topocentric elevation at standard moonrise time %(EARGUMENT special text <1>: Special Texts Summary. (line 1563) * Moon/Sun, delta topocentric elevation at standard moonrise time %(EARGUMENT special text: Moon data. (line 513) * Moon/Sun, delta topocentric elevation at standard moonset time %)*EARGUMENT special text <1>: Special Texts Summary. (line 1575) * Moon/Sun, delta topocentric elevation at standard moonset time %)*EARGUMENT special text: Moon data. (line 521) * Moon/Sun, delta topocentric elevation at standard moonset time %)EARGUMENT special text <1>: Special Texts Summary. (line 1571) * Moon/Sun, delta topocentric elevation at standard moonset time %)EARGUMENT special text: Moon data. (line 521) * Moonrise: Moon data. (line 6) * Moonrise and moonset, set reference altitude: Fixed date options. (line 130) * Moonset: Moon data. (line 6) * More precise representation of astronomical data and times: Fixed date options. (line 330) * More precise representation of geographical data: Fixed date options. (line 330) * Morning width: Glossary. (line 478) * Morning width geocentric, Sun: Sun data. (line 774) * Morning width topocentric, Sun: Sun data. (line 728) * Move leap day to 1st March: Fixed date options. (line 872) * Move leap day to 28th February: Fixed date options. (line 867) * Multicultural New Year holidays in eternal holiday list: Calendar options. (line 107) * Name space of date variables <1>: Date variables. (line 55) * Name space of date variables: Fixed date options. (line 8) * Name space of text variables <1>: Text variables. (line 242) * Name space of text variables: Fixed date options. (line 35) * Native language defaults: Internationalization. (line 53) * Native language, selection: Internationalization. (line 27) * Native language, used: Internationalization. (line 6) * Nautical twilight: Glossary. (line 482) * Nautical twilight, Sun: Sun data. (line 257) * Negated character list: Glossary. (line 487) * Negated character list, regexp: Regexp Operators. (line 160) * Negated regular expression: Fixed date options. (line 416) * Negative day: Glossary. (line 491) * Negative day, biorhythm: Biorhythm. (line 21) * 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 496) * Noon height geocentric, Moon: Moon data. (line 733) * Noon height geocentric, Sun: Sun data. (line 754) * Noon height topocentric, Moon: Moon data. (line 657) * Noon height topocentric, Sun: Sun data. (line 707) * Noon line: Glossary. (line 500) * Noon line, Sun: Sun data. (line 37) * Noon phase angle: Glossary. (line 503) * Noon phase angle geocentric, Moon: Moon data. (line 740) * Noon phase angle topocentric, Moon: Moon data. (line 664) * Noon time of Moon, astronomical: Moon data. (line 57) * Noon time of Sun, astronomical: Sun data. (line 49) * NUL characters in the text part, handling: Text part of a line. (line 21) * Number of year calendar sheet blocks: Calendar options. (line 1386) * Numerical local time timezone offset value %=[ARGUMENT] special text <1>: Special Texts Summary. (line 268) * Numerical local time timezone offset value %=[ARGUMENT] special text: Actual clocktime. (line 191) * Numerical local time timezone offset value using RFC-822 style, display: Actual clocktime. (line 191) * Numerical text variables: Text variables. (line 293) * Numerical text variables, length preserving behavior: Text variables. (line 349) * Numerical Universal time timezone offset value %"[ARGUMENT] special text <1>: Special Texts Summary. (line 265) * Numerical Universal time timezone offset value %"[ARGUMENT] special text: Actual clocktime. (line 175) * Numerical Universal time timezone offset value using RFC-822 style, display: Actual clocktime. (line 175) * 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 507) * Omission values in date part, validity: Date part of a line. (line 146) * Operations on date variables <1>: Date variables. (line 118) * Operations on date variables <2>: Structure of resource file. (line 57) * Operations on date variables: Fixed date options. (line 8) * Operations on text variables <1>: Text variables. (line 293) * Operations on text variables: Structure of resource file. (line 72) * Operator, * regexp: Regexp Operators. (line 191) * Operator, + regexp: Regexp Operators. (line 211) * Operator, ? regexp: Regexp Operators. (line 223) * Operator, \' regexp: Regexp Operators. (line 299) * Operator, \< regexp: Regexp Operators. (line 266) * Operator, \> regexp: Regexp Operators. (line 270) * Operator, \` regexp: Regexp Operators. (line 295) * Operator, \B regexp: Regexp Operators. (line 279) * Operator, \b regexp: Regexp Operators. (line 274) * Operator, \W regexp: Regexp Operators. (line 262) * Operator, \w regexp: Regexp Operators. (line 257) * Operator, | regexp: Regexp Operators. (line 170) * Operators, regexp: Regexp Operators. (line 6) * Opposition: Glossary. (line 510) * Option: Glossary. (line 515) * 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 <1>: Options. (line 6) * Options: Command line arguments. (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 860) * Options, fixed date text: Fixed date options. (line 612) * Options, long-style: Options. (line 21) * Options, short-style: Options. (line 21) * Options, single character: Fixed date options. (line 582) * Orbit, Sun's <1>: Moon data. (line 324) * Orbit, Sun's: Sun data. (line 382) * Orthodox new calendar holidays in eternal holiday list: Calendar options. (line 114) * Orthodox old calendar holidays in eternal holiday list: Calendar options. (line 121) * Orthodrome <1>: Glossary. (line 519) * Orthodrome: Geographical distance and course angle. (line 6) * Other resource file: Fixed date options. (line 465) * Output of base time of astronomical functions <1>: Moon data. (line 450) * Output of base time of astronomical functions: Sun data. (line 482) * Output, pipelining: Global options. (line 170) * Output, redirection: Global options. (line 170) * PAGER environment variable <1>: Environment Variables. (line 99) * PAGER environment variable: Global options. (line 48) * 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 <1>: Environment Variables. (line 104) * PATH environment variable: Global options. (line 53) * Pattern <1>: Glossary. (line 524) * Pattern: Fixed date options. (line 386) * Pattern, regular expressions: Regular Expressions. (line 6) * Period of double or shorter shadow length: Sun data. (line 853) * Period of Gregorian Reformation, set: Calendar options. (line 1556) * Period of longer than double shadow length: Sun data. (line 858) * Period of longer than single shadow length: Sun data. (line 822) * Period of single or shorter shadow length: Sun data. (line 817) * 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 568) * Persian Jalaali holidays in eternal holiday list: Calendar options. (line 128) * Phase angle: Glossary. (line 530) * Pipelining <1>: Glossary. (line 534) * Pipelining: Global options. (line 91) * Pipelining of output: Global options. (line 170) * Positive day: Glossary. (line 538) * Positive day, biorhythm: Biorhythm. (line 21) * POSIX: Glossary. (line 543) * POSIX regexp: Regexp Operators. (line 74) * Prayer time Asr, Islamic: Sun data. (line 49) * Prayer time Fajr, Islamic: Sun data. (line 309) * Prayer time Isha, Islamic: Sun data. (line 323) * Prayer time Maghrib, Islamic: Sun data. (line 195) * Prayer time Zuhr, Islamic: Sun data. (line 49) * Precedence, regexp operators: Regexp Operators. (line 301) * Precision of astronomical calculations: Preface. (line 20) * 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 <1>: Glossary. (line 548) * Proleptic calendar mode: Calendar options. (line 1589) * Proleptic Gregorian calendar: Calendar options. (line 1596) * Proleptic Julian calendar: Calendar options. (line 1601) * Protection character, \ <1>: Other difference values. (line 11) * Protection character, \ <2>: Text variables. (line 91) * Protection character, \ <3>: Special Texts processed. (line 6) * Protection character, \ <4>: Text part of a line. (line 52) * Protection character, \: Fixed date options. (line 101) * Protection of special characters <1>: Other difference values. (line 11) * Protection of special characters <2>: Text variables. (line 91) * Protection of special characters <3>: Special Texts processed. (line 6) * Protection of special characters <4>: Text part of a line. (line 52) * Protection of special characters <5>: Response file. (line 6) * Protection of special characters <6>: Fixed date options. (line 101) * Protection of special characters: Command line arguments. (line 28) * Provide calendar sheet with week numbers: Calendar options. (line 1349) * Pseudo space character, _: Fixed date options. (line 115) * Public-access resource files: Environment Variables. (line 30) * Quotation of special characters <1>: Response file. (line 6) * Quotation of special characters: Command line arguments. (line 28) * 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 <1>: Glossary. (line 389) * Ranges of commands <2>: Ranges of commands. (line 6) * Ranges of commands: Commands. (line 6) * 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 554) * Redirection <1>: Glossary. (line 560) * Redirection: Global options. (line 91) * Redirection of output: Global options. (line 170) * 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 130) * Reference altitude used for sunrise and sunset, set: Fixed date options. (line 130) * Reference systems used, Moon oriented special texts: Moon data. (line 929) * Reference systems used, Sun oriented special texts: Sun data. (line 1185) * References of text variables: Structure of resource file. (line 82) * Refraction: Glossary. (line 564) * Refraction, atmospheric: Fixed date options. (line 152) * Regexp <1>: Glossary. (line 571) * Regexp: Regular Expressions. (line 6) * Regexp anchor metacharacter, $: Regexp Operators. (line 32) * Regexp anchor metacharacter, ^: Regexp Operators. (line 22) * Regexp character class, [:alnum:]: Regexp Operators. (line 88) * Regexp character class, [:alpha:]: Regexp Operators. (line 91) * Regexp character class, [:blank:]: Regexp Operators. (line 94) * Regexp character class, [:cntrl:]: Regexp Operators. (line 97) * Regexp character class, [:digit:]: Regexp Operators. (line 100) * Regexp character class, [:graph:]: Regexp Operators. (line 103) * Regexp character class, [:lower:]: Regexp Operators. (line 107) * Regexp character class, [:print:]: Regexp Operators. (line 110) * Regexp character class, [:punct:]: Regexp Operators. (line 113) * Regexp character class, [:space:]: Regexp Operators. (line 117) * Regexp character class, [:upper:]: Regexp Operators. (line 120) * Regexp character class, [:xdigit:]: Regexp Operators. (line 123) * Regexp character classes, [:KEYWORD:]: Regexp Operators. (line 74) * Regexp character list, [...]: Regexp Operators. (line 50) * Regexp collating symbols, [.ELEMENT.]: Regexp Operators. (line 140) * Regexp complemented character list, [^ ...]: Regexp Operators. (line 160) * Regexp equivalence classes, [=LIST=]: Regexp Operators. (line 147) * Regexp grouping, (...): Regexp Operators. (line 184) * Regexp interval expressions, {EXPRESSION}: Regexp Operators. (line 233) * Regexp metacharacter, .: Regexp Operators. (line 40) * Regexp metacharacter, \: Regexp Operators. (line 14) * Regexp metacharacters: Regexp Operators. (line 6) * Regexp operator, *: Regexp Operators. (line 191) * Regexp operator, +: Regexp Operators. (line 211) * Regexp operator, ?: Regexp Operators. (line 223) * Regexp operator, \': Regexp Operators. (line 299) * Regexp operator, \<: Regexp Operators. (line 266) * Regexp operator, \>: Regexp Operators. (line 270) * Regexp operator, \`: Regexp Operators. (line 295) * Regexp operator, \B: Regexp Operators. (line 279) * Regexp operator, \b: Regexp Operators. (line 274) * Regexp operator, \W: Regexp Operators. (line 262) * Regexp operator, \w: Regexp Operators. (line 257) * Regexp operator, |: Regexp Operators. (line 170) * Regexp operators: Regexp Operators. (line 6) * Regexp operators, GNU specific: Regexp Operators. (line 249) * Regexp operators, precedence: Regexp Operators. (line 301) * Regexp, anchors: Regexp Operators. (line 22) * Regexp, buffer: Regexp Operators. (line 285) * Regexp, buffer matching operators: Regexp Operators. (line 294) * Regexp, case sensitivity in matching: Regexp Operators. (line 306) * Regexp, character classes: Regexp Operators. (line 74) * Regexp, character list: Regexp Operators. (line 50) * Regexp, collating elements: Regexp Operators. (line 132) * Regexp, collating symbols: Regexp Operators. (line 140) * Regexp, complemented character list: Regexp Operators. (line 160) * Regexp, definition of a word: Regexp Operators. (line 252) * Regexp, equivalence classes: Regexp Operators. (line 147) * Regexp, ignoring case <1>: Regexp Operators. (line 311) * Regexp, ignoring case: Fixed date options. (line 411) * Regexp, interval expressions: Regexp Operators. (line 233) * Regexp, matching word boundaries: Regexp Operators. (line 274) * Regexp, negated character list: Regexp Operators. (line 160) * Regexp, POSIX: Regexp Operators. (line 74) * Regular expression <1>: Glossary. (line 571) * Regular expression <2>: Regular Expressions. (line 6) * Regular expression: Fixed date options. (line 386) * Regular expression anchor metacharacter, $: Regexp Operators. (line 32) * Regular expression anchor metacharacter, ^: Regexp Operators. (line 22) * Regular expression character class, [:alnum:]: Regexp Operators. (line 88) * Regular expression character class, [:alpha:]: Regexp Operators. (line 91) * Regular expression character class, [:blank:]: Regexp Operators. (line 94) * Regular expression character class, [:cntrl:]: Regexp Operators. (line 97) * Regular expression character class, [:digit:]: Regexp Operators. (line 100) * Regular expression character class, [:graph:]: Regexp Operators. (line 103) * Regular expression character class, [:lower:]: Regexp Operators. (line 107) * Regular expression character class, [:print:]: Regexp Operators. (line 110) * Regular expression character class, [:punct:]: Regexp Operators. (line 113) * Regular expression character class, [:space:]: Regexp Operators. (line 117) * Regular expression character class, [:upper:]: Regexp Operators. (line 120) * Regular expression character class, [:xdigit:]: Regexp Operators. (line 123) * Regular expression character classes, [:KEYWORD:]: Regexp Operators. (line 74) * Regular expression character list, [...]: Regexp Operators. (line 50) * Regular expression collating symbols, [.ELEMENT.]: Regexp Operators. (line 140) * Regular expression complemented character list, [^ ...]: Regexp Operators. (line 160) * Regular expression equivalence class, [=LIST=]: Regexp Operators. (line 147) * Regular expression grouping, (...): Regexp Operators. (line 184) * Regular expression interval expressions, {EXPRESSION}: Regexp Operators. (line 233) * 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 191) * Regular expression operator, +: Regexp Operators. (line 211) * Regular expression operator, ?: Regexp Operators. (line 223) * Regular expression operator, \': Regexp Operators. (line 299) * Regular expression operator, \<: Regexp Operators. (line 266) * Regular expression operator, \>: Regexp Operators. (line 270) * Regular expression operator, \`: Regexp Operators. (line 295) * Regular expression operator, \B: Regexp Operators. (line 279) * Regular expression operator, \b: Regexp Operators. (line 274) * Regular expression operator, \W: Regexp Operators. (line 262) * Regular expression operator, \w: Regexp Operators. (line 257) * Regular expression operator, |: Regexp Operators. (line 170) * Regular expression operators <1>: Glossary. (line 462) * Regular expression operators: Regexp Operators. (line 6) * Regular expression, complemented: Fixed date options. (line 416) * Regular expression, ignoring case distinctions <1>: Regexp Operators. (line 311) * Regular expression, ignoring case distinctions: Fixed date options. (line 411) * Regular expression, negated: Fixed date options. (line 416) * Regular expression, reverted: Fixed date options. (line 416) * 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 <1>: Special Texts Summary. (line 1846) * Relative day number %d special text: Other difference values. (line 21) * Relative month number %m special text <1>: Special Texts Summary. (line 1852) * Relative month number %m special text: Other difference values. (line 34) * Relative time offset value <1>: Glossary. (line 574) * Relative time offset value: Calendar options. (line 1505) * Relative week number %w special text <1>: Special Texts Summary. (line 1849) * Relative week number %w special text: Other difference values. (line 29) * Relative year number %y special text <1>: Special Texts Summary. (line 1855) * Relative year number %y special text: Other difference values. (line 39) * Relative year number %yDATE special text <1>: Special Texts Summary. (line 224) * Relative year number %yDATE special text: Difference value. (line 10) * Religious Islamic calendar <1>: Glossary. (line 577) * Religious Islamic calendar: Preface. (line 164) * Remark character, ; <1>: Comment line. (line 6) * Remark character, ;: Response file. (line 21) * Remarked line in resource file <1>: Comment line. (line 6) * Remarked line in resource file: Structure of resource file. (line 46) * Repetition factor of days, :N: Repetition factor of days. (line 6) * Repetition factors of days, examples: Repetition factor of days. (line 57) * Repetition factors of days, valid date parts: Repetition factor of days. (line 42) * 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 565) * Resource file <1>: Glossary. (line 580) * Resource file: Fixed Dates. (line 11) * Resource file examples: Resource file examples. (line 6) * Resource file line, additional: Fixed date options. (line 512) * Resource file line, commented <1>: Comment line. (line 6) * Resource file line, commented: Structure of resource file. (line 46) * Resource file line, further: Fixed date options. (line 512) * Resource file line, long text part: Text part of a line. (line 42) * Resource file line, remarked <1>: Comment line. (line 6) * Resource file line, remarked: Structure of resource file. (line 46) * Resource file, .gcalrc: Resource file. (line 6) * Resource file, additional <1>: Resource file. (line 6) * Resource file, additional: Fixed date options. (line 465) * Resource file, coding scheme: Coding Scheme. (line 6) * Resource file, commented line <1>: Comment line. (line 6) * Resource file, commented line: Structure of resource file. (line 46) * 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 <1>: Date variables. (line 6) * Resource file, limitations <2>: Text part of a line. (line 6) * Resource file, limitations <3>: Structure of resource file. (line 6) * Resource file, limitations: Global options. (line 213) * Resource file, line continuation: Text part of a line. (line 29) * Resource file, loading: Resource file. (line 6) * Resource file, name: Resource file. (line 6) * Resource file, other: Fixed date options. (line 465) * Resource file, remarked line <1>: Comment line. (line 6) * Resource file, remarked line: Structure of resource file. (line 46) * 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 583) * Response file, @FILE: Response file. (line 6) * Response file, creation: Global options. (line 8) * Reverted regular expression: Fixed date options. (line 416) * RFC: Glossary. (line 557) * RFC-822, numerical local time timezone offset value: Actual clocktime. (line 191) * RFC-822, numerical Universal time timezone offset value: Actual clocktime. (line 175) * Right ascension: Glossary. (line 588) * Right ascension, Moon: Moon data. (line 343) * Right ascension, Sun: Sun data. (line 390) * Rise azimuth: Glossary. (line 593) * Rise azimuth geocentric, Moon: Moon data. (line 761) * Rise azimuth geocentric, Sun: Sun data. (line 774) * Rise azimuth topocentric, Moon: Moon data. (line 685) * Rise azimuth topocentric, Sun: Sun data. (line 728) * Rise height: Glossary. (line 597) * Rise height geocentric, Moon: Moon data. (line 747) * Rise height geocentric, Sun: Sun data. (line 761) * Rise height topocentric, Moon: Moon data. (line 671) * Rise height topocentric, Sun: Sun data. (line 714) * Rise phase angle: Glossary. (line 601) * Rise phase angle geocentric, Moon: Moon data. (line 780) * Rise phase angle topocentric, Moon: Moon data. (line 705) * Rise width: Glossary. (line 478) * Rise width geocentric, Moon: Moon data. (line 761) * Rise width topocentric, Moon: Moon data. (line 685) * Run-time error codes, table: Error Codes. (line 6) * Scope of date variables <1>: Date variables. (line 129) * Scope of date variables: Fixed date options. (line 8) * Scope of text variables <1>: Text variables. (line 357) * Scope of text variables: Fixed date options. (line 35) * 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 183) * Separator character of lists of days, ,: Lists of days. (line 6) * Separator character of ranges of days, #: Ranges of days. (line 6) * Separator character, + <1>: Fixed date options. (line 478) * Separator character, +: Calendar options. (line 157) * Separator character, : <1>: Fixed date options. (line 8) * Separator character, :: Global options. (line 107) * Separator character, whitespace <1>: Include directives. (line 23) * Separator character, whitespace <2>: Structure of resource file. (line 6) * Separator character, whitespace: Options. (line 66) * Sequence of control characters: Global options. (line 107) * Set azimuth: Glossary. (line 605) * Set azimuth geocentric, Moon: Moon data. (line 771) * Set azimuth geocentric, Sun: Sun data. (line 783) * Set azimuth topocentric, Moon: Moon data. (line 695) * Set azimuth topocentric, Sun: Sun data. (line 738) * Set cycle displacement value for Sun and Moon data and times: Fixed date options. (line 283) * Set cycle ending time value for Sun and Moon data and times: Fixed date options. (line 222) * Set cycle timestep value for Sun and Moon data and times: Fixed date options. (line 283) * Set height: Glossary. (line 609) * Set height geocentric, Moon: Moon data. (line 754) * Set height geocentric, Sun: Sun data. (line 768) * Set height topocentric, Moon: Moon data. (line 678) * Set height topocentric, Sun: Sun data. (line 721) * Set highlighting sequences: Global options. (line 107) * Set marking characters: Global options. (line 107) * Set phase angle: Glossary. (line 613) * Set phase angle geocentric, Moon: Moon data. (line 787) * Set phase angle topocentric, Moon: Moon data. (line 712) * Set shadow length factor: Fixed date options. (line 140) * Set starting day of week: Calendar options. (line 1471) * Set width: Glossary. (line 218) * Set width geocentric, Moon: Moon data. (line 771) * Set width topocentric, Moon: Moon data. (line 695) * Shadow length at afternoon, double: Sun data. (line 837) * Shadow length at afternoon, single: Sun data. (line 801) * Shadow length at forenoon, double: Sun data. (line 828) * Shadow length at forenoon, single: Sun data. (line 792) * Shadow length factor, set: Fixed date options. (line 140) * Shell <1>: Glossary. (line 617) * Shell <2>: Text variables. (line 97) * Shell <3>: Fixed date options. (line 342) * Shell <4>: Command line arguments. (line 28) * Shell: Invoking Gcal. (line 11) * Shell command %![ARGUMENT] special text <1>: Special Texts Summary. (line 1898) * Shell command %![ARGUMENT] special text: Shell Command. (line 6) * 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 <1>: Glossary. (line 621) * Short-style option: Options. (line 21) * Sidereal time, Moon: Moon data. (line 435) * Sidereal time, Sun: Sun data. (line 467) * Signed angular value, Sun and Moon oriented special texts: Sun data. (line 992) * Signed decimal based rational number value, Sun and Moon oriented special texts: Sun data. (line 895) * Signed time value, Sun and Moon oriented special texts: Sun data. (line 961) * Simple decrement of date variables: Date variables. (line 123) * Simple decrement of text variables: Text variables. (line 299) * Simple file name <1>: Glossary. (line 624) * Simple file name: Resource file. (line 85) * Simple increment of date variables: Date variables. (line 122) * Simple increment of text variables: Text variables. (line 298) * Simple language code information <1>: Glossary. (line 629) * Simple language code information: Internationalization. (line 46) * Single character options <1>: Fixed date options. (line 582) * Single character options: Options. (line 21) * Single command: Glossary. (line 634) * Single command line word <1>: Fixed date options. (line 582) * Single command line word: Options. (line 21) * Single Commands: Single commands. (line 6) * Single commands: Commands. (line 6) * Single fiscal year: Single commands. (line 46) * 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 817) * Single shadow length at afternoon: Sun data. (line 801) * Single shadow length at forenoon: Sun data. (line 792) * Single year mode: Single commands. (line 18) * Software license, finding: Common options. (line 33) * Solar Arctic Circle <1>: Glossary. (line 637) * Solar Arctic Circle: Sun data. (line 1218) * Solar day length: Sun data. (line 6) * Solar day, mean: Sun data. (line 501) * Solar day, true: Sun data. (line 501) * Solar eclipse: Calendar options. (line 48) * Solar night length: Sun data. (line 6) * Solar time, mean: Sun data. (line 501) * Solar time, true: Sun data. (line 501) * Solstice in summer: Glossary. (line 659) * Solstice in winter: Glossary. (line 744) * Solstice, summer: Calendar options. (line 48) * Solstice, winter: Calendar options. (line 48) * Special 3-Month mode commands <1>: 3-Month mode commands. (line 6) * Special 3-Month mode commands: 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 1289) * Special character sequences in the text part, handling: Text part of a line. (line 6) * Special characters, country specific: Calendar options. (line 1718) * Special characters, depreciation <1>: Other difference values. (line 11) * Special characters, depreciation <2>: Text variables. (line 91) * Special characters, depreciation <3>: Special Texts processed. (line 6) * Special characters, depreciation <4>: Text part of a line. (line 52) * Special characters, depreciation <5>: Response file. (line 6) * Special characters, depreciation <6>: Fixed date options. (line 101) * Special characters, depreciation: Command line arguments. (line 28) * Special characters, protection <1>: Other difference values. (line 11) * Special characters, protection <2>: Text variables. (line 91) * Special characters, protection <3>: Special Texts processed. (line 6) * Special characters, protection <4>: Text part of a line. (line 52) * Special characters, protection <5>: Response file. (line 6) * Special characters, protection <6>: Fixed date options. (line 101) * Special characters, protection: Command line arguments. (line 28) * Special characters, quotation <1>: Response file. (line 6) * Special characters, quotation: Command line arguments. (line 28) * Special date format in calendar sheet: Calendar options. (line 1424) * Special date format in eternal holiday list: Calendar options. (line 1442) * Special date format in fixed date list: Calendar options. (line 1460) * Special event oriented texts, Moon data and times: Sun data. (line 917) * Special event oriented texts, Sun data and times: Sun data. (line 917) * Special text: Glossary. (line 651) * Special text %![ARGUMENT], shell command: Shell Command. (line 6) * Special text %"[ARGUMENT], numerical Universal time timezone offset value: Actual clocktime. (line 175) * Special text %,[DATE], biorhythm text: Biorhythm. (line 34) * Special text %0, end of highlighting sequence 1 or 2: Highlighting. (line 126) * 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 62) * Special text %=[ARGUMENT], numerical local time timezone offset value: Actual clocktime. (line 191) * 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 29) * 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 119) * 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 104) * Special text %[FORMAT]'[ARGUMENT], actual local time in M[M...] format: Actual clocktime. (line 51) * Special text %[FORMAT]-[ARGUMENT], environment varibale: Contents of Environment variable. (line 6) * Special text %[FORMAT].[ARGUMENT], actual Universal time hour: Actual clocktime. (line 134) * Special text %[FORMAT]/[ARGUMENT], actual Universal time minute: Actual clocktime. (line 147) * Special text %[FORMAT]?[ARGUMENT], actual local time minute: Actual clocktime. (line 78) * Special text %[FORMAT]_[ARGUMENT], actual local time hour: Actual clocktime. (line 65) * Special text %[FORMAT]`[ARGUMENT], actual Universal time in M[M...]/DATE format: Actual clocktime. (line 119) * 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 12-hour format suffix: Actual clocktime. (line 91) * Special text %[FORMAT]}[ARGUMENT], actual Universal time 12-hour format suffix: Actual clocktime. (line 161) * 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 14) * 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 19) * Special text %T[DATE], weekday number: Weekday number. (line 108) * 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 %Y[DATE], year number: Year number. (line 7) * Special text %yDATE, relative year number: Difference value. (line 10) * Special text %Z[DATE], Moon phase text graphics: Moon phase. (line 44) * 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], 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 %[FORMAT]?ARGUMENT, Moon data: Moon data. (line 6) * Special texts %[FORMAT]?ARGUMENT, Sun data: Sun data. (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 1430) * Standard and special date format in eternal holiday list: Calendar options. (line 1448) * Standard and special date format in fixed date list: Calendar options. (line 1466) * Standard calendar format: Calendar options. (line 1289) * Standard non-visibility period, Moon: Moon data. (line 248) * Standard non-visibility period, Sun: Sun data. (line 223) * Standard rise time, Moon: Moon data. (line 193) * Standard rise time, Sun: Sun data. (line 169) * Standard set time, Moon: Moon data. (line 221) * Standard set time, Sun: Sun data. (line 195) * Standard visibility period, Moon: Moon data. (line 240) * Standard visibility period, Sun: Sun data. (line 215) * Standard week number <1>: Glossary. (line 664) * Standard week number <2>: Week number. (line 7) * Standard week number <3>: Date part of a line. (line 57) * Standard week number <4>: Fixed date options. (line 757) * Standard week number: Calendar options. (line 1374) * Star day <1>: Glossary. (line 670) * Star day <2>: Moon data. (line 435) * Star day: Sun data. (line 467) * Star time <1>: Moon data. (line 435) * Star time: Sun data. (line 467) * Start of highlighting sequence 1 %1 special text <1>: Special Texts Summary. (line 1860) * Start of highlighting sequence 1 %1 special text: Highlighting. (line 9) * Start of highlighting sequence 1 %5 special text <1>: Special Texts Summary. (line 1872) * Start of highlighting sequence 1 %5 special text: Highlighting. (line 65) * Start of highlighting sequence 1 or 2 %9 special text <1>: Special Texts Summary. (line 1888) * Start of highlighting sequence 1 or 2 %9 special text: Highlighting. (line 109) * Start of highlighting sequence 2 %3 special text <1>: Special Texts Summary. (line 1866) * Start of highlighting sequence 2 %3 special text: Highlighting. (line 37) * Start of highlighting sequence 2 %7 special text <1>: Special Texts Summary. (line 1880) * Start of highlighting sequence 2 %7 special text: Highlighting. (line 87) * Starting date: Glossary. (line 675) * Starting date of fixed date <1>: Exclusive date period. (line 12) * Starting date of fixed date: Inclusive date period. (line 11) * Starting day of week, setting: Calendar options. (line 1471) * Statute mile <1>: Glossary. (line 679) * Statute mile: Geographical distance and course angle. (line 15) * String: Glossary. (line 682) * 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 <1>: Moon data. (line 799) * Style of representation of Moon data and times: Sun data. (line 870) * Style of representation of Sun data and times: Sun data. (line 870) * Style of representation, geographical distance and course angle: Geographical distance and course angle. (line 15) * 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 659) * Summer solstice <1>: Glossary. (line 659) * Summer solstice: Calendar options. (line 48) * Summertime: Sun data. (line 1058) * Sun and Moon data and times, set cycle displacement value: Fixed date options. (line 283) * Sun and Moon data and times, set cycle ending time value: Fixed date options. (line 222) * Sun and Moon data and times, set cycle timestep value: Fixed date options. (line 283) * Sun and Moon oriented special texts, Clocktime value: Sun data. (line 909) * Sun and Moon oriented special texts, signed angular value: Sun data. (line 992) * Sun and Moon oriented special texts, signed decimal based rational number value: Sun data. (line 895) * Sun and Moon oriented special texts, signed time value: Sun data. (line 961) * Sun and Moon oriented special texts, unsigned angular value: Sun data. (line 977) * Sun and Moon oriented special texts, unsigned decimal based rational number value: Sun data. (line 874) * Sun and Moon oriented special texts, unsigned time value: Sun data. (line 945) * Sun data %[FORMAT]?ARGUMENT special texts <1>: Special Texts Summary. (line 301) * Sun data %[FORMAT]?ARGUMENT special texts: Sun data. (line 6) * Sun data and times, default mode: Sun data. (line 864) * Sun data and times, mode characters: Sun data. (line 23) * Sun data and times, special event oriented texts: Sun data. (line 917) * Sun data and times, style of representation: Sun data. (line 870) * Sun data and times, type of representation: Sun data. (line 870) * Sun oriented special texts, limitations: Sun data. (line 1185) * Sun oriented special texts, reference systems used: Sun data. (line 1185) * Sun oriented special texts, table of modes: Sun data. (line 34) * Sun oriented special texts, table of representation types: Sun data. (line 1089) * Sun's center, begin of amateur-astronomical %o*8ARGUMENT special text: Special Texts Summary. (line 515) * Sun's center, begin of amateur-astronomical %o8ARGUMENT special text: Special Texts Summary. (line 511) * Sun's center, begin of amateur-astronomical twilight %o*8ARGUMENT special text: Sun data. (line 283) * Sun's center, begin of amateur-astronomical twilight %o8ARGUMENT special text: Sun data. (line 283) * Sun's center, begin of astronomical twilight %o*9ARGUMENT special text <1>: Special Texts Summary. (line 551) * Sun's center, begin of astronomical twilight %o*9ARGUMENT special text: Sun data. (line 309) * Sun's center, begin of astronomical twilight %o9ARGUMENT special text <1>: Special Texts Summary. (line 547) * Sun's center, begin of astronomical twilight %o9ARGUMENT special text: Sun data. (line 309) * Sun's center, begin of civil twilight %o*6ARGUMENT special text <1>: Special Texts Summary. (line 451) * Sun's center, begin of civil twilight %o*6ARGUMENT special text: Sun data. (line 231) * Sun's center, begin of civil twilight %o6ARGUMENT special text <1>: Special Texts Summary. (line 447) * Sun's center, begin of civil twilight %o6ARGUMENT special text: Sun data. (line 231) * Sun's center, begin of nautical twilight %o*7ARGUMENT special text <1>: Special Texts Summary. (line 483) * Sun's center, begin of nautical twilight %o*7ARGUMENT special text: Sun data. (line 257) * Sun's center, begin of nautical twilight %o7ARGUMENT special text <1>: Special Texts Summary. (line 479) * Sun's center, begin of nautical twilight %o7ARGUMENT special text: Sun data. (line 257) * Sun's center, end of amateur-astronomical %s*8ARGUMENT special text: Special Texts Summary. (line 523) * Sun's center, end of amateur-astronomical %s8ARGUMENT special text: Special Texts Summary. (line 519) * Sun's center, end of amateur-astronomical twilight %s*8ARGUMENT special text: Sun data. (line 292) * Sun's center, end of amateur-astronomical twilight %s8ARGUMENT special text: Sun data. (line 292) * Sun's center, end of astronomical twilight %s*9ARGUMENT special text <1>: Special Texts Summary. (line 559) * Sun's center, end of astronomical twilight %s*9ARGUMENT special text: Sun data. (line 323) * Sun's center, end of astronomical twilight %s9ARGUMENT special text <1>: Special Texts Summary. (line 555) * Sun's center, end of astronomical twilight %s9ARGUMENT special text: Sun data. (line 323) * Sun's center, end of civil twilight %s*6ARGUMENT special text <1>: Special Texts Summary. (line 459) * Sun's center, end of civil twilight %s*6ARGUMENT special text: Sun data. (line 240) * Sun's center, end of civil twilight %s6ARGUMENT special text <1>: Special Texts Summary. (line 455) * Sun's center, end of civil twilight %s6ARGUMENT special text: Sun data. (line 240) * Sun's center, end of nautical twilight %s*7ARGUMENT special text <1>: Special Texts Summary. (line 491) * Sun's center, end of nautical twilight %s*7ARGUMENT special text: Sun data. (line 266) * Sun's center, end of nautical twilight %s7ARGUMENT special text <1>: Special Texts Summary. (line 487) * Sun's center, end of nautical twilight %s7ARGUMENT special text: Sun data. (line 266) * Sun's center, geometrical non-visibility %z*2ARGUMENT special text <1>: Special Texts Summary. (line 349) * Sun's center, geometrical non-visibility %z*2ARGUMENT special text: Sun data. (line 101) * Sun's center, geometrical non-visibility %z2ARGUMENT special text <1>: Special Texts Summary. (line 345) * Sun's center, geometrical non-visibility %z2ARGUMENT special text: Sun data. (line 101) * Sun's center, geometrical rise time %o*2ARGUMENT special text <1>: Special Texts Summary. (line 325) * Sun's center, geometrical rise time %o*2ARGUMENT special text: Sun data. (line 79) * Sun's center, geometrical rise time %o2ARGUMENT special text <1>: Special Texts Summary. (line 321) * Sun's center, geometrical rise time %o2ARGUMENT special text: Sun data. (line 79) * Sun's center, geometrical set time %s*2ARGUMENT special text <1>: Special Texts Summary. (line 333) * Sun's center, geometrical set time %s*2ARGUMENT special text: Sun data. (line 93) * Sun's center, geometrical set time %s2ARGUMENT special text <1>: Special Texts Summary. (line 329) * Sun's center, geometrical set time %s2ARGUMENT special text: Sun data. (line 93) * Sun's center, geometrical visibility %u*2ARGUMENT special text <1>: Special Texts Summary. (line 341) * Sun's center, geometrical visibility %u*2ARGUMENT special text: Sun data. (line 97) * Sun's center, geometrical visibility %u2ARGUMENT special text <1>: Special Texts Summary. (line 337) * Sun's center, geometrical visibility %u2ARGUMENT special text: Sun data. (line 97) * Sun's center, non-visibility %z*4ARGUMENT special text <1>: Special Texts Summary. (line 411) * Sun's center, non-visibility %z*4ARGUMENT special text: Sun data. (line 164) * Sun's center, non-visibility %z4ARGUMENT special text <1>: Special Texts Summary. (line 407) * Sun's center, non-visibility %z4ARGUMENT special text: Sun data. (line 164) * Sun's center, period above amateur-astronomical twilight reference altitude %u*8ARGUMENT special text <1>: Special Texts Summary. (line 532) * Sun's center, period above amateur-astronomical twilight reference altitude %u*8ARGUMENT special text: Sun data. (line 297) * Sun's center, period above amateur-astronomical twilight reference altitude %u8ARGUMENT special text <1>: Special Texts Summary. (line 527) * Sun's center, period above amateur-astronomical twilight reference altitude %u8ARGUMENT special text: Sun data. (line 297) * Sun's center, period above astronomical twilight reference altitude %u*9ARGUMENT special text <1>: Special Texts Summary. (line 567) * Sun's center, period above astronomical twilight reference altitude %u*9ARGUMENT special text: Sun data. (line 332) * Sun's center, period above astronomical twilight reference altitude %u9ARGUMENT special text <1>: Special Texts Summary. (line 563) * Sun's center, period above astronomical twilight reference altitude %u9ARGUMENT special text: Sun data. (line 332) * Sun's center, period above civil twilight reference altitude %u*6ARGUMENT special text <1>: Special Texts Summary. (line 467) * Sun's center, period above civil twilight reference altitude %u*6ARGUMENT special text: Sun data. (line 245) * Sun's center, period above civil twilight reference altitude %u6ARGUMENT special text <1>: Special Texts Summary. (line 463) * Sun's center, period above civil twilight reference altitude %u6ARGUMENT special text: Sun data. (line 245) * Sun's center, period above nautical twilight reference altitude %u*7ARGUMENT special text <1>: Special Texts Summary. (line 499) * Sun's center, period above nautical twilight reference altitude %u*7ARGUMENT special text: Sun data. (line 271) * Sun's center, period above nautical twilight reference altitude %u7ARGUMENT special text <1>: Special Texts Summary. (line 495) * Sun's center, period above nautical twilight reference altitude %u7ARGUMENT special text: Sun data. (line 271) * Sun's center, period below amateur-astronomical twilight reference altitude %z*8ARGUMENT special text <1>: Special Texts Summary. (line 542) * Sun's center, period below amateur-astronomical twilight reference altitude %z*8ARGUMENT special text: Sun data. (line 303) * Sun's center, period below amateur-astronomical twilight reference altitude %z8ARGUMENT special text <1>: Special Texts Summary. (line 537) * Sun's center, period below amateur-astronomical twilight reference altitude %z8ARGUMENT special text: Sun data. (line 303) * Sun's center, period below astronomical twilight reference altitude %z*9ARGUMENT special text <1>: Special Texts Summary. (line 575) * Sun's center, period below astronomical twilight reference altitude %z*9ARGUMENT special text: Sun data. (line 338) * Sun's center, period below astronomical twilight reference altitude %z9ARGUMENT special text <1>: Special Texts Summary. (line 571) * Sun's center, period below astronomical twilight reference altitude %z9ARGUMENT special text: Sun data. (line 338) * Sun's center, period below civil twilight reference altitude %z*6ARGUMENT special text <1>: Special Texts Summary. (line 475) * Sun's center, period below civil twilight reference altitude %z*6ARGUMENT special text: Sun data. (line 251) * Sun's center, period below civil twilight reference altitude %z6ARGUMENT special text <1>: Special Texts Summary. (line 471) * Sun's center, period below civil twilight reference altitude %z6ARGUMENT special text: Sun data. (line 251) * Sun's center, period below nautical twilight reference altitude %z*7ARGUMENT special text <1>: Special Texts Summary. (line 507) * Sun's center, period below nautical twilight reference altitude %z*7ARGUMENT special text: Sun data. (line 277) * Sun's center, period below nautical twilight reference altitude %z7ARGUMENT special text <1>: Special Texts Summary. (line 503) * Sun's center, period below nautical twilight reference altitude %z7ARGUMENT special text: Sun data. (line 277) * Sun's center, rise time %o*4ARGUMENT special text <1>: Special Texts Summary. (line 388) * Sun's center, rise time %o*4ARGUMENT special text: Sun data. (line 134) * Sun's center, rise time %o4ARGUMENT special text <1>: Special Texts Summary. (line 385) * Sun's center, rise time %o4ARGUMENT special text: Sun data. (line 134) * Sun's center, set time %s*4ARGUMENT special text <1>: Special Texts Summary. (line 395) * Sun's center, set time %s*4ARGUMENT special text: Sun data. (line 149) * Sun's center, set time %s4ARGUMENT special text <1>: Special Texts Summary. (line 392) * Sun's center, set time %s4ARGUMENT special text: Sun data. (line 149) * Sun's center, visibility %u*4ARGUMENT special text <1>: Special Texts Summary. (line 403) * Sun's center, visibility %u*4ARGUMENT special text: Sun data. (line 159) * Sun's center, visibility %u4ARGUMENT special text <1>: Special Texts Summary. (line 399) * Sun's center, visibility %u4ARGUMENT special text: Sun data. (line 159) * Sun's orbit <1>: Moon data. (line 324) * Sun's orbit: Sun data. (line 382) * Sun's upper limb, geometrical non-visibility %z*3ARGUMENT special text <1>: Special Texts Summary. (line 381) * Sun's upper limb, geometrical non-visibility %z*3ARGUMENT special text: Sun data. (line 129) * Sun's upper limb, geometrical non-visibility %z3ARGUMENT special text <1>: Special Texts Summary. (line 377) * Sun's upper limb, geometrical non-visibility %z3ARGUMENT special text: Sun data. (line 129) * Sun's upper limb, geometrical rise time %o*3ARGUMENT special text <1>: Special Texts Summary. (line 357) * Sun's upper limb, geometrical rise time %o*3ARGUMENT special text: Sun data. (line 106) * Sun's upper limb, geometrical rise time %o3ARGUMENT special text <1>: Special Texts Summary. (line 353) * Sun's upper limb, geometrical rise time %o3ARGUMENT special text: Sun data. (line 106) * Sun's upper limb, geometrical set time %s*3ARGUMENT special text <1>: Special Texts Summary. (line 365) * Sun's upper limb, geometrical set time %s*3ARGUMENT special text: Sun data. (line 118) * Sun's upper limb, geometrical set time %s3ARGUMENT special text <1>: Special Texts Summary. (line 361) * Sun's upper limb, geometrical set time %s3ARGUMENT special text: Sun data. (line 118) * Sun's upper limb, geometrical visibility %u*3ARGUMENT special text <1>: Special Texts Summary. (line 373) * Sun's upper limb, geometrical visibility %u*3ARGUMENT special text: Sun data. (line 125) * Sun's upper limb, geometrical visibility %u3ARGUMENT special text <1>: Special Texts Summary. (line 369) * Sun's upper limb, geometrical visibility %u3ARGUMENT special text: Sun data. (line 125) * Sun's upper limb, standard non-visibility %z*5ARGUMENT special text <1>: Special Texts Summary. (line 443) * Sun's upper limb, standard non-visibility %z*5ARGUMENT special text: Sun data. (line 223) * Sun's upper limb, standard non-visibility %z5ARGUMENT special text <1>: Special Texts Summary. (line 439) * Sun's upper limb, standard non-visibility %z5ARGUMENT special text: Sun data. (line 223) * Sun's upper limb, standard rise time %o*5ARGUMENT special text <1>: Special Texts Summary. (line 419) * Sun's upper limb, standard rise time %o*5ARGUMENT special text: Sun data. (line 169) * Sun's upper limb, standard rise time %o5ARGUMENT special text <1>: Special Texts Summary. (line 415) * Sun's upper limb, standard rise time %o5ARGUMENT special text: Sun data. (line 169) * Sun's upper limb, standard set time %s*5ARGUMENT special text <1>: Special Texts Summary. (line 427) * Sun's upper limb, standard set time %s*5ARGUMENT special text: Sun data. (line 195) * Sun's upper limb, standard set time %s5ARGUMENT special text <1>: Special Texts Summary. (line 423) * Sun's upper limb, standard set time %s5ARGUMENT special text: Sun data. (line 195) * Sun's upper limb, standard visibility %u*5ARGUMENT special text <1>: Special Texts Summary. (line 435) * Sun's upper limb, standard visibility %u*5ARGUMENT special text: Sun data. (line 215) * Sun's upper limb, standard visibility %u5ARGUMENT special text <1>: Special Texts Summary. (line 431) * Sun's upper limb, standard visibility %u5ARGUMENT special text: Sun data. (line 215) * Sun, amateur-astronomical twilight: Sun data. (line 283) * Sun, astronomical midnight time %o*0ARGUMENT special text <1>: Special Texts Summary. (line 308) * Sun, astronomical midnight time %o*0ARGUMENT special text: Sun data. (line 37) * Sun, astronomical midnight time %o0ARGUMENT special text <1>: Special Texts Summary. (line 304) * Sun, astronomical midnight time %o0ARGUMENT special text: Sun data. (line 37) * Sun, astronomical midnight time %s*0ARGUMENT special text <1>: Special Texts Summary. (line 308) * Sun, astronomical midnight time %s*0ARGUMENT special text: Sun data. (line 37) * Sun, astronomical midnight time %s0ARGUMENT special text <1>: Special Texts Summary. (line 304) * Sun, astronomical midnight time %s0ARGUMENT special text: Sun data. (line 37) * Sun, astronomical noon time %o*1ARGUMENT special text <1>: Special Texts Summary. (line 317) * Sun, astronomical noon time %o*1ARGUMENT special text: Sun data. (line 49) * Sun, astronomical noon time %o1ARGUMENT special text <1>: Special Texts Summary. (line 313) * Sun, astronomical noon time %o1ARGUMENT special text: Sun data. (line 49) * Sun, astronomical noon time %s*1ARGUMENT special text <1>: Special Texts Summary. (line 317) * Sun, astronomical noon time %s*1ARGUMENT special text: Sun data. (line 49) * Sun, astronomical noon time %s1ARGUMENT special text <1>: Special Texts Summary. (line 313) * Sun, astronomical noon time %s1ARGUMENT special text: Sun data. (line 49) * Sun, astronomical twilight: Sun data. (line 309) * Sun, astronomical unit: Sun data. (line 397) * Sun, azimuth: Sun data. (line 37) * Sun, base time %o*tARGUMENT special text <1>: Special Texts Summary. (line 767) * Sun, base time %o*tARGUMENT special text: Sun data. (line 482) * Sun, base time %otARGUMENT special text <1>: Special Texts Summary. (line 762) * Sun, base time %otARGUMENT special text: Sun data. (line 482) * Sun, base time %s*tARGUMENT special text <1>: Special Texts Summary. (line 767) * Sun, base time %s*tARGUMENT special text: Sun data. (line 482) * Sun, base time %stARGUMENT special text <1>: Special Texts Summary. (line 762) * Sun, base time %stARGUMENT special text: Sun data. (line 482) * Sun, civil twilight: Sun data. (line 231) * Sun, delta-t %o*rARGUMENT special text <1>: Special Texts Summary. (line 749) * Sun, delta-t %o*rARGUMENT special text: Sun data. (line 460) * Sun, delta-t %orARGUMENT special text <1>: Special Texts Summary. (line 749) * Sun, delta-t %orARGUMENT special text: Sun data. (line 460) * Sun, delta-t %s*rARGUMENT special text <1>: Special Texts Summary. (line 749) * Sun, delta-t %s*rARGUMENT special text: Sun data. (line 460) * Sun, delta-t %srARGUMENT special text <1>: Special Texts Summary. (line 749) * Sun, delta-t %srARGUMENT special text: Sun data. (line 460) * Sun, double shadow length time at afternoon %s*RARGUMENT special text <1>: Special Texts Summary. (line 1080) * Sun, double shadow length time at afternoon %s*RARGUMENT special text: Sun data. (line 837) * Sun, double shadow length time at afternoon %sRARGUMENT special text <1>: Special Texts Summary. (line 1076) * Sun, double shadow length time at afternoon %sRARGUMENT special text: Sun data. (line 837) * Sun, double shadow length time at forenoon %o*RARGUMENT special text <1>: Special Texts Summary. (line 1072) * Sun, double shadow length time at forenoon %o*RARGUMENT special text: Sun data. (line 828) * Sun, double shadow length time at forenoon %oRARGUMENT special text <1>: Special Texts Summary. (line 1068) * Sun, double shadow length time at forenoon %oRARGUMENT special text: Sun data. (line 828) * Sun, equation of time %o*wARGUMENT special text <1>: Special Texts Summary. (line 788) * Sun, equation of time %o*wARGUMENT special text: Sun data. (line 501) * Sun, equation of time %owARGUMENT special text <1>: Special Texts Summary. (line 783) * Sun, equation of time %owARGUMENT special text: Sun data. (line 501) * Sun, equation of time %s*wARGUMENT special text <1>: Special Texts Summary. (line 788) * Sun, equation of time %s*wARGUMENT special text: Sun data. (line 501) * Sun, equation of time %swARGUMENT special text <1>: Special Texts Summary. (line 783) * Sun, equation of time %swARGUMENT special text: Sun data. (line 501) * Sun, evening width geocentric: Sun data. (line 783) * Sun, evening width topocentric: Sun data. (line 738) * Sun, geocentric azimuth %o*kARGUMENT special text <1>: Special Texts Summary. (line 683) * Sun, geocentric azimuth %o*kARGUMENT special text: Sun data. (line 427) * Sun, geocentric azimuth %okARGUMENT special text <1>: Special Texts Summary. (line 678) * Sun, geocentric azimuth %okARGUMENT special text: Sun data. (line 427) * Sun, geocentric azimuth %s*kARGUMENT special text <1>: Special Texts Summary. (line 683) * Sun, geocentric azimuth %s*kARGUMENT special text: Sun data. (line 427) * Sun, geocentric azimuth %skARGUMENT special text <1>: Special Texts Summary. (line 678) * Sun, geocentric azimuth %skARGUMENT special text: Sun data. (line 427) * Sun, geocentric azimuth at standard rise time %o*PARGUMENT special text <1>: Special Texts Summary. (line 1024) * Sun, geocentric azimuth at standard rise time %o*PARGUMENT special text: Sun data. (line 774) * Sun, geocentric azimuth at standard rise time %oPARGUMENT special text <1>: Special Texts Summary. (line 1020) * Sun, geocentric azimuth at standard rise time %oPARGUMENT special text: Sun data. (line 774) * Sun, geocentric azimuth at standard set time %s*PARGUMENT special text <1>: Special Texts Summary. (line 1032) * Sun, geocentric azimuth at standard set time %s*PARGUMENT special text: Sun data. (line 783) * Sun, geocentric azimuth at standard set time %sPARGUMENT special text <1>: Special Texts Summary. (line 1028) * Sun, geocentric azimuth at standard set time %sPARGUMENT special text: Sun data. (line 783) * Sun, geocentric data: Sun data. (line 344) * Sun, geocentric declination %o*lARGUMENT special text <1>: Special Texts Summary. (line 693) * Sun, geocentric declination %o*lARGUMENT special text: Sun data. (line 431) * Sun, geocentric declination %olARGUMENT special text <1>: Special Texts Summary. (line 688) * Sun, geocentric declination %olARGUMENT special text: Sun data. (line 431) * Sun, geocentric declination %s*lARGUMENT special text <1>: Special Texts Summary. (line 693) * Sun, geocentric declination %s*lARGUMENT special text: Sun data. (line 431) * Sun, geocentric declination %slARGUMENT special text <1>: Special Texts Summary. (line 688) * Sun, geocentric declination %slARGUMENT special text: Sun data. (line 431) * Sun, geocentric distance %o*oARGUMENT special text <1>: Special Texts Summary. (line 723) * Sun, geocentric distance %o*oARGUMENT special text: Sun data. (line 448) * Sun, geocentric distance %ooARGUMENT special text <1>: Special Texts Summary. (line 718) * Sun, geocentric distance %ooARGUMENT special text: Sun data. (line 448) * Sun, geocentric distance %s*oARGUMENT special text <1>: Special Texts Summary. (line 723) * Sun, geocentric distance %s*oARGUMENT special text: Sun data. (line 448) * Sun, geocentric distance %soARGUMENT special text <1>: Special Texts Summary. (line 718) * Sun, geocentric distance %soARGUMENT special text: Sun data. (line 448) * Sun, geocentric ecliptic longitude %o*mARGUMENT special text <1>: Special Texts Summary. (line 703) * Sun, geocentric ecliptic longitude %o*mARGUMENT special text: Sun data. (line 440) * Sun, geocentric ecliptic longitude %omARGUMENT special text <1>: Special Texts Summary. (line 698) * Sun, geocentric ecliptic longitude %omARGUMENT special text: Sun data. (line 440) * Sun, geocentric ecliptic longitude %s*mARGUMENT special text <1>: Special Texts Summary. (line 703) * Sun, geocentric ecliptic longitude %s*mARGUMENT special text: Sun data. (line 440) * Sun, geocentric ecliptic longitude %smARGUMENT special text <1>: Special Texts Summary. (line 698) * Sun, geocentric ecliptic longitude %smARGUMENT special text: Sun data. (line 440) * Sun, geocentric elevation %o*jARGUMENT special text <1>: Special Texts Summary. (line 673) * Sun, geocentric elevation %o*jARGUMENT special text: Sun data. (line 419) * Sun, geocentric elevation %ojARGUMENT special text <1>: Special Texts Summary. (line 668) * Sun, geocentric elevation %ojARGUMENT special text: Sun data. (line 419) * Sun, geocentric elevation %s*jARGUMENT special text <1>: Special Texts Summary. (line 673) * Sun, geocentric elevation %s*jARGUMENT special text: Sun data. (line 419) * Sun, geocentric elevation %sjARGUMENT special text <1>: Special Texts Summary. (line 668) * Sun, geocentric elevation %sjARGUMENT special text: Sun data. (line 419) * Sun, geocentric elevation at standard rise time %o*OARGUMENT special text <1>: Special Texts Summary. (line 1008) * Sun, geocentric elevation at standard rise time %o*OARGUMENT special text: Sun data. (line 761) * Sun, geocentric elevation at standard rise time %oOARGUMENT special text <1>: Special Texts Summary. (line 1004) * Sun, geocentric elevation at standard rise time %oOARGUMENT special text: Sun data. (line 761) * Sun, geocentric elevation at standard set time %s*OARGUMENT special text <1>: Special Texts Summary. (line 1016) * Sun, geocentric elevation at standard set time %s*OARGUMENT special text: Sun data. (line 768) * Sun, geocentric elevation at standard set time %sOARGUMENT special text <1>: Special Texts Summary. (line 1012) * Sun, geocentric elevation at standard set time %sOARGUMENT special text: Sun data. (line 768) * Sun, geocentric elevation at Sun's astronomical midnight time %o*MARGUMENT special text <1>: Special Texts Summary. (line 990) * Sun, geocentric elevation at Sun's astronomical midnight time %o*MARGUMENT special text: Sun data. (line 747) * Sun, geocentric elevation at Sun's astronomical midnight time %oMARGUMENT special text <1>: Special Texts Summary. (line 985) * Sun, geocentric elevation at Sun's astronomical midnight time %oMARGUMENT special text: Sun data. (line 747) * Sun, geocentric elevation at Sun's astronomical midnight time %s*MARGUMENT special text <1>: Special Texts Summary. (line 990) * Sun, geocentric elevation at Sun's astronomical midnight time %s*MARGUMENT special text: Sun data. (line 747) * Sun, geocentric elevation at Sun's astronomical midnight time %sMARGUMENT special text <1>: Special Texts Summary. (line 985) * Sun, geocentric elevation at Sun's astronomical midnight time %sMARGUMENT special text: Sun data. (line 747) * Sun, geocentric elevation at Sun's astronomical noon time %o*NARGUMENT special text <1>: Special Texts Summary. (line 1000) * Sun, geocentric elevation at Sun's astronomical noon time %o*NARGUMENT special text: Sun data. (line 754) * Sun, geocentric elevation at Sun's astronomical noon time %oNARGUMENT special text <1>: Special Texts Summary. (line 995) * Sun, geocentric elevation at Sun's astronomical noon time %oNARGUMENT special text: Sun data. (line 754) * Sun, geocentric elevation at Sun's astronomical noon time %s*NARGUMENT special text <1>: Special Texts Summary. (line 1000) * Sun, geocentric elevation at Sun's astronomical noon time %s*NARGUMENT special text: Sun data. (line 754) * Sun, geocentric elevation at Sun's astronomical noon time %sNARGUMENT special text <1>: Special Texts Summary. (line 995) * Sun, geocentric elevation at Sun's astronomical noon time %sNARGUMENT special text: Sun data. (line 754) * Sun, geocentric horizontal parallax %o*pARGUMENT special text <1>: Special Texts Summary. (line 732) * Sun, geocentric horizontal parallax %o*pARGUMENT special text: Sun data. (line 452) * Sun, geocentric horizontal parallax %opARGUMENT special text <1>: Special Texts Summary. (line 727) * Sun, geocentric horizontal parallax %opARGUMENT special text: Sun data. (line 452) * Sun, geocentric horizontal parallax %s*pARGUMENT special text <1>: Special Texts Summary. (line 732) * Sun, geocentric horizontal parallax %s*pARGUMENT special text: Sun data. (line 452) * Sun, geocentric horizontal parallax %spARGUMENT special text <1>: Special Texts Summary. (line 727) * Sun, geocentric horizontal parallax %spARGUMENT special text: Sun data. (line 452) * Sun, geocentric right ascension %o*nARGUMENT special text <1>: Special Texts Summary. (line 713) * Sun, geocentric right ascension %o*nARGUMENT special text: Sun data. (line 444) * Sun, geocentric right ascension %onARGUMENT special text <1>: Special Texts Summary. (line 708) * Sun, geocentric right ascension %onARGUMENT special text: Sun data. (line 444) * Sun, geocentric right ascension %s*nARGUMENT special text <1>: Special Texts Summary. (line 713) * Sun, geocentric right ascension %s*nARGUMENT special text: Sun data. (line 444) * Sun, geocentric right ascension %snARGUMENT special text <1>: Special Texts Summary. (line 708) * Sun, geocentric right ascension %snARGUMENT special text: Sun data. (line 444) * Sun, geocentric semidiameter %o*qARGUMENT special text <1>: Special Texts Summary. (line 742) * Sun, geocentric semidiameter %o*qARGUMENT special text: Sun data. (line 456) * Sun, geocentric semidiameter %oqARGUMENT special text <1>: Special Texts Summary. (line 737) * Sun, geocentric semidiameter %oqARGUMENT special text: Sun data. (line 456) * Sun, geocentric semidiameter %s*qARGUMENT special text <1>: Special Texts Summary. (line 742) * Sun, geocentric semidiameter %s*qARGUMENT special text: Sun data. (line 456) * Sun, geocentric semidiameter %sqARGUMENT special text <1>: Special Texts Summary. (line 737) * Sun, geocentric semidiameter %sqARGUMENT special text: Sun data. (line 456) * Sun, highest culmination point: Sun data. (line 49) * Sun, Julian date %o*uARGUMENT special text <1>: Special Texts Summary. (line 773) * Sun, Julian date %o*uARGUMENT special text: Sun data. (line 492) * Sun, Julian date %ouARGUMENT special text <1>: Special Texts Summary. (line 773) * Sun, Julian date %ouARGUMENT special text: Sun data. (line 492) * Sun, Julian date %s*uARGUMENT special text <1>: Special Texts Summary. (line 773) * Sun, Julian date %s*uARGUMENT special text: Sun data. (line 492) * Sun, Julian date %suARGUMENT special text <1>: Special Texts Summary. (line 773) * Sun, Julian date %suARGUMENT special text: Sun data. (line 492) * Sun, Julian Ephemeris date %o*vARGUMENT special text <1>: Special Texts Summary. (line 779) * Sun, Julian Ephemeris date %o*vARGUMENT special text: Sun data. (line 497) * Sun, Julian Ephemeris date %ovARGUMENT special text <1>: Special Texts Summary. (line 779) * Sun, Julian Ephemeris date %ovARGUMENT special text: Sun data. (line 497) * Sun, Julian Ephemeris date %s*vARGUMENT special text <1>: Special Texts Summary. (line 779) * Sun, Julian Ephemeris date %s*vARGUMENT special text: Sun data. (line 497) * Sun, Julian Ephemeris date %svARGUMENT special text <1>: Special Texts Summary. (line 779) * Sun, Julian Ephemeris date %svARGUMENT special text: Sun data. (line 497) * Sun, local sidereal time %o*sARGUMENT special text <1>: Special Texts Summary. (line 757) * Sun, local sidereal time %o*sARGUMENT special text: Sun data. (line 467) * Sun, local sidereal time %osARGUMENT special text <1>: Special Texts Summary. (line 753) * Sun, local sidereal time %osARGUMENT special text: Sun data. (line 467) * Sun, local sidereal time %s*sARGUMENT special text <1>: Special Texts Summary. (line 757) * Sun, local sidereal time %s*sARGUMENT special text: Sun data. (line 467) * Sun, local sidereal time %ssARGUMENT special text <1>: Special Texts Summary. (line 753) * Sun, local sidereal time %ssARGUMENT special text: Sun data. (line 467) * Sun, lowest culmination point: Sun data. (line 37) * Sun, mean: Sun data. (line 501) * Sun, midnight height geocentric: Sun data. (line 747) * Sun, midnight height topocentric: Sun data. (line 700) * Sun, morning width geocentric: Sun data. (line 774) * Sun, morning width topocentric: Sun data. (line 728) * Sun, nautical twilight: Sun data. (line 257) * Sun, noon height geocentric: Sun data. (line 754) * Sun, noon height topocentric: Sun data. (line 707) * Sun, noon line: Sun data. (line 37) * Sun, period of double or shorter shadow length %u*RARGUMENT special text <1>: Special Texts Summary. (line 1088) * Sun, period of double or shorter shadow length %u*RARGUMENT special text: Sun data. (line 853) * Sun, period of double or shorter shadow length %uRARGUMENT special text <1>: Special Texts Summary. (line 1084) * Sun, period of double or shorter shadow length %uRARGUMENT special text: Sun data. (line 853) * Sun, period of longer than double shadow length %z*RARGUMENT special text <1>: Special Texts Summary. (line 1096) * Sun, period of longer than double shadow length %z*RARGUMENT special text: Sun data. (line 858) * Sun, period of longer than double shadow length %zRARGUMENT special text <1>: Special Texts Summary. (line 1092) * Sun, period of longer than double shadow length %zRARGUMENT special text: Sun data. (line 858) * Sun, period of longer than single shadow length %z*QARGUMENT special text <1>: Special Texts Summary. (line 1064) * Sun, period of longer than single shadow length %z*QARGUMENT special text: Sun data. (line 822) * Sun, period of longer than single shadow length %zQARGUMENT special text <1>: Special Texts Summary. (line 1060) * Sun, period of longer than single shadow length %zQARGUMENT special text: Sun data. (line 822) * Sun, period of single or shorter shadow length %u*QARGUMENT special text <1>: Special Texts Summary. (line 1056) * Sun, period of single or shorter shadow length %u*QARGUMENT special text: Sun data. (line 817) * Sun, period of single or shorter shadow length %uQARGUMENT special text <1>: Special Texts Summary. (line 1052) * Sun, period of single or shorter shadow length %uQARGUMENT special text: Sun data. (line 817) * Sun, refraction %o*iARGUMENT special text <1>: Special Texts Summary. (line 664) * Sun, refraction %o*iARGUMENT special text: Sun data. (line 415) * Sun, refraction %oiARGUMENT special text <1>: Special Texts Summary. (line 659) * Sun, refraction %oiARGUMENT special text: Sun data. (line 415) * Sun, refraction %s*iARGUMENT special text <1>: Special Texts Summary. (line 664) * Sun, refraction %s*iARGUMENT special text: Sun data. (line 415) * Sun, refraction %siARGUMENT special text <1>: Special Texts Summary. (line 659) * Sun, refraction %siARGUMENT special text: Sun data. (line 415) * Sun, rise azimuth geocentric: Sun data. (line 774) * Sun, rise azimuth topocentric: Sun data. (line 728) * Sun, rise height geocentric: Sun data. (line 761) * Sun, rise height topocentric: Sun data. (line 714) * Sun, set azimuth geocentric: Sun data. (line 783) * Sun, set azimuth topocentric: Sun data. (line 738) * Sun, set height geocentric: Sun data. (line 768) * Sun, set height topocentric: Sun data. (line 721) * Sun, single shadow length time at afternoon %s*QARGUMENT special text <1>: Special Texts Summary. (line 1048) * Sun, single shadow length time at afternoon %s*QARGUMENT special text: Sun data. (line 801) * Sun, single shadow length time at afternoon %sQARGUMENT special text <1>: Special Texts Summary. (line 1044) * Sun, single shadow length time at afternoon %sQARGUMENT special text: Sun data. (line 801) * Sun, single shadow length time at forenoon %o*QARGUMENT special text <1>: Special Texts Summary. (line 1040) * Sun, single shadow length time at forenoon %o*QARGUMENT special text: Sun data. (line 792) * Sun, single shadow length time at forenoon %oQARGUMENT special text <1>: Special Texts Summary. (line 1036) * Sun, single shadow length time at forenoon %oQARGUMENT special text: Sun data. (line 792) * Sun, standard non-visibility period: Sun data. (line 223) * Sun, standard rise time: Sun data. (line 169) * Sun, standard set time: Sun data. (line 195) * Sun, standard visibility period: Sun data. (line 215) * Sun, topocentric azimuth %o*bARGUMENT special text <1>: Special Texts Summary. (line 595) * Sun, topocentric azimuth %o*bARGUMENT special text: Sun data. (line 368) * Sun, topocentric azimuth %obARGUMENT special text <1>: Special Texts Summary. (line 590) * Sun, topocentric azimuth %obARGUMENT special text: Sun data. (line 368) * Sun, topocentric azimuth %s*bARGUMENT special text <1>: Special Texts Summary. (line 595) * Sun, topocentric azimuth %s*bARGUMENT special text: Sun data. (line 368) * Sun, topocentric azimuth %sbARGUMENT special text <1>: Special Texts Summary. (line 590) * Sun, topocentric azimuth %sbARGUMENT special text: Sun data. (line 368) * Sun, topocentric azimuth at standard rise time %o*LARGUMENT special text <1>: Special Texts Summary. (line 972) * Sun, topocentric azimuth at standard rise time %o*LARGUMENT special text: Sun data. (line 728) * Sun, topocentric azimuth at standard rise time %oLARGUMENT special text <1>: Special Texts Summary. (line 968) * Sun, topocentric azimuth at standard rise time %oLARGUMENT special text: Sun data. (line 728) * Sun, topocentric azimuth at standard set time %s*LARGUMENT special text <1>: Special Texts Summary. (line 980) * Sun, topocentric azimuth at standard set time %s*LARGUMENT special text: Sun data. (line 738) * Sun, topocentric azimuth at standard set time %sLARGUMENT special text <1>: Special Texts Summary. (line 976) * Sun, topocentric azimuth at standard set time %sLARGUMENT special text: Sun data. (line 738) * Sun, topocentric data: Sun data. (line 344) * Sun, topocentric declination %o*cARGUMENT special text <1>: Special Texts Summary. (line 605) * Sun, topocentric declination %o*cARGUMENT special text: Sun data. (line 372) * Sun, topocentric declination %ocARGUMENT special text <1>: Special Texts Summary. (line 600) * Sun, topocentric declination %ocARGUMENT special text: Sun data. (line 372) * Sun, topocentric declination %s*cARGUMENT special text <1>: Special Texts Summary. (line 605) * Sun, topocentric declination %s*cARGUMENT special text: Sun data. (line 372) * Sun, topocentric declination %scARGUMENT special text <1>: Special Texts Summary. (line 600) * Sun, topocentric declination %scARGUMENT special text: Sun data. (line 372) * Sun, topocentric distance %o*fARGUMENT special text <1>: Special Texts Summary. (line 635) * Sun, topocentric distance %o*fARGUMENT special text: Sun data. (line 397) * Sun, topocentric distance %ofARGUMENT special text <1>: Special Texts Summary. (line 630) * Sun, topocentric distance %ofARGUMENT special text: Sun data. (line 397) * Sun, topocentric distance %s*fARGUMENT special text <1>: Special Texts Summary. (line 635) * Sun, topocentric distance %s*fARGUMENT special text: Sun data. (line 397) * Sun, topocentric distance %sfARGUMENT special text <1>: Special Texts Summary. (line 630) * Sun, topocentric distance %sfARGUMENT special text: Sun data. (line 397) * Sun, topocentric ecliptic longitude %o*dARGUMENT special text <1>: Special Texts Summary. (line 615) * Sun, topocentric ecliptic longitude %o*dARGUMENT special text: Sun data. (line 382) * Sun, topocentric ecliptic longitude %odARGUMENT special text <1>: Special Texts Summary. (line 610) * Sun, topocentric ecliptic longitude %odARGUMENT special text: Sun data. (line 382) * Sun, topocentric ecliptic longitude %s*dARGUMENT special text <1>: Special Texts Summary. (line 615) * Sun, topocentric ecliptic longitude %s*dARGUMENT special text: Sun data. (line 382) * Sun, topocentric ecliptic longitude %sdARGUMENT special text <1>: Special Texts Summary. (line 610) * Sun, topocentric ecliptic longitude %sdARGUMENT special text: Sun data. (line 382) * Sun, topocentric elevation %o*aARGUMENT special text <1>: Special Texts Summary. (line 585) * Sun, topocentric elevation %o*aARGUMENT special text: Sun data. (line 344) * Sun, topocentric elevation %oaARGUMENT special text <1>: Special Texts Summary. (line 580) * Sun, topocentric elevation %oaARGUMENT special text: Sun data. (line 344) * Sun, topocentric elevation %s*aARGUMENT special text <1>: Special Texts Summary. (line 585) * Sun, topocentric elevation %s*aARGUMENT special text: Sun data. (line 344) * Sun, topocentric elevation %saARGUMENT special text <1>: Special Texts Summary. (line 580) * Sun, topocentric elevation %saARGUMENT special text: Sun data. (line 344) * Sun, topocentric elevation at standard rise time %o*KARGUMENT special text <1>: Special Texts Summary. (line 956) * Sun, topocentric elevation at standard rise time %o*KARGUMENT special text: Sun data. (line 714) * Sun, topocentric elevation at standard rise time %oKARGUMENT special text <1>: Special Texts Summary. (line 952) * Sun, topocentric elevation at standard rise time %oKARGUMENT special text: Sun data. (line 714) * Sun, topocentric elevation at standard set time %s*KARGUMENT special text <1>: Special Texts Summary. (line 964) * Sun, topocentric elevation at standard set time %s*KARGUMENT special text: Sun data. (line 721) * Sun, topocentric elevation at standard set time %sKARGUMENT special text <1>: Special Texts Summary. (line 960) * Sun, topocentric elevation at standard set time %sKARGUMENT special text: Sun data. (line 721) * Sun, topocentric elevation at Sun's astronomical midnight time %o*IARGUMENT special text <1>: Special Texts Summary. (line 938) * Sun, topocentric elevation at Sun's astronomical midnight time %o*IARGUMENT special text: Sun data. (line 700) * Sun, topocentric elevation at Sun's astronomical midnight time %oIARGUMENT special text <1>: Special Texts Summary. (line 933) * Sun, topocentric elevation at Sun's astronomical midnight time %oIARGUMENT special text: Sun data. (line 700) * Sun, topocentric elevation at Sun's astronomical midnight time %s*IARGUMENT special text <1>: Special Texts Summary. (line 938) * Sun, topocentric elevation at Sun's astronomical midnight time %s*IARGUMENT special text: Sun data. (line 700) * Sun, topocentric elevation at Sun's astronomical midnight time %sIARGUMENT special text <1>: Special Texts Summary. (line 933) * Sun, topocentric elevation at Sun's astronomical midnight time %sIARGUMENT special text: Sun data. (line 700) * Sun, topocentric elevation at Sun's astronomical noon time %o*JARGUMENT special text <1>: Special Texts Summary. (line 948) * Sun, topocentric elevation at Sun's astronomical noon time %o*JARGUMENT special text: Sun data. (line 707) * Sun, topocentric elevation at Sun's astronomical noon time %oJARGUMENT special text <1>: Special Texts Summary. (line 943) * Sun, topocentric elevation at Sun's astronomical noon time %oJARGUMENT special text: Sun data. (line 707) * Sun, topocentric elevation at Sun's astronomical noon time %s*JARGUMENT special text <1>: Special Texts Summary. (line 948) * Sun, topocentric elevation at Sun's astronomical noon time %s*JARGUMENT special text: Sun data. (line 707) * Sun, topocentric elevation at Sun's astronomical noon time %sJARGUMENT special text <1>: Special Texts Summary. (line 943) * Sun, topocentric elevation at Sun's astronomical noon time %sJARGUMENT special text: Sun data. (line 707) * Sun, topocentric horizontal parallax %o*gARGUMENT special text <1>: Special Texts Summary. (line 644) * Sun, topocentric horizontal parallax %o*gARGUMENT special text: Sun data. (line 404) * Sun, topocentric horizontal parallax %ogARGUMENT special text <1>: Special Texts Summary. (line 639) * Sun, topocentric horizontal parallax %ogARGUMENT special text: Sun data. (line 404) * Sun, topocentric horizontal parallax %s*gARGUMENT special text <1>: Special Texts Summary. (line 644) * Sun, topocentric horizontal parallax %s*gARGUMENT special text: Sun data. (line 404) * Sun, topocentric horizontal parallax %sgARGUMENT special text <1>: Special Texts Summary. (line 639) * Sun, topocentric horizontal parallax %sgARGUMENT special text: Sun data. (line 404) * Sun, topocentric right ascension %o*eARGUMENT special text <1>: Special Texts Summary. (line 625) * Sun, topocentric right ascension %o*eARGUMENT special text: Sun data. (line 390) * Sun, topocentric right ascension %oeARGUMENT special text <1>: Special Texts Summary. (line 620) * Sun, topocentric right ascension %oeARGUMENT special text: Sun data. (line 390) * Sun, topocentric right ascension %s*eARGUMENT special text <1>: Special Texts Summary. (line 625) * Sun, topocentric right ascension %s*eARGUMENT special text: Sun data. (line 390) * Sun, topocentric right ascension %seARGUMENT special text <1>: Special Texts Summary. (line 620) * Sun, topocentric right ascension %seARGUMENT special text: Sun data. (line 390) * Sun, topocentric semidiameter %o*hARGUMENT special text <1>: Special Texts Summary. (line 654) * Sun, topocentric semidiameter %o*hARGUMENT special text: Sun data. (line 411) * Sun, topocentric semidiameter %ohARGUMENT special text <1>: Special Texts Summary. (line 649) * Sun, topocentric semidiameter %ohARGUMENT special text: Sun data. (line 411) * Sun, topocentric semidiameter %s*hARGUMENT special text <1>: Special Texts Summary. (line 654) * Sun, topocentric semidiameter %s*hARGUMENT special text: Sun data. (line 411) * Sun, topocentric semidiameter %shARGUMENT special text <1>: Special Texts Summary. (line 649) * Sun, topocentric semidiameter %shARGUMENT special text: Sun data. (line 411) * Sun/Moon, delta astronomical midnight time %o*FARGUMENT special text <1>: Special Texts Summary. (line 902) * Sun/Moon, delta astronomical midnight time %o*FARGUMENT special text: Sun data. (line 634) * Sun/Moon, delta astronomical midnight time %oFARGUMENT special text <1>: Special Texts Summary. (line 897) * Sun/Moon, delta astronomical midnight time %oFARGUMENT special text: Sun data. (line 634) * Sun/Moon, delta astronomical midnight time %s*FARGUMENT special text <1>: Special Texts Summary. (line 902) * Sun/Moon, delta astronomical midnight time %s*FARGUMENT special text: Sun data. (line 634) * Sun/Moon, delta astronomical midnight time %sFARGUMENT special text <1>: Special Texts Summary. (line 897) * Sun/Moon, delta astronomical midnight time %sFARGUMENT special text: Sun data. (line 634) * Sun/Moon, delta astronomical noon time %o*GARGUMENT special text <1>: Special Texts Summary. (line 912) * Sun/Moon, delta astronomical noon time %o*GARGUMENT special text: Sun data. (line 652) * Sun/Moon, delta astronomical noon time %oGARGUMENT special text <1>: Special Texts Summary. (line 907) * Sun/Moon, delta astronomical noon time %oGARGUMENT special text: Sun data. (line 652) * Sun/Moon, delta astronomical noon time %s*GARGUMENT special text <1>: Special Texts Summary. (line 912) * Sun/Moon, delta astronomical noon time %s*GARGUMENT special text: Sun data. (line 652) * Sun/Moon, delta astronomical noon time %sGARGUMENT special text <1>: Special Texts Summary. (line 907) * Sun/Moon, delta astronomical noon time %sGARGUMENT special text: Sun data. (line 652) * Sun/Moon, delta geocentric azimuth %o*AARGUMENT special text <1>: Special Texts Summary. (line 828) * Sun/Moon, delta geocentric azimuth %o*AARGUMENT special text: Sun data. (line 564) * Sun/Moon, delta geocentric azimuth %oAARGUMENT special text <1>: Special Texts Summary. (line 823) * Sun/Moon, delta geocentric azimuth %oAARGUMENT special text: Sun data. (line 564) * Sun/Moon, delta geocentric azimuth %s*AARGUMENT special text <1>: Special Texts Summary. (line 828) * Sun/Moon, delta geocentric azimuth %s*AARGUMENT special text: Sun data. (line 564) * Sun/Moon, delta geocentric azimuth %sAARGUMENT special text <1>: Special Texts Summary. (line 823) * Sun/Moon, delta geocentric azimuth %sAARGUMENT special text: Sun data. (line 564) * Sun/Moon, delta geocentric azimuth at standard sunrise time %o*EARGUMENT special text <1>: Special Texts Summary. (line 884) * Sun/Moon, delta geocentric azimuth at standard sunrise time %o*EARGUMENT special text: Sun data. (line 618) * Sun/Moon, delta geocentric azimuth at standard sunrise time %oEARGUMENT special text <1>: Special Texts Summary. (line 880) * Sun/Moon, delta geocentric azimuth at standard sunrise time %oEARGUMENT special text: Sun data. (line 618) * Sun/Moon, delta geocentric azimuth at standard sunset time %s*EARGUMENT special text <1>: Special Texts Summary. (line 892) * Sun/Moon, delta geocentric azimuth at standard sunset time %s*EARGUMENT special text: Sun data. (line 626) * Sun/Moon, delta geocentric azimuth at standard sunset time %sEARGUMENT special text <1>: Special Texts Summary. (line 888) * Sun/Moon, delta geocentric azimuth at standard sunset time %sEARGUMENT special text: Sun data. (line 626) * Sun/Moon, delta geocentric elevation %o*zARGUMENT special text <1>: Special Texts Summary. (line 818) * Sun/Moon, delta geocentric elevation %o*zARGUMENT special text: Sun data. (line 558) * Sun/Moon, delta geocentric elevation %ozARGUMENT special text <1>: Special Texts Summary. (line 813) * Sun/Moon, delta geocentric elevation %ozARGUMENT special text: Sun data. (line 558) * Sun/Moon, delta geocentric elevation %s*zARGUMENT special text <1>: Special Texts Summary. (line 818) * Sun/Moon, delta geocentric elevation %s*zARGUMENT special text: Sun data. (line 558) * Sun/Moon, delta geocentric elevation %szARGUMENT special text <1>: Special Texts Summary. (line 813) * Sun/Moon, delta geocentric elevation %szARGUMENT special text: Sun data. (line 558) * Sun/Moon, delta geocentric elevation at standard sunrise time %o*DARGUMENT special text <1>: Special Texts Summary. (line 868) * Sun/Moon, delta geocentric elevation at standard sunrise time %o*DARGUMENT special text: Sun data. (line 602) * Sun/Moon, delta geocentric elevation at standard sunrise time %oDARGUMENT special text <1>: Special Texts Summary. (line 864) * Sun/Moon, delta geocentric elevation at standard sunrise time %oDARGUMENT special text: Sun data. (line 602) * Sun/Moon, delta geocentric elevation at standard sunset time %s*DARGUMENT special text <1>: Special Texts Summary. (line 876) * Sun/Moon, delta geocentric elevation at standard sunset time %s*DARGUMENT special text: Sun data. (line 610) * Sun/Moon, delta geocentric elevation at standard sunset time %sDARGUMENT special text <1>: Special Texts Summary. (line 872) * Sun/Moon, delta geocentric elevation at standard sunset time %sDARGUMENT special text: Sun data. (line 610) * Sun/Moon, delta standard rise time %(*KARGUMENT special text: Moon data. (line 611) * Sun/Moon, delta standard rise time %(KARGUMENT special text: Moon data. (line 611) * Sun/Moon, delta standard rise time %o*HARGUMENT special text <1>: Special Texts Summary. (line 920) * Sun/Moon, delta standard rise time %o*HARGUMENT special text: Sun data. (line 668) * Sun/Moon, delta standard rise time %oHARGUMENT special text <1>: Special Texts Summary. (line 916) * Sun/Moon, delta standard rise time %oHARGUMENT special text: Sun data. (line 668) * Sun/Moon, delta standard set time %)*KARGUMENT special text: Moon data. (line 627) * Sun/Moon, delta standard set time %)KARGUMENT special text: Moon data. (line 627) * Sun/Moon, delta standard set time %s*HARGUMENT special text <1>: Special Texts Summary. (line 928) * Sun/Moon, delta standard set time %s*HARGUMENT special text: Sun data. (line 684) * Sun/Moon, delta standard set time %sHARGUMENT special text <1>: Special Texts Summary. (line 924) * Sun/Moon, delta standard set time %sHARGUMENT special text: Sun data. (line 684) * Sun/Moon, delta topocentric azimuth %o*yARGUMENT special text <1>: Special Texts Summary. (line 808) * Sun/Moon, delta topocentric azimuth %o*yARGUMENT special text: Sun data. (line 539) * Sun/Moon, delta topocentric azimuth %oyARGUMENT special text <1>: Special Texts Summary. (line 803) * Sun/Moon, delta topocentric azimuth %oyARGUMENT special text: Sun data. (line 539) * Sun/Moon, delta topocentric azimuth %s*yARGUMENT special text <1>: Special Texts Summary. (line 808) * Sun/Moon, delta topocentric azimuth %s*yARGUMENT special text: Sun data. (line 539) * Sun/Moon, delta topocentric azimuth %syARGUMENT special text <1>: Special Texts Summary. (line 803) * Sun/Moon, delta topocentric azimuth %syARGUMENT special text: Sun data. (line 539) * Sun/Moon, delta topocentric azimuth at standard sunrise time %o*CARGUMENT special text <1>: Special Texts Summary. (line 852) * Sun/Moon, delta topocentric azimuth at standard sunrise time %o*CARGUMENT special text: Sun data. (line 586) * Sun/Moon, delta topocentric azimuth at standard sunrise time %oCARGUMENT special text <1>: Special Texts Summary. (line 848) * Sun/Moon, delta topocentric azimuth at standard sunrise time %oCARGUMENT special text: Sun data. (line 586) * Sun/Moon, delta topocentric azimuth at standard sunset time %s*CARGUMENT special text <1>: Special Texts Summary. (line 860) * Sun/Moon, delta topocentric azimuth at standard sunset time %s*CARGUMENT special text: Sun data. (line 594) * Sun/Moon, delta topocentric azimuth at standard sunset time %sCARGUMENT special text <1>: Special Texts Summary. (line 856) * Sun/Moon, delta topocentric azimuth at standard sunset time %sCARGUMENT special text: Sun data. (line 594) * Sun/Moon, delta topocentric elevation %o*xARGUMENT special text <1>: Special Texts Summary. (line 798) * Sun/Moon, delta topocentric elevation %o*xARGUMENT special text: Sun data. (line 525) * Sun/Moon, delta topocentric elevation %oxARGUMENT special text <1>: Special Texts Summary. (line 793) * Sun/Moon, delta topocentric elevation %oxARGUMENT special text: Sun data. (line 525) * Sun/Moon, delta topocentric elevation %s*xARGUMENT special text <1>: Special Texts Summary. (line 798) * Sun/Moon, delta topocentric elevation %s*xARGUMENT special text: Sun data. (line 525) * Sun/Moon, delta topocentric elevation %sxARGUMENT special text <1>: Special Texts Summary. (line 793) * Sun/Moon, delta topocentric elevation %sxARGUMENT special text: Sun data. (line 525) * Sun/Moon, delta topocentric elevation at standard sunrise time %o*BARGUMENT special text <1>: Special Texts Summary. (line 836) * Sun/Moon, delta topocentric elevation at standard sunrise time %o*BARGUMENT special text: Sun data. (line 570) * Sun/Moon, delta topocentric elevation at standard sunrise time %oBARGUMENT special text <1>: Special Texts Summary. (line 832) * Sun/Moon, delta topocentric elevation at standard sunrise time %oBARGUMENT special text: Sun data. (line 570) * Sun/Moon, delta topocentric elevation at standard sunset time %s*BARGUMENT special text <1>: Special Texts Summary. (line 844) * Sun/Moon, delta topocentric elevation at standard sunset time %s*BARGUMENT special text: Sun data. (line 578) * Sun/Moon, delta topocentric elevation at standard sunset time %sBARGUMENT special text <1>: Special Texts Summary. (line 840) * Sun/Moon, delta topocentric elevation at standard sunset time %sBARGUMENT special text: Sun data. (line 578) * Sundial: Sun data. (line 501) * Sunrise: Sun data. (line 6) * Sunrise and sunset, limit to actual day: Fixed date options. (line 171) * Sunrise and sunset, set reference altitude: Fixed date options. (line 130) * Sunset: Sun data. (line 6) * Suppress calendar sheet: Calendar options. (line 1382) * Suppress leading blank line of eternal holiday list: Calendar options. (line 40) * Suppress leading blank line of fixed date list: Fixed date options. (line 778) * Suppress title text of eternal holiday list: Calendar options. (line 45) * Suppress title text of fixed date list: Fixed date options. (line 808) * Switch character: Glossary. (line 685) * 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 422) * Synodic month, Moon: Moon data. (line 37) * 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 37) * Table of modes of the Moon oriented special texts: Moon data. (line 34) * Table of modes of the Sun oriented special texts: Sun data. (line 34) * 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 826) * Table of representation types of the Sun oriented special texts: Sun data. (line 1089) * 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) <1>: Moon data. (line 428) * Terrestrial Dynamical time (TDT): Sun data. (line 460) * Territory code <1>: Internationalization. (line 122) * Territory code: Calendar options. (line 153) * Text part: Glossary. (line 691) * 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 <1>: Text variables. (line 6) * Text variables, assignments <2>: Structure of resource file. (line 72) * Text variables, assignments: Fixed date options. (line 35) * Text variables, definition <1>: Text variables. (line 6) * Text variables, definition: Fixed date options. (line 35) * Text variables, export of local <1>: Text variables. (line 279) * Text variables, export of local: Fixed date options. (line 125) * Text variables, global <1>: Text variables. (line 6) * Text variables, global: Fixed date options. (line 35) * Text variables, local: Text variables. (line 6) * Text variables, management <1>: Text variables. (line 6) * Text variables, management: Fixed date options. (line 35) * Text variables, name space <1>: Text variables. (line 242) * Text variables, name space: Fixed date options. (line 35) * Text variables, numerical: Text variables. (line 293) * Text variables, operations <1>: Text variables. (line 293) * Text variables, operations: Structure of resource file. (line 72) * Text variables, references: Structure of resource file. (line 82) * Text variables, scope <1>: Text variables. (line 357) * Text variables, scope: Fixed date options. (line 35) * Text variables, simple decrement: Text variables. (line 299) * Text variables, simple increment: Text variables. (line 298) * 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 <1>: Text variables. (line 279) * Text variables, visibility of local: Fixed date options. (line 125) * Textual date %n[ARGUMENT] special text <1>: Special Texts Summary. (line 271) * Textual date %n[ARGUMENT] special text: Textual date. (line 6) * 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 1505) * Time, 12-hours display format: Actual clocktime. (line 27) * Time, 24-hours display format: Actual clocktime. (line 27) * Timezone <1>: Moon data. (line 807) * Timezone: Sun data. (line 1058) * Today's fixed dates: Fixed date options. (line 424) * Tomorrows' fixed dates: Fixed date options. (line 1330) * Topocentric data: Glossary. (line 695) * Topocentric data, Moon: Moon data. (line 256) * Topocentric data, Sun: Sun data. (line 344) * Total number of date variables: Date variables. (line 6) * Total number of text variables: Text variables. (line 6) * True solar day <1>: Glossary. (line 700) * True solar day: Sun data. (line 501) * True solar time <1>: Glossary. (line 700) * True solar time: Sun data. (line 501) * True track: Glossary. (line 707) * Twilight: Glossary. (line 720) * Twilight, amateur-astronomical: Sun data. (line 283) * Twilight, astronomical: Sun data. (line 309) * Twilight, civil: Sun data. (line 231) * Twilight, nautical: Sun data. (line 257) * txt2gcal, options: Invoking txt2gcal. (line 6) * txt2gcal, utility: Invoking txt2gcal. (line 6) * TXT2GCALPROG environment variable <1>: Environment Variables. (line 112) * TXT2GCALPROG environment variable: Text variables. (line 112) * Type of representation of Moon data and times <1>: Moon data. (line 799) * Type of representation of Moon data and times: Sun data. (line 870) * Type of representation of Sun data and times: Sun data. (line 870) * TZ environment variable: Environment Variables. (line 122) * Unit, Earth equator radius: Moon data. (line 350) * Universal time (UTC) <1>: Moon data. (line 450) * Universal time (UTC) <2>: Sun data. (line 482) * Universal time (UTC) <3>: Julian day number. (line 6) * Universal time (UTC) <4>: Actual clocktime. (line 6) * Universal time (UTC) <5>: Moon phase. (line 6) * Universal time (UTC): Calendar options. (line 1492) * Universal time 12-hour format suffix, display: Actual clocktime. (line 161) * Universal time hour, display: Actual clocktime. (line 134) * Universal time in HH:MM/DATE format, display: Actual clocktime. (line 104) * Universal time in M[M...]/DATE format, display: Actual clocktime. (line 119) * Universal time minute, display: Actual clocktime. (line 147) * Unix: Glossary. (line 726) * Unsigned angular value, Sun and Moon oriented special texts: Sun data. (line 977) * Unsigned decimal based rational number value, Sun and Moon oriented special texts: Sun data. (line 874) * Unsigned time value, Sun and Moon oriented special texts: Sun data. (line 945) * Use Eastern Orthodox churches' leap year rule: Calendar options. (line 1322) * USER environment variable <1>: Environment Variables. (line 126) * USER environment variable: Global options. (line 196) * 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 42) * 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 <1>: Glossary. (line 735) * Vernal equinox point on the ecliptic <2>: Moon data. (line 324) * Vernal equinox point on the ecliptic: Sun data. (line 382) * Version number, finding: Common options. (line 37) * Visibility of date variables: Date variables. (line 55) * Visibility of local date variables <1>: Date variables. (line 104) * Visibility of local date variables: Fixed date options. (line 29) * Visibility of local text variables <1>: Text variables. (line 279) * Visibility of local text variables: Fixed date options. (line 125) * 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 1356) * Week number, ISO-8601:1988 <1>: Week number. (line 7) * Week number, ISO-8601:1988 <2>: Date part of a line. (line 57) * Week number, ISO-8601:1988 <3>: Fixed date options. (line 757) * Week number, ISO-8601:1988: Calendar options. (line 1363) * Week number, standard <1>: Week number. (line 7) * Week number, standard <2>: Date part of a line. (line 57) * Week number, standard <3>: Fixed date options. (line 757) * Week number, standard: Calendar options. (line 1374) * Week numbers in calendar sheet: Calendar options. (line 1349) * Weekday name %[FORMAT]K[DATE] special text <1>: Special Texts Summary. (line 90) * Weekday name %[FORMAT]K[DATE] special text: Weekday name. (line 6) * Weekday number %>1&*E[DATE] special text <1>: Special Texts Summary. (line 112) * Weekday number %>1&*E[DATE] special text: Weekday number. (line 36) * Weekday number %>1&*I[DATE] special text <1>: Special Texts Summary. (line 118) * Weekday number %>1&*I[DATE] special text: Weekday number. (line 55) * Weekday number %>1&*J[DATE] special text <1>: Special Texts Summary. (line 124) * Weekday number %>1&*J[DATE] special text: Weekday number. (line 74) * Weekday number %>1&*S[DATE] special text <1>: Special Texts Summary. (line 130) * Weekday number %>1&*S[DATE] special text: Weekday number. (line 95) * Weekday number %>1&*T[DATE] special text <1>: Special Texts Summary. (line 136) * Weekday number %>1&*T[DATE] special text: Weekday number. (line 119) * Weekday number %>1&*W[DATE] special text <1>: Special Texts Summary. (line 106) * Weekday number %>1&*W[DATE] special text: Weekday number. (line 18) * Weekday number %[FORMAT]?[DATE] special texts <1>: Special Texts Summary. (line 101) * Weekday number %[FORMAT]?[DATE] special texts: Weekday number. (line 6) * Weekday number %E[DATE] special text <1>: Special Texts Summary. (line 109) * Weekday number %E[DATE] special text: Weekday number. (line 28) * Weekday number %I[DATE] special text <1>: Special Texts Summary. (line 115) * Weekday number %I[DATE] special text: Weekday number. (line 46) * Weekday number %J[DATE] special text <1>: Special Texts Summary. (line 121) * Weekday number %J[DATE] special text: Weekday number. (line 65) * Weekday number %S[DATE] special text <1>: Special Texts Summary. (line 127) * Weekday number %S[DATE] special text: Weekday number. (line 84) * Weekday number %T[DATE] special text <1>: Special Texts Summary. (line 133) * Weekday number %T[DATE] special text: Weekday number. (line 108) * Weekday number %W[DATE] special text <1>: Special Texts Summary. (line 103) * Weekday number %W[DATE] special text: Weekday number. (line 10) * Weeks' fixed dates: Fixed date options. (line 1342) * Whitespace character <1>: Glossary. (line 739) * Whitespace character <2>: Error Codes. (line 6) * Whitespace character <3>: Comment line. (line 6) * Whitespace character: Text part of a line. (line 93) * Whitespace separator character <1>: Include directives. (line 23) * Whitespace separator character <2>: Structure of resource file. (line 6) * Whitespace separator character: Options. (line 66) * Winter point on the ecliptic: Glossary. (line 744) * Winter solstice <1>: Glossary. (line 744) * Winter solstice: Calendar options. (line 48) * Wintertime: Sun data. (line 1058) * Word: Glossary. (line 749) * Word boundaries, matching in regexp: Regexp Operators. (line 274) * Word, regexp definition: Regexp Operators. (line 252) * Year calendar sheet blocks, number: Calendar options. (line 1386) * Year calendar sheet, force output: Calendar options. (line 1386) * Year difference value: Difference value. (line 10) * Year mode, single: Single commands. (line 18) * Year number %>04*Y[DATE] special text <1>: Special Texts Summary. (line 200) * Year number %>04*Y[DATE] special text: Year number. (line 14) * Year number %[FORMAT]Y[DATE] special text <1>: Special Texts Summary. (line 195) * Year number %[FORMAT]Y[DATE] special text: Year number. (line 6) * Year number %Y[DATE] special text <1>: Special Texts Summary. (line 197) * Year number %Y[DATE] special text: Year number. (line 7) * Years' fixed dates: Fixed date options. (line 1417) * Zodiacal line <1>: Moon data. (line 324) * Zodiacal line: Sun data. (line 382) * Zodiacal marker holidays in eternal holiday list: Calendar options. (line 134) * Zuhr prayer time: Glossary. (line 753) * Zuhr, Islamic prayer time: Sun data. (line 49) * {EXPRESSION} regexp, interval expressions: Regexp Operators. (line 233) * | regexp, operator: Regexp Operators. (line 170) * ~ line break-up character <1>: Text part of a line. (line 6) * ~ line break-up character: Fixed date options. (line 386)  Tag Table: Node: Top1620 Node: Preface8127 Node: Preface-Footnotes19205 Ref: Preface-Footnote-119264 Ref: Preface-Footnote-219566 Node: Gcal Introduction19635 Node: Gcal Introduction-Footnotes23200 Ref: Gcal Introduction-Footnote-123279 Ref: Gcal Introduction-Footnote-223310 Ref: Gcal Introduction-Footnote-323331 Node: Invoking Gcal23350 Node: Invoking Gcal-Footnotes24715 Ref: Invoking Gcal-Footnote-124786 Node: Command line arguments24876 Node: Command line arguments-Footnotes26553 Ref: Command line arguments-Footnote-126642 Node: Options26680 Node: Options-Footnotes30017 Ref: Options-Footnote-130076 Node: Common options30113 Node: Global options31356 Ref: x-response-file31540 Ref: x-debug-internal32415 Ref: x-debug-abort32952 Ref: x-pager33168 Ref: x-highlighting35897 Ref: x-mail39876 Node: Global options-Footnotes42003 Ref: Global options-Footnote-142076 Ref: Global options-Footnote-242142 Ref: Global options-Footnote-342192 Ref: Global options-Footnote-442238 Ref: Global options-Footnote-542281 Ref: Global options-Footnote-642350 Ref: Global options-Footnote-742405 Node: Calendar options42454 Ref: x-holiday-list42694 Ref: x-astronomical-holidays44051 Ref: x-bahai-holidays44476 Ref: x-chinese-flexible-holidays44863 Ref: x-chinese-holidays45255 Ref: x-islamic-civil-holidays45781 Ref: x-japanese-flexible-holidays46012 Ref: x-japanese-holidays46363 Ref: x-persian-jalaali-holidays47582 Ref: x-cc-holidays48258 Ref: x-type65578 Ref: x-orthodox-calendar66653 Ref: x-iso-week-number68190 Ref: x-blocks69615 Ref: x-starting-day72431 Ref: x-time-offset73091 Ref: x-date-format79739 Ref: x-translate-string83552 Node: Calendar options-Footnotes85269 Ref: Calendar options-Footnote-185346 Ref: Calendar options-Footnote-285430 Ref: Calendar options-Footnote-385468 Ref: Calendar options-Footnote-485537 Ref: Calendar options-Footnote-585734 Node: Fixed date options85835 Ref: x-date-variable86016 Ref: x-text-variable87116 Ref: x-adjust-value91698 Ref: x-atmosphere92909 Ref: x-limit93990 Ref: x-cycle-end96586 Ref: x-cycle-step99779 Ref: x-precise102267 Ref: x-execute-command102903 Ref: x-filter-text105064 Ref: x-ignore-case106243 Ref: x-list-of-fixed-dates106769 Ref: x-resource-file108607 Ref: x-biorhythm-axis115452 Ref: x-moonimage-lines116749 Ref: x-list-mode125408 Ref: x-period-of-fixed-dates125695 Node: Fixed date options-Footnotes149921 Ref: Fixed date options-Footnote-1150002 Ref: Fixed date options-Footnote-2150268 Ref: Fixed date options-Footnote-3150426 Ref: Fixed date options-Footnote-4150677 Ref: Fixed date options-Footnote-5150798 Ref: Fixed date options-Footnote-6150975 Ref: Fixed date options-Footnote-7151150 Ref: Fixed date options-Footnote-8151206 Ref: Fixed date options-Footnote-9151277 Ref: Fixed date options-Footnote-10151323 Ref: Fixed date options-Footnote-11151369 Ref: Fixed date options-Footnote-12151453 Ref: Fixed date options-Footnote-13151480 Ref: Fixed date options-Footnote-14151534 Ref: Fixed date options-Footnote-15151588 Ref: Fixed date options-Footnote-16151654 Node: Response file151720 Node: Actual date modifier153864 Node: Commands163107 Node: Single commands165286 Ref: x-mm-yyyy166150 Node: 3-Month mode commands167263 Node: Lists of commands168128 Node: Ranges of commands169313 Node: The GCAL environment variable170419 Node: Eternal Holidays171376 Node: Fixed Dates176069 Node: Resource file181010 Ref: x-File-searching-mechanism181945 Node: Resource file-Footnotes185408 Ref: Resource file-Footnote-1185479 Ref: Resource file-Footnote-2185621 Ref: Resource file-Footnote-3185739 Ref: Resource file-Footnote-4185776 Ref: Resource file-Footnote-5185841 Node: Structure of resource file185970 Node: Structure of resource file-Footnotes188613 Ref: Structure of resource file-Footnote-1188710 Ref: Structure of resource file-Footnote-2188781 Node: Date part of a line188974 Node: Further date part attributes195406 Node: Lists of days196779 Node: Ranges of days199931 Node: Ranges of days-Footnotes204501 Ref: Ranges of days-Footnote-1204574 Ref: Ranges of days-Footnote-2204657 Node: Repetition factor of days204683 Node: Repetition factor of days-Footnotes208753 Ref: Repetition factor of days-Footnote-1208848 Ref: Repetition factor of days-Footnote-2208879 Node: Appearance factor of days208973 Node: Appearance factor of days-Footnotes215598 Ref: Appearance factor of days-Footnote-1215693 Node: Text part of a line215776 Node: Text part of a line-Footnotes221577 Ref: Text part of a line-Footnote-1221660 Ref: Text part of a line-Footnote-2221686 Ref: Text part of a line-Footnote-3221730 Ref: Text part of a line-Footnote-4221824 Node: Special Texts processed221894 Node: Special Texts processed-Footnotes224138 Ref: Special Texts processed-Footnote-1224229 Node: Comment line224246 Node: Comment line-Footnotes226696 Ref: Comment line-Footnote-1226765 Node: Include directives226798 Node: Include directives-Footnotes229696 Ref: Include directives-Footnote-1229777 Ref: Include directives-Footnote-2229852 Ref: Include directives-Footnote-3229912 Ref: Include directives-Footnote-4230019 Ref: Include directives-Footnote-5230101 Ref: Include directives-Footnote-6230157 Node: Date variables230263 Node: Date variables-Footnotes236648 Ref: Date variables-Footnote-1236721 Ref: Date variables-Footnote-2236987 Ref: Date variables-Footnote-3237058 Ref: Date variables-Footnote-4237132 Node: Text variables237167 Node: Text variables-Footnotes251519 Ref: Text variables-Footnote-1251592 Ref: Text variables-Footnote-2251666 Node: Resource file examples251701 Node: Resource file examples-Footnotes265045 Ref: Resource file examples-Footnote-1265134 Node: Todays Calendar265200 Node: Gcal Utilities269878 Node: Invoking tcal270585 Node: Invoking tcal-Footnotes272427 Ref: Invoking tcal-Footnote-1272498 Node: Invoking txt2gcal272548 Node: Invoking gcal2txt274906 Node: Internationalization276895 Node: Internationalization-Footnotes282676 Ref: Internationalization-Footnote-1282761 Ref: Internationalization-Footnote-2282821 Ref: Internationalization-Footnote-3282877 Ref: Internationalization-Footnote-4282942 Ref: Internationalization-Footnote-5283047 Ref: Internationalization-Footnote-6283128 Node: Metasymbols283234 Node: Regular Expressions284697 Node: Regexp Usage286356 Node: Regexp Usage-Footnotes286979 Ref: Regexp Usage-Footnote-1287048 Node: Regexp Operators287131 Node: Regexp Operators-Footnotes298627 Ref: Regexp Operators-Footnote-1298704 Ref: Regexp Operators-Footnote-2298772 Ref: Regexp Operators-Footnote-3298823 Ref: Regexp Operators-Footnote-4298911 Ref: Regexp Operators-Footnote-5298968 Node: Regexp Summary299029 Node: Regexp Summary-Footnotes301246 Ref: Regexp Summary-Footnote-1301319 Node: Special Texts301385 Node: Exclusions305067 Node: Exclusions with date argument305614 Node: Inclusive date period306777 Node: Exclusive date period310223 Node: Exclusions without any argument313633 Node: Inclusive day period314697 Node: Exclusive day period315859 Node: Replacements316962 Node: Replacements with date argument317856 Node: Replacements with date argument-Footnotes319461 Ref: Replacements with date argument-Footnote-1319568 Node: Weekday name319656 Node: Weekday number320720 Node: Day-of-year number326196 Node: Day number327738 Node: Week number329105 Node: Month name329926 Node: Month number330691 Node: Year number332092 Node: Moon phase332845 Node: Biorhythm335947 Node: Difference value340242 Ref: x-Age-value340814 Node: Replacements with other argument341784 Node: Actual clocktime342944 Ref: x-Actual-local-time344531 Node: Actual clocktime-Footnotes352469 Ref: Actual clocktime-Footnote-1352546 Node: Textual date352604 Node: Julian day number353298 Node: Geographical distance and course angle355090 Node: Geographical distance and course angle-Footnotes359849 Ref: Geographical distance and course angle-Footnote-1359970 Node: Sun data360668 Ref: x-Sun-midnight362525 Ref: x-Sun-noon363313 Ref: x-Sun-standard-rise370596 Ref: x-Sun-standard-set372305 Ref: x-Sun-asr-1408551 Ref: x-Sun-asr-2410785 Ref: x-Sun-representation412755 Ref: x-Sun-event-texts415109 Ref: x-Sun-arguments419627 Node: Moon data432796 Ref: x-Moon-midnight434654 Ref: x-Moon-noon435973 Ref: x-Moon-standard-rise444428 Ref: x-Moon-standard-set446354 Node: Contents of Environment variable492014 Node: Replacements without any argument492587 Node: Other difference values493015 Node: Highlighting495766 Node: Shell Command502870 Node: Special Texts Summary504289 Node: Obsolete Special Texts580141 Node: Table of Obsolete Special Texts581135 Node: Table of Obsolete Date Format Elements584170 Node: Table of Obsolete Date Formats585810 Node: Format Instruction586621 Node: Coding Scheme589324 Node: Coding Scheme Table 1590807 Node: Coding Scheme Table 2593781 Node: Environment Variables596306 Ref: x-GCAL596562 Ref: x-GCAL_COLUMNS596651 Ref: x-COLUMNS596651 Ref: x-GCAL_DATE_FORMAT596840 Ref: x-GCAL_LINES597008 Ref: x-LINES597008 Ref: x-GCAL_SYS_DATADIR597193 Ref: x-GCAL_USR_DATADIR597392 Ref: x-GCALANSI597623 Ref: x-GCALPATH597857 Ref: x-GCALPROG598052 Ref: x-HOME598527 Ref: x-LOGNAME599287 Ref: x-MAILPROG599440 Ref: x-MAILTO599723 Ref: x-PAGER599923 Ref: x-PATH600088 Ref: x-TERM600274 Ref: x-TXT2GCALPROG600356 Ref: x-USER601054 Node: Error Codes601235 Ref: x-126-Error-code601519 Ref: x-119-Error-code601974 Ref: x-118-Error-code602074 Ref: x-113-Error-code602406 Ref: x-2-Error-code603063 Ref: x-1-Error-code603130 Node: Glossary603280 Node: Argument Index630703 Node: Variable Index658590 Node: Table Index664767 Node: GNU Free Documentation License672523 Node: Concept Index697714  End Tag Table gcal-3.6.3/doc/en/Makefile.am0000644000175000017500000000162212125364447012566 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 2 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-3.6.3/doc/en/fdl.texi0000644000175000017500000005603712125364451012177 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-3.6.3/ABOUT-NLS0000644000175000017500000023334012125375415010613 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. 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://www.iro.umontreal.ca/contrib/po/HTML/', in the "National 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 `translation@iro.umontreal.ca' 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 October 2006. 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 +----------------------------------------------------+ GNUnet | [] | a2ps | [] [] [] [] [] | aegis | () | ant-phone | () | anubis | [] | ap-utils | | aspell | [] [] [] [] [] | bash | [] [] [] | batchelor | [] | bfd | | bibshelf | [] | binutils | [] | bison | [] [] | bison-runtime | | bluez-pin | [] [] [] [] [] | cflow | [] | clisp | [] [] | console-tools | [] [] | coreutils | [] [] [] | cpio | | cpplib | [] [] [] | cryptonit | [] | darkstat | [] () [] | dialog | [] [] [] [] [] [] | diffutils | [] [] [] [] [] [] | doodle | [] | e2fsprogs | [] [] | enscript | [] [] [] [] | error | [] [] [] [] | fetchmail | [] [] () [] | fileutils | [] [] | findutils | [] [] [] | flex | [] [] [] | fslint | [] | gas | | gawk | [] [] [] | gbiff | [] | gcal | [] | gcc | [] | gettext-examples | [] [] [] [] [] | gettext-runtime | [] [] [] [] [] | gettext-tools | [] [] | gimp-print | [] [] [] [] | gip | [] | gliv | [] | glunarclock | [] | gmult | [] [] | gnubiff | () | gnucash | () () [] | gnucash-glossary | [] () | gnuedu | | gnulib | [] [] [] [] [] [] | 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 | [] [] [] [] | gst-plugins-base | [] [] [] | gst-plugins-good | [] [] [] [] [] [] [] | gstreamer | [] [] [] [] [] [] [] | gtick | () | gtkam | [] [] [] | gtkorphan | [] [] | gtkspell | [] [] [] [] | gutenprint | [] | hello | [] [] [] [] [] | id-utils | [] [] | impost | | indent | [] [] [] | 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 | | lynx | [] [] [] [] | m4 | [] [] [] [] | mailutils | [] | make | [] [] | man-db | [] () [] [] | minicom | [] [] [] | mysecretdiary | [] [] | nano | [] [] [] | nano_1_0 | [] () [] [] | opcodes | [] | parted | | pilot-qof | [] | psmisc | [] | pwdutils | | python | | qof | | radius | [] | recode | [] [] [] [] [] [] | rpm | [] [] | screem | | scrollkeeper | [] [] [] [] [] [] [] [] | sed | [] [] [] | sh-utils | [] [] | shared-mime-info | [] [] [] [] | sharutils | [] [] [] [] [] [] | shishi | | silky | | skencil | [] () | sketch | [] () | solfege | | soundtracker | [] [] | sp | [] | stardict | [] | system-tools-ba... | [] [] [] [] [] [] [] [] [] | tar | [] | texinfo | [] [] [] | textutils | [] [] [] | tin | () () | tp-robot | [] | tuxpaint | [] [] [] [] [] | unicode-han-tra... | | unicode-transla... | | util-linux | [] [] [] [] | 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 10 0 1 2 9 22 1 42 41 2 60 95 16 1 17 16 es et eu fa fi fr ga gl gu he hi hr hu id is it +--------------------------------------------------+ GNUnet | | a2ps | [] [] [] () | aegis | | ant-phone | [] | anubis | [] | ap-utils | [] [] | aspell | [] [] [] | bash | [] [] [] | batchelor | [] [] | bfd | [] | bibshelf | [] [] [] | binutils | [] [] [] | bison | [] [] [] [] [] [] | bison-runtime | [] [] [] [] [] | bluez-pin | [] [] [] [] [] | cflow | [] | clisp | [] [] | console-tools | | coreutils | [] [] [] [] [] [] | cpio | [] [] [] | cpplib | [] [] | cryptonit | [] | darkstat | [] () [] [] [] | dialog | [] [] [] [] [] [] [] [] | diffutils | [] [] [] [] [] [] [] [] [] | doodle | [] [] | e2fsprogs | [] [] [] | enscript | [] [] [] | error | [] [] [] [] [] | fetchmail | [] | fileutils | [] [] [] [] [] [] | findutils | [] [] [] [] | flex | [] [] [] | fslint | [] | gas | [] [] | gawk | [] [] [] [] | gbiff | [] | gcal | [] [] | gcc | [] | gettext-examples | [] [] [] [] [] [] | gettext-runtime | [] [] [] [] [] [] | gettext-tools | [] [] [] | gimp-print | [] [] | gip | [] [] [] | gliv | () | glunarclock | [] [] [] | gmult | [] [] [] | gnubiff | () () | gnucash | () () () | gnucash-glossary | [] [] | gnuedu | [] | gnulib | [] [] [] [] [] [] [] [] | 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 | [] [] [] | gst-plugins-base | [] [] | gst-plugins-good | [] [] [] | gstreamer | [] [] [] | gtick | [] | gtkam | [] [] [] [] | gtkorphan | [] [] | gtkspell | [] [] [] [] [] [] | gutenprint | [] | hello | [] [] [] [] [] [] [] [] [] [] [] [] [] | id-utils | [] [] [] [] [] | impost | [] [] | indent | [] [] [] [] [] [] [] [] [] [] | 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 | [] [] [] | lynx | [] [] [] | m4 | [] [] [] [] | mailutils | [] [] | make | [] [] [] [] [] [] [] [] | man-db | () | minicom | [] [] [] [] | mysecretdiary | [] [] [] | nano | [] [] [] [] [] [] | nano_1_0 | [] [] [] [] [] | opcodes | [] [] [] [] | parted | [] [] [] [] | pilot-qof | | psmisc | [] [] [] | pwdutils | | python | | qof | [] | radius | [] [] | recode | [] [] [] [] [] [] [] [] | rpm | [] [] | screem | | scrollkeeper | [] [] [] | sed | [] [] [] [] [] | sh-utils | [] [] [] [] [] [] [] | shared-mime-info | [] [] [] [] [] [] | sharutils | [] [] [] [] [] [] [] [] | shishi | | silky | [] | skencil | [] [] | sketch | [] [] | solfege | [] | soundtracker | [] [] [] | sp | [] | stardict | [] | system-tools-ba... | [] [] [] [] [] [] [] [] | tar | [] [] [] [] [] [] [] | texinfo | [] [] | textutils | [] [] [] [] [] | tin | [] () | tp-robot | [] [] [] [] | tuxpaint | [] [] | unicode-han-tra... | | unicode-transla... | [] [] | util-linux | [] [] [] [] [] [] [] | 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 88 22 14 2 40 115 61 14 1 8 1 6 59 31 0 52 ja ko ku ky lg lt lv mk mn ms mt nb ne nl nn no +-------------------------------------------------+ GNUnet | | a2ps | () [] [] () | aegis | () | ant-phone | [] | anubis | [] [] [] | ap-utils | [] | aspell | [] [] | bash | [] | batchelor | [] [] | bfd | | bibshelf | [] | binutils | | bison | [] [] [] | bison-runtime | [] [] [] | bluez-pin | [] [] [] | cflow | | clisp | [] | console-tools | | coreutils | [] | cpio | | cpplib | [] | cryptonit | [] | darkstat | [] [] | dialog | [] [] | diffutils | [] [] [] | doodle | | e2fsprogs | [] | enscript | [] | error | [] | fetchmail | [] [] | fileutils | [] [] | findutils | [] | flex | [] [] | fslint | [] [] | gas | | gawk | [] [] | gbiff | [] | gcal | | gcc | | gettext-examples | [] [] | gettext-runtime | [] [] [] | gettext-tools | [] [] | gimp-print | [] [] | gip | [] [] | gliv | [] | glunarclock | [] [] | gmult | [] [] | gnubiff | | gnucash | () () | gnucash-glossary | [] | gnuedu | | gnulib | [] [] [] [] | 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 | [] | gst-plugins-base | | gst-plugins-good | [] | gstreamer | [] | gtick | | gtkam | [] | gtkorphan | [] | gtkspell | [] [] | gutenprint | | hello | [] [] [] [] [] [] | id-utils | [] | impost | | indent | [] [] | 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 | [] | lynx | [] [] | m4 | [] [] | mailutils | | make | [] [] [] | man-db | () | minicom | [] | mysecretdiary | [] | nano | [] [] [] | nano_1_0 | [] [] [] | opcodes | [] | parted | [] [] | pilot-qof | | psmisc | [] [] [] | pwdutils | | python | | qof | | radius | | recode | [] | rpm | [] [] | screem | [] | scrollkeeper | [] [] [] [] | sed | [] [] | sh-utils | [] [] | shared-mime-info | [] [] [] [] [] | sharutils | [] [] | shishi | | silky | [] | skencil | | sketch | | solfege | | soundtracker | | sp | () | stardict | [] [] | system-tools-ba... | [] [] [] [] | tar | [] [] [] | texinfo | [] [] [] | textutils | [] [] [] | tin | | tp-robot | [] | tuxpaint | [] | unicode-han-tra... | | unicode-transla... | | util-linux | [] [] | vorbis-tools | [] | wastesedge | [] | wdiff | [] [] | wget | [] [] | xchat | [] [] [] [] | xkeyboard-config | [] | xpad | [] [] [] | +-------------------------------------------------+ ja ko ku ky lg lt lv mk mn ms mt nb ne nl nn no 52 24 2 2 1 3 0 2 3 21 0 15 1 97 5 1 nso or pa pl pt pt_BR rm ro ru rw sk sl sq sr sv ta +------------------------------------------------------+ GNUnet | | a2ps | () [] [] [] [] [] [] | aegis | () () | ant-phone | [] [] | anubis | [] [] [] | ap-utils | () | aspell | [] [] | bash | [] [] [] | batchelor | [] [] | bfd | | bibshelf | [] | binutils | [] [] | bison | [] [] [] [] [] | bison-runtime | [] [] [] [] | bluez-pin | [] [] [] [] [] [] [] [] [] | cflow | [] | clisp | [] | console-tools | [] | coreutils | [] [] [] [] | cpio | [] [] [] | cpplib | [] | cryptonit | [] [] | darkstat | [] [] [] [] [] [] | dialog | [] [] [] [] [] [] [] [] [] | diffutils | [] [] [] [] [] [] | doodle | [] [] | e2fsprogs | [] [] | enscript | [] [] [] [] [] | error | [] [] [] [] | fetchmail | [] [] [] | fileutils | [] [] [] [] [] | findutils | [] [] [] [] [] [] | flex | [] [] [] [] [] | fslint | [] [] [] [] | gas | | gawk | [] [] [] [] | gbiff | [] | gcal | [] | gcc | [] | gettext-examples | [] [] [] [] [] [] [] [] | gettext-runtime | [] [] [] [] [] [] [] [] | gettext-tools | [] [] [] [] [] [] [] | gimp-print | [] [] | gip | [] [] [] [] | gliv | [] [] [] [] | glunarclock | [] [] [] [] [] [] | gmult | [] [] [] [] | gnubiff | () | gnucash | () [] | gnucash-glossary | [] [] [] | gnuedu | | gnulib | [] [] [] [] [] | 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 | [] [] [] [] | gst-plugins-base | [] | gst-plugins-good | [] [] [] [] | gstreamer | [] [] [] | gtick | [] | gtkam | [] [] [] [] | gtkorphan | [] | gtkspell | [] [] [] [] [] [] [] [] | gutenprint | [] | hello | [] [] [] [] [] [] [] [] | id-utils | [] [] [] [] | impost | [] | indent | [] [] [] [] [] [] | 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 | [] | lynx | [] [] [] | m4 | [] [] [] [] [] | mailutils | [] [] [] [] | make | [] [] [] [] | man-db | [] [] | minicom | [] [] [] [] [] | mysecretdiary | [] [] [] [] | nano | [] [] [] | nano_1_0 | [] [] [] [] | opcodes | [] [] | parted | [] | pilot-qof | [] | psmisc | [] [] | pwdutils | [] [] | python | | qof | [] [] | radius | [] [] | recode | [] [] [] [] [] [] [] | rpm | [] [] [] [] | screem | | scrollkeeper | [] [] [] [] [] [] [] | sed | [] [] [] [] [] [] [] [] [] | sh-utils | [] [] [] | shared-mime-info | [] [] [] [] [] | sharutils | [] [] [] [] | shishi | [] | silky | [] | skencil | [] [] [] | sketch | [] [] [] | solfege | [] | soundtracker | [] [] | sp | | stardict | [] [] [] | system-tools-ba... | [] [] [] [] [] [] [] [] [] | tar | [] [] [] [] [] | texinfo | [] [] [] [] | textutils | [] [] [] | tin | () | tp-robot | [] | tuxpaint | [] [] [] [] [] | unicode-han-tra... | | unicode-transla... | | util-linux | [] [] [] [] | vorbis-tools | [] [] | wastesedge | | wdiff | [] [] [] [] [] [] | wget | [] [] [] [] | xchat | [] [] [] [] [] [] [] | xkeyboard-config | [] [] | xpad | [] [] [] | +------------------------------------------------------+ nso or pa pl pt pt_BR rm ro ru rw sk sl sq sr sv ta 0 2 3 58 30 54 5 73 72 4 40 46 11 50 128 2 tg th tk tr uk ven vi wa xh zh_CN zh_HK zh_TW zu +---------------------------------------------------+ GNUnet | [] | 2 a2ps | [] [] [] | 19 aegis | | 0 ant-phone | [] [] | 6 anubis | [] [] [] | 11 ap-utils | () [] | 4 aspell | [] [] [] | 15 bash | [] | 11 batchelor | [] [] | 9 bfd | | 1 bibshelf | [] | 7 binutils | [] [] [] | 9 bison | [] [] [] | 19 bison-runtime | [] [] [] | 15 bluez-pin | [] [] [] [] [] [] | 28 cflow | [] [] | 5 clisp | | 6 console-tools | [] [] | 5 coreutils | [] [] | 16 cpio | [] [] [] | 9 cpplib | [] [] [] [] | 11 cryptonit | | 5 darkstat | [] () () | 15 dialog | [] [] [] [] [] | 30 diffutils | [] [] [] [] | 28 doodle | [] | 6 e2fsprogs | [] [] | 10 enscript | [] [] [] | 16 error | [] [] [] [] | 18 fetchmail | [] [] | 12 fileutils | [] [] [] | 18 findutils | [] [] [] | 17 flex | [] [] | 15 fslint | [] | 9 gas | [] | 3 gawk | [] [] | 15 gbiff | [] | 5 gcal | [] | 5 gcc | [] [] [] | 6 gettext-examples | [] [] [] [] [] [] | 27 gettext-runtime | [] [] [] [] [] [] | 28 gettext-tools | [] [] [] [] [] | 19 gimp-print | [] [] | 12 gip | [] [] | 12 gliv | [] [] | 8 glunarclock | [] [] [] | 15 gmult | [] [] [] [] | 15 gnubiff | [] | 1 gnucash | () | 2 gnucash-glossary | [] [] | 9 gnuedu | [] | 2 gnulib | [] [] [] [] [] | 28 gnunet-gtk | | 1 gnutls | | 2 gpe-aerial | [] [] | 14 gpe-beam | [] [] | 14 gpe-calendar | [] | 3 gpe-clock | [] [] [] [] | 21 gpe-conf | [] [] | 14 gpe-contacts | [] [] | 10 gpe-edit | [] [] [] [] | 20 gpe-filemanager | [] | 6 gpe-go | [] [] | 15 gpe-login | [] [] [] [] [] | 21 gpe-ownerinfo | [] [] [] [] | 21 gpe-package | [] | 6 gpe-sketchbook | [] [] | 16 gpe-su | [] [] [] | 20 gpe-taskmanager | [] [] [] | 20 gpe-timesheet | [] [] [] [] | 18 gpe-today | [] [] [] [] [] | 21 gpe-todo | [] | 7 gphoto2 | [] [] [] [] | 20 gprof | [] [] | 11 gpsdrive | | 4 gramadoir | [] | 7 grep | [] [] [] [] | 34 gretl | | 4 gsasl | [] [] | 8 gss | [] | 5 gst-plugins | [] [] [] | 15 gst-plugins-base | [] [] [] | 9 gst-plugins-good | [] [] [] [] [] | 20 gstreamer | [] [] [] | 17 gtick | [] | 3 gtkam | [] | 13 gtkorphan | [] | 7 gtkspell | [] [] [] [] [] [] | 26 gutenprint | | 3 hello | [] [] [] [] [] | 37 id-utils | [] [] | 14 impost | [] | 4 indent | [] [] [] [] | 25 iso_3166 | [] [] [] [] | 16 iso_3166_2 | | 2 iso_4217 | [] [] | 14 iso_639 | [] | 14 jpilot | [] [] [] [] | 7 jtag | [] | 3 jwhois | [] [] [] | 13 kbd | [] [] | 12 keytouch | [] | 4 keytouch-editor | | 2 keytouch-keyboa... | [] | 3 latrine | [] [] | 8 ld | [] [] [] [] | 8 leafpad | [] [] [] [] | 23 libc | [] [] [] | 23 libexif | [] | 4 libextractor | [] | 5 libgpewidget | [] [] [] | 19 libgpg-error | [] | 4 libgphoto2 | [] | 8 libgphoto2_port | [] [] [] | 11 libgsasl | [] | 8 libiconv | [] | 7 libidn | [] [] | 10 lifelines | | 4 lilypond | | 2 lingoteach | [] | 6 lynx | [] [] [] | 15 m4 | [] [] [] | 18 mailutils | [] | 8 make | [] [] [] | 20 man-db | [] | 6 minicom | [] | 14 mysecretdiary | [] [] | 12 nano | [] [] | 17 nano_1_0 | [] [] [] | 18 opcodes | [] [] | 10 parted | [] [] [] | 10 pilot-qof | [] | 3 psmisc | [] | 10 pwdutils | [] | 3 python | | 0 qof | [] | 4 radius | [] | 6 recode | [] [] [] | 25 rpm | [] [] [] [] | 14 screem | [] | 2 scrollkeeper | [] [] [] [] | 26 sed | [] [] [] | 22 sh-utils | [] | 15 shared-mime-info | [] [] [] [] | 24 sharutils | [] [] [] | 23 shishi | | 1 silky | [] | 4 skencil | [] | 7 sketch | | 6 solfege | | 2 soundtracker | [] [] | 9 sp | [] | 3 stardict | [] [] [] [] | 11 system-tools-ba... | [] [] [] [] [] [] [] | 37 tar | [] [] [] [] | 20 texinfo | [] [] [] | 15 textutils | [] [] [] | 17 tin | | 1 tp-robot | [] [] [] | 10 tuxpaint | [] [] [] | 16 unicode-han-tra... | | 0 unicode-transla... | | 2 util-linux | [] [] [] | 20 vorbis-tools | [] [] | 11 wastesedge | | 1 wdiff | [] [] | 22 wget | [] [] [] | 19 xchat | [] [] [] [] | 29 xkeyboard-config | [] [] [] [] | 11 xpad | [] [] [] | 14 +---------------------------------------------------+ 77 teams tg th tk tr uk ven vi wa xh zh_CN zh_HK zh_TW zu 170 domains 0 1 1 77 39 0 136 10 1 48 5 54 0 2028 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 October 2006 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://www.iro.umontreal.ca/contrib/po/HTML/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 `translation@iro.umontreal.ca' to make the `.pot' files available to the translation teams. gcal-3.6.3/config.h.in0000644000175000017500000023132712125375433011412 00000000000000/* config.h.in. Generated from configure.ac by autoheader. */ /* Define if building universal (internal helper macro) */ #undef AC_APPLE_UNIVERSAL_BUILD /* 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 if you wish *printf() functions that have a safe handling of non-IEEE-754 'long double' values. */ #undef CHECK_PRINTF_SAFE /* 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 as the bit index in the word where to find bit 0 of the exponent of 'double'. */ #undef DBL_EXPBIT0_BIT /* Define as the word index where to find the exponent of 'double'. */ #undef DBL_EXPBIT0_WORD /* Define as the bit index in the word where to find the sign of 'double'. */ #undef DBL_SIGNBIT_BIT /* Define as the word index where to find the sign of 'double'. */ #undef DBL_SIGNBIT_WORD /* 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 as the bit index in the word where to find bit 0 of the exponent of 'float'. */ #undef FLT_EXPBIT0_BIT /* Define as the word index where to find the exponent of 'float'. */ #undef FLT_EXPBIT0_WORD /* Define as the bit index in the word where to find the sign of 'float'. */ #undef FLT_SIGNBIT_BIT /* Define as the word index where to find the sign of 'float'. */ #undef FLT_SIGNBIT_WORD /* 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 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 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 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 frexp should be tested. */ #undef GNULIB_TEST_FREXP /* Define to 1 when the gnulib module frexpl should be tested. */ #undef GNULIB_TEST_FREXPL /* 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 signbit should be tested. */ #undef GNULIB_TEST_SIGNBIT /* 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 a C preprocessor expression that evaluates to 1 or 0, depending whether the gnulib module unistr/u16-mbtoucr shall be considered present. */ #undef GNULIB_UNISTR_U16_MBTOUCR /* Define to a C preprocessor expression that evaluates to 1 or 0, depending whether the gnulib module unistr/u8-mbtouc shall be considered present. */ #undef GNULIB_UNISTR_U8_MBTOUC /* Define to a C preprocessor expression that evaluates to 1 or 0, depending whether the gnulib module unistr/u8-mbtoucr shall be considered present. */ #undef GNULIB_UNISTR_U8_MBTOUCR /* Define to a C preprocessor expression that evaluates to 1 or 0, depending whether the gnulib module unistr/u8-mbtouc-unsafe shall be considered present. */ #undef GNULIB_UNISTR_U8_MBTOUC_UNSAFE /* Define to a C preprocessor expression that evaluates to 1 or 0, depending whether the gnulib module unistr/u8-uctomb shall be considered present. */ #undef GNULIB_UNISTR_U8_UCTOMB /* Define to 1 if you have `alloca', as a function or macro. */ #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 Mac OS X function CFLocaleCopyCurrent in the CoreFoundation framework. */ #undef HAVE_CFLOCALECOPYCURRENT /* Define to 1 if you have the Mac OS X function CFPreferencesCopyAppValue in the CoreFoundation framework. */ #undef HAVE_CFPREFERENCESCOPYAPPVALUE /* Define to 1 if you have the `confstr' function. */ #undef HAVE_CONFSTR /* Define if the copysignf function is declared in and available in libc. */ #undef HAVE_COPYSIGNF_IN_LIBC /* Define if the copysignl function is declared in and available in libc. */ #undef HAVE_COPYSIGNL_IN_LIBC /* Define if the copysign function is declared in and available in libc. */ #undef HAVE_COPYSIGN_IN_LIBC /* 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 `copysign', and to 0 if you don't. */ #undef HAVE_DECL_COPYSIGN /* Define to 1 if you have the declaration of `copysignf', and to 0 if you don't. */ #undef HAVE_DECL_COPYSIGNF /* Define to 1 if you have the declaration of `copysignl', and to 0 if you don't. */ #undef HAVE_DECL_COPYSIGNL /* 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 `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 `strdup', and to 0 if you don't. */ #undef HAVE_DECL_STRDUP /* Define to 1 if you have the declaration of `strerror_r', and to 0 if you don't. */ #undef HAVE_DECL_STRERROR_R /* 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 `_snprintf', and to 0 if you don't. */ #undef HAVE_DECL__SNPRINTF /* 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 if the frexpl function is available in libc. */ #undef HAVE_FREXPL_IN_LIBC /* Define if the frexp function is available in libc. */ #undef HAVE_FREXP_IN_LIBC /* 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 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 /* 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 the compiler supports one of the keywords 'inline', '__inline__', '__inline' and effectively inlines functions marked as such. */ #undef HAVE_INLINE /* Define if you have the 'intmax_t' type in or . */ #undef HAVE_INTMAX_T /* Define to 1 if you have the header file. */ #undef HAVE_INTTYPES_H /* Define if exists, doesn't clash with , and declares uintmax_t. */ #undef HAVE_INTTYPES_H_WITH_UINTMAX /* 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 if the isnan(double) function is available in libc. */ #undef HAVE_ISNAND_IN_LIBC /* Define if the isnan(float) function is available in libc. */ #undef HAVE_ISNANF_IN_LIBC /* Define if the isnan(long double) function is available in libc. */ #undef HAVE_ISNANL_IN_LIBC /* 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 if the ldexpl function is available in libc. */ #undef HAVE_LDEXPL_IN_LIBC /* Define if the ldexp function is available in libc. */ #undef HAVE_LDEXP_IN_LIBC /* 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 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 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 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 'long double' and 'double' have the same representation. */ #undef HAVE_SAME_LONG_DOUBLE_AS_DOUBLE /* 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 `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 if the return value of the snprintf function is the number of of bytes (excluding the terminating NUL) that would have been produced if the buffer had been large enough. */ #undef HAVE_SNPRINTF_RETVAL_C99 /* 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 if exists, doesn't clash with , and declares uintmax_t. */ #undef HAVE_STDINT_H_WITH_UINTMAX /* 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 if you have the `strerror_r' function. */ #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 `strnlen' function. */ #undef HAVE_STRNLEN /* 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 /* 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 that is POSIX.1 compatible. */ #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 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 `wcscoll' function. */ #undef HAVE_WCSCOLL /* Define to 1 if you have the `wcslen' function. */ #undef HAVE_WCSLEN /* Define to 1 if you have the `wcsnlen' function. */ #undef HAVE_WCSNLEN /* 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 to 1 if you have the `_set_invalid_parameter_handler' function. */ #undef HAVE__SET_INVALID_PARAMETER_HANDLER /* 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 a symbolic name denoting the flavor of iconv_open() implementation. */ #undef ICONV_FLAVOR /* Define as the bit index in the word where to find bit 0 of the exponent of 'long double'. */ #undef LDBL_EXPBIT0_BIT /* Define as the word index where to find the exponent of 'long double'. */ #undef LDBL_EXPBIT0_WORD /* Define as the bit index in the word where to find the sign of 'long double'. */ #undef LDBL_SIGNBIT_BIT /* Define as the word index where to find the sign of 'long double'. */ #undef LDBL_SIGNBIT_WORD /* 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 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 /* We must declare the ospeed variable */ #undef MUST_DCL_OSPEED /* Define to 1 if assertions should be disabled. */ #undef NDEBUG /* Define if the vasnprintf implementation needs special code for the 'a' and 'A' directives. */ #undef NEED_PRINTF_DIRECTIVE_A /* Define if the vasnprintf implementation needs special code for the 'F' directive. */ #undef NEED_PRINTF_DIRECTIVE_F /* Define if the vasnprintf implementation needs special code for the 'ls' directive. */ #undef NEED_PRINTF_DIRECTIVE_LS /* Define if the vasnprintf implementation needs special code for 'double' arguments. */ #undef NEED_PRINTF_DOUBLE /* Define if the vasnprintf implementation needs special code for surviving out-of-memory conditions. */ #undef NEED_PRINTF_ENOMEM /* Define if the vasnprintf implementation needs special code for the ' flag. */ #undef NEED_PRINTF_FLAG_GROUPING /* Define if the vasnprintf implementation needs special code for the '-' flag. */ #undef NEED_PRINTF_FLAG_LEFTADJUST /* Define if the vasnprintf implementation needs special code for the 0 flag. */ #undef NEED_PRINTF_FLAG_ZERO /* Define if the vasnprintf implementation needs special code for infinite 'double' arguments. */ #undef NEED_PRINTF_INFINITE_DOUBLE /* Define if the vasnprintf implementation needs special code for infinite 'long double' arguments. */ #undef NEED_PRINTF_INFINITE_LONG_DOUBLE /* Define if the vasnprintf implementation needs special code for 'long double' arguments. */ #undef NEED_PRINTF_LONG_DOUBLE /* Define if the vasnprintf implementation needs special code for supporting large precisions without arbitrary bounds. */ #undef NEED_PRINTF_UNBOUNDED_PRECISION /* Define to 1 if your C compiler doesn't accept -c and -o together. */ #undef NO_MINUS_C_MINUS_O /* 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 as the maximum value of type 'size_t', if the system doesn't define it. */ #ifndef SIZE_MAX # undef SIZE_MAX #endif /* 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 1 if strerror_r returns 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 OS X. */ #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 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 /* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most significant byte first (like Motorola and SPARC, unlike Intel). */ #if defined AC_APPLE_UNIVERSAL_BUILD # if defined __BIG_ENDIAN__ # define WORDS_BIGENDIAN 1 # endif #else # ifndef WORDS_BIGENDIAN # undef WORDS_BIGENDIAN # endif #endif /* 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 empty if `const' does not conform to ANSI C. */ #undef const /* _GL_INLINE is a portable alternative to ISO C99 plain 'inline'. _GL_EXTERN_INLINE is a portable alternative to 'extern inline'. _GL_INLINE_HEADER_BEGIN contains useful stuff to put in an include file, before uses of _GL_INLINE. It suppresses GCC's bogus "no previous prototype for 'FOO'" diagnostic, when FOO is an inline function in the header; see . _GL_INLINE_HEADER_END contains useful stuff to put in the same include file, after uses of _GL_INLINE. Suppress extern inline with HP-UX cc, as it appears to be broken; see . Suppress the use of extern inline on Apple's platforms, as Libc-825.25 (2012-09-19) is incompatible with it; see . Perhaps Apple will fix this some day. */ #if ((__GNUC__ \ ? defined __GNUC_STDC_INLINE__ && __GNUC_STDC_INLINE__ \ : 199901L <= __STDC_VERSION__ && !defined __HP_cc) \ && !defined __APPLE__) # define _GL_INLINE inline # define _GL_EXTERN_INLINE extern inline #elif 2 < __GNUC__ + (7 <= __GNUC_MINOR__) && !defined __APPLE__ # if __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 #else # define _GL_INLINE static _GL_UNUSED # define _GL_EXTERN_INLINE static _GL_UNUSED #endif #if 4 < __GNUC__ + (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 rpl_gmtime if the replacement function should be used. */ #undef gmtime /* 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 /* Define to long or long long if and don't define. */ #undef intmax_t /* 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 rpl_localtime if the replacement function should be used. */ #undef localtime /* 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 as the type of the result of subtracting two pointers, if the system doesn't define it. */ #undef ptrdiff_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 /* 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 gcal-3.6.3/.tarball-version0000644000175000017500000000000612125376245012462 000000000000003.6.3 gcal-3.6.3/build-aux/0000755000175000017500000000000012125376242011330 500000000000000gcal-3.6.3/build-aux/install-sh0000755000175000017500000003325511704322373013262 00000000000000#!/bin/sh # install - install a program, script, or datafile scriptversion=2011-11-20.07; # 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. nl=' ' IFS=" "" $nl" # set DOITPROG to echo to test this script # Don't use :- since 4.3BSD and earlier shells don't like it. doit=${DOITPROG-} if test -z "$doit"; then doit_exec=exec else doit_exec=$doit fi # 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_glob='?' initialize_posix_glob=' test "$posix_glob" != "?" || { if (set -f) 2>/dev/null; then posix_glob= else posix_glob=: fi } ' 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 no_target_directory= 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 *' '* | *' '* | *' '* | *'*'* | *'?'* | *'['*) echo "$0: invalid mode: $mode" >&2 exit 1;; esac shift;; -o) chowncmd="$chownprog $2" shift;; -s) stripcmd=$stripprog;; -t) dst_arg=$2 # Protect names problematic for 'test' and other utilities. case $dst_arg in -* | [=\(\)!]) dst_arg=./$dst_arg;; esac shift;; -T) no_target_directory=true;; --version) echo "$0 $scriptversion"; exit $?;; --) shift break;; -*) echo "$0: invalid option: $1" >&2 exit 1;; *) break;; esac shift done 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 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 -n "$no_target_directory"; then echo "$0: $dst_arg: Is a directory" >&2 exit 1 fi dstdir=$dst dst=$dstdir/`basename "$src"` dstdir_status=0 else # Prefer dirname, but fall back on a substitute if dirname fails. dstdir=` (dirname "$dst") 2>/dev/null || expr X"$dst" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$dst" : 'X\(//\)[^/]' \| \ X"$dst" : 'X\(//\)$' \| \ X"$dst" : 'X\(/\)' \| . 2>/dev/null || echo X"$dst" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q' ` 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 eval "$initialize_posix_glob" oIFS=$IFS IFS=/ $posix_glob set -f set fnord $dstdir shift $posix_glob 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` && eval "$initialize_posix_glob" && $posix_glob set -f && set X $old && old=:$2:$4:$5:$6 && set X $new && new=:$2:$4:$5:$6 && $posix_glob 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: "UTC" # time-stamp-end: "; # UTC" # End: gcal-3.6.3/build-aux/config.guess0000755000175000017500000012743212125375434013603 00000000000000#! /bin/sh # Attempt to guess a canonical system name. # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, # 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, # 2011, 2012 Free Software Foundation, Inc. timestamp='2012-02-10' # 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 2 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. # Originally written by Per Bothner. Please send patches (context # diff format) to and include a ChangeLog # entry. # # This script attempts to guess a canonical system name similar to # config.sub. If it succeeds, it prints the system name on stdout, and # exits with 0. Otherwise, it exits with 1. # # 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;hb=HEAD 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 (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 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 # 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=`(/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 ;; *) machine=${UNAME_MACHINE_ARCH}-unknown ;; esac # The Operating System including object format, if it has switched # to ELF recently, or will in the future. case "${UNAME_MACHINE_ARCH}" in 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 # 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/[-_].*/\./'` ;; 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}" exit ;; *:OpenBSD:*:*) UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${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 ;; 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/oslevel ] ; then IBM_REV=`/usr/bin/oslevel` 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 ;; *:MINGW*:*) echo ${UNAME_MACHINE}-pc-mingw32 exit ;; i*: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-gnu`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 '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu exit ;; i*86:Minix:*:*) echo ${UNAME_MACHINE}-pc-minix exit ;; aarch64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; aarch64_be:Linux:*:*) UNAME_MACHINE=aarch64_be echo ${UNAME_MACHINE}-unknown-linux-gnu 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="libc1" ; else LIBC="" ; fi echo ${UNAME_MACHINE}-unknown-linux-gnu${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-gnu else if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ARM_PCS_VFP then echo ${UNAME_MACHINE}-unknown-linux-gnueabi else echo ${UNAME_MACHINE}-unknown-linux-gnueabihf fi fi exit ;; avr32*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; cris:Linux:*:*) echo ${UNAME_MACHINE}-axis-linux-gnu exit ;; crisv32:Linux:*:*) echo ${UNAME_MACHINE}-axis-linux-gnu exit ;; frv:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; hexagon:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; i*86:Linux:*:*) LIBC=gnu eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #ifdef __dietlibc__ LIBC=dietlibc #endif EOF eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC'` echo "${UNAME_MACHINE}-pc-linux-${LIBC}" exit ;; ia64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; m32r*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; m68*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu 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-gnu"; exit; } ;; or32:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; padre:Linux:*:*) echo sparc-unknown-linux-gnu exit ;; parisc64:Linux:*:* | hppa64:Linux:*:*) echo hppa64-unknown-linux-gnu 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-gnu ;; PA8*) echo hppa2.0-unknown-linux-gnu ;; *) echo hppa-unknown-linux-gnu ;; esac exit ;; ppc64:Linux:*:*) echo powerpc64-unknown-linux-gnu exit ;; ppc:Linux:*:*) echo powerpc-unknown-linux-gnu exit ;; s390:Linux:*:* | s390x:Linux:*:*) echo ${UNAME_MACHINE}-ibm-linux exit ;; sh64*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; sh*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; sparc:Linux:*:* | sparc64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; tile*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; vax:Linux:*:*) echo ${UNAME_MACHINE}-dec-linux-gnu exit ;; x86_64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; xtensa*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu 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 configury 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 ;; 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 ;; 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 case $UNAME_PROCESSOR in i386) eval $set_cc_for_build 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 UNAME_PROCESSOR="x86_64" fi fi ;; unknown) UNAME_PROCESSOR=powerpc ;; esac 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 ;; esac #echo '(No uname command or uname output not recognized.)' 1>&2 #echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2 eval $set_cc_for_build cat >$dummy.c < # include #endif main () { #if defined (sony) #if defined (MIPSEB) /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed, I don't know.... */ printf ("mips-sony-bsd\n"); exit (0); #else #include printf ("m68k-sony-newsos%s\n", #ifdef NEWSOS4 "4" #else "" #endif ); exit (0); #endif #endif #if defined (__arm) && defined (__acorn) && defined (__unix) printf ("arm-acorn-riscix\n"); exit (0); #endif #if defined (hp300) && !defined (hpux) printf ("m68k-hp-bsd\n"); exit (0); #endif #if defined (NeXT) #if !defined (__ARCHITECTURE__) #define __ARCHITECTURE__ "m68k" #endif int version; version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`; if (version < 4) printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version); else printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version); exit (0); #endif #if defined (MULTIMAX) || defined (n16) #if defined (UMAXV) printf ("ns32k-encore-sysv\n"); exit (0); #else #if defined (CMU) printf ("ns32k-encore-mach\n"); exit (0); #else printf ("ns32k-encore-bsd\n"); exit (0); #endif #endif #endif #if defined (__386BSD__) printf ("i386-pc-bsd\n"); exit (0); #endif #if defined (sequent) #if defined (i386) printf ("i386-sequent-dynix\n"); exit (0); #endif #if defined (ns32000) printf ("ns32k-sequent-dynix\n"); exit (0); #endif #endif #if defined (_SEQUENT_) struct utsname un; uname(&un); if (strncmp(un.version, "V2", 2) == 0) { printf ("i386-sequent-ptx2\n"); exit (0); } if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */ printf ("i386-sequent-ptx1\n"); exit (0); } printf ("i386-sequent-ptx\n"); exit (0); #endif #if defined (vax) # if !defined (ultrix) # include # if defined (BSD) # if BSD == 43 printf ("vax-dec-bsd4.3\n"); exit (0); # else # if BSD == 199006 printf ("vax-dec-bsd4.3reno\n"); exit (0); # else printf ("vax-dec-bsd\n"); exit (0); # endif # endif # else printf ("vax-dec-bsd\n"); exit (0); # endif # else printf ("vax-dec-ultrix\n"); exit (0); # endif #endif #if defined (alliant) && defined (i860) printf ("i860-alliant-bsd\n"); exit (0); #endif exit (1); } EOF $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` && { echo "$SYSTEM_NAME"; exit; } # Apollos put the system type in the environment. test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; } # Convex versions that predate uname can use getsysinfo(1) if [ -x /usr/convex/getsysinfo ] then case `getsysinfo -f cpu_type` in c1*) echo c1-convex-bsd exit ;; c2*) if getsysinfo -f scalar_acc then echo c32-convex-bsd else echo c2-convex-bsd fi exit ;; c34*) echo c34-convex-bsd exit ;; c38*) echo c38-convex-bsd exit ;; c4*) echo c4-convex-bsd exit ;; esac fi cat >&2 < in order to provide the needed information to handle your system. config.guess timestamp = $timestamp 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` /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-3.6.3/build-aux/snippet/0000755000175000017500000000000012125376242013012 500000000000000gcal-3.6.3/build-aux/snippet/warn-on-use.h0000644000175000017500000001214112125375410015251 00000000000000/* -*- buffer-read-only: t -*- vi: set ro: */ /* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* A C macro for emitting warnings if a function is used. Copyright (C) 2010-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 . */ /* _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-3.6.3/build-aux/snippet/c++defs.h0000644000175000017500000002710512125375407014324 00000000000000/* -*- buffer-read-only: t -*- vi: set ro: */ /* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* C++ compatible function declaration macros. Copyright (C) 2010-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 . */ #ifndef _GL_CXXDEFS_H #define _GL_CXXDEFS_H /* 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, ...)); */ #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 \ { \ rettype (*const func) parameters = ::rpl_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 \ { \ rettype (*const func) parameters = \ reinterpret_cast(::rpl_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, ...)); */ #if defined __cplusplus && defined GNULIB_NAMESPACE /* If we were to write rettype (*const func) parameters = ::func; like above in _GL_CXXALIAS_RPL_1, the compiler could optimize calls better (remove an indirection through a 'static' pointer variable), but then the _GL_CXXALIASWARN macro below would cause a warning not only for uses of ::func but also for uses of GNULIB_NAMESPACE::func. */ # define _GL_CXXALIAS_SYS(func,rettype,parameters) \ namespace GNULIB_NAMESPACE \ { \ static rettype (*func) parameters = ::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 rettype (*func) parameters = \ reinterpret_cast(::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 rettype (*func) parameters = \ reinterpret_cast( \ (rettype2(*)parameters2)(::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-3.6.3/build-aux/snippet/arg-nonnull.h0000644000175000017500000000243212125375407015342 00000000000000/* -*- buffer-read-only: t -*- vi: set ro: */ /* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* A C macro for declaring that specific arguments must not be NULL. Copyright (C) 2009-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 . */ /* _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-3.6.3/build-aux/snippet/unused-parameter.h0000644000175000017500000000317412125375410016365 00000000000000/* -*- buffer-read-only: t -*- vi: set ro: */ /* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* A C macro for declaring that specific function parameters are not used. Copyright (C) 2008-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 . */ /* _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-3.6.3/build-aux/snippet/_Noreturn.h0000644000175000017500000000046211751023621015052 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-3.6.3/build-aux/texinfo.tex0000644000175000017500000116130512125375434013457 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{2012-03-11.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 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 has been our intent since Texinfo was invented.) % % Please try the latest version of texinfo.tex before submitting bug % reports; you can get the latest version from: % http://www.gnu.org/software/texinfo/ (the Texinfo home page), or % ftp://tug.org/tex/texinfo.tex % (and all CTAN mirrors, see http://www.ctan.org). % 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} \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\ptexstar=\* \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 % Since the category of space is not known, we have to be careful. \chardef\spacecat = 10 \def\spaceisspace{\catcode`\ =\spacecat} % sometimes characters are active, so we need control sequences. \chardef\ampChar = `\& \chardef\colonChar = `\: \chardef\commaChar = `\, \chardef\dashChar = `\- \chardef\dotChar = `\. \chardef\exclamChar= `\! \chardef\hashChar = `\# \chardef\lquoteChar= `\` \chardef\questChar = `\? \chardef\rquoteChar= `\' \chardef\semiChar = `\; \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 } % Margin to add to right of even pages, to left of odd pages. \newdimen\bindingoffset \newdimen\normaloffset \newdimen\pagewidth \newdimen\pageheight % 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 } % 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} % 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. The solution is % described on page 260 of The TeXbook. It involves outputting two % marks for the sectioning macros, one before the section break, and % one after. I won't pretend I can describe this better than DEK... \def\domark{% \toks0=\expandafter{\lastchapterdefs}% \toks2=\expandafter{\lastsectiondefs}% \toks4=\expandafter{\prevchapterdefs}% \toks6=\expandafter{\prevsectiondefs}% \toks8=\expandafter{\lastcolordefs}% \mark{% \the\toks0 \the\toks2 \noexpand\or \the\toks4 \the\toks6 \noexpand\else \the\toks8 }% } % \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\prevchapterdefs{} \def\prevsectiondefs{} \def\lastcolordefs{} % 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). \ifodd\pageno \getoddheadingmarks \else \getevenheadingmarks \fi \setbox\headlinebox = \vbox{\let\hsize=\pagewidth \makeheadline}% \ifodd\pageno \getoddfootingmarks \else \getevenfootingmarks \fi \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. % \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{{\tt \indexbackslash }acronym}{32}{\code {\acronym}} % "\acronym" won't work when it's read back in; % it needs to be % {\code {{\tt \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 \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\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}} % 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{\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. \def\argremovecomment#1\comment#2\ArgTerm{\argremovec #1\c\ArgTerm} \def\argremovec#1\c#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\foo{...} % is roughly equivalent to % \def\foo{\parsearg\Xfoo} % \def\Xfoo#1{...} % % Actually, I use \csname\string\foo\endcsname, ie. \\foo, as it is my % favourite TeX trick. --kasal, 16nov03 \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\*{\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. % \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 = \pageheight \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\pageheight \page \fi \fi \box\groupbox \prevdepth = \dimen1 \checkinserts } % % 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 } % @| 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). This command % is not documented, not supported, and doesn't work. % \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 }% }% } % @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\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. % 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 % 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{% \fixbackslash % Turn off hack to swallow `\input texinfo'. \iflinks \tryauxfile % Open the new aux file. TeX will close it automatically at exit. \immediate\openout\auxfile=\jobname.aux \fi % \openindices needs to do some work in any case. \openindices \let\setfilename=\comment % Ignore extra @setfilename cmds. % % If texinfo.cnf is present on the system, read it. % Useful for site-wide @afourpaper, etc. \openin 1 texinfo.cnf \ifeof 1 \else \input texinfo.cnf \fi \closein 1 % \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 % 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\relax % No primitive available; should we give a warning or log? % Many times it won't matter. \else % The expandable \pdfescapestring primitive escapes parentheses, % backslashes, and other special chars. \xdef#1{\pdfescapestring{#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 based on 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. \def\rgbDarkRed{0.50 0.09 0.12} \def\rgbBlack{0 0 0} % % k sets the color for filling (usual text, etc.); % K 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\pdfmkdest#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 \turnoffactive \makevalueexpandable \def\pdfdestname{#1}% \txiescapepdf\pdfdestname \safewhatsit{\pdfdest name{\pdfdestname} xyz}% }} % % used to mark target names; must be expandable. \def\pdfmkpgn#1{#1} % % by default, use a color that is dark enough to print on paper as % nearly black, but still distinguishable for online viewing. \def\urlcolor{\rgbDarkRed} \def\linkcolor{\rgbDarkRed} \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. \edef\pdfoutlinedest{#3}% \ifx\pdfoutlinedest\empty \def\pdfoutlinedest{#4}% \else \txiescapepdf\pdfoutlinedest \fi % % Also escape PDF chars in the display string. \edef\pdfoutlinetext{#1}% \txiescapepdf\pdfoutlinetext % \pdfoutline goto name{\pdfmkpgn{\pdfoutlinedest}}#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 \ifx\p\space\else\addtokens{\filename}{\PP}% \advance\filenamelength by 1 \fi \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 \message{fonts,} % 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 ten#1\endcsname % change the current font } % Select #1 fonts with the current style. % \def\selectfonts#1{\csname #1fonts\endcsname \csname\curfontstyle\endcsname} \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}} % Unfortunately, we have to override this for titles and the like, since % in those cases "rm" is bold. Sigh. \def\rmisbold{\rm\def\curfontstyle{bf}} % 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}} \let\li = \sf % Sometimes we call it \li, not \sf. % We don't need math for this font style. \def\ttsl{\setfontstyle{ttsl}} % Default leading. \newdimen\textleading \textleading = 13.2pt % 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} % \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 #2, adding on the % specified font prefix (normally `cm'). % #3 is the font's design size, #4 is a scale factor, #5 is the CMap % encoding (currently only OT1, OT1IT and OT1TT are allowed, pass % empty to omit). \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 % emacs-page 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. This is 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\defttsl\ttslshape{10}{\magstep1}{OT1TT} \def\df{\let\tentt=\deftt \let\tenbf = \defbf \let\tenttsl=\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 (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\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 @acro 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 % 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\defttsl\ttslshape{10}{\magstephalf}{OT1TT} \def\df{\let\tentt=\deftt \let\tenbf = \defbf \let\tenttsl=\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 @acro 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 % 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 } % 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 except % in the main text, 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 because \STYLE needs to also set the % current \fam for math mode. Our \STYLE (e.g., \rm) commands hardwire % \tenSTYLE 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 % the LaTeX logo and acronyms. % % This all needs generalizing, badly. % \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 \def\curfontsize{text}% \def\lsize{reduced}\def\lllsize{smaller}% \resetmathfonts \setleading{\textleading}} \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 \def\curfontsize{title}% \def\lsize{chap}\def\lllsize{subsec}% \resetmathfonts \setleading{27pt}} \def\titlefont#1{{\titlefonts\rmisbold #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 \def\curfontsize{chap}% \def\lsize{sec}\def\lllsize{text}% \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 \def\curfontsize{sec}% \def\lsize{subsec}\def\lllsize{reduced}% \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 \def\curfontsize{ssec}% \def\lsize{text}\def\lllsize{small}% \resetmathfonts \setleading{15pt}} \let\subsubsecfonts = \subsecfonts \def\reducedfonts{% \let\tenrm=\reducedrm \let\tenit=\reducedit \let\tensl=\reducedsl \let\tenbf=\reducedbf \let\tentt=\reducedtt \let\reducedcaps=\reducedsc \let\tensf=\reducedsf \let\teni=\reducedi \let\tensy=\reducedsy \let\tenttsl=\reducedttsl \def\curfontsize{reduced}% \def\lsize{small}\def\lllsize{smaller}% \resetmathfonts \setleading{10.5pt}} \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 \def\curfontsize{small}% \def\lsize{smaller}\def\lllsize{smaller}% \resetmathfonts \setleading{10.5pt}} \def\smallerfonts{% \let\tenrm=\smallerrm \let\tenit=\smallerit \let\tensl=\smallersl \let\tenbf=\smallerbf \let\tentt=\smallertt \let\smallcaps=\smallersc \let\tensf=\smallersf \let\teni=\smalleri \let\tensy=\smallersy \let\tenttsl=\smallerttsl \def\curfontsize{smaller}% \def\lsize{smaller}\def\lllsize{smaller}% \resetmathfonts \setleading{9.5pt}} % 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} % 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} \gdef\markupsetnoligaturesquoteleft{\let`\noligaturesquoteleft} } \let\markupsetuplqcode \markupsetcodequoteleft \let\markupsetuprqcode \markupsetcodequoteright % \let\markupsetuplqexample \markupsetcodequoteleft \let\markupsetuprqexample \markupsetcodequoteright % \let\markupsetuplqsamp \markupsetcodequoteleft \let\markupsetuprqsamp \markupsetcodequoteright % \let\markupsetuplqverb \markupsetcodequoteleft \let\markupsetuprqverb \markupsetcodequoteright % \let\markupsetuplqverbatim \markupsetcodequoteleft \let\markupsetuprqverbatim \markupsetcodequoteright \let\markupsetuplqkbd \markupsetnoligaturesquoteleft % 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\ptexslash \fi\fi\fi \aftersmartic } % like \smartslanted except unconditionally uses \ttsl, and no ic. % @var is set to this for defun arguments. \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\dotChar =\@m \sfcode\questChar=\@m \sfcode\exclamChar=\@m \sfcode\colonChar=\@m \sfcode\semiChar =\@m \sfcode\commaChar =\@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}} % 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} % ctrl is no longer a Texinfo command. \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 \plainfrenchspacing #1% }% \null % reset spacefactor to 1000 } % 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 \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-\realdash \let_\realunder \fi \codex } } \def\codex #1{\tclose{#1}\endgroup} \def\realdash{-} \def\codedash{-\discretionary{}{}{}} \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 undesirable in % some manuals, especially if they don't have long identifiers in % general. @allowcodebreaks provides a way to control this. % \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 } % @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. % (This \urefnobreak definition isn't used now, leaving it for a while % for comparison.) \def\urefnobreak#1{\dourefnobreak #1,,,\finish} \def\dourefnobreak#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} % This \urefbreak definition is the active one. \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}% \ifdim\wd0 > 0pt \ifpdf \unhbox0 % PDF: 2nd arg given, show only it \else \unhbox0\ (\urefcode{#1})% DVI: 2nd arg given, show both it and url \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\ampChar=\active \catcode\dotChar=\active \catcode\hashChar=\active \catcode\questChar=\active \catcode\slashChar=\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\urefprestretch{\urefprebreak \hskip0pt plus.13em } \def\urefpoststretch{\urefpostbreak \hskip0pt plus.1em } % \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 \let\email=\uref \fi % @kbd is like @code, except that if the argument is just one @key command, % then @kbd has no effect. \def\kbd#1{{\setupmarkupstyle{kbd}\def\look{#1}\expandafter\kbdfoo\look??\par}} % @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 \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\setupmarkupstyle{kbd}\look}}\fi \else{\tclose{\kbdfont\setupmarkupstyle{kbd}\look}}\fi} % For @indicateurl, @env, @command quotes seem unnecessary, so use \code. \let\indicateurl=\code \let\env=\code \let\command=\code % @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} % @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} % @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{% {\selectfonts\lsize #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{% \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 $\finishmath } \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 } } % @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 } % 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. } \message{glyphs,} % and logos. % @@ prints an @, as does @atchar{}. \def\@{\char64 } \let\atchar=\@ % @{ @} @lbracechar{} @rbracechar{} all generate brace characters. % Unless we're in typewriter, use \ecfont because the CM text fonts do % not have braces, and we don't want to switch into math. \def\mylbrace{{\ifmonospace\else\ecfont\fi \char123}} \def\myrbrace{{\ifmonospace\else\ecfont\fi \char125}} \let\{=\mylbrace \let\lbracechar=\{ \let\}=\myrbrace \let\rbracechar=\} \begingroup % Definitions to produce \{ and \} commands for indices, % and @{ and @} for the aux/toc files. \catcode`\{ = \other \catcode`\} = \other \catcode`\[ = 1 \catcode`\] = 2 \catcode`\! = 0 \catcode`\\ = \other !gdef!lbracecmd[\{]% !gdef!rbracecmd[\}]% !gdef!lbraceatcmd[@{]% !gdef!rbraceatcmd[@}]% !endgroup % @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{\selectfonts\lllsize \underbar{a}}} \def\ordm{\leavevmode\raise1ex\hbox{\selectfonts\lllsize \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. \selectfonts\lllsize A% \fi }% \vss }}% \kern-.15em \TeX } % Some math mode symbols. \def\bullet{$\ptexbullet$} \def\geq{\ifmmode \ge\else $\ge$\fi} \def\leq{\ifmmode \le\else $\le$\fi} \def\minus{\ifmmode -\else $-$\fi} % @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 % {\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 \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 ec* fonts (cm-super in outline format) for non-CM glyphs. \def\ecfont{% % 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}% \ifx\curfontstyle\bfstylename % bold: \font\thisecfont = ecb\ifusingit{i}{x}\ecsize \space at \nominalsize \else % regular: \font\thisecfont = ec\ifusingit{ti}{rm}\ecsize \space at \nominalsize \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{\selectfonts\lllsize 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 % 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 \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 % % 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 } \def\finishtitlepage{% \vskip4pt \hrule height 2pt width \hsize \vskip\titlepagebottomglue \finishedtitlepagetrue } % Macros to be used within @titlepage: \let\subtitlerm=\tenrm \def\subtitlefont{\subtitlerm \normalbaselineskip = 13pt \normalbaselines} \parseargdef\title{% \checkenv\titlepage \leftline{\titlefonts\rmisbold #1} % 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\rmisbold \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 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\pageheight 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 \def\evenheadingmarks{\headingmarks{even}{heading}} \def\oddheadingmarks{\headingmarks{odd}{heading}} \def\evenfootingmarks{\headingmarks{even}{footing}} \def\oddfootingmarks{\headingmarks{odd}{footing}} \def\everyheadingmarks#1 {\headingmarks{even}{heading}{#1} \headingmarks{odd}{heading}{#1} } \def\everyfootingmarks#1 {\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. \def\headings #1 {\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{\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\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 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}% % \vadjust{\penalty 1200}}% not good to break after first line of item. \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 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 \global\everytab={\bf}% can't use \headitemfont since the parsing differs \the\everytab % for the first item }% % % 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={}% \global\colcount=0 % Reset the column counter. % Check for saved footnotes, etc. \checkinserts % Keeps underfull box messages off when table breaks over pages. %\filbreak % 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. }% }% % \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-\realdash \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). % \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 } % @ifset VAR ... @end ifset reads the `...' iff VAR has been defined % with @set. % % To get special treatment of `@end ifset,' call \makeond and the 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 ifclear reads 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}} % @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 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\defcodeindex{\parsearg\newcodeindex} % \def\newcodeindex#1{% \iflinks \expandafter\newwrite \csname#1indfile\endcsname \openout \csname#1indfile\endcsname \jobname.#1 \fi \expandafter\xdef\csname#1index\endcsname{% \noexpand\docodeindex{#1}}% } % @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{% % Only do \closeout if we haven't already done it, else we'll end up % closing the target index. \expandafter \ifx\csname donesynindex#2\endcsname \relax % The \closeout helps reduce unnecessary open files; the limit on the % Acorn RISC OS is a mere 16 files. \expandafter\closeout\csname#2indfile\endcsname \expandafter\let\csname donesynindex#2\endcsname = 1 \fi % 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 \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}}} % Take care of Texinfo commands that can appear in an index entry. % Since there are some commands we want to expand, and others we don't, % we have to laboriously prevent expansion for those that we don't. % \def\indexdummies{% \escapechar = `\\ % use backslash in output files. \def\@{@}% change to @@ when we switch to @ as escape char in index files. \def\ {\realbackslash\space }% % % Need these unexpandable (because we define \tt as a dummy) % definitions when @{ or @} appear in index entry text. Also, more % complicated, when \tex is in effect and \{ is a \delimiter again. % We can't use \lbracecmd and \rbracecmd because texindex assumes % braces and backslashes are used only as delimiters. Perhaps we % should define @lbrace and @rbrace commands a la @comma. \def\{{{\tt\char123}}% \def\}{{\tt\char125}}% % % I don't entirely understand this, but when an index entry is % generated from a macro call, the \endinput which \scanmacro inserts % causes processing to be prematurely terminated. This is, % apparently, because \indexsorttmp is fully expanded, and \endinput % is an expandable command. The redefinition below makes \endinput % disappear altogether for that purpose -- although logging shows that % processing continues to some further point. On the other hand, it % seems \endinput does not hurt in the printed index arg, since that % is still getting written without apparent harm. % % Sample source (mac-idx3.tex, reported by Graham Percival to % help-texinfo, 22may06): % @macro funindex {WORD} % @findex xyz % @end macro % ... % @funindex commtest % % The above is not enough to reproduce the bug, but it gives the flavor. % % Sample whatsit resulting: % .@write3{\entry{xyz}{@folio }{@code {xyz@endinput }}} % % So: \let\endinput = \empty % % Do the redefinitions. \commondummies } % For the aux and toc files, @ is the escape character. So we want to % redefine everything using @ as the escape character (instead of % \realbackslash, still used for index files). When everything uses @, % this will be simpler. % \def\atdummies{% \def\@{@@}% \def\ {@ }% \let\{ = \lbraceatcmd \let\} = \rbraceatcmd % % Do the redefinitions. \commondummies \otherbackslash } % Called from \indexdummies and \atdummies. % \def\commondummies{% % % \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. % % For control letters, we have \definedummyletter, which omits the % space. % % 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). % \def\definedummyword ##1{\def##1{\string##1\space}}% \def\definedummyletter##1{\def##1{\string##1}}% \let\definedummyaccent\definedummyletter % \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\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\leq \definedummyword\minus \definedummyword\ogonek \definedummyword\pounds \definedummyword\point \definedummyword\print \definedummyword\quotedblbase \definedummyword\quotedblleft \definedummyword\quotedblright \definedummyword\quoteleft \definedummyword\quoteright \definedummyword\quotesinglbase \definedummyword\result \definedummyword\textdegree % % We want to disable all macros so that they are not expanded by \write. \macrolist % \normalturnoffactive % % Handle some cases of @value -- where it does not contain any % (non-fully-expandable) commands. \makevalueexpandable } % \commondummiesnofonts: common to \commondummies and \indexnofonts. % \def\commondummiesnofonts{% % Control letters and accents. \definedummyletter\!% \definedummyaccent\"% \definedummyaccent\'% \definedummyletter\*% \definedummyaccent\,% \definedummyletter\.% \definedummyletter\/% \definedummyletter\:% \definedummyaccent\=% \definedummyletter\?% \definedummyaccent\^% \definedummyaccent\`% \definedummyaccent\~% \definedummyword\u \definedummyword\v \definedummyword\H \definedummyword\dotaccent \definedummyword\ogonek \definedummyword\ringaccent \definedummyword\tieaccent \definedummyword\ubaraccent \definedummyword\udotaccent \definedummyword\dotless % % Texinfo font commands. \definedummyword\b \definedummyword\i \definedummyword\r \definedummyword\sansserif \definedummyword\sc \definedummyword\slanted \definedummyword\t % % Commands that take arguments. \definedummyword\acronym \definedummyword\anchor \definedummyword\cite \definedummyword\code \definedummyword\command \definedummyword\dfn \definedummyword\dmn \definedummyword\email \definedummyword\emph \definedummyword\env \definedummyword\file \definedummyword\indicateurl \definedummyword\kbd \definedummyword\key \definedummyword\math \definedummyword\option \definedummyword\pxref \definedummyword\ref \definedummyword\samp \definedummyword\strong \definedummyword\tie \definedummyword\uref \definedummyword\url \definedummyword\var \definedummyword\verb \definedummyword\w \definedummyword\xref } % \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\definedummyaccent##1{\let##1\asis}% % We can just ignore other control letters. \def\definedummyletter##1{\let##1\empty}% % All control words become @asis by default; overrides below. \let\definedummyword\definedummyaccent % \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 % % Unfortunately, texindex is not prepared to handle braces in the % content at all. So for index sorting, we map @{ and @} to strings % starting with |, since that ASCII character is between ASCII { and }. \def\{{|a}% \def\}{|b}% % % Non-English letters. \def\AA{AA}% \def\AE{AE}% \def\DH{DZZ}% \def\L{L}% \def\OE{OE}% \def\O{O}% \def\TH{ZZZ}% \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{zzz}% % \def\LaTeX{LaTeX}% \def\TeX{TeX}% % % Assorted special characters. % (The following {} will end up in the sort string, but that's ok.) \def\arrow{->}% \def\bullet{bullet}% \def\comma{,}% \def\copyright{copyright}% \def\dots{...}% \def\enddots{...}% \def\equiv{==}% \def\error{error}% \def\euro{euro}% \def\expansion{==>}% \def\geq{>=}% \def\guillemetleft{<<}% \def\guillemetright{>>}% \def\guilsinglleft{<}% \def\guilsinglright{>}% \def\leq{<=}% \def\minus{-}% \def\point{.}% \def\pounds{pounds}% \def\print{-|}% \def\quotedblbase{"}% \def\quotedblleft{"}% \def\quotedblright{"}% \def\quoteleft{`}% \def\quoteright{'}% \def\quotesinglbase{,}% \def\registeredsymbol{R}% \def\result{=>}% \def\textdegree{o}% % \expandafter\ifx\csname SETtxiindexlquoteignore\endcsname\relax \else \indexlquoteignore \fi % % 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 } % Undocumented (for FSFS 2nd ed.): @set txiindexlquoteignore makes us % ignore left quotes in the sort term. {\catcode`\`=\active \gdef\indexlquoteignore{\let`=\empty}} \let\indexbackslash=0 %overridden during \printindex. \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}{}} % 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 most defuns, which call us directly). % \def\dosubind#1#2#3{% \iflinks {% % 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 } % 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 \def\backslashcurfont{\indexbackslash}% \indexbackslash isn't defined now % so it will be output as is; and it will print as backslash. % % Process the index entry with all font commands turned off, to % get the string to sort by. {\indexnofonts \edef\temp{\the\toks0}% need full expansion \xdef\indexsorttmp{\temp}% }% % % 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{\indexsorttmp}{\noexpand\folio}{\the\toks0}}% }% \temp } % 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`\@ = 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{\backslashcurfont}% \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. \nobreak \vskip 0pt plus 3\baselineskip \penalty 0 \vskip 0pt plus -3\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 .5\baselineskip \leftline{\secbf #1}% % Do our best not to break after the initial. \nobreak \vskip .33\baselineskip plus .1\baselineskip }} % \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. % % A straightforward implementation would start like this: % \def\entry#1#2{... % But this freezes the catcodes in the argument, and can cause problems to % @code, which sets - active. This problem was fixed by a kludge--- % ``-'' was active throughout whole index, but this isn't really right. % The right solution is to prevent \entry from swallowing the whole text. % --kasal, 21nov03 \def\entry{% \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 % % 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}% % % Swallow the left brace of the text (first parameter): \afterassignment\doentry \let\temp = } \def\entrybreak{\unskip\space\ignorespaces}% \def\doentry{% \bgroup % Instead of the swallowed brace. \noindent \aftergroup\finishentry % And now comes the text of the entry. } \def\finishentry#1{% % #1 is the page number. % % 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. \setbox\boxA = \hbox{#1}% \ifdim\wd\boxA = 0pt \ % \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#1.% \ \the\toksA \else \ #1% \fi \fi \par \endgroup } % Like plain.tex's \dotfill, except uses up at least 1 em. \def\indexdotfill{\cleaders \hbox{$\mathsurround=0pt \mkern1.5mu.\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 \ifpdf \pdfgettoks#2.\ \the\toksA % The page number ends the paragraph. \else #2 \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 \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.) \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 \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\pagewidth{\box0\hfil\box2}% } % % All done 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 \pageheight (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. 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 } % % Called at the end of the double column material. \def\balancecolumns{% \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. % 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\rmisbold #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 \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{% % Well, we could do the following in a group, but that would break % an assumption that \chapmacro is called at the outermost level. % Thus we are safer this way: --kasal, 24feb04 \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 % 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{% {\advance\chapheadingskip by 10pt \chapbreak }% \parsearg\chapheadingzzz } \def\chapheading{\chapbreak \parsearg\chapheadingzzz} \def\chapheadingzzz#1{% {\chapfonts \vbox{\hyphenpenalty=10000\tolerance=5000 \parindent=0pt\ptexraggedright \rmisbold #1\hfill}}% \bigskip \par\penalty 200\relax \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}} \def\chappager{\par\vfill\supereject} % 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 } \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 % Chapter opening. % % #1 is the text, #2 is the section type (Ynumbered, Ynothing, % Yappendix, Yomitfromtoc), #3 the chapter number. % % To test against our argument. \def\Ynothingkeyword{Ynothing} \def\Yomitfromtockeyword{Yomitfromtoc} \def\Yappendixkeyword{Yappendix} % \def\chapmacro#1#2#3{% % 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 \rmisbold % % 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{\hyphenpenalty=10000 \tolerance=5000 \parindent=0pt \ptexraggedright \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 } % I don't think this chapter style is supported any more, so I'm not % updating it with the new noderef stuff. We'll see. --karl, 11aug03. % \def\setchapterstyle #1 {\csname CHAPF#1\endcsname} % \def\unnchfopen #1{% \chapoddpage {\chapfonts \vbox{\hyphenpenalty=10000\tolerance=5000 \parindent=0pt\ptexraggedright \rmisbold #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 {\rmisbold #1}\hfill}}\bigskip \par\nobreak } \def\CHAPFopen{% \global\let\chapmacro=\chfopen \global\let\centerchapmacro=\centerchfopen} % 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, #2 is the section level (sec/subsec/subsubsec), #3 is % the section type for xrefs (Ynumbered, Ynothing, Yappendix), #4 is the % section number. % \def\seckeyword{sec} % \def\sectionheading#1#2#3#4{% {% \checkenv{}% should not be in an environment. % % Switch to the right set of fonts. \csname #2fonts\endcsname \rmisbold % \def\sectionlevel{#2}% \def\temptype{#3}% % % 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. \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 \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. \advance\hsize by -\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}\labelspace#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 \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 \escapechar=`\\ % % ' 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 % \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\*=\ptexstar \let\t=\ptext \expandafter \let\csname top\endcsname=\ptextop % 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 % 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 }} \let\afterenvbreak = \aboveenvbreak % \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 % Flag to tell @lisp, etc., not to narrow margin. \let\nonarrowing = t% % % 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 % \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 \checkinserts } % This macro is called at the beginning of all the @example variants, % inside a group. \newdimen\nonfillparindent \def\nonfillstart{% \aboveenvbreak \hfuzz = 12pt % 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. \envdef\raggedright{% \rightskip0pt plus2em \spaceskip.3333em \xspaceskip.5em\relax } \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{% {\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 \advance\rightskip by \lispnarrowing \exdentamount = \lispnarrowing \else \let\nonarrowing = \relax \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 } % 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 very 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 % % 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 \tenrm % \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. Let's try @var for that. \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 \def\scanmacro#1{\begingroup \newlinechar`\^^M \let\xeatspaces\eatspaces % % Undo catcode changes of \startcontents and \doprintindex % When called from @insertcopying or (short)caption, we need active % backslash to get it printed correctly. Previously, we had % \catcode`\\=\other instead. We'll see whether a problem appears % with macro expansion. --kasal, 19aug04 \catcode`\@=0 \catcode`\\=\active \escapechar=`\@ % % ... and for \example: \spaceisspace % % The \empty here causes a following catcode 5 newline to be eaten as % part of reading whitespace after a control sequence. It does not % eat a catcode 13 newline. There's no good way to handle the two % cases (untried: maybe e-TeX's \everyeof could help, though plain TeX % would then have different behavior). See the Macro Details node in % the manual for the workaround we recommend for macros and % line-oriented commands. % \scantokens{#1\empty}% \endgroup} \def\scanexp#1{% \edef\temp{\noexpand\scanmacro{#1}}% \temp } \newcount\paramno % Count of parameters \newtoks\macname % Macro name \newif\ifrecursive % Is it recursive? % List of all defined macros in the form % \definedummyword\macro1\definedummyword\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\definedummyword#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 \catcode`\~=\other \ifx\declaredencoding\ascii \else \setnonasciicharscatcodenonglobal\other \fi } \def\scanargctxt{% used for copying and captions, not macros. \scanctxt \catcode`\\=\other \catcode`\^^M=\other } \def\macrobodyctxt{% used for @macro definitions \scanctxt \catcode`\{=\other \catcode`\}=\other \catcode`\^^M=\other \usembodybackslash } \def\macroargctxt{% used when scanning invocations \scanctxt \catcode`\\=0 } % why catcode 0 for \ in the above? To recognize \\ \{ \} as "escapes" % for the single characters \ { }. Thus, we end up with the "commands" % that would be written @\ @{ @} in a Texinfo document. % % We already have @{ and @}. For @\, we define it here, and only for % this purpose, to produce a typewriter backslash (so, the @\ that we % define for @math can't be used with @macro calls): % \def\\{\normalbackslash}% % % We would like to do this for \, too, since that is what makeinfo does. % But it is not possible, because Texinfo already has a command @, for a % cedilla accent. Documents must use @comma{} instead. % % \anythingelse will almost certainly be an error of some kind. % \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\definedummyword\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\definedummyword \noexpand#1% \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}} % For macro processing make @ a letter so that we can make Texinfo private macro names. \edef\texiatcatcode{\the\catcode`\@} \catcode `@=11\relax % 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 some hook where the argument si 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). % % 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. % % 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 underwhich the body was input). % % If you compile with TeX (not eTeX), and you have macros with 10 or more % arguments, you need that no macro has more than 256 arguments, otherwise an % error is produced. \def\parsemargdef#1;{% \paramno=0\def\paramlist{}% \let\hash\relax \let\xeatspaces\relax \parsemargdefxxx#1,;,% % 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. \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} \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} % These two commands read recursive and nonrecursive macro bodies. % (They're different since rec and nonrec macros end differently.) % \catcode `\@\texiatcatcode \long\def\parsemacbody#1@end macro% {\xdef\temp{\eatcr{#1}}\endgroup\defmacro}% \long\def\parsermacbody#1@end rmacro% {\xdef\temp{\eatcr{#1}}\endgroup\defmacro}% \catcode `\@=11\relax \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}% } \def\macargexpandinbody@{% %% Define the named-macro outside of this group and then close this group. \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 } % Save the token stack pointer into macro #1 \def\texisavetoksstackpoint#1{\edef#1{\the\@cclvi}} % Restore the token stack pointer from number in macro #1 \def\texirestoretoksstackpoint#1{\expandafter\mathchardef\expandafter\@cclvi#1\relax} % newtoks that can be used non \outer . \def\texinonouternewtoks{\alloc@ 5\toks \toksdef \@cclvi} % Tailing 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}% } % This defines a Texinfo @macro. There are eight cases: recursive and % nonrecursive macros of zero, one, up to nine, 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 \ifnum\paramno<10\relax % at most 9 \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}}% \else % 10 or more \expandafter\xdef\csname\the\macname\endcsname{% \noexpand\getargvals@{\the\macname}{\argl}% }% \global\expandafter\let\csname mac.\the\macname .body\endcsname\temp \global\expandafter\let\csname mac.\the\macname .recurse\endcsname\gobble \fi \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 % at most 9 \ifnum\paramno<10\relax \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}% \else % 10 or more: \expandafter\xdef\csname\the\macname\endcsname{% \noexpand\getargvals@{\the\macname}{\argl}% }% \global\expandafter\let\csname mac.\the\macname .body\endcsname\temp \global\expandafter\let\csname mac.\the\macname .recurse\endcsname\norecurse \fi \fi \fi} \catcode `\@\texiatcatcode\relax \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\macnamexxx=#1\futurelet\nchar\braceorlinexxx} \def\braceorlinexxx{% \ifx\nchar\bgroup\else \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 {% \atdummies % preserve commands, but don't expand them \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#1{\putwordsee{} \xrefX[#1,,,,,,,]} \def\xref#1{\putwordSee{} \xrefX[#1,,,,,,,]} \def\ref#1{\xrefX[#1,,,,,,,]} % \newbox\topbox \newbox\printedrefnamebox \newbox\printedmanualbox % \def\xrefX[#1,#2,#3,#4,#5,#6]{\begingroup \unsepspaces % \def\printedrefname{\ignorespaces #3}% \setbox\printedrefnamebox = \hbox{\printedrefname\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 {\indexnofonts \turnoffactive \makevalueexpandable % This expands tokens, so do it after making catcode changes, so _ % etc. don't get their TeX definitions. \getfilename{#4}% % \edef\pdfxrefdest{#1}% \txiescapepdf\pdfxrefdest % \leavevmode \startlink attr{/Border [0 0 0]}% \ifnum\filenamelength>0 goto file{\the\filename.pdf} name{\pdfxrefdest}% \else goto name{\pdfmkpgn{\pdfxrefdest}}% \fi }% \setcolor{\linkcolor}% \fi % % Float references are printed completely differently: "Figure 1.2" % instead of "[somenode], p.3". We distinguish them by the % LABEL-title being set to a magic string. {% % Have to otherify everything special to allow the \csname to % include an _ in the xref name, etc. \indexnofonts \turnoffactive \expandafter\global\expandafter\let\expandafter\Xthisreftitle \csname XR#1-title\endcsname }% \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. % % Cross-manual reference. Only include the "Section ``foo'' in" if % the foo is neither missing or Top. Thus, @xref{,,,foo,The Foo Manual} % outputs simply "see The Foo Manual". \ifdim \wd\printedmanualbox > 0pt % What is the 7sp about? The idea is that we also want to omit % the Section part if we would be printing "Top", since they are % clearly trying to refer to the whole manual. But, this being % TeX, we can't easily compare strings while ignoring the possible % spaces before and after in the input. By adding the arbitrary % 7sp, we make it much less likely that a real node name would % happen to have the same width as "Top" (e.g., in a monospaced font). % I hope it will never happen in practice. % % For the same basic reason, we retypeset the "Top" at every % reference, since the current font is indeterminate. % \setbox\topbox = \hbox{Top\kern7sp}% \setbox2 = \hbox{\ignorespaces \printedrefname \unskip \kern7sp}% \ifdim \wd2 > 7sp \ifdim \wd2 = \wd\topbox \else \putwordSection{} ``\printedrefname'' \putwordin{}\space \fi \fi \cite{\printedmanual}% \else % Reference in 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}{}% \fi \fi \endlink \endgroup} % 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 } % 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{% {% \indexnofonts \otherbackslash \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. Usually it's % just a \def (we prepend XR to the control sequence name to avoid % collisions). But if this is a float type, we have more work to do. % \def\xrdef#1#2{% {% The node name might contain 8-bit characters, which in our current % implementation are changed to commands like @'e. Don't let these % mess up the control sequence name. \indexnofonts \turnoffactive \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 } % 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 % % Make the characters 128-255 be printing characters. {% \count1=128 \def\loop{% \catcode\count1=\other \advance\count1 by 1 \ifnum \count1<256 \loop \fi }% }% % % @ 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{% \let\indent=\ptexindent \let\noindent=\ptexnoindent \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 % 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=\pagewidth \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 % 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 % 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 \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 \epsfbox{#1.eps}% \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. {% \atdummies % % since we read the caption text in the macro world, where ^^M % is turned into a normal character, we have to scan it back, so % we don't write the literal three characters "^^M" into the aux file. \scanexp{% \xdef\noexpand\gtemp{% \ifx\thisshortcaption\empty \thiscaption \else \thisshortcaption \fi }% }% \immediate\write\auxfile{@xrdef{\floatlabel-lof}{\floatident \ifx\gtemp\empty \else : \gtemp \fi}}% }% \fi \egroup % end of \vtop % % place the captured inserts % % BEWARE: when the floats start floating, we have to issue warning % whenever an insert appears inside a float which could possibly % float. --kasal, 26may04 % \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{\begingroup \let_=\normalunderscore % normal _ character for filenames \tex % read txi-??.tex file in plain TeX. % Read the file by the name they passed if it exists. \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 \endgroup} % % 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 } % 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. % \parseargdef\documentencoding{% % 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 \setnonasciicharscatcode\active \lattwochardefs % \else \ifx \declaredencoding \latone \setnonasciicharscatcode\active \latonechardefs % \else \ifx \declaredencoding \latnine \setnonasciicharscatcode\active \latninechardefs % \else \ifx \declaredencoding \utfeight \setnonasciicharscatcode\active \utfeightchardefs % \else \message{Unknown document encoding #1, ignoring.}% % \fi % utfeight \fi % latnine \fi % latone \fi % lattwo \fi % ascii } % A message to be logged when using a character that isn't available % the default font encoding (OT1). % \def\missingcharmsg#1{\message{Character missing in OT1 encoding: #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 % % Latin1 (ISO-8859-1) character definitions. \def\latonechardefs{% \gdef^^a0{\tie} \gdef^^a1{\exclamdown} \gdef^^a2{\missingcharmsg{CENT SIGN}} \gdef^^a3{{\pounds}} \gdef^^a4{\missingcharmsg{CURRENCY SIGN}} \gdef^^a5{\missingcharmsg{YEN SIGN}} \gdef^^a6{\missingcharmsg{BROKEN BAR}} \gdef^^a7{\S} \gdef^^a8{\"{}} \gdef^^a9{\copyright} \gdef^^aa{\ordf} \gdef^^ab{\guillemetleft} \gdef^^ac{$\lnot$} \gdef^^ad{\-} \gdef^^ae{\registeredsymbol} \gdef^^af{\={}} % \gdef^^b0{\textdegree} \gdef^^b1{$\pm$} \gdef^^b2{$^2$} \gdef^^b3{$^3$} \gdef^^b4{\'{}} \gdef^^b5{$\mu$} \gdef^^b6{\P} % \gdef^^b7{$^.$} \gdef^^b8{\cedilla\ } \gdef^^b9{$^1$} \gdef^^ba{\ordm} % \gdef^^bb{\guillemetright} \gdef^^bc{$1\over4$} \gdef^^bd{$1\over2$} \gdef^^be{$3\over4$} \gdef^^bf{\questiondown} % \gdef^^c0{\`A} \gdef^^c1{\'A} \gdef^^c2{\^A} \gdef^^c3{\~A} \gdef^^c4{\"A} \gdef^^c5{\ringaccent A} \gdef^^c6{\AE} \gdef^^c7{\cedilla C} \gdef^^c8{\`E} \gdef^^c9{\'E} \gdef^^ca{\^E} \gdef^^cb{\"E} \gdef^^cc{\`I} \gdef^^cd{\'I} \gdef^^ce{\^I} \gdef^^cf{\"I} % \gdef^^d0{\DH} \gdef^^d1{\~N} \gdef^^d2{\`O} \gdef^^d3{\'O} \gdef^^d4{\^O} \gdef^^d5{\~O} \gdef^^d6{\"O} \gdef^^d7{$\times$} \gdef^^d8{\O} \gdef^^d9{\`U} \gdef^^da{\'U} \gdef^^db{\^U} \gdef^^dc{\"U} \gdef^^dd{\'Y} \gdef^^de{\TH} \gdef^^df{\ss} % \gdef^^e0{\`a} \gdef^^e1{\'a} \gdef^^e2{\^a} \gdef^^e3{\~a} \gdef^^e4{\"a} \gdef^^e5{\ringaccent a} \gdef^^e6{\ae} \gdef^^e7{\cedilla c} \gdef^^e8{\`e} \gdef^^e9{\'e} \gdef^^ea{\^e} \gdef^^eb{\"e} \gdef^^ec{\`{\dotless i}} \gdef^^ed{\'{\dotless i}} \gdef^^ee{\^{\dotless i}} \gdef^^ef{\"{\dotless i}} % \gdef^^f0{\dh} \gdef^^f1{\~n} \gdef^^f2{\`o} \gdef^^f3{\'o} \gdef^^f4{\^o} \gdef^^f5{\~o} \gdef^^f6{\"o} \gdef^^f7{$\div$} \gdef^^f8{\o} \gdef^^f9{\`u} \gdef^^fa{\'u} \gdef^^fb{\^u} \gdef^^fc{\"u} \gdef^^fd{\'y} \gdef^^fe{\th} \gdef^^ff{\"y} } % Latin9 (ISO-8859-15) encoding character definitions. \def\latninechardefs{% % Encoding is almost identical to Latin1. \latonechardefs % \gdef^^a4{\euro} \gdef^^a6{\v S} \gdef^^a8{\v s} \gdef^^b4{\v Z} \gdef^^b8{\v z} \gdef^^bc{\OE} \gdef^^bd{\oe} \gdef^^be{\"Y} } % Latin2 (ISO-8859-2) character definitions. \def\lattwochardefs{% \gdef^^a0{\tie} \gdef^^a1{\ogonek{A}} \gdef^^a2{\u{}} \gdef^^a3{\L} \gdef^^a4{\missingcharmsg{CURRENCY SIGN}} \gdef^^a5{\v L} \gdef^^a6{\'S} \gdef^^a7{\S} \gdef^^a8{\"{}} \gdef^^a9{\v S} \gdef^^aa{\cedilla S} \gdef^^ab{\v T} \gdef^^ac{\'Z} \gdef^^ad{\-} \gdef^^ae{\v Z} \gdef^^af{\dotaccent Z} % \gdef^^b0{\textdegree} \gdef^^b1{\ogonek{a}} \gdef^^b2{\ogonek{ }} \gdef^^b3{\l} \gdef^^b4{\'{}} \gdef^^b5{\v l} \gdef^^b6{\'s} \gdef^^b7{\v{}} \gdef^^b8{\cedilla\ } \gdef^^b9{\v s} \gdef^^ba{\cedilla s} \gdef^^bb{\v t} \gdef^^bc{\'z} \gdef^^bd{\H{}} \gdef^^be{\v z} \gdef^^bf{\dotaccent z} % \gdef^^c0{\'R} \gdef^^c1{\'A} \gdef^^c2{\^A} \gdef^^c3{\u A} \gdef^^c4{\"A} \gdef^^c5{\'L} \gdef^^c6{\'C} \gdef^^c7{\cedilla C} \gdef^^c8{\v C} \gdef^^c9{\'E} \gdef^^ca{\ogonek{E}} \gdef^^cb{\"E} \gdef^^cc{\v E} \gdef^^cd{\'I} \gdef^^ce{\^I} \gdef^^cf{\v D} % \gdef^^d0{\DH} \gdef^^d1{\'N} \gdef^^d2{\v N} \gdef^^d3{\'O} \gdef^^d4{\^O} \gdef^^d5{\H O} \gdef^^d6{\"O} \gdef^^d7{$\times$} \gdef^^d8{\v R} \gdef^^d9{\ringaccent U} \gdef^^da{\'U} \gdef^^db{\H U} \gdef^^dc{\"U} \gdef^^dd{\'Y} \gdef^^de{\cedilla T} \gdef^^df{\ss} % \gdef^^e0{\'r} \gdef^^e1{\'a} \gdef^^e2{\^a} \gdef^^e3{\u a} \gdef^^e4{\"a} \gdef^^e5{\'l} \gdef^^e6{\'c} \gdef^^e7{\cedilla c} \gdef^^e8{\v c} \gdef^^e9{\'e} \gdef^^ea{\ogonek{e}} \gdef^^eb{\"e} \gdef^^ec{\v e} \gdef^^ed{\'{\dotless{i}}} \gdef^^ee{\^{\dotless{i}}} \gdef^^ef{\v d} % \gdef^^f0{\dh} \gdef^^f1{\'n} \gdef^^f2{\v n} \gdef^^f3{\'o} \gdef^^f4{\^o} \gdef^^f5{\H o} \gdef^^f6{\"o} \gdef^^f7{$\div$} \gdef^^f8{\v r} \gdef^^f9{\ringaccent u} \gdef^^fa{\'u} \gdef^^fb{\H u} \gdef^^fc{\"u} \gdef^^fd{\'y} \gdef^^fe{\cedilla t} \gdef^^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 } \begingroup \catcode`\~13 \catcode`\"12 \def\UTFviiiLoop{% \global\catcode\countUTFx\active \uccode`\~\countUTFx \uppercase\expandafter{\UTFviiiTmp}% \advance\countUTFx by 1 \ifnum\countUTFx < \countUTFy \expandafter\UTFviiiLoop \fi} \countUTFx = "C2 \countUTFy = "E0 \def\UTFviiiTmp{% \xdef~{\noexpand\UTFviiiTwoOctets\string~}} \UTFviiiLoop \countUTFx = "E0 \countUTFy = "F0 \def\UTFviiiTmp{% \xdef~{\noexpand\UTFviiiThreeOctets\string~}} \UTFviiiLoop \countUTFx = "F0 \countUTFy = "F4 \def\UTFviiiTmp{% \xdef~{\noexpand\UTFviiiFourOctets\string~}} \UTFviiiLoop \endgroup \begingroup \catcode`\"=12 \catcode`\<=12 \catcode`\.=12 \catcode`\,=12 \catcode`\;=12 \catcode`\!=12 \catcode`\~=13 \gdef\DeclareUnicodeCharacter#1#2{% \countUTFz = "#1\relax %\wlog{\space\space defining Unicode char U+#1 (decimal \the\countUTFz)}% \begingroup \parseXMLCharref \def\UTFviiiTwoOctets##1##2{% \csname u8:##1\string ##2\endcsname}% \def\UTFviiiThreeOctets##1##2##3{% \csname u8:##1\string ##2\string ##3\endcsname}% \def\UTFviiiFourOctets##1##2##3##4{% \csname u8:##1\string ##2\string ##3\string ##4\endcsname}% \expandafter\expandafter\expandafter\expandafter \expandafter\expandafter\expandafter \gdef\UTFviiiTmp{#2}% \endgroup} \gdef\parseXMLCharref{% \ifnum\countUTFz < "A0\relax \errhelp = \EMsimple \errmessage{Cannot define Unicode char value < 00A0}% \else\ifnum\countUTFz < "800\relax \parseUTFviiiA,% \parseUTFviiiB C\UTFviiiTwoOctets.,% \else\ifnum\countUTFz < "10000\relax \parseUTFviiiA;% \parseUTFviiiA,% \parseUTFviiiB E\UTFviiiThreeOctets.{,;}% \else \parseUTFviiiA;% \parseUTFviiiA,% \parseUTFviiiA!% \parseUTFviiiB F\UTFviiiFourOctets.{!,;}% \fi\fi\fi } \gdef\parseUTFviiiA#1{% \countUTFx = \countUTFz \divide\countUTFz by 64 \countUTFy = \countUTFz \multiply\countUTFz by 64 \advance\countUTFx by -\countUTFz \advance\countUTFx by 128 \uccode `#1\countUTFx \countUTFz = \countUTFy} \gdef\parseUTFviiiB#1#2#3#4{% \advance\countUTFz by "#10\relax \uccode `#3\countUTFz \uppercase{\gdef\UTFviiiTmp{#2#3#4}}} \endgroup \def\utfeightchardefs{% \DeclareUnicodeCharacter{00A0}{\tie} \DeclareUnicodeCharacter{00A1}{\exclamdown} \DeclareUnicodeCharacter{00A3}{\pounds} \DeclareUnicodeCharacter{00A8}{\"{ }} \DeclareUnicodeCharacter{00A9}{\copyright} \DeclareUnicodeCharacter{00AA}{\ordf} \DeclareUnicodeCharacter{00AB}{\guillemetleft} \DeclareUnicodeCharacter{00AD}{\-} \DeclareUnicodeCharacter{00AE}{\registeredsymbol} \DeclareUnicodeCharacter{00AF}{\={ }} \DeclareUnicodeCharacter{00B0}{\ringaccent{ }} \DeclareUnicodeCharacter{00B4}{\'{ }} \DeclareUnicodeCharacter{00B8}{\cedilla{ }} \DeclareUnicodeCharacter{00BA}{\ordm} \DeclareUnicodeCharacter{00BB}{\guillemetright} \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{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{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{0118}{\ogonek{E}} \DeclareUnicodeCharacter{0119}{\ogonek{e}} \DeclareUnicodeCharacter{010A}{\dotaccent{C}} \DeclareUnicodeCharacter{010B}{\dotaccent{c}} \DeclareUnicodeCharacter{010C}{\v{C}} \DeclareUnicodeCharacter{010D}{\v{c}} \DeclareUnicodeCharacter{010E}{\v{D}} \DeclareUnicodeCharacter{0112}{\=E} \DeclareUnicodeCharacter{0113}{\=e} \DeclareUnicodeCharacter{0114}{\u{E}} \DeclareUnicodeCharacter{0115}{\u{e}} \DeclareUnicodeCharacter{0116}{\dotaccent{E}} \DeclareUnicodeCharacter{0117}{\dotaccent{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{0124}{\^H} \DeclareUnicodeCharacter{0125}{\^h} \DeclareUnicodeCharacter{0128}{\~I} \DeclareUnicodeCharacter{0129}{\~{\dotless{i}}} \DeclareUnicodeCharacter{012A}{\=I} \DeclareUnicodeCharacter{012B}{\={\dotless{i}}} \DeclareUnicodeCharacter{012C}{\u{I}} \DeclareUnicodeCharacter{012D}{\u{\dotless{i}}} \DeclareUnicodeCharacter{0130}{\dotaccent{I}} \DeclareUnicodeCharacter{0131}{\dotless{i}} \DeclareUnicodeCharacter{0132}{IJ} \DeclareUnicodeCharacter{0133}{ij} \DeclareUnicodeCharacter{0134}{\^J} \DeclareUnicodeCharacter{0135}{\^{\dotless{j}}} \DeclareUnicodeCharacter{0139}{\'L} \DeclareUnicodeCharacter{013A}{\'l} \DeclareUnicodeCharacter{0141}{\L} \DeclareUnicodeCharacter{0142}{\l} \DeclareUnicodeCharacter{0143}{\'N} \DeclareUnicodeCharacter{0144}{\'n} \DeclareUnicodeCharacter{0147}{\v{N}} \DeclareUnicodeCharacter{0148}{\v{n}} \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{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{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{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{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{ }} \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} \DeclareUnicodeCharacter{2013}{--} \DeclareUnicodeCharacter{2014}{---} \DeclareUnicodeCharacter{2018}{\quoteleft} \DeclareUnicodeCharacter{2019}{\quoteright} \DeclareUnicodeCharacter{201A}{\quotesinglbase} \DeclareUnicodeCharacter{201C}{\quotedblleft} \DeclareUnicodeCharacter{201D}{\quotedblright} \DeclareUnicodeCharacter{201E}{\quotedblbase} \DeclareUnicodeCharacter{2022}{\bullet} \DeclareUnicodeCharacter{2026}{\dots} \DeclareUnicodeCharacter{2039}{\guilsinglleft} \DeclareUnicodeCharacter{203A}{\guilsinglright} \DeclareUnicodeCharacter{20AC}{\euro} \DeclareUnicodeCharacter{2192}{\expansion} \DeclareUnicodeCharacter{21D2}{\result} \DeclareUnicodeCharacter{2212}{\minus} \DeclareUnicodeCharacter{2217}{\point} \DeclareUnicodeCharacter{2261}{\equiv} }% end of \utfeightchardefs % US-ASCII character definitions. \def\asciichardefs{% nothing need be done \relax } % 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 \pageheight = \vsize % \hsize = #2\relax \outerhsize = \hsize \advance\outerhsize by 0.5in \pagewidth = \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 \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} % 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\_} \let\realunder=_ % Subroutine for the previous macro. \def\_{\leavevmode \kern.07em \vbox{\hrule width.3em height.1ex}\kern .07em } \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}%$ font-lock fix % 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} % 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. % 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). It seems better for @backslashchar{} to always % print a typewriter backslash, 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@normalbackslash{{@tt @ifmmode @mathchar29020 @else @backslashcurfont @fi}} @let@backslashchar = @normalbackslash % @backslashchar{} is for user documents. % On startup, @fixbackslash assigns: % @let \ = @normalbackslash % \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 `\'. % @def@normalturnoffactive{% @let"=@normaldoublequote @let$=@normaldollar %$ font-lock fix @let+=@normalplus @let<=@normalless @let>=@normalgreater @let\=@normalbackslash @let^=@normalcaret @let_=@normalunderscore @let|=@normalverticalbar @let~=@normaltilde @markupsetuplqdefault @markupsetuprqdefault @unsepspaces } % 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 turn back 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 (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" @c time-stamp-start: "def\\\\texinfoversion{" @c time-stamp-format: "%:y-%02m-%02d.%02H" @c time-stamp-end: "}" @c End: @c vim:sw=2: @ignore arch-tag: e1b36e32-c96e-4135-a41a-0b2efa2ea115 @end ignore gcal-3.6.3/build-aux/missing0000755000175000017500000002415212125375434012655 00000000000000#! /bin/sh # Common stub for a few missing GNU programs while installing. scriptversion=2012-01-06.13; # UTC # Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005, 2006, # 2008, 2009, 2010, 2011, 2012 Free Software Foundation, Inc. # Originally 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 run=: sed_output='s/.* --output[ =]\([^ ]*\).*/\1/p' sed_minuso='s/.* -o \([^ ]*\).*/\1/p' # In the cases where this matters, `missing' is being run in the # srcdir already. if test -f configure.ac; then configure_ac=configure.ac else configure_ac=configure.in fi msg="missing on your system" case $1 in --run) # Try to run requested program, and just exit if it succeeds. run= shift "$@" && exit 0 # Exit code 63 means version mismatch. This often happens # when the user try to use an ancient version of a tool on # a file that requires a minimum version. In this case we # we should proceed has if the program had been absent, or # if --run hadn't been passed. if test $? = 63; then run=: msg="probably too old" fi ;; -h|--h|--he|--hel|--help) echo "\ $0 [OPTION]... PROGRAM [ARGUMENT]... Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an error status if there is no known handling for PROGRAM. Options: -h, --help display this help and exit -v, --version output version information and exit --run try to run the given command, and emulate it if it fails Supported PROGRAM values: aclocal touch file \`aclocal.m4' autoconf touch file \`configure' autoheader touch file \`config.h.in' autom4te touch the output file, or create a stub one automake touch all \`Makefile.in' files bison create \`y.tab.[ch]', if possible, from existing .[ch] flex create \`lex.yy.c', if possible, from existing .c help2man touch the output file lex create \`lex.yy.c', if possible, from existing .c makeinfo touch the output file yacc create \`y.tab.[ch]', if possible, from existing .[ch] 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 # normalize program name to check for. program=`echo "$1" | sed ' s/^gnu-//; t s/^gnu//; t s/^g//; t'` # Now exit if we have it, but it failed. Also exit now if we # don't have it and --version was passed (most likely to detect # the program). This is about non-GNU programs, so use $1 not # $program. case $1 in lex*|yacc*) # Not GNU programs, they don't have --version. ;; *) if test -z "$run" && ($1 --version) > /dev/null 2>&1; then # We have it, but it failed. exit 1 elif test "x$2" = "x--version" || test "x$2" = "x--help"; then # Could not run --version or --help. This is probably someone # running `$TOOL --version' or `$TOOL --help' to check whether # $TOOL exists and not knowing $TOOL uses missing. exit 1 fi ;; esac # If it does not exist, or fails to run (possibly an outdated version), # try to emulate it. case $program in aclocal*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`acinclude.m4' or \`${configure_ac}'. You might want to install the \`Automake' and \`Perl' packages. Grab them from any GNU archive site." touch aclocal.m4 ;; autoconf*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`${configure_ac}'. You might want to install the \`Autoconf' and \`GNU m4' packages. Grab them from any GNU archive site." touch configure ;; autoheader*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`acconfig.h' or \`${configure_ac}'. You might want to install the \`Autoconf' and \`GNU m4' packages. Grab them from any GNU archive site." files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}` test -z "$files" && files="config.h" touch_files= for f in $files; do case $f in *:*) touch_files="$touch_files "`echo "$f" | sed -e 's/^[^:]*://' -e 's/:.*//'`;; *) touch_files="$touch_files $f.in";; esac done touch $touch_files ;; automake*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'. You might want to install the \`Automake' and \`Perl' packages. Grab them from any GNU archive site." find . -type f -name Makefile.am -print | sed 's/\.am$/.in/' | while read f; do touch "$f"; done ;; autom4te*) echo 1>&2 "\ WARNING: \`$1' is needed, but is $msg. You might have modified some files without having the proper tools for further handling them. You can get \`$1' as part of \`Autoconf' from any GNU archive site." file=`echo "$*" | sed -n "$sed_output"` test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` if test -f "$file"; then touch $file else test -z "$file" || exec >$file echo "#! /bin/sh" echo "# Created by GNU Automake missing as a replacement of" echo "# $ $@" echo "exit 0" chmod +x $file exit 1 fi ;; bison*|yacc*) echo 1>&2 "\ WARNING: \`$1' $msg. You should only need it if you modified a \`.y' file. You may need the \`Bison' package in order for those modifications to take effect. You can get \`Bison' from any GNU archive site." rm -f y.tab.c y.tab.h if test $# -ne 1; then eval LASTARG=\${$#} case $LASTARG in *.y) SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'` if test -f "$SRCFILE"; then cp "$SRCFILE" y.tab.c fi SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'` if test -f "$SRCFILE"; then cp "$SRCFILE" y.tab.h fi ;; esac fi if test ! -f y.tab.h; then echo >y.tab.h fi if test ! -f y.tab.c; then echo 'main() { return 0; }' >y.tab.c fi ;; lex*|flex*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified a \`.l' file. You may need the \`Flex' package in order for those modifications to take effect. You can get \`Flex' from any GNU archive site." rm -f lex.yy.c if test $# -ne 1; then eval LASTARG=\${$#} case $LASTARG in *.l) SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'` if test -f "$SRCFILE"; then cp "$SRCFILE" lex.yy.c fi ;; esac fi if test ! -f lex.yy.c; then echo 'main() { return 0; }' >lex.yy.c fi ;; help2man*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified a dependency of a manual page. You may need the \`Help2man' package in order for those modifications to take effect. You can get \`Help2man' from any GNU archive site." file=`echo "$*" | sed -n "$sed_output"` test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` if test -f "$file"; then touch $file else test -z "$file" || exec >$file echo ".ab help2man is required to generate this page" exit $? fi ;; makeinfo*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified a \`.texi' or \`.texinfo' file, or any other file indirectly affecting the aspect of the manual. The spurious call might also be the consequence of using a buggy \`make' (AIX, DU, IRIX). You might want to install the \`Texinfo' package or the \`GNU make' package. Grab either from any GNU archive site." # The file to touch is that specified with -o ... file=`echo "$*" | sed -n "$sed_output"` test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` if test -z "$file"; then # ... or it is the one specified with @setfilename ... infile=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'` file=`sed -n ' /^@setfilename/{ s/.* \([^ ]*\) *$/\1/ p q }' $infile` # ... or it is derived from the source name (dir/f.texi becomes f.info) test -z "$file" && file=`echo "$infile" | sed 's,.*/,,;s,.[^.]*$,,'`.info fi # If the file does not exist, the user really needs makeinfo; # let's fail without touching anything. test -f $file || exit 1 touch $file ;; *) echo 1>&2 "\ WARNING: \`$1' is needed, and is $msg. You might have modified some files without having the proper tools for further handling them. Check the \`README' file, it often tells you about the needed prerequisites for installing this package. You may also peek at any GNU archive site, in case some other package would contain this missing \`$1' program." exit 1 ;; esac exit 0 # 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-3.6.3/build-aux/depcomp0000755000175000017500000005064312125375435012640 00000000000000#! /bin/sh # depcomp - compile a program generating dependencies as side-effects scriptversion=2012-03-27.16; # UTC # Copyright (C) 1999, 2000, 2003, 2004, 2005, 2006, 2007, 2009, 2010, # 2011, 2012 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 # A tabulation character. tab=' ' # A newline character. nl=' ' 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" # 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 informations. 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 -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi mv "$tmpdepfile" "$depfile" ;; gcc) ## 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). ## - 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 -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" echo "$object : \\" > "$depfile" alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz ## 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. tr ' ' "$nl" < "$tmpdepfile" | ## 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. 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 ;; sgi) if test "$libtool" = yes; then "$@" "-Wp,-MDupdate,$tmpdepfile" else "$@" -MDupdate "$tmpdepfile" fi stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files echo "$object : \\" > "$depfile" # Clip off the initial element (the dependent). Don't try to be # clever and replace this with sed code, as IRIX sed won't handle # lines with more than a fixed number of characters (4096 in # IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines; # the IRIX cc adds comments like '#:fec' to the end of the # dependency line. tr ' ' "$nl" < "$tmpdepfile" \ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \ tr "$nl" ' ' >> "$depfile" echo >> "$depfile" # The second pass generates a dummy entry for each header file. tr ' ' "$nl" < "$tmpdepfile" \ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \ >> "$depfile" else # The sourcefile does not contain any dependencies, so just # store a dummy comment line, to avoid errors with the Makefile # "include basename.Plo" scheme. echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" ;; 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. dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` test "x$dir" = "x$object" && dir= base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` 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 -eq 0; then : else rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" exit $stat fi for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" do test -f "$tmpdepfile" && break done if test -f "$tmpdepfile"; then # Each line is of the form 'foo.o: dependent.h'. # Do two passes, one to just change these to # '$object: dependent.h' and one to simply 'dependent.h:'. sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile" sed -e 's,^.*\.[a-z]*:['"$tab"' ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile" else # The sourcefile does not contain any dependencies, so just # store a dummy comment line, to avoid errors with the Makefile # "include basename.Plo" scheme. echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" ;; icc) # Intel's C compiler anf tcc (Tiny C Compiler) understand '-MD -MF file'. # However on # $CC -MD -MF foo.d -c -o sub/foo.o sub/foo.c # ICC 7.0 will fill foo.d with something like # foo.o: sub/foo.c # foo.o: sub/foo.h # which is wrong. We want # sub/foo.o: sub/foo.c # sub/foo.o: sub/foo.h # sub/foo.c: # sub/foo.h: # ICC 7.1 will output # foo.o: sub/foo.c sub/foo.h # and will wrap long lines using '\': # foo.o: sub/foo.c ... \ # sub/foo.h ... \ # ... # tcc 0.9.26 (FIXME still under development at the moment of writing) # will emit a similar output, but also prepend the continuation lines # with horizontal tabulation characters. "$@" -MD -MF "$tmpdepfile" stat=$? if test $stat -eq 0; then : else 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 -e "s/^[ $tab][ $tab]*/ /" -e "s,^[^:]*:,$object :," \ < "$tmpdepfile" > "$depfile" sed ' s/[ '"$tab"'][ '"$tab"']*/ /g s/^ *// s/ *\\*$// s/^[^:]*: *// /^$/d /:$/d s/$/ :/ ' < "$tmpdepfile" >> "$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. dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` test "x$dir" = "x$object" && dir= base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` 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 -eq 0; then : else 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,^.*\.[a-z]*:,$object:," "$tmpdepfile" > "$depfile" # Add 'dependent.h:' lines. sed -ne '2,${ s/^ *// s/ \\*$// s/$/:/ p }' "$tmpdepfile" >> "$depfile" else echo "#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. dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` test "x$dir" = "x$object" && dir= base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` if test "$libtool" = yes; then # With Tru64 cc, shared objects can also be used to make a # static library. This mechanism is used in libtool 1.4 series to # handle both shared and static libraries in a single compilation. # With libtool 1.4, dependencies were output in $dir.libs/$base.lo.d. # # With libtool 1.5 this exception was removed, and libtool now # 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.libs/$base.lo.d # libtool 1.4 tmpdepfile2=$dir$base.o.d # libtool 1.5 tmpdepfile3=$dir.libs/$base.o.d # libtool 1.5 tmpdepfile4=$dir.libs/$base.d # Compaq CCC V6.2-504 "$@" -Wc,-MD else tmpdepfile1=$dir$base.o.d tmpdepfile2=$dir$base.d tmpdepfile3=$dir$base.d tmpdepfile4=$dir$base.d "$@" -MD fi stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4" exit $stat fi for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4" do test -f "$tmpdepfile" && break done if test -f "$tmpdepfile"; then sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile" sed -e 's,^.*\.[a-z]*:['"$tab"' ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile" else echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" ;; 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" = 0; then : else 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" 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" tr ' ' "$nl" < "$tmpdepfile" | \ ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. 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" sed '1,2d' "$tmpdepfile" | tr ' ' "$nl" | \ ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. 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: "UTC" # time-stamp-end: "; # UTC" # End: gcal-3.6.3/build-aux/config.rpath0000755000175000017500000004443512076511422013566 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-2013 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.2*) hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes ;; freebsd2*) 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* | dragonfly*) case "$host_os" in freebsd[123]*) library_names_spec='$libname$shrext$versuffix' ;; *) library_names_spec='$libname$shrext' ;; esac ;; 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=/' <. # # 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. # Please send patches to . Submit a context # diff and a properly formatted GNU ChangeLog entry. # # 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;hb=HEAD # 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 $0 [OPTION] 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 (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 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-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \ knetbsd*-gnu* | netbsd*-gnu* | \ kopensolaris*-gnu* | \ 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 | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \ | be32 | be64 \ | bfin \ | c4x | clipper \ | d10v | d30v | dlx | dsp16xx \ | epiphany \ | fido | fr30 | frv \ | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ | hexagon \ | i370 | i860 | i960 | ia64 \ | ip2k | iq2000 \ | le32 | le64 \ | lm32 \ | m32c | m32r | m32rle | m68000 | m68k | m88k \ | maxq | mb | microblaze | 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 \ | mipsisa64 | mipsisa64el \ | mipsisa64r2 | mipsisa64r2el \ | mipsisa64sb1 | mipsisa64sb1el \ | mipsisa64sr71k | mipsisa64sr71kel \ | mipstx39 | mipstx39el \ | mn10200 | mn10300 \ | moxie \ | mt \ | msp430 \ | nds32 | nds32le | nds32be \ | nios | nios2 \ | ns16k | ns32k \ | open8 \ | or32 \ | pdp10 | pdp11 | pj | pjl \ | powerpc | powerpc64 | powerpc64le | powerpcle \ | pyramid \ | rl78 | rx \ | score \ | 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 \ | spu \ | tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \ | ubicom32 \ | v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \ | 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 ;; m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | 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-* \ | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ | avr-* | avr32-* \ | be32-* | be64-* \ | bfin-* | bs2000-* \ | c[123]* | c30-* | [cjt]90-* | c4x-* \ | clipper-* | craynv-* | cydra-* \ | d10v-* | d30v-* | dlx-* \ | 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-* \ | le32-* | le64-* \ | lm32-* \ | m32c-* | m32r-* | m32rle-* \ | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ | m88110-* | m88k-* | maxq-* | mcore-* | metag-* | microblaze-* \ | 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-* \ | mipsisa64-* | mipsisa64el-* \ | mipsisa64r2-* | mipsisa64r2el-* \ | mipsisa64sb1-* | mipsisa64sb1el-* \ | mipsisa64sr71k-* | mipsisa64sr71kel-* \ | mipstx39-* | mipstx39el-* \ | mmix-* \ | mt-* \ | msp430-* \ | nds32-* | nds32le-* | nds32be-* \ | nios-* | nios2-* \ | none-* | np1-* | ns16k-* | ns32k-* \ | open8-* \ | orion-* \ | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \ | pyramid-* \ | 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-* \ | 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 ;; 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 ;; 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 ;; 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 ;; mingw32) basic_machine=i386-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 ;; msdos) basic_machine=i386-pc os=-msdos ;; ms1-*) basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'` ;; msys) basic_machine=i386-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 | ppc-le | powerpc-little) 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 | ppc64-le | powerpc64-little) 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) 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* \ | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ | -aos* | -aros* \ | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \ | -openbsd* | -solidbsd* \ | -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* \ | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ | -mingw32* | -linux-gnu* | -linux-android* \ | -linux-newlib* | -linux-uclibc* \ | -uxpv* | -beos* | -mpeix* | -udk* \ | -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*) # 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 ;; -kaos*) os=-kaos ;; -zvmoe) os=-zvmoe ;; -dicos*) os=-dicos ;; -nacl*) ;; -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 ;; 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 ;; *-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-3.6.3/build-aux/git-version-gen0000755000175000017500000001751412076511422014217 00000000000000#!/bin/sh # Print a version string. scriptversion=2012-12-31.23; # UTC # Copyright (C) 2007-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 . # 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 of git tags (default 'v') --fallback 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 time stamp 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. echo "$v" | tr -d "$nl" # 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-3.6.3/build-aux/compile0000755000175000017500000001615212125375434012635 00000000000000#! /bin/sh # Wrapper for compilers which do not understand '-c -o'. scriptversion=2012-03-05.13; # UTC # Copyright (C) 1999, 2000, 2003, 2004, 2005, 2009, 2010, 2012 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 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-3.6.3/BUGS0000644000175000017500000000231512125364443010042 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-3.6.3/README0000644000175000017500000004156512125364443010251 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 2, 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-3.6.3/INSTALL0000644000175000017500000003660012125375436010420 00000000000000Installation Instructions ************************* Copyright (C) 1994-1996, 1999-2002, 2004-2011 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 commands `./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 bug. Until the bug is fixed you can use this workaround: CONFIG_SHELL=/bin/bash /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-3.6.3/COPYING0000644000175000017500000007722012125364525010422 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-3.6.3/LIMITATIONS0000644000175000017500000000550312125364443011100 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-3.6.3/src/0000755000175000017500000000000012125376244010227 500000000000000gcal-3.6.3/src/help.h0000644000175000017500000000422012125364452011244 00000000000000#ifndef __HELP_H # define __HELP_H /* * help.h: 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-3.6.3/src/txt2gcal.h0000644000175000017500000000230312125364453012045 00000000000000#ifndef __TXT2GAL_H # define __TXT2GAL_H /* * txt2gcal.h: 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-3.6.3/src/hd-data4.c0000644000175000017500000036066112125364452011713 00000000000000/* * hd-data4.c: 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); } 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); } 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); } 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 Islands. */ { 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); } 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, 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); } 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); } 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-3.6.3/src/rc-use.h0000644000175000017500000000271612125364453011523 00000000000000#ifndef __RC_USE_H # define __RC_USE_H /* * rc-use.h: 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-3.6.3/src/hd-data2.c0000644000175000017500000044365712125364452011720 00000000000000/* * hd-data2.c: 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); } 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); } 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); } 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); } 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); } 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); } 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); } 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); } 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-Land. */ { 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); } 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-3.6.3/src/tailor.h0000644000175000017500000005706612125364453011627 00000000000000#ifndef __TAILOR_H # define __TAILOR_H /* * tailor.h: 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 /* FIXME: this is just a quick hack. Avoid the redefinition of ERA. */ # undef ERA # include # define _(Str) gettext(Str) # define N_(Str) (Str) /* * 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 "\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 "\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 "\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 "\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 "'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-3.6.3/src/rc-check.h0000644000175000017500000000261112125364453011776 00000000000000#ifndef __RC_CHECK_H # define __RC_CHECK_H /* * rc-check.h: 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-3.6.3/src/hd-data.h0000644000175000017500000001226012125364452011621 00000000000000#ifndef __HD_DATA_H # define __HD_DATA_H /* * hd-data.h: 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)); 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-3.6.3/src/gcal2txt.c0000644000175000017500000006104312125364452012045 00000000000000/* * gcal2txt.c: 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 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-3.6.3/src/hd-data.c0000644000175000017500000046445512125364452011635 00000000000000/* * hd-data.c: 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/Nordwest 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-Land"), 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/Saar"), 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 Islands"), 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 Fawke's 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) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /* 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); 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-3.6.3/src/tcal.h0000644000175000017500000000264112125364453011245 00000000000000#ifndef __TCAL_H # define __TCAL_H /* * tcal.h: 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-3.6.3/src/rc-insert.h0000644000175000017500000000266212125364453012233 00000000000000#ifndef __RC_INSERT_H # define __RC_INSERT_H /* * rc-insert.h: 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-3.6.3/src/Makefile.in0000644000175000017500000017761512125375436012237 00000000000000# Makefile.in generated by automake 1.11.6 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 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 2 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__make_dryrun = \ { \ am__dry=no; \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ *) \ for am__flg in $$MAKEFLAGS; do \ case $$am__flg in \ *=*|--*) ;; \ *n*) am__dry=yes; break;; \ esac; \ done;; \ esac; \ test $$am__dry = yes; \ } 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 DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.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/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/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/exponentd.m4 $(top_srcdir)/m4/exponentf.m4 \ $(top_srcdir)/m4/exponentl.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/fpieee.m4 \ $(top_srcdir)/m4/fpurge.m4 $(top_srcdir)/m4/freading.m4 \ $(top_srcdir)/m4/free.m4 $(top_srcdir)/m4/frexp.m4 \ $(top_srcdir)/m4/frexpl.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/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/iconv.m4 \ $(top_srcdir)/m4/iconv_h.m4 $(top_srcdir)/m4/iconv_open.m4 \ $(top_srcdir)/m4/include_next.m4 $(top_srcdir)/m4/inline.m4 \ $(top_srcdir)/m4/intlmacosx.m4 $(top_srcdir)/m4/intmax_t.m4 \ $(top_srcdir)/m4/inttypes_h.m4 $(top_srcdir)/m4/ioctl.m4 \ $(top_srcdir)/m4/isnand.m4 $(top_srcdir)/m4/isnanf.m4 \ $(top_srcdir)/m4/isnanl.m4 $(top_srcdir)/m4/langinfo_h.m4 \ $(top_srcdir)/m4/largefile.m4 $(top_srcdir)/m4/ldexpl.m4 \ $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ $(top_srcdir)/m4/lib-prefix.m4 \ $(top_srcdir)/m4/libunistring-base.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/malloca.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/nocrash.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/printf-frexp.m4 \ $(top_srcdir)/m4/printf-frexpl.m4 $(top_srcdir)/m4/printf.m4 \ $(top_srcdir)/m4/progtest.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/signbit.m4 \ $(top_srcdir)/m4/sin.m4 $(top_srcdir)/m4/size_max.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/stdint_h.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/ulonglong.m4 $(top_srcdir)/m4/unistd-safer.m4 \ $(top_srcdir)/m4/unistd_h.m4 $(top_srcdir)/m4/unlink.m4 \ $(top_srcdir)/m4/vasnprintf.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)/m4/xsize.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) 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) 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_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ 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_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; 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 ETAGS = etags CTAGS = ctags 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@ 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_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_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_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_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_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_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_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_SAME_LONG_DOUBLE_AS_DOUBLE = @HAVE_SAME_LONG_DOUBLE_AS_DOUBLE@ 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_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_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@ LIBUNISTRING_UNICONV_H = @LIBUNISTRING_UNICONV_H@ LIBUNISTRING_UNISTDIO_H = @LIBUNISTRING_UNISTDIO_H@ LIBUNISTRING_UNISTR_H = @LIBUNISTRING_UNISTR_H@ LIBUNISTRING_UNITYPES_H = @LIBUNISTRING_UNITYPES_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_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_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_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_DPRINTF = @REPLACE_DPRINTF@ REPLACE_DUP = @REPLACE_DUP@ REPLACE_DUP2 = @REPLACE_DUP2@ REPLACE_DUPLOCALE = @REPLACE_DUPLOCALE@ REPLACE_EXP2 = @REPLACE_EXP2@ REPLACE_EXP2L = @REPLACE_EXP2L@ 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_GETGROUPS = @REPLACE_GETGROUPS@ REPLACE_GETLINE = @REPLACE_GETLINE@ REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@ REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@ REPLACE_GETTIMEOFDAY = @REPLACE_GETTIMEOFDAY@ 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_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_RAISE = @REPLACE_RAISE@ REPLACE_RANDOM_R = @REPLACE_RANDOM_R@ REPLACE_READ = @REPLACE_READ@ REPLACE_READLINK = @REPLACE_READLINK@ 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_SLEEP = @REPLACE_SLEEP@ REPLACE_SNPRINTF = @REPLACE_SNPRINTF@ REPLACE_SPRINTF = @REPLACE_SPRINTF@ 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_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@ 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_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_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@ 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 .PRECIOUS: 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 $< .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 `$(CYGPATH_W) '$<'` ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ 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 CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ 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" 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 all all-am check check-am clean clean-binPROGRAMS \ clean-generic ctags 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 uninstall \ uninstall-am uninstall-binPROGRAMS # 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-3.6.3/src/globals.h0000644000175000017500000002366012125364452011750 00000000000000#ifndef __GLOBALS_H # define __GLOBALS_H /* * globals.h: 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-3.6.3/src/file-io.c0000644000175000017500000012711412125364452011643 00000000000000/* * file-io.c: 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-3.6.3/src/hd-use.h0000644000175000017500000000563112125364452011510 00000000000000#ifndef __HD_USE_H # define __HD_USE_H /* * hd-use.h: 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-3.6.3/src/hd-data3.h0000644000175000017500000003476112125364452011716 00000000000000#ifndef __HD_DATA3_H # define __HD_DATA3_H /* * hd-data3.h: 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-3.6.3/src/hd-astro.c0000644000175000017500000015104712125364452012042 00000000000000/* * hd-astro.c: 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-3.6.3/src/tty.c0000644000175000017500000012333512125364453011141 00000000000000/* * tty.c: 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-3.6.3/src/hd-data2.h0000644000175000017500000004044312125364452011707 00000000000000#ifndef __HD_DATA2_H # define __HD_DATA2_H /* * hd-data2.h: 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-3.6.3/src/rc-insert.c0000644000175000017500000031551312125364453012230 00000000000000/* * rc-insert.c: 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 or 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-3.6.3/src/hd-data3.c0000644000175000017500000050065012125364452011704 00000000000000/* * hd-data3.c: 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) 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_ALL_SAINTS_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, 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); } 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); holiday (*init_data, detected, _(hd_text[HD_ALL_SAINTS_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, 11, 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/Saar. */ { 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) 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); 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); } 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); } 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); } 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); } 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); } 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); } 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); } 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); } 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); } 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); } 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); } 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); } 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); } 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-3.6.3/src/hd-data5.h0000644000175000017500000003455512125364452011721 00000000000000#ifndef __HD_DATA5_H # define __HD_DATA5_H /* * hd-data4.h: 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-3.6.3/src/Makefile.am0000644000175000017500000000556512125364452012214 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 2 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-3.6.3/src/help.c0000644000175000017500000032130112125364452011241 00000000000000/* * help.c: 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-3.6.3/src/rc-utils.c0000644000175000017500000027726712125364453012101 00000000000000/* * rc-utils.c: 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-3.6.3/src/print.c0000644000175000017500000011651512125364453011457 00000000000000/* * print.c: 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-3.6.3/src/file-io.h0000644000175000017500000000370212125364452011644 00000000000000#ifndef __FILE_IO_H # define __FILE_IO_H /* * file-io.h: 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-3.6.3/src/rc-use.c0000644000175000017500000023013612125364453011515 00000000000000/* * rc-use.c: 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 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 ((VOID_PTR) 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 ((VOID_PTR) 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-3.6.3/src/tcal.c0000644000175000017500000006637712125364453011260 00000000000000/* * tcal.c: 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 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-3.6.3/src/hd-astro.h0000644000175000017500000000664312125364452012050 00000000000000#ifndef __HD_ASTRO_H # define __HD_ASTRO_H /* * hd-astro.h: 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-3.6.3/src/hd-data4.h0000644000175000017500000002610712125364452011712 00000000000000#ifndef __HD_DATA4_H # define __HD_DATA4_H /* * hd-data4.h: 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-3.6.3/src/defines.h0000644000175000017500000000547712125364452011750 00000000000000#ifndef __DEFINES_H # define __DEFINES_H /* * defines.h: 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-3.6.3/src/utils.c0000644000175000017500000015661512125364453011470 00000000000000/* * utils.c: Pool of common functions. * * * 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_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-3.6.3/src/txt2gcal.c0000644000175000017500000006260712125364453012055 00000000000000/* * txt2gcal.c: 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 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-3.6.3/src/rc-check.c0000644000175000017500000015613112125364453012000 00000000000000/* * rc-check.c: 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 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-3.6.3/src/rc-astro.h0000644000175000017500000000525112125364453012054 00000000000000#ifndef __RC_ASTRO_H # define __RC_ASTRO_H /* * rc-astro.h: 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-3.6.3/src/common.h0000644000175000017500000010207512125364452011613 00000000000000#ifndef __COMMON_H # define __COMMON_H /* * common.h: Basic program specific statements, macros and typedefs... * * * Copyright (c) 1994, 95, 96, 1997, 2000, 2011, 2012 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: 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 # ifndef NULL # if !defined(__cplusplus) || defined(__GNUC__) # define NULL ((VOID_PTR)0) # else /* __cplusplus && !__GNUC__ */ # define NULL (0) # endif /* __cplusplus && !__GNUC__ */ # 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 # ifndef EXIT_FAILURE # define EXIT_FAILURE 1 # endif # ifndef EXIT_SUCCESS # define EXIT_SUCCESS ERR_NONE # 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 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-3.6.3/src/rc-utils.h0000644000175000017500000000743712125364453012074 00000000000000#ifndef __RC_UTILS_H # define __RC_UTILS_H /* * rc-utils.h: 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-3.6.3/src/rc-astro.c0000644000175000017500000035771012125364453012061 00000000000000/* * rc-astro.c: 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-3.6.3/src/utils.h0000644000175000017500000001077212125364453011466 00000000000000#ifndef __UTILS_H # define __UTILS_H /* * utils.h: 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-3.6.3/src/print.h0000644000175000017500000000230212125364453011450 00000000000000#ifndef __PRINT_H # define __PRINT_H /* * print.h: 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-3.6.3/src/hd-defs.h0000644000175000017500000007663312125364452011647 00000000000000#ifndef __HD_DEFS_H # define __HD_DEFS_H /* * hd-defs.h: 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-3.6.3/src/gcal.h0000644000175000017500000000246012125364452011226 00000000000000#ifndef __GCAL_H # define __GCAL_H /* * gcal.h: 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-3.6.3/src/hd-use.c0000644000175000017500000017066312125364452011513 00000000000000/* * hd-use.c: 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-3.6.3/src/tty.h0000644000175000017500000000377712125364453011155 00000000000000#ifndef __TTY_H # define __TTY_H /* * tty.h: 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-3.6.3/src/hd-data1.c0000644000175000017500000024717512125364452011714 00000000000000/* * hd-data1.c: 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); } 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); } 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); } 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 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); holiday (*init_data, detected, _(hd_text[HD_THE_QUEENS_BIRTHDAY].ht_text), ptr_cc_id, "+", dvec[4 - 1], 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); } 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-3.6.3/src/hd-data1.h0000644000175000017500000001030612125364452011701 00000000000000#ifndef __HD_DATA1_H # define __HD_DATA1_H /* * hd-data1.h: 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-3.6.3/src/rc-defs.h0000644000175000017500000010470512125364453011651 00000000000000#ifndef __RC_DEFS_H # define __RC_DEFS_H /* * rc-defs.h: 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-3.6.3/src/gcal2txt.h0000644000175000017500000000232412125364452012047 00000000000000#ifndef __GCAL2TXT_H # define __GCAL2TXT_H /* * gcal2txt.h: 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-3.6.3/src/hd-data5.c0000644000175000017500000035631412125364452011714 00000000000000/* * hd-data5.c: 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); } 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); } 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); } 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-3.6.3/src/gcal.c0000644000175000017500000054072512125364452011234 00000000000000/* * gcal.c: Main part which controls the extended calendar program. * * * 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_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 # if HAVE_FCNTL_H # 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 # endif # if HAVE_SYS_WAIT_H # include # endif # ifndef WEXITSTATUS # define WEXITSTATUS(stat_val) ((unsigned int)(stat_val) >> 8) # endif # ifndef WIFEXITED # define WIFEXITED(stat_val) (((stat_val) & 0xff) == 0) # 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 && defined _NL_TIME_FIRST_WEEKDAY start_day = (nl_langinfo (_NL_TIME_FIRST_WEEKDAY)[0] + 5) % 7 + 1; #else /* !GCAL_NLS */ 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-3.6.3/Makefile.in0000644000175000017500000021222712125375436011435 00000000000000# Makefile.in generated by automake 1.11.6 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 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__make_dryrun = \ { \ am__dry=no; \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ *) \ for am__flg in $$MAKEFLAGS; do \ case $$am__flg in \ *=*|--*) ;; \ *n*) am__dry=yes; break;; \ esac; \ done;; \ esac; \ test $$am__dry = yes; \ } 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 = . DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in $(srcdir)/config.h.in \ $(srcdir)/install-inf.in $(top_srcdir)/configure \ $(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 THANKS TODO build-aux/compile \ build-aux/config.guess build-aux/config.rpath \ build-aux/config.sub build-aux/depcomp build-aux/install-sh \ build-aux/missing build-aux/texinfo.tex ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.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/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/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/exponentd.m4 $(top_srcdir)/m4/exponentf.m4 \ $(top_srcdir)/m4/exponentl.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/fpieee.m4 \ $(top_srcdir)/m4/fpurge.m4 $(top_srcdir)/m4/freading.m4 \ $(top_srcdir)/m4/free.m4 $(top_srcdir)/m4/frexp.m4 \ $(top_srcdir)/m4/frexpl.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/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/iconv.m4 \ $(top_srcdir)/m4/iconv_h.m4 $(top_srcdir)/m4/iconv_open.m4 \ $(top_srcdir)/m4/include_next.m4 $(top_srcdir)/m4/inline.m4 \ $(top_srcdir)/m4/intlmacosx.m4 $(top_srcdir)/m4/intmax_t.m4 \ $(top_srcdir)/m4/inttypes_h.m4 $(top_srcdir)/m4/ioctl.m4 \ $(top_srcdir)/m4/isnand.m4 $(top_srcdir)/m4/isnanf.m4 \ $(top_srcdir)/m4/isnanl.m4 $(top_srcdir)/m4/langinfo_h.m4 \ $(top_srcdir)/m4/largefile.m4 $(top_srcdir)/m4/ldexpl.m4 \ $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ $(top_srcdir)/m4/lib-prefix.m4 \ $(top_srcdir)/m4/libunistring-base.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/malloca.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/nocrash.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/printf-frexp.m4 \ $(top_srcdir)/m4/printf-frexpl.m4 $(top_srcdir)/m4/printf.m4 \ $(top_srcdir)/m4/progtest.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/signbit.m4 \ $(top_srcdir)/m4/sin.m4 $(top_srcdir)/m4/size_max.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/stdint_h.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/ulonglong.m4 $(top_srcdir)/m4/unistd-safer.m4 \ $(top_srcdir)/m4/unistd_h.m4 $(top_srcdir)/m4/unlink.m4 \ $(top_srcdir)/m4/vasnprintf.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)/m4/xsize.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) 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_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ SOURCES = DIST_SOURCES = RECURSIVE_TARGETS = all-recursive check-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 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=) \ $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ distdir dist dist-all distcheck ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) 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__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 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@ 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_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_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_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_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_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_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_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_SAME_LONG_DOUBLE_AS_DOUBLE = @HAVE_SAME_LONG_DOUBLE_AS_DOUBLE@ 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_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_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@ LIBUNISTRING_UNICONV_H = @LIBUNISTRING_UNICONV_H@ LIBUNISTRING_UNISTDIO_H = @LIBUNISTRING_UNISTDIO_H@ LIBUNISTRING_UNISTR_H = @LIBUNISTRING_UNISTR_H@ LIBUNISTRING_UNITYPES_H = @LIBUNISTRING_UNITYPES_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_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_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_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_DPRINTF = @REPLACE_DPRINTF@ REPLACE_DUP = @REPLACE_DUP@ REPLACE_DUP2 = @REPLACE_DUP2@ REPLACE_DUPLOCALE = @REPLACE_DUPLOCALE@ REPLACE_EXP2 = @REPLACE_EXP2@ REPLACE_EXP2L = @REPLACE_EXP2L@ 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_GETGROUPS = @REPLACE_GETGROUPS@ REPLACE_GETLINE = @REPLACE_GETLINE@ REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@ REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@ REPLACE_GETTIMEOFDAY = @REPLACE_GETTIMEOFDAY@ 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_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_RAISE = @REPLACE_RAISE@ REPLACE_RANDOM_R = @REPLACE_RANDOM_R@ REPLACE_READ = @REPLACE_READ@ REPLACE_READLINK = @REPLACE_READLINK@ 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_SLEEP = @REPLACE_SLEEP@ REPLACE_SNPRINTF = @REPLACE_SNPRINTF@ REPLACE_SPRINTF = @REPLACE_SPRINTF@ 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_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@ 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_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_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@ 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 .PRECIOUS: 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 @if test ! -f $@; then rm -f stamp-h1; else :; fi @if test ! -f $@; then $(MAKE) $(AM_MAKEFLAGS) stamp-h1; else :; fi 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. $(RECURSIVE_TARGETS): @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ list='$(SUBDIRS)'; 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" $(RECURSIVE_CLEAN_TARGETS): @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ rev=''; for subdir in $$list; do \ if test "$$subdir" = "."; then :; else \ rev="$$subdir $$rev"; \ fi; \ done; \ rev="$$rev ."; \ target=`echo $@ | sed s/-recursive//`; \ for subdir in $$rev; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done ctags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: tags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) 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; \ list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ 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 CTAGS: ctags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ 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" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags 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) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz $(am__remove_distdir) dist-bzip2: distdir tardir=$(distdir) && $(am__tar) | BZIP2=$${BZIP2--9} bzip2 -c >$(distdir).tar.bz2 $(am__remove_distdir) dist-lzip: distdir tardir=$(distdir) && $(am__tar) | lzip -c $${LZIP_OPT--9} >$(distdir).tar.lz $(am__remove_distdir) dist-lzma: distdir tardir=$(distdir) && $(am__tar) | lzma -9 -c >$(distdir).tar.lzma $(am__remove_distdir) dist-xz: distdir tardir=$(distdir) && $(am__tar) | XZ_OPT=$${XZ_OPT--e} xz -c >$(distdir).tar.xz $(am__remove_distdir) dist-tarZ: distdir tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z $(am__remove_distdir) dist-shar: distdir shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz $(am__remove_distdir) dist-zip: distdir -rm -f $(distdir).zip zip -rq $(distdir).zip $(distdir) $(am__remove_distdir) dist dist-all: distdir tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz $(am__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*) \ GZIP=$(GZIP_ENV) gzip -dc $(distdir).tar.gz | $(am__untar) ;;\ *.tar.bz2*) \ bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\ *.tar.lzma*) \ lzma -dc $(distdir).tar.lzma | $(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*) \ GZIP=$(GZIP_ENV) gzip -dc $(distdir).shar.gz | unshar ;;\ *.zip*) \ unzip $(distdir).zip ;;\ esac chmod -R a-w $(distdir); chmod u+w $(distdir) mkdir $(distdir)/_build mkdir $(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 \ && ../configure --srcdir=.. --prefix="$$dc_install_base" \ $(AM_DISTCHECK_CONFIGURE_FLAGS) \ $(DISTCHECK_CONFIGURE_FLAGS) \ && $(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__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: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) all check \ ctags-recursive install install-am install-strip \ tags-recursive .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ all all-am am--refresh check check-am clean clean-generic \ ctags ctags-recursive dist dist-all dist-bzip2 dist-gzip \ dist-hook dist-lzip dist-lzma 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-recursive \ uninstall uninstall-am 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-3.6.3/lib/0000755000175000017500000000000012125376242010204 500000000000000gcal-3.6.3/lib/free.c0000644000175000017500000000163712076511424011216 00000000000000/* Work around incompatibility on older systems where free (NULL) fails. Copyright (C) 2003, 2006, 2009-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 . */ /* written by Paul Eggert */ #include #undef free #include void rpl_free (void *p) { if (p) free (p); } gcal-3.6.3/lib/mbtowc.c0000644000175000017500000000164612076511424011570 00000000000000/* Convert multibyte character to wide character. Copyright (C) 2011-2013 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-3.6.3/lib/sys_uio.in.h0000644000175000017500000000332612125375411012375 00000000000000/* -*- buffer-read-only: t -*- vi: set ro: */ /* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* Substitute for . Copyright (C) 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, 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-3.6.3/lib/mkostemp.c0000644000175000017500000000255212076511424012131 00000000000000/* Copyright (C) 1998-1999, 2001, 2005-2007, 2009-2013 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-3.6.3/lib/spawn_faction_destroy.c0000644000175000017500000000206212076511424014672 00000000000000/* Copyright (C) 2000, 2009-2013 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-3.6.3/lib/msvc-inval.h0000644000175000017500000002126712125375410012360 00000000000000/* -*- buffer-read-only: t -*- vi: set ro: */ /* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* Invalid parameter handler for MSVC runtime libraries. Copyright (C) 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, 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-3.6.3/lib/isnanl.c0000644000175000017500000000152512076511424011555 00000000000000/* Test for NaN that does not need libm. Copyright (C) 2007, 2009-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 . */ /* Written by Bruno Haible , 2007. */ #define USE_LONG_DOUBLE #include "isnan.c" gcal-3.6.3/lib/malloca.c0000644000175000017500000001201112125375410011667 00000000000000/* -*- buffer-read-only: t -*- vi: set ro: */ /* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* Safe automatic memory allocation. Copyright (C) 2003, 2006-2007, 2009-2013 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, 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 . */ #define _GL_USE_STDLIB_ALLOC 1 #include /* Specification. */ #include "malloca.h" #include #include "verify.h" /* The speed critical point in this file is freea() applied to an alloca() result: it must be fast, to match the speed of alloca(). The speed of mmalloca() and freea() in the other case are not critical, because they are only invoked for big memory sizes. */ #if HAVE_ALLOCA /* Store the mmalloca() results in a hash table. This is needed to reliably distinguish a mmalloca() result and an alloca() result. Although it is possible that the same pointer is returned by alloca() and by mmalloca() at different times in the same application, it does not lead to a bug in freea(), because: - Before a pointer returned by alloca() can point into malloc()ed memory, the function must return, and once this has happened the programmer must not call freea() on it anyway. - Before a pointer returned by mmalloca() can point into the stack, it must be freed. The only function that can free it is freea(), and when freea() frees it, it also removes it from the hash table. */ #define MAGIC_NUMBER 0x1415fb4a #define MAGIC_SIZE sizeof (int) /* This is how the header info would look like without any alignment considerations. */ struct preliminary_header { void *next; char room[MAGIC_SIZE]; }; /* But the header's size must be a multiple of sa_alignment_max. */ #define HEADER_SIZE \ (((sizeof (struct preliminary_header) + sa_alignment_max - 1) / sa_alignment_max) * sa_alignment_max) struct header { void *next; char room[HEADER_SIZE - sizeof (struct preliminary_header) + MAGIC_SIZE]; }; verify (HEADER_SIZE == sizeof (struct header)); /* We make the hash table quite big, so that during lookups the probability of empty hash buckets is quite high. There is no need to make the hash table resizable, because when the hash table gets filled so much that the lookup becomes slow, it means that the application has memory leaks. */ #define HASH_TABLE_SIZE 257 static void * mmalloca_results[HASH_TABLE_SIZE]; #endif void * mmalloca (size_t n) { #if HAVE_ALLOCA /* Allocate one more word, that serves as an indicator for malloc()ed memory, so that freea() of an alloca() result is fast. */ size_t nplus = n + HEADER_SIZE; if (nplus >= n) { char *p = (char *) malloc (nplus); if (p != NULL) { size_t slot; p += HEADER_SIZE; /* Put a magic number into the indicator word. */ ((int *) p)[-1] = MAGIC_NUMBER; /* Enter p into the hash table. */ slot = (uintptr_t) p % HASH_TABLE_SIZE; ((struct header *) (p - HEADER_SIZE))->next = mmalloca_results[slot]; mmalloca_results[slot] = p; return p; } } /* Out of memory. */ return NULL; #else # if !MALLOC_0_IS_NONNULL if (n == 0) n = 1; # endif return malloc (n); #endif } #if HAVE_ALLOCA void freea (void *p) { /* mmalloca() may have returned NULL. */ if (p != NULL) { /* Attempt to quickly distinguish the mmalloca() result - which has a magic indicator word - and the alloca() result - which has an uninitialized indicator word. It is for this test that sa_increment additional bytes are allocated in the alloca() case. */ if (((int *) p)[-1] == MAGIC_NUMBER) { /* Looks like a mmalloca() result. To see whether it really is one, perform a lookup in the hash table. */ size_t slot = (uintptr_t) p % HASH_TABLE_SIZE; void **chain = &mmalloca_results[slot]; for (; *chain != NULL;) { if (*chain == p) { /* Found it. Remove it from the hash table and free it. */ char *p_begin = (char *) p - HEADER_SIZE; *chain = ((struct header *) p_begin)->next; free (p_begin); return; } chain = &((struct header *) ((char *) *chain - HEADER_SIZE))->next; } } /* At this point, we know it was not a mmalloca() result. */ } } #endif gcal-3.6.3/lib/sig-handler.c0000644000175000017500000000013212057472163012464 00000000000000#include #define SIG_HANDLER_INLINE _GL_EXTERN_INLINE #include "sig-handler.h" gcal-3.6.3/lib/sigaction.c0000644000175000017500000001614312076511424012253 00000000000000/* POSIX compatible signal blocking. Copyright (C) 2008-2013 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-3.6.3/lib/regex.c0000644000175000017500000000630512125375411011403 00000000000000/* -*- buffer-read-only: t -*- vi: set ro: */ /* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* Extended regular expression matching and search library. Copyright (C) 2002-2013 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-3.6.3/lib/malloca.h0000644000175000017500000001117112125375410011702 00000000000000/* -*- buffer-read-only: t -*- vi: set ro: */ /* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* Safe automatic memory allocation. Copyright (C) 2003-2007, 2009-2013 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, 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 _MALLOCA_H #define _MALLOCA_H #include #include #include #ifdef __cplusplus extern "C" { #endif /* safe_alloca(N) is equivalent to alloca(N) when it is safe to call alloca(N); otherwise it returns NULL. It either returns N bytes of memory allocated on the stack, that lasts until the function returns, or NULL. Use of safe_alloca should be avoided: - inside arguments of function calls - undefined behaviour, - in inline functions - the allocation may actually last until the calling function returns. */ #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. This must be a macro, not a function. */ # define safe_alloca(N) ((N) < 4032 ? alloca (N) : NULL) #else # define safe_alloca(N) ((void) (N), NULL) #endif /* malloca(N) is a safe variant of alloca(N). It allocates N bytes of memory allocated on the stack, that must be freed using freea() before the function returns. Upon failure, it returns NULL. */ #if HAVE_ALLOCA # define malloca(N) \ ((N) < 4032 - sa_increment \ ? (void *) ((char *) alloca ((N) + sa_increment) + sa_increment) \ : mmalloca (N)) #else # define malloca(N) \ mmalloca (N) #endif extern void * mmalloca (size_t n); /* Free a block of memory allocated through malloca(). */ #if HAVE_ALLOCA extern void freea (void *p); #else # define freea free #endif /* nmalloca(N,S) is an overflow-safe variant of malloca (N * S). It allocates an array of N objects, each with S bytes of memory, on the stack. S must be positive and N must be nonnegative. The array must be freed using freea() before the function returns. */ #if 1 /* Cf. the definition of xalloc_oversized. */ # define nmalloca(n, s) \ ((n) > (size_t) (sizeof (ptrdiff_t) <= sizeof (size_t) ? -1 : -2) / (s) \ ? NULL \ : malloca ((n) * (s))) #else extern void * nmalloca (size_t n, size_t s); #endif #ifdef __cplusplus } #endif /* ------------------- Auxiliary, non-public definitions ------------------- */ /* Determine the alignment of a type at compile time. */ #if defined __GNUC__ # define sa_alignof __alignof__ #elif defined __cplusplus template struct sa_alignof_helper { char __slot1; type __slot2; }; # define sa_alignof(type) offsetof (sa_alignof_helper, __slot2) #elif defined __hpux /* Work around a HP-UX 10.20 cc bug with enums constants defined as offsetof values. */ # define sa_alignof(type) (sizeof (type) <= 4 ? 4 : 8) #elif defined _AIX /* Work around an AIX 3.2.5 xlc bug with enums constants defined as offsetof values. */ # define sa_alignof(type) (sizeof (type) <= 4 ? 4 : 8) #else # define sa_alignof(type) offsetof (struct { char __slot1; type __slot2; }, __slot2) #endif enum { /* The desired alignment of memory allocations is the maximum alignment among all elementary types. */ sa_alignment_long = sa_alignof (long), sa_alignment_double = sa_alignof (double), #if HAVE_LONG_LONG_INT sa_alignment_longlong = sa_alignof (long long), #endif sa_alignment_longdouble = sa_alignof (long double), sa_alignment_max = ((sa_alignment_long - 1) | (sa_alignment_double - 1) #if HAVE_LONG_LONG_INT | (sa_alignment_longlong - 1) #endif | (sa_alignment_longdouble - 1) ) + 1, /* The increment that guarantees room for a magic word must be >= sizeof (int) and a multiple of sa_alignment_max. */ sa_increment = ((sizeof (int) + sa_alignment_max - 1) / sa_alignment_max) * sa_alignment_max }; #endif /* _MALLOCA_H */ gcal-3.6.3/lib/strerror-override.c0000644000175000017500000002146512076511424013775 00000000000000/* strerror-override.c --- POSIX compatible system error routine Copyright (C) 2010-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 . */ /* 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-3.6.3/lib/float+.h0000644000175000017500000001307712125375410011461 00000000000000/* -*- buffer-read-only: t -*- vi: set ro: */ /* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* Supplemental information about the floating-point formats. Copyright (C) 2007, 2009-2013 Free Software Foundation, Inc. Written by Bruno Haible , 2007. This program is free software; you can redistribute 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 _FLOATPLUS_H #define _FLOATPLUS_H #include #include /* Number of bits in the mantissa of a floating-point number, including the "hidden bit". */ #if FLT_RADIX == 2 # define FLT_MANT_BIT FLT_MANT_DIG # define DBL_MANT_BIT DBL_MANT_DIG # define LDBL_MANT_BIT LDBL_MANT_DIG #elif FLT_RADIX == 4 # define FLT_MANT_BIT (FLT_MANT_DIG * 2) # define DBL_MANT_BIT (DBL_MANT_DIG * 2) # define LDBL_MANT_BIT (LDBL_MANT_DIG * 2) #elif FLT_RADIX == 16 # define FLT_MANT_BIT (FLT_MANT_DIG * 4) # define DBL_MANT_BIT (DBL_MANT_DIG * 4) # define LDBL_MANT_BIT (LDBL_MANT_DIG * 4) #endif /* Bit mask that can be used to mask the exponent, as an unsigned number. */ #define FLT_EXP_MASK ((FLT_MAX_EXP - FLT_MIN_EXP) | 7) #define DBL_EXP_MASK ((DBL_MAX_EXP - DBL_MIN_EXP) | 7) #define LDBL_EXP_MASK ((LDBL_MAX_EXP - LDBL_MIN_EXP) | 7) /* Number of bits used for the exponent of a floating-point number, including the exponent's sign. */ #define FLT_EXP_BIT \ (FLT_EXP_MASK < 0x100 ? 8 : \ FLT_EXP_MASK < 0x200 ? 9 : \ FLT_EXP_MASK < 0x400 ? 10 : \ FLT_EXP_MASK < 0x800 ? 11 : \ FLT_EXP_MASK < 0x1000 ? 12 : \ FLT_EXP_MASK < 0x2000 ? 13 : \ FLT_EXP_MASK < 0x4000 ? 14 : \ FLT_EXP_MASK < 0x8000 ? 15 : \ FLT_EXP_MASK < 0x10000 ? 16 : \ FLT_EXP_MASK < 0x20000 ? 17 : \ FLT_EXP_MASK < 0x40000 ? 18 : \ FLT_EXP_MASK < 0x80000 ? 19 : \ FLT_EXP_MASK < 0x100000 ? 20 : \ FLT_EXP_MASK < 0x200000 ? 21 : \ FLT_EXP_MASK < 0x400000 ? 22 : \ FLT_EXP_MASK < 0x800000 ? 23 : \ FLT_EXP_MASK < 0x1000000 ? 24 : \ FLT_EXP_MASK < 0x2000000 ? 25 : \ FLT_EXP_MASK < 0x4000000 ? 26 : \ FLT_EXP_MASK < 0x8000000 ? 27 : \ FLT_EXP_MASK < 0x10000000 ? 28 : \ FLT_EXP_MASK < 0x20000000 ? 29 : \ FLT_EXP_MASK < 0x40000000 ? 30 : \ FLT_EXP_MASK <= 0x7fffffff ? 31 : \ 32) #define DBL_EXP_BIT \ (DBL_EXP_MASK < 0x100 ? 8 : \ DBL_EXP_MASK < 0x200 ? 9 : \ DBL_EXP_MASK < 0x400 ? 10 : \ DBL_EXP_MASK < 0x800 ? 11 : \ DBL_EXP_MASK < 0x1000 ? 12 : \ DBL_EXP_MASK < 0x2000 ? 13 : \ DBL_EXP_MASK < 0x4000 ? 14 : \ DBL_EXP_MASK < 0x8000 ? 15 : \ DBL_EXP_MASK < 0x10000 ? 16 : \ DBL_EXP_MASK < 0x20000 ? 17 : \ DBL_EXP_MASK < 0x40000 ? 18 : \ DBL_EXP_MASK < 0x80000 ? 19 : \ DBL_EXP_MASK < 0x100000 ? 20 : \ DBL_EXP_MASK < 0x200000 ? 21 : \ DBL_EXP_MASK < 0x400000 ? 22 : \ DBL_EXP_MASK < 0x800000 ? 23 : \ DBL_EXP_MASK < 0x1000000 ? 24 : \ DBL_EXP_MASK < 0x2000000 ? 25 : \ DBL_EXP_MASK < 0x4000000 ? 26 : \ DBL_EXP_MASK < 0x8000000 ? 27 : \ DBL_EXP_MASK < 0x10000000 ? 28 : \ DBL_EXP_MASK < 0x20000000 ? 29 : \ DBL_EXP_MASK < 0x40000000 ? 30 : \ DBL_EXP_MASK <= 0x7fffffff ? 31 : \ 32) #define LDBL_EXP_BIT \ (LDBL_EXP_MASK < 0x100 ? 8 : \ LDBL_EXP_MASK < 0x200 ? 9 : \ LDBL_EXP_MASK < 0x400 ? 10 : \ LDBL_EXP_MASK < 0x800 ? 11 : \ LDBL_EXP_MASK < 0x1000 ? 12 : \ LDBL_EXP_MASK < 0x2000 ? 13 : \ LDBL_EXP_MASK < 0x4000 ? 14 : \ LDBL_EXP_MASK < 0x8000 ? 15 : \ LDBL_EXP_MASK < 0x10000 ? 16 : \ LDBL_EXP_MASK < 0x20000 ? 17 : \ LDBL_EXP_MASK < 0x40000 ? 18 : \ LDBL_EXP_MASK < 0x80000 ? 19 : \ LDBL_EXP_MASK < 0x100000 ? 20 : \ LDBL_EXP_MASK < 0x200000 ? 21 : \ LDBL_EXP_MASK < 0x400000 ? 22 : \ LDBL_EXP_MASK < 0x800000 ? 23 : \ LDBL_EXP_MASK < 0x1000000 ? 24 : \ LDBL_EXP_MASK < 0x2000000 ? 25 : \ LDBL_EXP_MASK < 0x4000000 ? 26 : \ LDBL_EXP_MASK < 0x8000000 ? 27 : \ LDBL_EXP_MASK < 0x10000000 ? 28 : \ LDBL_EXP_MASK < 0x20000000 ? 29 : \ LDBL_EXP_MASK < 0x40000000 ? 30 : \ LDBL_EXP_MASK <= 0x7fffffff ? 31 : \ 32) /* Number of bits used for a floating-point number: the mantissa (not counting the "hidden bit", since it may or may not be explicit), the exponent, and the sign. */ #define FLT_TOTAL_BIT ((FLT_MANT_BIT - 1) + FLT_EXP_BIT + 1) #define DBL_TOTAL_BIT ((DBL_MANT_BIT - 1) + DBL_EXP_BIT + 1) #define LDBL_TOTAL_BIT ((LDBL_MANT_BIT - 1) + LDBL_EXP_BIT + 1) /* Number of bytes used for a floating-point number. This can be smaller than the 'sizeof'. For example, on i386 systems, 'long double' most often have LDBL_MANT_BIT = 64, LDBL_EXP_BIT = 16, hence LDBL_TOTAL_BIT = 80 bits, i.e. 10 bytes of consecutive memory, but sizeof (long double) = 12 or = 16. */ #define SIZEOF_FLT ((FLT_TOTAL_BIT + CHAR_BIT - 1) / CHAR_BIT) #define SIZEOF_DBL ((DBL_TOTAL_BIT + CHAR_BIT - 1) / CHAR_BIT) #define SIZEOF_LDBL ((LDBL_TOTAL_BIT + CHAR_BIT - 1) / CHAR_BIT) /* Verify that SIZEOF_FLT <= sizeof (float) etc. */ typedef int verify_sizeof_flt[SIZEOF_FLT <= sizeof (float) ? 1 : -1]; typedef int verify_sizeof_dbl[SIZEOF_DBL <= sizeof (double) ? 1 : - 1]; typedef int verify_sizeof_ldbl[SIZEOF_LDBL <= sizeof (long double) ? 1 : - 1]; #endif /* _FLOATPLUS_H */ gcal-3.6.3/lib/stdint.in.h0000644000175000017500000004474212125375411012217 00000000000000/* -*- buffer-read-only: t -*- vi: set ro: */ /* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* Copyright (C) 2001-2002, 2004-2013 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 _SYS_TYPES_H_ && !defined __need_size_t # @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 /* 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 /* Get SCHAR_MIN, SCHAR_MAX, UCHAR_MAX, INT_MIN, INT_MAX, LONG_MIN, LONG_MAX, ULONG_MAX. */ #include #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) ? (- ((zero) + 1) << ((bits) ? (bits) - 1 : 0)) : (zero)) #define _STDINT_MAX(signed, bits, zero) \ ((signed) \ ? ~ _STDINT_MIN (signed, bits, zero) \ : /* The expression for the unsigned case. The subtraction of (signed) \ is a nop in the unsigned case and avoids "signed integer overflow" \ warnings in the signed case. */ \ ((((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 */ #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 /* 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 /* _@GUARD_PREFIX@_STDINT_H */ #endif /* !(defined __ANDROID__ && ...) */ #endif /* !defined _@GUARD_PREFIX@_STDINT_H && !defined _GL_JUST_INCLUDE_SYSTEM_STDINT_H */ gcal-3.6.3/lib/ceil.c0000644000175000017500000000701112076511423011200 00000000000000/* Round towards positive infinity. Copyright (C) 2007, 2010-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 . */ /* 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-3.6.3/lib/msvc-inval.c0000644000175000017500000000763512125375410012356 00000000000000/* -*- buffer-read-only: t -*- vi: set ro: */ /* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* Invalid parameter handler for MSVC runtime libraries. Copyright (C) 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, 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-3.6.3/lib/errno.in.h0000644000175000017500000001661512125375410012034 00000000000000/* -*- buffer-read-only: t -*- vi: set ro: */ /* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* A POSIX-like . Copyright (C) 2008-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, 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-3.6.3/lib/strdup.c0000644000175000017500000000262212125375411011610 00000000000000/* -*- buffer-read-only: t -*- vi: set ro: */ /* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* Copyright (C) 1991, 1996-1998, 2002-2004, 2006-2007, 2009-2013 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-3.6.3/lib/iconv_open-osf.gperf0000644000175000017500000000200211534672763014101 00000000000000struct mapping { int standard_name; const char vendor_name[10 + 1]; }; %struct-type %language=ANSI-C %define slot-name standard_name %define hash-function-name mapping_hash %define lookup-function-name mapping_lookup %readonly-tables %global-table %define word-array-name mappings %pic %% # On OSF/1 5.1, look in /usr/lib/nls/loc/iconv. ISO-8859-1, "ISO8859-1" ISO-8859-2, "ISO8859-2" ISO-8859-3, "ISO8859-3" ISO-8859-4, "ISO8859-4" ISO-8859-5, "ISO8859-5" ISO-8859-6, "ISO8859-6" ISO-8859-7, "ISO8859-7" ISO-8859-8, "ISO8859-8" ISO-8859-9, "ISO8859-9" ISO-8859-15, "ISO8859-15" CP437, "cp437" CP775, "cp775" CP850, "cp850" CP852, "cp852" CP855, "cp855" CP857, "cp857" CP861, "cp861" CP862, "cp862" CP865, "cp865" CP866, "cp866" CP869, "cp869" CP874, "cp874" CP949, "KSC5601" CP1250, "cp1250" CP1251, "cp1251" CP1252, "cp1252" CP1253, "cp1253" CP1254, "cp1254" CP1255, "cp1255" CP1256, "cp1256" CP1257, "cp1257" CP1258, "cp1258" EUC-JP, "eucJP" EUC-KR, "eucKR" EUC-TW, "eucTW" BIG5, "big5" SHIFT_JIS, "SJIS" TIS-620, "TACTIS" gcal-3.6.3/lib/unistd--.h0000644000175000017500000000174312076511424011740 00000000000000/* Like unistd.h, but redefine some names to avoid glitches. Copyright (C) 2005, 2009-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 . */ /* 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-3.6.3/lib/sigprocmask.c0000644000175000017500000002062712076511424012617 00000000000000/* POSIX compatible signal blocking. Copyright (C) 2006-2013 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-3.6.3/lib/printf-frexp.h0000644000175000017500000000206012076511424012715 00000000000000/* Split a double into fraction and mantissa, for hexadecimal printf. Copyright (C) 2007, 2009-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 . */ /* Write a finite, positive number x as x = mantissa * 2^exp where exp >= DBL_MIN_EXP - 1, mantissa < 2.0, if x is not a denormalized number then mantissa >= 1.0. Store exp in *EXPPTR and return mantissa. */ extern double printf_frexp (double x, int *expptr); gcal-3.6.3/lib/glthread/0000755000175000017500000000000012125376241011775 500000000000000gcal-3.6.3/lib/glthread/lock.c0000644000175000017500000006432212125375412013017 00000000000000/* -*- buffer-read-only: t -*- vi: set ro: */ /* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* Locking in multithreaded situations. Copyright (C) 2005-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, 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 # if !defined PTHREAD_RWLOCK_INITIALIZER 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. */ /* POSIX says: "It is implementation-defined whether the calling thread acquires the lock when a writer does not hold the lock and there are writers blocked on the lock." Let's say, no: give the writers a higher priority. */ 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 ------------------------- */ /* --------------------- 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. */ if (!(lock->runcount + 1 > 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-3.6.3/lib/glthread/cond.c0000644000175000017500000003471312125375412013013 00000000000000/* -*- buffer-read-only: t -*- vi: set ro: */ /* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* Condition variables for multithreading. Copyright (C) 2008-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, 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-3.6.3/lib/glthread/cond.h0000644000175000017500000003222612125375412013015 00000000000000/* -*- buffer-read-only: t -*- vi: set ro: */ /* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* Condition variables for multithreading. Copyright (C) 2005-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, 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" _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-3.6.3/lib/glthread/lock.h0000644000175000017500000010700412125375412013017 00000000000000/* -*- buffer-read-only: t -*- vi: set ro: */ /* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* Locking in multithreaded situations. Copyright (C) 2005-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, 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 # 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; # define gl_rwlock_initializer \ PTHREAD_RWLOCK_INITIALIZER # define glthread_rwlock_init(LOCK) \ (pthread_in_use () ? pthread_rwlock_init (LOCK, NULL) : 0) # 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 ------------------------- */ 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) /* --------------------- 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-3.6.3/lib/glthread/threadlib.c0000644000175000017500000000367012125375412014024 00000000000000/* -*- buffer-read-only: t -*- vi: set ro: */ /* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* Multithreading primitives. Copyright (C) 2005-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, 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-3.6.3/lib/vasnprintf.c0000644000175000017500000066477412125375411012507 00000000000000/* -*- buffer-read-only: t -*- vi: set ro: */ /* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* vsprintf with automatic memory allocation. Copyright (C) 1999, 2002-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, see . */ /* This file can be parametrized with the following macros: VASNPRINTF The name of the function being defined. FCHAR_T The element type of the format string. DCHAR_T The element type of the destination (result) string. FCHAR_T_ONLY_ASCII Set to 1 to enable verification that all characters in the format string are ASCII. MUST be set if FCHAR_T and DCHAR_T are not the same type. DIRECTIVE Structure denoting a format directive. Depends on FCHAR_T. DIRECTIVES Structure denoting the set of format directives of a format string. Depends on FCHAR_T. PRINTF_PARSE Function that parses a format string. Depends on FCHAR_T. DCHAR_CPY memcpy like function for DCHAR_T[] arrays. DCHAR_SET memset like function for DCHAR_T[] arrays. DCHAR_MBSNLEN mbsnlen like function for DCHAR_T[] arrays. SNPRINTF The system's snprintf (or similar) function. This may be either snprintf or swprintf. TCHAR_T The element type of the argument and result string of the said SNPRINTF function. This may be either char or wchar_t. The code exploits that sizeof (TCHAR_T) | sizeof (DCHAR_T) and alignof (TCHAR_T) <= alignof (DCHAR_T). DCHAR_IS_TCHAR Set to 1 if DCHAR_T and TCHAR_T are the same type. DCHAR_CONV_FROM_ENCODING A function to convert from char[] to DCHAR[]. DCHAR_IS_UINT8_T Set to 1 if DCHAR_T is uint8_t. DCHAR_IS_UINT16_T Set to 1 if DCHAR_T is uint16_t. DCHAR_IS_UINT32_T Set to 1 if DCHAR_T is uint32_t. */ /* Tell glibc's to provide a prototype for snprintf(). This must come before because may include , and once has been included, it's too late. */ #ifndef _GNU_SOURCE # define _GNU_SOURCE 1 #endif #ifndef VASNPRINTF # include #endif #ifndef IN_LIBINTL # include #endif /* Specification. */ #ifndef VASNPRINTF # if WIDE_CHAR_VERSION # include "vasnwprintf.h" # else # include "vasnprintf.h" # endif #endif #include /* localeconv() */ #include /* snprintf(), sprintf() */ #include /* abort(), malloc(), realloc(), free() */ #include /* memcpy(), strlen() */ #include /* errno */ #include /* CHAR_BIT */ #include /* DBL_MAX_EXP, LDBL_MAX_EXP */ #if HAVE_NL_LANGINFO # include #endif #ifndef VASNPRINTF # if WIDE_CHAR_VERSION # include "wprintf-parse.h" # else # include "printf-parse.h" # endif #endif /* Checked size_t computations. */ #include "xsize.h" #include "verify.h" #if (NEED_PRINTF_DOUBLE || NEED_PRINTF_LONG_DOUBLE) && !defined IN_LIBINTL # include # include "float+.h" #endif #if (NEED_PRINTF_DOUBLE || NEED_PRINTF_INFINITE_DOUBLE) && !defined IN_LIBINTL # include # include "isnand-nolibm.h" #endif #if (NEED_PRINTF_LONG_DOUBLE || NEED_PRINTF_INFINITE_LONG_DOUBLE) && !defined IN_LIBINTL # include # include "isnanl-nolibm.h" # include "fpucw.h" #endif #if (NEED_PRINTF_DIRECTIVE_A || NEED_PRINTF_DOUBLE) && !defined IN_LIBINTL # include # include "isnand-nolibm.h" # include "printf-frexp.h" #endif #if (NEED_PRINTF_DIRECTIVE_A || NEED_PRINTF_LONG_DOUBLE) && !defined IN_LIBINTL # include # include "isnanl-nolibm.h" # include "printf-frexpl.h" # include "fpucw.h" #endif /* Default parameters. */ #ifndef VASNPRINTF # if WIDE_CHAR_VERSION # define VASNPRINTF vasnwprintf # define FCHAR_T wchar_t # define DCHAR_T wchar_t # define TCHAR_T wchar_t # define DCHAR_IS_TCHAR 1 # define DIRECTIVE wchar_t_directive # define DIRECTIVES wchar_t_directives # define PRINTF_PARSE wprintf_parse # define DCHAR_CPY wmemcpy # define DCHAR_SET wmemset # else # define VASNPRINTF vasnprintf # define FCHAR_T char # define DCHAR_T char # define TCHAR_T char # define DCHAR_IS_TCHAR 1 # define DIRECTIVE char_directive # define DIRECTIVES char_directives # define PRINTF_PARSE printf_parse # define DCHAR_CPY memcpy # define DCHAR_SET memset # endif #endif #if WIDE_CHAR_VERSION /* TCHAR_T is wchar_t. */ # define USE_SNPRINTF 1 # if HAVE_DECL__SNWPRINTF /* On Windows, the function swprintf() has a different signature than on Unix; we use the function _snwprintf() or - on mingw - snwprintf() instead. The mingw function snwprintf() has fewer bugs than the MSVCRT function _snwprintf(), so prefer that. */ # if defined __MINGW32__ # define SNPRINTF snwprintf # else # define SNPRINTF _snwprintf # endif # else /* Unix. */ # define SNPRINTF swprintf # endif #else /* TCHAR_T is char. */ /* Use snprintf if it exists under the name 'snprintf' or '_snprintf'. But don't use it on BeOS, since BeOS snprintf produces no output if the size argument is >= 0x3000000. Also don't use it on Linux libc5, since there snprintf with size = 1 writes any output without bounds, like sprintf. */ # if (HAVE_DECL__SNPRINTF || HAVE_SNPRINTF) && !defined __BEOS__ && !(__GNU_LIBRARY__ == 1) # define USE_SNPRINTF 1 # else # define USE_SNPRINTF 0 # endif # if HAVE_DECL__SNPRINTF /* Windows. The mingw function snprintf() has fewer bugs than the MSVCRT function _snprintf(), so prefer that. */ # if defined __MINGW32__ # define SNPRINTF snprintf /* Here we need to call the native snprintf, not rpl_snprintf. */ # undef snprintf # else # define SNPRINTF _snprintf # endif # else /* Unix. */ # define SNPRINTF snprintf /* Here we need to call the native snprintf, not rpl_snprintf. */ # undef snprintf # endif #endif /* Here we need to call the native sprintf, not rpl_sprintf. */ #undef sprintf /* GCC >= 4.0 with -Wall emits unjustified "... may be used uninitialized" warnings in this file. Use -Dlint to suppress them. */ #ifdef lint # define IF_LINT(Code) Code #else # define IF_LINT(Code) /* empty */ #endif /* Avoid some warnings from "gcc -Wshadow". This file doesn't use the exp() and remainder() functions. */ #undef exp #define exp expo #undef remainder #define remainder rem #if (!USE_SNPRINTF || !HAVE_SNPRINTF_RETVAL_C99) && !WIDE_CHAR_VERSION # if (HAVE_STRNLEN && !defined _AIX) # define local_strnlen strnlen # else # ifndef local_strnlen_defined # define local_strnlen_defined 1 static size_t local_strnlen (const char *string, size_t maxlen) { const char *end = memchr (string, '\0', maxlen); return end ? (size_t) (end - string) : maxlen; } # endif # endif #endif #if (((!USE_SNPRINTF || !HAVE_SNPRINTF_RETVAL_C99) && WIDE_CHAR_VERSION) || ((!USE_SNPRINTF || !HAVE_SNPRINTF_RETVAL_C99 || (NEED_PRINTF_DIRECTIVE_LS && !defined IN_LIBINTL)) && !WIDE_CHAR_VERSION && DCHAR_IS_TCHAR)) && HAVE_WCHAR_T # if HAVE_WCSLEN # define local_wcslen wcslen # else /* Solaris 2.5.1 has wcslen() in a separate library libw.so. To avoid a dependency towards this library, here is a local substitute. Define this substitute only once, even if this file is included twice in the same compilation unit. */ # ifndef local_wcslen_defined # define local_wcslen_defined 1 static size_t local_wcslen (const wchar_t *s) { const wchar_t *ptr; for (ptr = s; *ptr != (wchar_t) 0; ptr++) ; return ptr - s; } # endif # endif #endif #if (!USE_SNPRINTF || !HAVE_SNPRINTF_RETVAL_C99) && HAVE_WCHAR_T && WIDE_CHAR_VERSION # if HAVE_WCSNLEN # define local_wcsnlen wcsnlen # else # ifndef local_wcsnlen_defined # define local_wcsnlen_defined 1 static size_t local_wcsnlen (const wchar_t *s, size_t maxlen) { const wchar_t *ptr; for (ptr = s; maxlen > 0 && *ptr != (wchar_t) 0; ptr++, maxlen--) ; return ptr - s; } # endif # endif #endif #if (NEED_PRINTF_DIRECTIVE_A || NEED_PRINTF_LONG_DOUBLE || NEED_PRINTF_INFINITE_LONG_DOUBLE || NEED_PRINTF_DOUBLE || NEED_PRINTF_INFINITE_DOUBLE) && !defined IN_LIBINTL /* Determine the decimal-point character according to the current locale. */ # ifndef decimal_point_char_defined # define decimal_point_char_defined 1 static char decimal_point_char (void) { const char *point; /* Determine it in a multithread-safe way. We know nl_langinfo is multithread-safe on glibc systems and Mac OS X systems, but is not required to be multithread-safe by POSIX. sprintf(), however, is multithread-safe. localeconv() is rarely multithread-safe. */ # if HAVE_NL_LANGINFO && (__GLIBC__ || defined __UCLIBC__ || (defined __APPLE__ && defined __MACH__)) point = nl_langinfo (RADIXCHAR); # elif 1 char pointbuf[5]; sprintf (pointbuf, "%#.0f", 1.0); point = &pointbuf[1]; # else point = localeconv () -> decimal_point; # endif /* The decimal point is always a single byte: either '.' or ','. */ return (point[0] != '\0' ? point[0] : '.'); } # endif #endif #if NEED_PRINTF_INFINITE_DOUBLE && !NEED_PRINTF_DOUBLE && !defined IN_LIBINTL /* Equivalent to !isfinite(x) || x == 0, but does not require libm. */ static int is_infinite_or_zero (double x) { return isnand (x) || x + x == x; } #endif #if NEED_PRINTF_INFINITE_LONG_DOUBLE && !NEED_PRINTF_LONG_DOUBLE && !defined IN_LIBINTL /* Equivalent to !isfinite(x) || x == 0, but does not require libm. */ static int is_infinite_or_zerol (long double x) { return isnanl (x) || x + x == x; } #endif #if (NEED_PRINTF_LONG_DOUBLE || NEED_PRINTF_DOUBLE) && !defined IN_LIBINTL /* Converting 'long double' to decimal without rare rounding bugs requires real bignums. We use the naming conventions of GNU gmp, but vastly simpler (and slower) algorithms. */ typedef unsigned int mp_limb_t; # define GMP_LIMB_BITS 32 verify (sizeof (mp_limb_t) * CHAR_BIT == GMP_LIMB_BITS); typedef unsigned long long mp_twolimb_t; # define GMP_TWOLIMB_BITS 64 verify (sizeof (mp_twolimb_t) * CHAR_BIT == GMP_TWOLIMB_BITS); /* Representation of a bignum >= 0. */ typedef struct { size_t nlimbs; mp_limb_t *limbs; /* Bits in little-endian order, allocated with malloc(). */ } mpn_t; /* Compute the product of two bignums >= 0. Return the allocated memory in case of success, NULL in case of memory allocation failure. */ static void * multiply (mpn_t src1, mpn_t src2, mpn_t *dest) { const mp_limb_t *p1; const mp_limb_t *p2; size_t len1; size_t len2; if (src1.nlimbs <= src2.nlimbs) { len1 = src1.nlimbs; p1 = src1.limbs; len2 = src2.nlimbs; p2 = src2.limbs; } else { len1 = src2.nlimbs; p1 = src2.limbs; len2 = src1.nlimbs; p2 = src1.limbs; } /* Now 0 <= len1 <= len2. */ if (len1 == 0) { /* src1 or src2 is zero. */ dest->nlimbs = 0; dest->limbs = (mp_limb_t *) malloc (1); } else { /* Here 1 <= len1 <= len2. */ size_t dlen; mp_limb_t *dp; size_t k, i, j; dlen = len1 + len2; dp = (mp_limb_t *) malloc (dlen * sizeof (mp_limb_t)); if (dp == NULL) return NULL; for (k = len2; k > 0; ) dp[--k] = 0; for (i = 0; i < len1; i++) { mp_limb_t digit1 = p1[i]; mp_twolimb_t carry = 0; for (j = 0; j < len2; j++) { mp_limb_t digit2 = p2[j]; carry += (mp_twolimb_t) digit1 * (mp_twolimb_t) digit2; carry += dp[i + j]; dp[i + j] = (mp_limb_t) carry; carry = carry >> GMP_LIMB_BITS; } dp[i + len2] = (mp_limb_t) carry; } /* Normalise. */ while (dlen > 0 && dp[dlen - 1] == 0) dlen--; dest->nlimbs = dlen; dest->limbs = dp; } return dest->limbs; } /* Compute the quotient of a bignum a >= 0 and a bignum b > 0. a is written as a = q * b + r with 0 <= r < b. q is the quotient, r the remainder. Finally, round-to-even is performed: If r > b/2 or if r = b/2 and q is odd, q is incremented. Return the allocated memory in case of success, NULL in case of memory allocation failure. */ static void * divide (mpn_t a, mpn_t b, mpn_t *q) { /* Algorithm: First normalise a and b: a=[a[m-1],...,a[0]], b=[b[n-1],...,b[0]] with m>=0 and n>0 (in base beta = 2^GMP_LIMB_BITS). If m=n=1, perform a single-precision division: r:=0, j:=m, while j>0 do {Here (q[m-1]*beta^(m-1)+...+q[j]*beta^j) * b[0] + r*beta^j = = a[m-1]*beta^(m-1)+...+a[j]*beta^j und 0<=r=n>1, perform a multiple-precision division: We have a/b < beta^(m-n+1). s:=intDsize-1-(highest bit in b[n-1]), 0<=s=beta/2. For j=m-n,...,0: {Here 0 <= r < b*beta^(j+1).} Compute q* : q* := floor((r[j+n]*beta+r[j+n-1])/b[n-1]). In case of overflow (q* >= beta) set q* := beta-1. Compute c2 := ((r[j+n]*beta+r[j+n-1]) - q* * b[n-1])*beta + r[j+n-2] and c3 := b[n-2] * q*. {We have 0 <= c2 < 2*beta^2, even 0 <= c2 < beta^2 if no overflow occurred. Furthermore 0 <= c3 < beta^2. If there was overflow and r[j+n]*beta+r[j+n-1] - q* * b[n-1] >= beta, i.e. c2 >= beta^2, the next test can be skipped.} While c3 > c2, {Here 0 <= c2 < c3 < beta^2} Put q* := q* - 1, c2 := c2 + b[n-1]*beta, c3 := c3 - b[n-2]. If q* > 0: Put r := r - b * q* * beta^j. In detail: [r[n+j],...,r[j]] := [r[n+j],...,r[j]] - q* * [b[n-1],...,b[0]]. hence: u:=0, for i:=0 to n-1 do u := u + q* * b[i], r[j+i]:=r[j+i]-(u mod beta) (+ beta, if carry), u:=u div beta (+ 1, if carry in subtraction) r[n+j]:=r[n+j]-u. {Since always u = (q* * [b[i-1],...,b[0]] div beta^i) + 1 < q* + 1 <= beta, the carry u does not overflow.} If a negative carry occurs, put q* := q* - 1 and [r[n+j],...,r[j]] := [r[n+j],...,r[j]] + [0,b[n-1],...,b[0]]. Set q[j] := q*. Normalise [q[m-n],..,q[0]]; this yields the quotient q. Shift [r[n-1],...,r[0]] right by s bits and normalise; this yields the rest r. The room for q[j] can be allocated at the memory location of r[n+j]. Finally, round-to-even: Shift r left by 1 bit. If r > b or if r = b and q[0] is odd, q := q+1. */ const mp_limb_t *a_ptr = a.limbs; size_t a_len = a.nlimbs; const mp_limb_t *b_ptr = b.limbs; size_t b_len = b.nlimbs; mp_limb_t *roomptr; mp_limb_t *tmp_roomptr = NULL; mp_limb_t *q_ptr; size_t q_len; mp_limb_t *r_ptr; size_t r_len; /* Allocate room for a_len+2 digits. (Need a_len+1 digits for the real division and 1 more digit for the final rounding of q.) */ roomptr = (mp_limb_t *) malloc ((a_len + 2) * sizeof (mp_limb_t)); if (roomptr == NULL) return NULL; /* Normalise a. */ while (a_len > 0 && a_ptr[a_len - 1] == 0) a_len--; /* Normalise b. */ for (;;) { if (b_len == 0) /* Division by zero. */ abort (); if (b_ptr[b_len - 1] == 0) b_len--; else break; } /* Here m = a_len >= 0 and n = b_len > 0. */ if (a_len < b_len) { /* m beta^(m-2) <= a/b < beta^m */ r_ptr = roomptr; q_ptr = roomptr + 1; { mp_limb_t den = b_ptr[0]; mp_limb_t remainder = 0; const mp_limb_t *sourceptr = a_ptr + a_len; mp_limb_t *destptr = q_ptr + a_len; size_t count; for (count = a_len; count > 0; count--) { mp_twolimb_t num = ((mp_twolimb_t) remainder << GMP_LIMB_BITS) | *--sourceptr; *--destptr = num / den; remainder = num % den; } /* Normalise and store r. */ if (remainder > 0) { r_ptr[0] = remainder; r_len = 1; } else r_len = 0; /* Normalise q. */ q_len = a_len; if (q_ptr[q_len - 1] == 0) q_len--; } } else { /* n>1: multiple precision division. beta^(m-1) <= a < beta^m, beta^(n-1) <= b < beta^n ==> beta^(m-n-1) <= a/b < beta^(m-n+1). */ /* Determine s. */ size_t s; { mp_limb_t msd = b_ptr[b_len - 1]; /* = b[n-1], > 0 */ /* Determine s = GMP_LIMB_BITS - integer_length (msd). Code copied from gnulib's integer_length.c. */ # if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) s = __builtin_clz (msd); # else # if defined DBL_EXPBIT0_WORD && defined DBL_EXPBIT0_BIT if (GMP_LIMB_BITS <= DBL_MANT_BIT) { /* Use 'double' operations. Assumes an IEEE 754 'double' implementation. */ # define DBL_EXP_MASK ((DBL_MAX_EXP - DBL_MIN_EXP) | 7) # define DBL_EXP_BIAS (DBL_EXP_MASK / 2 - 1) # define NWORDS \ ((sizeof (double) + sizeof (unsigned int) - 1) / sizeof (unsigned int)) union { double value; unsigned int word[NWORDS]; } m; /* Use a single integer to floating-point conversion. */ m.value = msd; s = GMP_LIMB_BITS - (((m.word[DBL_EXPBIT0_WORD] >> DBL_EXPBIT0_BIT) & DBL_EXP_MASK) - DBL_EXP_BIAS); } else # undef NWORDS # endif { s = 31; if (msd >= 0x10000) { msd = msd >> 16; s -= 16; } if (msd >= 0x100) { msd = msd >> 8; s -= 8; } if (msd >= 0x10) { msd = msd >> 4; s -= 4; } if (msd >= 0x4) { msd = msd >> 2; s -= 2; } if (msd >= 0x2) { msd = msd >> 1; s -= 1; } } # endif } /* 0 <= s < GMP_LIMB_BITS. Copy b, shifting it left by s bits. */ if (s > 0) { tmp_roomptr = (mp_limb_t *) malloc (b_len * sizeof (mp_limb_t)); if (tmp_roomptr == NULL) { free (roomptr); return NULL; } { const mp_limb_t *sourceptr = b_ptr; mp_limb_t *destptr = tmp_roomptr; mp_twolimb_t accu = 0; size_t count; for (count = b_len; count > 0; count--) { accu += (mp_twolimb_t) *sourceptr++ << s; *destptr++ = (mp_limb_t) accu; accu = accu >> GMP_LIMB_BITS; } /* accu must be zero, since that was how s was determined. */ if (accu != 0) abort (); } b_ptr = tmp_roomptr; } /* Copy a, shifting it left by s bits, yields r. Memory layout: At the beginning: r = roomptr[0..a_len], at the end: r = roomptr[0..b_len-1], q = roomptr[b_len..a_len] */ r_ptr = roomptr; if (s == 0) { memcpy (r_ptr, a_ptr, a_len * sizeof (mp_limb_t)); r_ptr[a_len] = 0; } else { const mp_limb_t *sourceptr = a_ptr; mp_limb_t *destptr = r_ptr; mp_twolimb_t accu = 0; size_t count; for (count = a_len; count > 0; count--) { accu += (mp_twolimb_t) *sourceptr++ << s; *destptr++ = (mp_limb_t) accu; accu = accu >> GMP_LIMB_BITS; } *destptr++ = (mp_limb_t) accu; } q_ptr = roomptr + b_len; q_len = a_len - b_len + 1; /* q will have m-n+1 limbs */ { size_t j = a_len - b_len; /* m-n */ mp_limb_t b_msd = b_ptr[b_len - 1]; /* b[n-1] */ mp_limb_t b_2msd = b_ptr[b_len - 2]; /* b[n-2] */ mp_twolimb_t b_msdd = /* b[n-1]*beta+b[n-2] */ ((mp_twolimb_t) b_msd << GMP_LIMB_BITS) | b_2msd; /* Division loop, traversed m-n+1 times. j counts down, b is unchanged, beta/2 <= b[n-1] < beta. */ for (;;) { mp_limb_t q_star; mp_limb_t c1; if (r_ptr[j + b_len] < b_msd) /* r[j+n] < b[n-1] ? */ { /* Divide r[j+n]*beta+r[j+n-1] by b[n-1], no overflow. */ mp_twolimb_t num = ((mp_twolimb_t) r_ptr[j + b_len] << GMP_LIMB_BITS) | r_ptr[j + b_len - 1]; q_star = num / b_msd; c1 = num % b_msd; } else { /* Overflow, hence r[j+n]*beta+r[j+n-1] >= beta*b[n-1]. */ q_star = (mp_limb_t)~(mp_limb_t)0; /* q* = beta-1 */ /* Test whether r[j+n]*beta+r[j+n-1] - (beta-1)*b[n-1] >= beta <==> r[j+n]*beta+r[j+n-1] + b[n-1] >= beta*b[n-1]+beta <==> b[n-1] < floor((r[j+n]*beta+r[j+n-1]+b[n-1])/beta) {<= beta !}. If yes, jump directly to the subtraction loop. (Otherwise, r[j+n]*beta+r[j+n-1] - (beta-1)*b[n-1] < beta <==> floor((r[j+n]*beta+r[j+n-1]+b[n-1])/beta) = b[n-1] ) */ if (r_ptr[j + b_len] > b_msd || (c1 = r_ptr[j + b_len - 1] + b_msd) < b_msd) /* r[j+n] >= b[n-1]+1 or r[j+n] = b[n-1] and the addition r[j+n-1]+b[n-1] gives a carry. */ goto subtract; } /* q_star = q*, c1 = (r[j+n]*beta+r[j+n-1]) - q* * b[n-1] (>=0, 0, decrease it by b[n-1]*beta+b[n-2]. Because of b[n-1]*beta+b[n-2] >= beta^2/2 this can happen only twice. */ if (c3 > c2) { q_star = q_star - 1; /* q* := q* - 1 */ if (c3 - c2 > b_msdd) q_star = q_star - 1; /* q* := q* - 1 */ } } if (q_star > 0) subtract: { /* Subtract r := r - b * q* * beta^j. */ mp_limb_t cr; { const mp_limb_t *sourceptr = b_ptr; mp_limb_t *destptr = r_ptr + j; mp_twolimb_t carry = 0; size_t count; for (count = b_len; count > 0; count--) { /* Here 0 <= carry <= q*. */ carry = carry + (mp_twolimb_t) q_star * (mp_twolimb_t) *sourceptr++ + (mp_limb_t) ~(*destptr); /* Here 0 <= carry <= beta*q* + beta-1. */ *destptr++ = ~(mp_limb_t) carry; carry = carry >> GMP_LIMB_BITS; /* <= q* */ } cr = (mp_limb_t) carry; } /* Subtract cr from r_ptr[j + b_len], then forget about r_ptr[j + b_len]. */ if (cr > r_ptr[j + b_len]) { /* Subtraction gave a carry. */ q_star = q_star - 1; /* q* := q* - 1 */ /* Add b back. */ { const mp_limb_t *sourceptr = b_ptr; mp_limb_t *destptr = r_ptr + j; mp_limb_t carry = 0; size_t count; for (count = b_len; count > 0; count--) { mp_limb_t source1 = *sourceptr++; mp_limb_t source2 = *destptr; *destptr++ = source1 + source2 + carry; carry = (carry ? source1 >= (mp_limb_t) ~source2 : source1 > (mp_limb_t) ~source2); } } /* Forget about the carry and about r[j+n]. */ } } /* q* is determined. Store it as q[j]. */ q_ptr[j] = q_star; if (j == 0) break; j--; } } r_len = b_len; /* Normalise q. */ if (q_ptr[q_len - 1] == 0) q_len--; # if 0 /* Not needed here, since we need r only to compare it with b/2, and b is shifted left by s bits. */ /* Shift r right by s bits. */ if (s > 0) { mp_limb_t ptr = r_ptr + r_len; mp_twolimb_t accu = 0; size_t count; for (count = r_len; count > 0; count--) { accu = (mp_twolimb_t) (mp_limb_t) accu << GMP_LIMB_BITS; accu += (mp_twolimb_t) *--ptr << (GMP_LIMB_BITS - s); *ptr = (mp_limb_t) (accu >> GMP_LIMB_BITS); } } # endif /* Normalise r. */ while (r_len > 0 && r_ptr[r_len - 1] == 0) r_len--; } /* Compare r << 1 with b. */ if (r_len > b_len) goto increment_q; { size_t i; for (i = b_len;;) { mp_limb_t r_i = (i <= r_len && i > 0 ? r_ptr[i - 1] >> (GMP_LIMB_BITS - 1) : 0) | (i < r_len ? r_ptr[i] << 1 : 0); mp_limb_t b_i = (i < b_len ? b_ptr[i] : 0); if (r_i > b_i) goto increment_q; if (r_i < b_i) goto keep_q; if (i == 0) break; i--; } } if (q_len > 0 && ((q_ptr[0] & 1) != 0)) /* q is odd. */ increment_q: { size_t i; for (i = 0; i < q_len; i++) if (++(q_ptr[i]) != 0) goto keep_q; q_ptr[q_len++] = 1; } keep_q: if (tmp_roomptr != NULL) free (tmp_roomptr); q->limbs = q_ptr; q->nlimbs = q_len; return roomptr; } /* Convert a bignum a >= 0, multiplied with 10^extra_zeroes, to decimal representation. Destroys the contents of a. Return the allocated memory - containing the decimal digits in low-to-high order, terminated with a NUL character - in case of success, NULL in case of memory allocation failure. */ static char * convert_to_decimal (mpn_t a, size_t extra_zeroes) { mp_limb_t *a_ptr = a.limbs; size_t a_len = a.nlimbs; /* 0.03345 is slightly larger than log(2)/(9*log(10)). */ size_t c_len = 9 * ((size_t)(a_len * (GMP_LIMB_BITS * 0.03345f)) + 1); char *c_ptr = (char *) malloc (xsum (c_len, extra_zeroes)); if (c_ptr != NULL) { char *d_ptr = c_ptr; for (; extra_zeroes > 0; extra_zeroes--) *d_ptr++ = '0'; while (a_len > 0) { /* Divide a by 10^9, in-place. */ mp_limb_t remainder = 0; mp_limb_t *ptr = a_ptr + a_len; size_t count; for (count = a_len; count > 0; count--) { mp_twolimb_t num = ((mp_twolimb_t) remainder << GMP_LIMB_BITS) | *--ptr; *ptr = num / 1000000000; remainder = num % 1000000000; } /* Store the remainder as 9 decimal digits. */ for (count = 9; count > 0; count--) { *d_ptr++ = '0' + (remainder % 10); remainder = remainder / 10; } /* Normalize a. */ if (a_ptr[a_len - 1] == 0) a_len--; } /* Remove leading zeroes. */ while (d_ptr > c_ptr && d_ptr[-1] == '0') d_ptr--; /* But keep at least one zero. */ if (d_ptr == c_ptr) *d_ptr++ = '0'; /* Terminate the string. */ *d_ptr = '\0'; } return c_ptr; } # if NEED_PRINTF_LONG_DOUBLE /* Assuming x is finite and >= 0: write x as x = 2^e * m, where m is a bignum. Return the allocated memory in case of success, NULL in case of memory allocation failure. */ static void * decode_long_double (long double x, int *ep, mpn_t *mp) { mpn_t m; int exp; long double y; size_t i; /* Allocate memory for result. */ m.nlimbs = (LDBL_MANT_BIT + GMP_LIMB_BITS - 1) / GMP_LIMB_BITS; m.limbs = (mp_limb_t *) malloc (m.nlimbs * sizeof (mp_limb_t)); if (m.limbs == NULL) return NULL; /* Split into exponential part and mantissa. */ y = frexpl (x, &exp); if (!(y >= 0.0L && y < 1.0L)) abort (); /* x = 2^exp * y = 2^(exp - LDBL_MANT_BIT) * (y * 2^LDBL_MANT_BIT), and the latter is an integer. */ /* Convert the mantissa (y * 2^LDBL_MANT_BIT) to a sequence of limbs. I'm not sure whether it's safe to cast a 'long double' value between 2^31 and 2^32 to 'unsigned int', therefore play safe and cast only 'long double' values between 0 and 2^16 (to 'unsigned int' or 'int', doesn't matter). */ # if (LDBL_MANT_BIT % GMP_LIMB_BITS) != 0 # if (LDBL_MANT_BIT % GMP_LIMB_BITS) > GMP_LIMB_BITS / 2 { mp_limb_t hi, lo; y *= (mp_limb_t) 1 << (LDBL_MANT_BIT % (GMP_LIMB_BITS / 2)); hi = (int) y; y -= hi; if (!(y >= 0.0L && y < 1.0L)) abort (); y *= (mp_limb_t) 1 << (GMP_LIMB_BITS / 2); lo = (int) y; y -= lo; if (!(y >= 0.0L && y < 1.0L)) abort (); m.limbs[LDBL_MANT_BIT / GMP_LIMB_BITS] = (hi << (GMP_LIMB_BITS / 2)) | lo; } # else { mp_limb_t d; y *= (mp_limb_t) 1 << (LDBL_MANT_BIT % GMP_LIMB_BITS); d = (int) y; y -= d; if (!(y >= 0.0L && y < 1.0L)) abort (); m.limbs[LDBL_MANT_BIT / GMP_LIMB_BITS] = d; } # endif # endif for (i = LDBL_MANT_BIT / GMP_LIMB_BITS; i > 0; ) { mp_limb_t hi, lo; y *= (mp_limb_t) 1 << (GMP_LIMB_BITS / 2); hi = (int) y; y -= hi; if (!(y >= 0.0L && y < 1.0L)) abort (); y *= (mp_limb_t) 1 << (GMP_LIMB_BITS / 2); lo = (int) y; y -= lo; if (!(y >= 0.0L && y < 1.0L)) abort (); m.limbs[--i] = (hi << (GMP_LIMB_BITS / 2)) | lo; } # if 0 /* On FreeBSD 6.1/x86, 'long double' numbers sometimes have excess precision. */ if (!(y == 0.0L)) abort (); # endif /* Normalise. */ while (m.nlimbs > 0 && m.limbs[m.nlimbs - 1] == 0) m.nlimbs--; *mp = m; *ep = exp - LDBL_MANT_BIT; return m.limbs; } # endif # if NEED_PRINTF_DOUBLE /* Assuming x is finite and >= 0: write x as x = 2^e * m, where m is a bignum. Return the allocated memory in case of success, NULL in case of memory allocation failure. */ static void * decode_double (double x, int *ep, mpn_t *mp) { mpn_t m; int exp; double y; size_t i; /* Allocate memory for result. */ m.nlimbs = (DBL_MANT_BIT + GMP_LIMB_BITS - 1) / GMP_LIMB_BITS; m.limbs = (mp_limb_t *) malloc (m.nlimbs * sizeof (mp_limb_t)); if (m.limbs == NULL) return NULL; /* Split into exponential part and mantissa. */ y = frexp (x, &exp); if (!(y >= 0.0 && y < 1.0)) abort (); /* x = 2^exp * y = 2^(exp - DBL_MANT_BIT) * (y * 2^DBL_MANT_BIT), and the latter is an integer. */ /* Convert the mantissa (y * 2^DBL_MANT_BIT) to a sequence of limbs. I'm not sure whether it's safe to cast a 'double' value between 2^31 and 2^32 to 'unsigned int', therefore play safe and cast only 'double' values between 0 and 2^16 (to 'unsigned int' or 'int', doesn't matter). */ # if (DBL_MANT_BIT % GMP_LIMB_BITS) != 0 # if (DBL_MANT_BIT % GMP_LIMB_BITS) > GMP_LIMB_BITS / 2 { mp_limb_t hi, lo; y *= (mp_limb_t) 1 << (DBL_MANT_BIT % (GMP_LIMB_BITS / 2)); hi = (int) y; y -= hi; if (!(y >= 0.0 && y < 1.0)) abort (); y *= (mp_limb_t) 1 << (GMP_LIMB_BITS / 2); lo = (int) y; y -= lo; if (!(y >= 0.0 && y < 1.0)) abort (); m.limbs[DBL_MANT_BIT / GMP_LIMB_BITS] = (hi << (GMP_LIMB_BITS / 2)) | lo; } # else { mp_limb_t d; y *= (mp_limb_t) 1 << (DBL_MANT_BIT % GMP_LIMB_BITS); d = (int) y; y -= d; if (!(y >= 0.0 && y < 1.0)) abort (); m.limbs[DBL_MANT_BIT / GMP_LIMB_BITS] = d; } # endif # endif for (i = DBL_MANT_BIT / GMP_LIMB_BITS; i > 0; ) { mp_limb_t hi, lo; y *= (mp_limb_t) 1 << (GMP_LIMB_BITS / 2); hi = (int) y; y -= hi; if (!(y >= 0.0 && y < 1.0)) abort (); y *= (mp_limb_t) 1 << (GMP_LIMB_BITS / 2); lo = (int) y; y -= lo; if (!(y >= 0.0 && y < 1.0)) abort (); m.limbs[--i] = (hi << (GMP_LIMB_BITS / 2)) | lo; } if (!(y == 0.0)) abort (); /* Normalise. */ while (m.nlimbs > 0 && m.limbs[m.nlimbs - 1] == 0) m.nlimbs--; *mp = m; *ep = exp - DBL_MANT_BIT; return m.limbs; } # endif /* Assuming x = 2^e * m is finite and >= 0, and n is an integer: Returns the decimal representation of round (x * 10^n). Return the allocated memory - containing the decimal digits in low-to-high order, terminated with a NUL character - in case of success, NULL in case of memory allocation failure. */ static char * scale10_round_decimal_decoded (int e, mpn_t m, void *memory, int n) { int s; size_t extra_zeroes; unsigned int abs_n; unsigned int abs_s; mp_limb_t *pow5_ptr; size_t pow5_len; unsigned int s_limbs; unsigned int s_bits; mpn_t pow5; mpn_t z; void *z_memory; char *digits; if (memory == NULL) return NULL; /* x = 2^e * m, hence y = round (2^e * 10^n * m) = round (2^(e+n) * 5^n * m) = round (2^s * 5^n * m). */ s = e + n; extra_zeroes = 0; /* Factor out a common power of 10 if possible. */ if (s > 0 && n > 0) { extra_zeroes = (s < n ? s : n); s -= extra_zeroes; n -= extra_zeroes; } /* Here y = round (2^s * 5^n * m) * 10^extra_zeroes. Before converting to decimal, we need to compute z = round (2^s * 5^n * m). */ /* Compute 5^|n|, possibly shifted by |s| bits if n and s have the same sign. 2.322 is slightly larger than log(5)/log(2). */ abs_n = (n >= 0 ? n : -n); abs_s = (s >= 0 ? s : -s); pow5_ptr = (mp_limb_t *) malloc (((int)(abs_n * (2.322f / GMP_LIMB_BITS)) + 1 + abs_s / GMP_LIMB_BITS + 1) * sizeof (mp_limb_t)); if (pow5_ptr == NULL) { free (memory); return NULL; } /* Initialize with 1. */ pow5_ptr[0] = 1; pow5_len = 1; /* Multiply with 5^|n|. */ if (abs_n > 0) { static mp_limb_t const small_pow5[13 + 1] = { 1, 5, 25, 125, 625, 3125, 15625, 78125, 390625, 1953125, 9765625, 48828125, 244140625, 1220703125 }; unsigned int n13; for (n13 = 0; n13 <= abs_n; n13 += 13) { mp_limb_t digit1 = small_pow5[n13 + 13 <= abs_n ? 13 : abs_n - n13]; size_t j; mp_twolimb_t carry = 0; for (j = 0; j < pow5_len; j++) { mp_limb_t digit2 = pow5_ptr[j]; carry += (mp_twolimb_t) digit1 * (mp_twolimb_t) digit2; pow5_ptr[j] = (mp_limb_t) carry; carry = carry >> GMP_LIMB_BITS; } if (carry > 0) pow5_ptr[pow5_len++] = (mp_limb_t) carry; } } s_limbs = abs_s / GMP_LIMB_BITS; s_bits = abs_s % GMP_LIMB_BITS; if (n >= 0 ? s >= 0 : s <= 0) { /* Multiply with 2^|s|. */ if (s_bits > 0) { mp_limb_t *ptr = pow5_ptr; mp_twolimb_t accu = 0; size_t count; for (count = pow5_len; count > 0; count--) { accu += (mp_twolimb_t) *ptr << s_bits; *ptr++ = (mp_limb_t) accu; accu = accu >> GMP_LIMB_BITS; } if (accu > 0) { *ptr = (mp_limb_t) accu; pow5_len++; } } if (s_limbs > 0) { size_t count; for (count = pow5_len; count > 0;) { count--; pow5_ptr[s_limbs + count] = pow5_ptr[count]; } for (count = s_limbs; count > 0;) { count--; pow5_ptr[count] = 0; } pow5_len += s_limbs; } pow5.limbs = pow5_ptr; pow5.nlimbs = pow5_len; if (n >= 0) { /* Multiply m with pow5. No division needed. */ z_memory = multiply (m, pow5, &z); } else { /* Divide m by pow5 and round. */ z_memory = divide (m, pow5, &z); } } else { pow5.limbs = pow5_ptr; pow5.nlimbs = pow5_len; if (n >= 0) { /* n >= 0, s < 0. Multiply m with pow5, then divide by 2^|s|. */ mpn_t numerator; mpn_t denominator; void *tmp_memory; tmp_memory = multiply (m, pow5, &numerator); if (tmp_memory == NULL) { free (pow5_ptr); free (memory); return NULL; } /* Construct 2^|s|. */ { mp_limb_t *ptr = pow5_ptr + pow5_len; size_t i; for (i = 0; i < s_limbs; i++) ptr[i] = 0; ptr[s_limbs] = (mp_limb_t) 1 << s_bits; denominator.limbs = ptr; denominator.nlimbs = s_limbs + 1; } z_memory = divide (numerator, denominator, &z); free (tmp_memory); } else { /* n < 0, s > 0. Multiply m with 2^s, then divide by pow5. */ mpn_t numerator; mp_limb_t *num_ptr; num_ptr = (mp_limb_t *) malloc ((m.nlimbs + s_limbs + 1) * sizeof (mp_limb_t)); if (num_ptr == NULL) { free (pow5_ptr); free (memory); return NULL; } { mp_limb_t *destptr = num_ptr; { size_t i; for (i = 0; i < s_limbs; i++) *destptr++ = 0; } if (s_bits > 0) { const mp_limb_t *sourceptr = m.limbs; mp_twolimb_t accu = 0; size_t count; for (count = m.nlimbs; count > 0; count--) { accu += (mp_twolimb_t) *sourceptr++ << s_bits; *destptr++ = (mp_limb_t) accu; accu = accu >> GMP_LIMB_BITS; } if (accu > 0) *destptr++ = (mp_limb_t) accu; } else { const mp_limb_t *sourceptr = m.limbs; size_t count; for (count = m.nlimbs; count > 0; count--) *destptr++ = *sourceptr++; } numerator.limbs = num_ptr; numerator.nlimbs = destptr - num_ptr; } z_memory = divide (numerator, pow5, &z); free (num_ptr); } } free (pow5_ptr); free (memory); /* Here y = round (x * 10^n) = z * 10^extra_zeroes. */ if (z_memory == NULL) return NULL; digits = convert_to_decimal (z, extra_zeroes); free (z_memory); return digits; } # if NEED_PRINTF_LONG_DOUBLE /* Assuming x is finite and >= 0, and n is an integer: Returns the decimal representation of round (x * 10^n). Return the allocated memory - containing the decimal digits in low-to-high order, terminated with a NUL character - in case of success, NULL in case of memory allocation failure. */ static char * scale10_round_decimal_long_double (long double x, int n) { int e IF_LINT(= 0); mpn_t m; void *memory = decode_long_double (x, &e, &m); return scale10_round_decimal_decoded (e, m, memory, n); } # endif # if NEED_PRINTF_DOUBLE /* Assuming x is finite and >= 0, and n is an integer: Returns the decimal representation of round (x * 10^n). Return the allocated memory - containing the decimal digits in low-to-high order, terminated with a NUL character - in case of success, NULL in case of memory allocation failure. */ static char * scale10_round_decimal_double (double x, int n) { int e IF_LINT(= 0); mpn_t m; void *memory = decode_double (x, &e, &m); return scale10_round_decimal_decoded (e, m, memory, n); } # endif # if NEED_PRINTF_LONG_DOUBLE /* Assuming x is finite and > 0: Return an approximation for n with 10^n <= x < 10^(n+1). The approximation is usually the right n, but may be off by 1 sometimes. */ static int floorlog10l (long double x) { int exp; long double y; double z; double l; /* Split into exponential part and mantissa. */ y = frexpl (x, &exp); if (!(y >= 0.0L && y < 1.0L)) abort (); if (y == 0.0L) return INT_MIN; if (y < 0.5L) { while (y < (1.0L / (1 << (GMP_LIMB_BITS / 2)) / (1 << (GMP_LIMB_BITS / 2)))) { y *= 1.0L * (1 << (GMP_LIMB_BITS / 2)) * (1 << (GMP_LIMB_BITS / 2)); exp -= GMP_LIMB_BITS; } if (y < (1.0L / (1 << 16))) { y *= 1.0L * (1 << 16); exp -= 16; } if (y < (1.0L / (1 << 8))) { y *= 1.0L * (1 << 8); exp -= 8; } if (y < (1.0L / (1 << 4))) { y *= 1.0L * (1 << 4); exp -= 4; } if (y < (1.0L / (1 << 2))) { y *= 1.0L * (1 << 2); exp -= 2; } if (y < (1.0L / (1 << 1))) { y *= 1.0L * (1 << 1); exp -= 1; } } if (!(y >= 0.5L && y < 1.0L)) abort (); /* Compute an approximation for l = log2(x) = exp + log2(y). */ l = exp; z = y; if (z < 0.70710678118654752444) { z *= 1.4142135623730950488; l -= 0.5; } if (z < 0.8408964152537145431) { z *= 1.1892071150027210667; l -= 0.25; } if (z < 0.91700404320467123175) { z *= 1.0905077326652576592; l -= 0.125; } if (z < 0.9576032806985736469) { z *= 1.0442737824274138403; l -= 0.0625; } /* Now 0.95 <= z <= 1.01. */ z = 1 - z; /* log2(1-z) = 1/log(2) * (- z - z^2/2 - z^3/3 - z^4/4 - ...) Four terms are enough to get an approximation with error < 10^-7. */ l -= 1.4426950408889634074 * z * (1.0 + z * (0.5 + z * ((1.0 / 3) + z * 0.25))); /* Finally multiply with log(2)/log(10), yields an approximation for log10(x). */ l *= 0.30102999566398119523; /* Round down to the next integer. */ return (int) l + (l < 0 ? -1 : 0); } # endif # if NEED_PRINTF_DOUBLE /* Assuming x is finite and > 0: Return an approximation for n with 10^n <= x < 10^(n+1). The approximation is usually the right n, but may be off by 1 sometimes. */ static int floorlog10 (double x) { int exp; double y; double z; double l; /* Split into exponential part and mantissa. */ y = frexp (x, &exp); if (!(y >= 0.0 && y < 1.0)) abort (); if (y == 0.0) return INT_MIN; if (y < 0.5) { while (y < (1.0 / (1 << (GMP_LIMB_BITS / 2)) / (1 << (GMP_LIMB_BITS / 2)))) { y *= 1.0 * (1 << (GMP_LIMB_BITS / 2)) * (1 << (GMP_LIMB_BITS / 2)); exp -= GMP_LIMB_BITS; } if (y < (1.0 / (1 << 16))) { y *= 1.0 * (1 << 16); exp -= 16; } if (y < (1.0 / (1 << 8))) { y *= 1.0 * (1 << 8); exp -= 8; } if (y < (1.0 / (1 << 4))) { y *= 1.0 * (1 << 4); exp -= 4; } if (y < (1.0 / (1 << 2))) { y *= 1.0 * (1 << 2); exp -= 2; } if (y < (1.0 / (1 << 1))) { y *= 1.0 * (1 << 1); exp -= 1; } } if (!(y >= 0.5 && y < 1.0)) abort (); /* Compute an approximation for l = log2(x) = exp + log2(y). */ l = exp; z = y; if (z < 0.70710678118654752444) { z *= 1.4142135623730950488; l -= 0.5; } if (z < 0.8408964152537145431) { z *= 1.1892071150027210667; l -= 0.25; } if (z < 0.91700404320467123175) { z *= 1.0905077326652576592; l -= 0.125; } if (z < 0.9576032806985736469) { z *= 1.0442737824274138403; l -= 0.0625; } /* Now 0.95 <= z <= 1.01. */ z = 1 - z; /* log2(1-z) = 1/log(2) * (- z - z^2/2 - z^3/3 - z^4/4 - ...) Four terms are enough to get an approximation with error < 10^-7. */ l -= 1.4426950408889634074 * z * (1.0 + z * (0.5 + z * ((1.0 / 3) + z * 0.25))); /* Finally multiply with log(2)/log(10), yields an approximation for log10(x). */ l *= 0.30102999566398119523; /* Round down to the next integer. */ return (int) l + (l < 0 ? -1 : 0); } # endif /* Tests whether a string of digits consists of exactly PRECISION zeroes and a single '1' digit. */ static int is_borderline (const char *digits, size_t precision) { for (; precision > 0; precision--, digits++) if (*digits != '0') return 0; if (*digits != '1') return 0; digits++; return *digits == '\0'; } #endif #if !USE_SNPRINTF || !HAVE_SNPRINTF_RETVAL_C99 /* Use a different function name, to make it possible that the 'wchar_t' parametrization and the 'char' parametrization get compiled in the same translation unit. */ # if WIDE_CHAR_VERSION # define MAX_ROOM_NEEDED wmax_room_needed # else # define MAX_ROOM_NEEDED max_room_needed # endif /* Returns the number of TCHAR_T units needed as temporary space for the result of sprintf or SNPRINTF of a single conversion directive. */ static size_t MAX_ROOM_NEEDED (const arguments *ap, size_t arg_index, FCHAR_T conversion, arg_type type, int flags, size_t width, int has_precision, size_t precision, int pad_ourselves) { size_t tmp_length; switch (conversion) { case 'd': case 'i': case 'u': # if HAVE_LONG_LONG_INT if (type == TYPE_LONGLONGINT || type == TYPE_ULONGLONGINT) tmp_length = (unsigned int) (sizeof (unsigned long long) * CHAR_BIT * 0.30103 /* binary -> decimal */ ) + 1; /* turn floor into ceil */ else # endif if (type == TYPE_LONGINT || type == TYPE_ULONGINT) tmp_length = (unsigned int) (sizeof (unsigned long) * CHAR_BIT * 0.30103 /* binary -> decimal */ ) + 1; /* turn floor into ceil */ else tmp_length = (unsigned int) (sizeof (unsigned int) * CHAR_BIT * 0.30103 /* binary -> decimal */ ) + 1; /* turn floor into ceil */ if (tmp_length < precision) tmp_length = precision; /* Multiply by 2, as an estimate for FLAG_GROUP. */ tmp_length = xsum (tmp_length, tmp_length); /* Add 1, to account for a leading sign. */ tmp_length = xsum (tmp_length, 1); break; case 'o': # if HAVE_LONG_LONG_INT if (type == TYPE_LONGLONGINT || type == TYPE_ULONGLONGINT) tmp_length = (unsigned int) (sizeof (unsigned long long) * CHAR_BIT * 0.333334 /* binary -> octal */ ) + 1; /* turn floor into ceil */ else # endif if (type == TYPE_LONGINT || type == TYPE_ULONGINT) tmp_length = (unsigned int) (sizeof (unsigned long) * CHAR_BIT * 0.333334 /* binary -> octal */ ) + 1; /* turn floor into ceil */ else tmp_length = (unsigned int) (sizeof (unsigned int) * CHAR_BIT * 0.333334 /* binary -> octal */ ) + 1; /* turn floor into ceil */ if (tmp_length < precision) tmp_length = precision; /* Add 1, to account for a leading sign. */ tmp_length = xsum (tmp_length, 1); break; case 'x': case 'X': # if HAVE_LONG_LONG_INT if (type == TYPE_LONGLONGINT || type == TYPE_ULONGLONGINT) tmp_length = (unsigned int) (sizeof (unsigned long long) * CHAR_BIT * 0.25 /* binary -> hexadecimal */ ) + 1; /* turn floor into ceil */ else # endif if (type == TYPE_LONGINT || type == TYPE_ULONGINT) tmp_length = (unsigned int) (sizeof (unsigned long) * CHAR_BIT * 0.25 /* binary -> hexadecimal */ ) + 1; /* turn floor into ceil */ else tmp_length = (unsigned int) (sizeof (unsigned int) * CHAR_BIT * 0.25 /* binary -> hexadecimal */ ) + 1; /* turn floor into ceil */ if (tmp_length < precision) tmp_length = precision; /* Add 2, to account for a leading sign or alternate form. */ tmp_length = xsum (tmp_length, 2); break; case 'f': case 'F': if (type == TYPE_LONGDOUBLE) tmp_length = (unsigned int) (LDBL_MAX_EXP * 0.30103 /* binary -> decimal */ * 2 /* estimate for FLAG_GROUP */ ) + 1 /* turn floor into ceil */ + 10; /* sign, decimal point etc. */ else tmp_length = (unsigned int) (DBL_MAX_EXP * 0.30103 /* binary -> decimal */ * 2 /* estimate for FLAG_GROUP */ ) + 1 /* turn floor into ceil */ + 10; /* sign, decimal point etc. */ tmp_length = xsum (tmp_length, precision); break; case 'e': case 'E': case 'g': case 'G': tmp_length = 12; /* sign, decimal point, exponent etc. */ tmp_length = xsum (tmp_length, precision); break; case 'a': case 'A': if (type == TYPE_LONGDOUBLE) tmp_length = (unsigned int) (LDBL_DIG * 0.831 /* decimal -> hexadecimal */ ) + 1; /* turn floor into ceil */ else tmp_length = (unsigned int) (DBL_DIG * 0.831 /* decimal -> hexadecimal */ ) + 1; /* turn floor into ceil */ if (tmp_length < precision) tmp_length = precision; /* Account for sign, decimal point etc. */ tmp_length = xsum (tmp_length, 12); break; case 'c': # if HAVE_WINT_T && !WIDE_CHAR_VERSION if (type == TYPE_WIDE_CHAR) tmp_length = MB_CUR_MAX; else # endif tmp_length = 1; break; case 's': # if HAVE_WCHAR_T if (type == TYPE_WIDE_STRING) { # if WIDE_CHAR_VERSION /* ISO C says about %ls in fwprintf: "If the precision is not specified or is greater than the size of the array, the array shall contain a null wide character." So if there is a precision, we must not use wcslen. */ const wchar_t *arg = ap->arg[arg_index].a.a_wide_string; if (has_precision) tmp_length = local_wcsnlen (arg, precision); else tmp_length = local_wcslen (arg); # else /* ISO C says about %ls in fprintf: "If a precision is specified, no more than that many bytes are written (including shift sequences, if any), and the array shall contain a null wide character if, to equal the multibyte character sequence length given by the precision, the function would need to access a wide character one past the end of the array." So if there is a precision, we must not use wcslen. */ /* This case has already been handled separately in VASNPRINTF. */ abort (); # endif } else # endif { # if WIDE_CHAR_VERSION /* ISO C says about %s in fwprintf: "If the precision is not specified or is greater than the size of the converted array, the converted array shall contain a null wide character." So if there is a precision, we must not use strlen. */ /* This case has already been handled separately in VASNPRINTF. */ abort (); # else /* ISO C says about %s in fprintf: "If the precision is not specified or greater than the size of the array, the array shall contain a null character." So if there is a precision, we must not use strlen. */ const char *arg = ap->arg[arg_index].a.a_string; if (has_precision) tmp_length = local_strnlen (arg, precision); else tmp_length = strlen (arg); # endif } break; case 'p': tmp_length = (unsigned int) (sizeof (void *) * CHAR_BIT * 0.25 /* binary -> hexadecimal */ ) + 1 /* turn floor into ceil */ + 2; /* account for leading 0x */ break; default: abort (); } if (!pad_ourselves) { # if ENABLE_UNISTDIO /* Padding considers the number of characters, therefore the number of elements after padding may be > max (tmp_length, width) but is certainly <= tmp_length + width. */ tmp_length = xsum (tmp_length, width); # else /* Padding considers the number of elements, says POSIX. */ if (tmp_length < width) tmp_length = width; # endif } tmp_length = xsum (tmp_length, 1); /* account for trailing NUL */ return tmp_length; } #endif DCHAR_T * VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp, const FCHAR_T *format, va_list args) { DIRECTIVES d; arguments a; if (PRINTF_PARSE (format, &d, &a) < 0) /* errno is already set. */ return NULL; #define CLEANUP() \ if (d.dir != d.direct_alloc_dir) \ free (d.dir); \ if (a.arg != a.direct_alloc_arg) \ free (a.arg); if (PRINTF_FETCHARGS (args, &a) < 0) { CLEANUP (); errno = EINVAL; return NULL; } { size_t buf_neededlength; TCHAR_T *buf; TCHAR_T *buf_malloced; const FCHAR_T *cp; size_t i; DIRECTIVE *dp; /* Output string accumulator. */ DCHAR_T *result; size_t allocated; size_t length; /* Allocate a small buffer that will hold a directive passed to sprintf or snprintf. */ buf_neededlength = xsum4 (7, d.max_width_length, d.max_precision_length, 6); #if HAVE_ALLOCA if (buf_neededlength < 4000 / sizeof (TCHAR_T)) { buf = (TCHAR_T *) alloca (buf_neededlength * sizeof (TCHAR_T)); buf_malloced = NULL; } else #endif { size_t buf_memsize = xtimes (buf_neededlength, sizeof (TCHAR_T)); if (size_overflow_p (buf_memsize)) goto out_of_memory_1; buf = (TCHAR_T *) malloc (buf_memsize); if (buf == NULL) goto out_of_memory_1; buf_malloced = buf; } if (resultbuf != NULL) { result = resultbuf; allocated = *lengthp; } else { result = NULL; allocated = 0; } length = 0; /* Invariants: result is either == resultbuf or == NULL or malloc-allocated. If length > 0, then result != NULL. */ /* Ensures that allocated >= needed. Aborts through a jump to out_of_memory if needed is SIZE_MAX or otherwise too big. */ #define ENSURE_ALLOCATION(needed) \ if ((needed) > allocated) \ { \ size_t memory_size; \ DCHAR_T *memory; \ \ allocated = (allocated > 0 ? xtimes (allocated, 2) : 12); \ if ((needed) > allocated) \ allocated = (needed); \ memory_size = xtimes (allocated, sizeof (DCHAR_T)); \ if (size_overflow_p (memory_size)) \ goto out_of_memory; \ if (result == resultbuf || result == NULL) \ memory = (DCHAR_T *) malloc (memory_size); \ else \ memory = (DCHAR_T *) realloc (result, memory_size); \ if (memory == NULL) \ goto out_of_memory; \ if (result == resultbuf && length > 0) \ DCHAR_CPY (memory, result, length); \ result = memory; \ } for (cp = format, i = 0, dp = &d.dir[0]; ; cp = dp->dir_end, i++, dp++) { if (cp != dp->dir_start) { size_t n = dp->dir_start - cp; size_t augmented_length = xsum (length, n); ENSURE_ALLOCATION (augmented_length); /* This copies a piece of FCHAR_T[] into a DCHAR_T[]. Here we need that the format string contains only ASCII characters if FCHAR_T and DCHAR_T are not the same type. */ if (sizeof (FCHAR_T) == sizeof (DCHAR_T)) { DCHAR_CPY (result + length, (const DCHAR_T *) cp, n); length = augmented_length; } else { do result[length++] = (unsigned char) *cp++; while (--n > 0); } } if (i == d.count) break; /* Execute a single directive. */ if (dp->conversion == '%') { size_t augmented_length; if (!(dp->arg_index == ARG_NONE)) abort (); augmented_length = xsum (length, 1); ENSURE_ALLOCATION (augmented_length); result[length] = '%'; length = augmented_length; } else { if (!(dp->arg_index != ARG_NONE)) abort (); if (dp->conversion == 'n') { switch (a.arg[dp->arg_index].type) { case TYPE_COUNT_SCHAR_POINTER: *a.arg[dp->arg_index].a.a_count_schar_pointer = length; break; case TYPE_COUNT_SHORT_POINTER: *a.arg[dp->arg_index].a.a_count_short_pointer = length; break; case TYPE_COUNT_INT_POINTER: *a.arg[dp->arg_index].a.a_count_int_pointer = length; break; case TYPE_COUNT_LONGINT_POINTER: *a.arg[dp->arg_index].a.a_count_longint_pointer = length; break; #if HAVE_LONG_LONG_INT case TYPE_COUNT_LONGLONGINT_POINTER: *a.arg[dp->arg_index].a.a_count_longlongint_pointer = length; break; #endif default: abort (); } } #if ENABLE_UNISTDIO /* The unistdio extensions. */ else if (dp->conversion == 'U') { arg_type type = a.arg[dp->arg_index].type; int flags = dp->flags; int has_width; size_t width; int has_precision; size_t precision; has_width = 0; width = 0; if (dp->width_start != dp->width_end) { if (dp->width_arg_index != ARG_NONE) { int arg; if (!(a.arg[dp->width_arg_index].type == TYPE_INT)) abort (); arg = a.arg[dp->width_arg_index].a.a_int; if (arg < 0) { /* "A negative field width is taken as a '-' flag followed by a positive field width." */ flags |= FLAG_LEFT; width = (unsigned int) (-arg); } else width = arg; } else { const FCHAR_T *digitp = dp->width_start; do width = xsum (xtimes (width, 10), *digitp++ - '0'); while (digitp != dp->width_end); } has_width = 1; } has_precision = 0; precision = 0; if (dp->precision_start != dp->precision_end) { if (dp->precision_arg_index != ARG_NONE) { int arg; if (!(a.arg[dp->precision_arg_index].type == TYPE_INT)) abort (); arg = a.arg[dp->precision_arg_index].a.a_int; /* "A negative precision is taken as if the precision were omitted." */ if (arg >= 0) { precision = arg; has_precision = 1; } } else { const FCHAR_T *digitp = dp->precision_start + 1; precision = 0; while (digitp != dp->precision_end) precision = xsum (xtimes (precision, 10), *digitp++ - '0'); has_precision = 1; } } switch (type) { case TYPE_U8_STRING: { const uint8_t *arg = a.arg[dp->arg_index].a.a_u8_string; const uint8_t *arg_end; size_t characters; if (has_precision) { /* Use only PRECISION characters, from the left. */ arg_end = arg; characters = 0; for (; precision > 0; precision--) { int count = u8_strmblen (arg_end); if (count == 0) break; if (count < 0) { if (!(result == resultbuf || result == NULL)) free (result); if (buf_malloced != NULL) free (buf_malloced); CLEANUP (); errno = EILSEQ; return NULL; } arg_end += count; characters++; } } else if (has_width) { /* Use the entire string, and count the number of characters. */ arg_end = arg; characters = 0; for (;;) { int count = u8_strmblen (arg_end); if (count == 0) break; if (count < 0) { if (!(result == resultbuf || result == NULL)) free (result); if (buf_malloced != NULL) free (buf_malloced); CLEANUP (); errno = EILSEQ; return NULL; } arg_end += count; characters++; } } else { /* Use the entire string. */ arg_end = arg + u8_strlen (arg); /* The number of characters doesn't matter. */ characters = 0; } if (has_width && width > characters && !(dp->flags & FLAG_LEFT)) { size_t n = width - characters; ENSURE_ALLOCATION (xsum (length, n)); DCHAR_SET (result + length, ' ', n); length += n; } # if DCHAR_IS_UINT8_T { size_t n = arg_end - arg; ENSURE_ALLOCATION (xsum (length, n)); DCHAR_CPY (result + length, arg, n); length += n; } # else { /* Convert. */ DCHAR_T *converted = result + length; size_t converted_len = allocated - length; # if DCHAR_IS_TCHAR /* Convert from UTF-8 to locale encoding. */ converted = u8_conv_to_encoding (locale_charset (), iconveh_question_mark, arg, arg_end - arg, NULL, converted, &converted_len); # else /* Convert from UTF-8 to UTF-16/UTF-32. */ converted = U8_TO_DCHAR (arg, arg_end - arg, converted, &converted_len); # endif if (converted == NULL) { int saved_errno = errno; if (!(result == resultbuf || result == NULL)) free (result); if (buf_malloced != NULL) free (buf_malloced); CLEANUP (); errno = saved_errno; return NULL; } if (converted != result + length) { ENSURE_ALLOCATION (xsum (length, converted_len)); DCHAR_CPY (result + length, converted, converted_len); free (converted); } length += converted_len; } # endif if (has_width && width > characters && (dp->flags & FLAG_LEFT)) { size_t n = width - characters; ENSURE_ALLOCATION (xsum (length, n)); DCHAR_SET (result + length, ' ', n); length += n; } } break; case TYPE_U16_STRING: { const uint16_t *arg = a.arg[dp->arg_index].a.a_u16_string; const uint16_t *arg_end; size_t characters; if (has_precision) { /* Use only PRECISION characters, from the left. */ arg_end = arg; characters = 0; for (; precision > 0; precision--) { int count = u16_strmblen (arg_end); if (count == 0) break; if (count < 0) { if (!(result == resultbuf || result == NULL)) free (result); if (buf_malloced != NULL) free (buf_malloced); CLEANUP (); errno = EILSEQ; return NULL; } arg_end += count; characters++; } } else if (has_width) { /* Use the entire string, and count the number of characters. */ arg_end = arg; characters = 0; for (;;) { int count = u16_strmblen (arg_end); if (count == 0) break; if (count < 0) { if (!(result == resultbuf || result == NULL)) free (result); if (buf_malloced != NULL) free (buf_malloced); CLEANUP (); errno = EILSEQ; return NULL; } arg_end += count; characters++; } } else { /* Use the entire string. */ arg_end = arg + u16_strlen (arg); /* The number of characters doesn't matter. */ characters = 0; } if (has_width && width > characters && !(dp->flags & FLAG_LEFT)) { size_t n = width - characters; ENSURE_ALLOCATION (xsum (length, n)); DCHAR_SET (result + length, ' ', n); length += n; } # if DCHAR_IS_UINT16_T { size_t n = arg_end - arg; ENSURE_ALLOCATION (xsum (length, n)); DCHAR_CPY (result + length, arg, n); length += n; } # else { /* Convert. */ DCHAR_T *converted = result + length; size_t converted_len = allocated - length; # if DCHAR_IS_TCHAR /* Convert from UTF-16 to locale encoding. */ converted = u16_conv_to_encoding (locale_charset (), iconveh_question_mark, arg, arg_end - arg, NULL, converted, &converted_len); # else /* Convert from UTF-16 to UTF-8/UTF-32. */ converted = U16_TO_DCHAR (arg, arg_end - arg, converted, &converted_len); # endif if (converted == NULL) { int saved_errno = errno; if (!(result == resultbuf || result == NULL)) free (result); if (buf_malloced != NULL) free (buf_malloced); CLEANUP (); errno = saved_errno; return NULL; } if (converted != result + length) { ENSURE_ALLOCATION (xsum (length, converted_len)); DCHAR_CPY (result + length, converted, converted_len); free (converted); } length += converted_len; } # endif if (has_width && width > characters && (dp->flags & FLAG_LEFT)) { size_t n = width - characters; ENSURE_ALLOCATION (xsum (length, n)); DCHAR_SET (result + length, ' ', n); length += n; } } break; case TYPE_U32_STRING: { const uint32_t *arg = a.arg[dp->arg_index].a.a_u32_string; const uint32_t *arg_end; size_t characters; if (has_precision) { /* Use only PRECISION characters, from the left. */ arg_end = arg; characters = 0; for (; precision > 0; precision--) { int count = u32_strmblen (arg_end); if (count == 0) break; if (count < 0) { if (!(result == resultbuf || result == NULL)) free (result); if (buf_malloced != NULL) free (buf_malloced); CLEANUP (); errno = EILSEQ; return NULL; } arg_end += count; characters++; } } else if (has_width) { /* Use the entire string, and count the number of characters. */ arg_end = arg; characters = 0; for (;;) { int count = u32_strmblen (arg_end); if (count == 0) break; if (count < 0) { if (!(result == resultbuf || result == NULL)) free (result); if (buf_malloced != NULL) free (buf_malloced); CLEANUP (); errno = EILSEQ; return NULL; } arg_end += count; characters++; } } else { /* Use the entire string. */ arg_end = arg + u32_strlen (arg); /* The number of characters doesn't matter. */ characters = 0; } if (has_width && width > characters && !(dp->flags & FLAG_LEFT)) { size_t n = width - characters; ENSURE_ALLOCATION (xsum (length, n)); DCHAR_SET (result + length, ' ', n); length += n; } # if DCHAR_IS_UINT32_T { size_t n = arg_end - arg; ENSURE_ALLOCATION (xsum (length, n)); DCHAR_CPY (result + length, arg, n); length += n; } # else { /* Convert. */ DCHAR_T *converted = result + length; size_t converted_len = allocated - length; # if DCHAR_IS_TCHAR /* Convert from UTF-32 to locale encoding. */ converted = u32_conv_to_encoding (locale_charset (), iconveh_question_mark, arg, arg_end - arg, NULL, converted, &converted_len); # else /* Convert from UTF-32 to UTF-8/UTF-16. */ converted = U32_TO_DCHAR (arg, arg_end - arg, converted, &converted_len); # endif if (converted == NULL) { int saved_errno = errno; if (!(result == resultbuf || result == NULL)) free (result); if (buf_malloced != NULL) free (buf_malloced); CLEANUP (); errno = saved_errno; return NULL; } if (converted != result + length) { ENSURE_ALLOCATION (xsum (length, converted_len)); DCHAR_CPY (result + length, converted, converted_len); free (converted); } length += converted_len; } # endif if (has_width && width > characters && (dp->flags & FLAG_LEFT)) { size_t n = width - characters; ENSURE_ALLOCATION (xsum (length, n)); DCHAR_SET (result + length, ' ', n); length += n; } } break; default: abort (); } } #endif #if (!USE_SNPRINTF || !HAVE_SNPRINTF_RETVAL_C99 || (NEED_PRINTF_DIRECTIVE_LS && !defined IN_LIBINTL)) && HAVE_WCHAR_T else if (dp->conversion == 's' # if WIDE_CHAR_VERSION && a.arg[dp->arg_index].type != TYPE_WIDE_STRING # else && a.arg[dp->arg_index].type == TYPE_WIDE_STRING # endif ) { /* The normal handling of the 's' directive below requires allocating a temporary buffer. The determination of its length (tmp_length), in the case when a precision is specified, below requires a conversion between a char[] string and a wchar_t[] wide string. It could be done, but we have no guarantee that the implementation of sprintf will use the exactly same algorithm. Without this guarantee, it is possible to have buffer overrun bugs. In order to avoid such bugs, we implement the entire processing of the 's' directive ourselves. */ int flags = dp->flags; int has_width; size_t width; int has_precision; size_t precision; has_width = 0; width = 0; if (dp->width_start != dp->width_end) { if (dp->width_arg_index != ARG_NONE) { int arg; if (!(a.arg[dp->width_arg_index].type == TYPE_INT)) abort (); arg = a.arg[dp->width_arg_index].a.a_int; if (arg < 0) { /* "A negative field width is taken as a '-' flag followed by a positive field width." */ flags |= FLAG_LEFT; width = (unsigned int) (-arg); } else width = arg; } else { const FCHAR_T *digitp = dp->width_start; do width = xsum (xtimes (width, 10), *digitp++ - '0'); while (digitp != dp->width_end); } has_width = 1; } has_precision = 0; precision = 6; if (dp->precision_start != dp->precision_end) { if (dp->precision_arg_index != ARG_NONE) { int arg; if (!(a.arg[dp->precision_arg_index].type == TYPE_INT)) abort (); arg = a.arg[dp->precision_arg_index].a.a_int; /* "A negative precision is taken as if the precision were omitted." */ if (arg >= 0) { precision = arg; has_precision = 1; } } else { const FCHAR_T *digitp = dp->precision_start + 1; precision = 0; while (digitp != dp->precision_end) precision = xsum (xtimes (precision, 10), *digitp++ - '0'); has_precision = 1; } } # if WIDE_CHAR_VERSION /* %s in vasnwprintf. See the specification of fwprintf. */ { const char *arg = a.arg[dp->arg_index].a.a_string; const char *arg_end; size_t characters; if (has_precision) { /* Use only as many bytes as needed to produce PRECISION wide characters, from the left. */ # if HAVE_MBRTOWC mbstate_t state; memset (&state, '\0', sizeof (mbstate_t)); # endif arg_end = arg; characters = 0; for (; precision > 0; precision--) { int count; # if HAVE_MBRTOWC count = mbrlen (arg_end, MB_CUR_MAX, &state); # else count = mblen (arg_end, MB_CUR_MAX); # endif if (count == 0) /* Found the terminating NUL. */ break; if (count < 0) { /* Invalid or incomplete multibyte character. */ if (!(result == resultbuf || result == NULL)) free (result); if (buf_malloced != NULL) free (buf_malloced); CLEANUP (); errno = EILSEQ; return NULL; } arg_end += count; characters++; } } else if (has_width) { /* Use the entire string, and count the number of wide characters. */ # if HAVE_MBRTOWC mbstate_t state; memset (&state, '\0', sizeof (mbstate_t)); # endif arg_end = arg; characters = 0; for (;;) { int count; # if HAVE_MBRTOWC count = mbrlen (arg_end, MB_CUR_MAX, &state); # else count = mblen (arg_end, MB_CUR_MAX); # endif if (count == 0) /* Found the terminating NUL. */ break; if (count < 0) { /* Invalid or incomplete multibyte character. */ if (!(result == resultbuf || result == NULL)) free (result); if (buf_malloced != NULL) free (buf_malloced); CLEANUP (); errno = EILSEQ; return NULL; } arg_end += count; characters++; } } else { /* Use the entire string. */ arg_end = arg + strlen (arg); /* The number of characters doesn't matter. */ characters = 0; } if (has_width && width > characters && !(dp->flags & FLAG_LEFT)) { size_t n = width - characters; ENSURE_ALLOCATION (xsum (length, n)); DCHAR_SET (result + length, ' ', n); length += n; } if (has_precision || has_width) { /* We know the number of wide characters in advance. */ size_t remaining; # if HAVE_MBRTOWC mbstate_t state; memset (&state, '\0', sizeof (mbstate_t)); # endif ENSURE_ALLOCATION (xsum (length, characters)); for (remaining = characters; remaining > 0; remaining--) { wchar_t wc; int count; # if HAVE_MBRTOWC count = mbrtowc (&wc, arg, arg_end - arg, &state); # else count = mbtowc (&wc, arg, arg_end - arg); # endif if (count <= 0) /* mbrtowc not consistent with mbrlen, or mbtowc not consistent with mblen. */ abort (); result[length++] = wc; arg += count; } if (!(arg == arg_end)) abort (); } else { # if HAVE_MBRTOWC mbstate_t state; memset (&state, '\0', sizeof (mbstate_t)); # endif while (arg < arg_end) { wchar_t wc; int count; # if HAVE_MBRTOWC count = mbrtowc (&wc, arg, arg_end - arg, &state); # else count = mbtowc (&wc, arg, arg_end - arg); # endif if (count <= 0) /* mbrtowc not consistent with mbrlen, or mbtowc not consistent with mblen. */ abort (); ENSURE_ALLOCATION (xsum (length, 1)); result[length++] = wc; arg += count; } } if (has_width && width > characters && (dp->flags & FLAG_LEFT)) { size_t n = width - characters; ENSURE_ALLOCATION (xsum (length, n)); DCHAR_SET (result + length, ' ', n); length += n; } } # else /* %ls in vasnprintf. See the specification of fprintf. */ { const wchar_t *arg = a.arg[dp->arg_index].a.a_wide_string; const wchar_t *arg_end; size_t characters; # if !DCHAR_IS_TCHAR /* This code assumes that TCHAR_T is 'char'. */ verify (sizeof (TCHAR_T) == 1); TCHAR_T *tmpsrc; DCHAR_T *tmpdst; size_t tmpdst_len; # endif size_t w; if (has_precision) { /* Use only as many wide characters as needed to produce at most PRECISION bytes, from the left. */ # if HAVE_WCRTOMB && !defined GNULIB_defined_mbstate_t mbstate_t state; memset (&state, '\0', sizeof (mbstate_t)); # endif arg_end = arg; characters = 0; while (precision > 0) { char cbuf[64]; /* Assume MB_CUR_MAX <= 64. */ int count; if (*arg_end == 0) /* Found the terminating null wide character. */ break; # if HAVE_WCRTOMB && !defined GNULIB_defined_mbstate_t count = wcrtomb (cbuf, *arg_end, &state); # else count = wctomb (cbuf, *arg_end); # endif if (count < 0) { /* Cannot convert. */ if (!(result == resultbuf || result == NULL)) free (result); if (buf_malloced != NULL) free (buf_malloced); CLEANUP (); errno = EILSEQ; return NULL; } if (precision < count) break; arg_end++; characters += count; precision -= count; } } # if DCHAR_IS_TCHAR else if (has_width) # else else # endif { /* Use the entire string, and count the number of bytes. */ # if HAVE_WCRTOMB && !defined GNULIB_defined_mbstate_t mbstate_t state; memset (&state, '\0', sizeof (mbstate_t)); # endif arg_end = arg; characters = 0; for (;;) { char cbuf[64]; /* Assume MB_CUR_MAX <= 64. */ int count; if (*arg_end == 0) /* Found the terminating null wide character. */ break; # if HAVE_WCRTOMB && !defined GNULIB_defined_mbstate_t count = wcrtomb (cbuf, *arg_end, &state); # else count = wctomb (cbuf, *arg_end); # endif if (count < 0) { /* Cannot convert. */ if (!(result == resultbuf || result == NULL)) free (result); if (buf_malloced != NULL) free (buf_malloced); CLEANUP (); errno = EILSEQ; return NULL; } arg_end++; characters += count; } } # if DCHAR_IS_TCHAR else { /* Use the entire string. */ arg_end = arg + local_wcslen (arg); /* The number of bytes doesn't matter. */ characters = 0; } # endif # if !DCHAR_IS_TCHAR /* Convert the string into a piece of temporary memory. */ tmpsrc = (TCHAR_T *) malloc (characters * sizeof (TCHAR_T)); if (tmpsrc == NULL) goto out_of_memory; { TCHAR_T *tmpptr = tmpsrc; size_t remaining; # if HAVE_WCRTOMB && !defined GNULIB_defined_mbstate_t mbstate_t state; memset (&state, '\0', sizeof (mbstate_t)); # endif for (remaining = characters; remaining > 0; ) { char cbuf[64]; /* Assume MB_CUR_MAX <= 64. */ int count; if (*arg == 0) abort (); # if HAVE_WCRTOMB && !defined GNULIB_defined_mbstate_t count = wcrtomb (cbuf, *arg, &state); # else count = wctomb (cbuf, *arg); # endif if (count <= 0) /* Inconsistency. */ abort (); memcpy (tmpptr, cbuf, count); tmpptr += count; arg++; remaining -= count; } if (!(arg == arg_end)) abort (); } /* Convert from TCHAR_T[] to DCHAR_T[]. */ tmpdst = DCHAR_CONV_FROM_ENCODING (locale_charset (), iconveh_question_mark, tmpsrc, characters, NULL, NULL, &tmpdst_len); if (tmpdst == NULL) { int saved_errno = errno; free (tmpsrc); if (!(result == resultbuf || result == NULL)) free (result); if (buf_malloced != NULL) free (buf_malloced); CLEANUP (); errno = saved_errno; return NULL; } free (tmpsrc); # endif if (has_width) { # if ENABLE_UNISTDIO /* Outside POSIX, it's preferable to compare the width against the number of _characters_ of the converted value. */ w = DCHAR_MBSNLEN (result + length, characters); # else /* The width is compared against the number of _bytes_ of the converted value, says POSIX. */ w = characters; # endif } else /* w doesn't matter. */ w = 0; if (has_width && width > w && !(dp->flags & FLAG_LEFT)) { size_t n = width - w; ENSURE_ALLOCATION (xsum (length, n)); DCHAR_SET (result + length, ' ', n); length += n; } # if DCHAR_IS_TCHAR if (has_precision || has_width) { /* We know the number of bytes in advance. */ size_t remaining; # if HAVE_WCRTOMB && !defined GNULIB_defined_mbstate_t mbstate_t state; memset (&state, '\0', sizeof (mbstate_t)); # endif ENSURE_ALLOCATION (xsum (length, characters)); for (remaining = characters; remaining > 0; ) { char cbuf[64]; /* Assume MB_CUR_MAX <= 64. */ int count; if (*arg == 0) abort (); # if HAVE_WCRTOMB && !defined GNULIB_defined_mbstate_t count = wcrtomb (cbuf, *arg, &state); # else count = wctomb (cbuf, *arg); # endif if (count <= 0) /* Inconsistency. */ abort (); memcpy (result + length, cbuf, count); length += count; arg++; remaining -= count; } if (!(arg == arg_end)) abort (); } else { # if HAVE_WCRTOMB && !defined GNULIB_defined_mbstate_t mbstate_t state; memset (&state, '\0', sizeof (mbstate_t)); # endif while (arg < arg_end) { char cbuf[64]; /* Assume MB_CUR_MAX <= 64. */ int count; if (*arg == 0) abort (); # if HAVE_WCRTOMB && !defined GNULIB_defined_mbstate_t count = wcrtomb (cbuf, *arg, &state); # else count = wctomb (cbuf, *arg); # endif if (count <= 0) { /* Cannot convert. */ if (!(result == resultbuf || result == NULL)) free (result); if (buf_malloced != NULL) free (buf_malloced); CLEANUP (); errno = EILSEQ; return NULL; } ENSURE_ALLOCATION (xsum (length, count)); memcpy (result + length, cbuf, count); length += count; arg++; } } # else ENSURE_ALLOCATION (xsum (length, tmpdst_len)); DCHAR_CPY (result + length, tmpdst, tmpdst_len); free (tmpdst); length += tmpdst_len; # endif if (has_width && width > w && (dp->flags & FLAG_LEFT)) { size_t n = width - w; ENSURE_ALLOCATION (xsum (length, n)); DCHAR_SET (result + length, ' ', n); length += n; } } # endif } #endif #if (NEED_PRINTF_DIRECTIVE_A || NEED_PRINTF_LONG_DOUBLE || NEED_PRINTF_DOUBLE) && !defined IN_LIBINTL else if ((dp->conversion == 'a' || dp->conversion == 'A') # if !(NEED_PRINTF_DIRECTIVE_A || (NEED_PRINTF_LONG_DOUBLE && NEED_PRINTF_DOUBLE)) && (0 # if NEED_PRINTF_DOUBLE || a.arg[dp->arg_index].type == TYPE_DOUBLE # endif # if NEED_PRINTF_LONG_DOUBLE || a.arg[dp->arg_index].type == TYPE_LONGDOUBLE # endif ) # endif ) { arg_type type = a.arg[dp->arg_index].type; int flags = dp->flags; int has_width; size_t width; int has_precision; size_t precision; size_t tmp_length; DCHAR_T tmpbuf[700]; DCHAR_T *tmp; DCHAR_T *pad_ptr; DCHAR_T *p; has_width = 0; width = 0; if (dp->width_start != dp->width_end) { if (dp->width_arg_index != ARG_NONE) { int arg; if (!(a.arg[dp->width_arg_index].type == TYPE_INT)) abort (); arg = a.arg[dp->width_arg_index].a.a_int; if (arg < 0) { /* "A negative field width is taken as a '-' flag followed by a positive field width." */ flags |= FLAG_LEFT; width = (unsigned int) (-arg); } else width = arg; } else { const FCHAR_T *digitp = dp->width_start; do width = xsum (xtimes (width, 10), *digitp++ - '0'); while (digitp != dp->width_end); } has_width = 1; } has_precision = 0; precision = 0; if (dp->precision_start != dp->precision_end) { if (dp->precision_arg_index != ARG_NONE) { int arg; if (!(a.arg[dp->precision_arg_index].type == TYPE_INT)) abort (); arg = a.arg[dp->precision_arg_index].a.a_int; /* "A negative precision is taken as if the precision were omitted." */ if (arg >= 0) { precision = arg; has_precision = 1; } } else { const FCHAR_T *digitp = dp->precision_start + 1; precision = 0; while (digitp != dp->precision_end) precision = xsum (xtimes (precision, 10), *digitp++ - '0'); has_precision = 1; } } /* Allocate a temporary buffer of sufficient size. */ if (type == TYPE_LONGDOUBLE) tmp_length = (unsigned int) ((LDBL_DIG + 1) * 0.831 /* decimal -> hexadecimal */ ) + 1; /* turn floor into ceil */ else tmp_length = (unsigned int) ((DBL_DIG + 1) * 0.831 /* decimal -> hexadecimal */ ) + 1; /* turn floor into ceil */ if (tmp_length < precision) tmp_length = precision; /* Account for sign, decimal point etc. */ tmp_length = xsum (tmp_length, 12); if (tmp_length < width) tmp_length = width; tmp_length = xsum (tmp_length, 1); /* account for trailing NUL */ if (tmp_length <= sizeof (tmpbuf) / sizeof (DCHAR_T)) tmp = tmpbuf; else { size_t tmp_memsize = xtimes (tmp_length, sizeof (DCHAR_T)); if (size_overflow_p (tmp_memsize)) /* Overflow, would lead to out of memory. */ goto out_of_memory; tmp = (DCHAR_T *) malloc (tmp_memsize); if (tmp == NULL) /* Out of memory. */ goto out_of_memory; } pad_ptr = NULL; p = tmp; if (type == TYPE_LONGDOUBLE) { # if NEED_PRINTF_DIRECTIVE_A || NEED_PRINTF_LONG_DOUBLE long double arg = a.arg[dp->arg_index].a.a_longdouble; if (isnanl (arg)) { if (dp->conversion == 'A') { *p++ = 'N'; *p++ = 'A'; *p++ = 'N'; } else { *p++ = 'n'; *p++ = 'a'; *p++ = 'n'; } } else { int sign = 0; DECL_LONG_DOUBLE_ROUNDING BEGIN_LONG_DOUBLE_ROUNDING (); if (signbit (arg)) /* arg < 0.0L or negative zero */ { sign = -1; arg = -arg; } if (sign < 0) *p++ = '-'; else if (flags & FLAG_SHOWSIGN) *p++ = '+'; else if (flags & FLAG_SPACE) *p++ = ' '; if (arg > 0.0L && arg + arg == arg) { if (dp->conversion == 'A') { *p++ = 'I'; *p++ = 'N'; *p++ = 'F'; } else { *p++ = 'i'; *p++ = 'n'; *p++ = 'f'; } } else { int exponent; long double mantissa; if (arg > 0.0L) mantissa = printf_frexpl (arg, &exponent); else { exponent = 0; mantissa = 0.0L; } if (has_precision && precision < (unsigned int) ((LDBL_DIG + 1) * 0.831) + 1) { /* Round the mantissa. */ long double tail = mantissa; size_t q; for (q = precision; ; q--) { int digit = (int) tail; tail -= digit; if (q == 0) { if (digit & 1 ? tail >= 0.5L : tail > 0.5L) tail = 1 - tail; else tail = - tail; break; } tail *= 16.0L; } if (tail != 0.0L) for (q = precision; q > 0; q--) tail *= 0.0625L; mantissa += tail; } *p++ = '0'; *p++ = dp->conversion - 'A' + 'X'; pad_ptr = p; { int digit; digit = (int) mantissa; mantissa -= digit; *p++ = '0' + digit; if ((flags & FLAG_ALT) || mantissa > 0.0L || precision > 0) { *p++ = decimal_point_char (); /* This loop terminates because we assume that FLT_RADIX is a power of 2. */ while (mantissa > 0.0L) { mantissa *= 16.0L; digit = (int) mantissa; mantissa -= digit; *p++ = digit + (digit < 10 ? '0' : dp->conversion - 10); if (precision > 0) precision--; } while (precision > 0) { *p++ = '0'; precision--; } } } *p++ = dp->conversion - 'A' + 'P'; # if WIDE_CHAR_VERSION { static const wchar_t decimal_format[] = { '%', '+', 'd', '\0' }; SNPRINTF (p, 6 + 1, decimal_format, exponent); } while (*p != '\0') p++; # else if (sizeof (DCHAR_T) == 1) { sprintf ((char *) p, "%+d", exponent); while (*p != '\0') p++; } else { char expbuf[6 + 1]; const char *ep; sprintf (expbuf, "%+d", exponent); for (ep = expbuf; (*p = *ep) != '\0'; ep++) p++; } # endif } END_LONG_DOUBLE_ROUNDING (); } # else abort (); # endif } else { # if NEED_PRINTF_DIRECTIVE_A || NEED_PRINTF_DOUBLE double arg = a.arg[dp->arg_index].a.a_double; if (isnand (arg)) { if (dp->conversion == 'A') { *p++ = 'N'; *p++ = 'A'; *p++ = 'N'; } else { *p++ = 'n'; *p++ = 'a'; *p++ = 'n'; } } else { int sign = 0; if (signbit (arg)) /* arg < 0.0 or negative zero */ { sign = -1; arg = -arg; } if (sign < 0) *p++ = '-'; else if (flags & FLAG_SHOWSIGN) *p++ = '+'; else if (flags & FLAG_SPACE) *p++ = ' '; if (arg > 0.0 && arg + arg == arg) { if (dp->conversion == 'A') { *p++ = 'I'; *p++ = 'N'; *p++ = 'F'; } else { *p++ = 'i'; *p++ = 'n'; *p++ = 'f'; } } else { int exponent; double mantissa; if (arg > 0.0) mantissa = printf_frexp (arg, &exponent); else { exponent = 0; mantissa = 0.0; } if (has_precision && precision < (unsigned int) ((DBL_DIG + 1) * 0.831) + 1) { /* Round the mantissa. */ double tail = mantissa; size_t q; for (q = precision; ; q--) { int digit = (int) tail; tail -= digit; if (q == 0) { if (digit & 1 ? tail >= 0.5 : tail > 0.5) tail = 1 - tail; else tail = - tail; break; } tail *= 16.0; } if (tail != 0.0) for (q = precision; q > 0; q--) tail *= 0.0625; mantissa += tail; } *p++ = '0'; *p++ = dp->conversion - 'A' + 'X'; pad_ptr = p; { int digit; digit = (int) mantissa; mantissa -= digit; *p++ = '0' + digit; if ((flags & FLAG_ALT) || mantissa > 0.0 || precision > 0) { *p++ = decimal_point_char (); /* This loop terminates because we assume that FLT_RADIX is a power of 2. */ while (mantissa > 0.0) { mantissa *= 16.0; digit = (int) mantissa; mantissa -= digit; *p++ = digit + (digit < 10 ? '0' : dp->conversion - 10); if (precision > 0) precision--; } while (precision > 0) { *p++ = '0'; precision--; } } } *p++ = dp->conversion - 'A' + 'P'; # if WIDE_CHAR_VERSION { static const wchar_t decimal_format[] = { '%', '+', 'd', '\0' }; SNPRINTF (p, 6 + 1, decimal_format, exponent); } while (*p != '\0') p++; # else if (sizeof (DCHAR_T) == 1) { sprintf ((char *) p, "%+d", exponent); while (*p != '\0') p++; } else { char expbuf[6 + 1]; const char *ep; sprintf (expbuf, "%+d", exponent); for (ep = expbuf; (*p = *ep) != '\0'; ep++) p++; } # endif } } # else abort (); # endif } /* The generated string now extends from tmp to p, with the zero padding insertion point being at pad_ptr. */ if (has_width && p - tmp < width) { size_t pad = width - (p - tmp); DCHAR_T *end = p + pad; if (flags & FLAG_LEFT) { /* Pad with spaces on the right. */ for (; pad > 0; pad--) *p++ = ' '; } else if ((flags & FLAG_ZERO) && pad_ptr != NULL) { /* Pad with zeroes. */ DCHAR_T *q = end; while (p > pad_ptr) *--q = *--p; for (; pad > 0; pad--) *p++ = '0'; } else { /* Pad with spaces on the left. */ DCHAR_T *q = end; while (p > tmp) *--q = *--p; for (; pad > 0; pad--) *p++ = ' '; } p = end; } { size_t count = p - tmp; if (count >= tmp_length) /* tmp_length was incorrectly calculated - fix the code above! */ abort (); /* Make room for the result. */ if (count >= allocated - length) { size_t n = xsum (length, count); ENSURE_ALLOCATION (n); } /* Append the result. */ memcpy (result + length, tmp, count * sizeof (DCHAR_T)); if (tmp != tmpbuf) free (tmp); length += count; } } #endif #if (NEED_PRINTF_INFINITE_DOUBLE || NEED_PRINTF_DOUBLE || NEED_PRINTF_INFINITE_LONG_DOUBLE || NEED_PRINTF_LONG_DOUBLE) && !defined IN_LIBINTL else if ((dp->conversion == 'f' || dp->conversion == 'F' || dp->conversion == 'e' || dp->conversion == 'E' || dp->conversion == 'g' || dp->conversion == 'G' || dp->conversion == 'a' || dp->conversion == 'A') && (0 # if NEED_PRINTF_DOUBLE || a.arg[dp->arg_index].type == TYPE_DOUBLE # elif NEED_PRINTF_INFINITE_DOUBLE || (a.arg[dp->arg_index].type == TYPE_DOUBLE /* The systems (mingw) which produce wrong output for Inf, -Inf, and NaN also do so for -0.0. Therefore we treat this case here as well. */ && is_infinite_or_zero (a.arg[dp->arg_index].a.a_double)) # endif # if NEED_PRINTF_LONG_DOUBLE || a.arg[dp->arg_index].type == TYPE_LONGDOUBLE # elif NEED_PRINTF_INFINITE_LONG_DOUBLE || (a.arg[dp->arg_index].type == TYPE_LONGDOUBLE /* Some systems produce wrong output for Inf, -Inf, and NaN. Some systems in this category (IRIX 5.3) also do so for -0.0. Therefore we treat this case here as well. */ && is_infinite_or_zerol (a.arg[dp->arg_index].a.a_longdouble)) # endif )) { # if (NEED_PRINTF_DOUBLE || NEED_PRINTF_INFINITE_DOUBLE) && (NEED_PRINTF_LONG_DOUBLE || NEED_PRINTF_INFINITE_LONG_DOUBLE) arg_type type = a.arg[dp->arg_index].type; # endif int flags = dp->flags; int has_width; size_t width; int has_precision; size_t precision; size_t tmp_length; DCHAR_T tmpbuf[700]; DCHAR_T *tmp; DCHAR_T *pad_ptr; DCHAR_T *p; has_width = 0; width = 0; if (dp->width_start != dp->width_end) { if (dp->width_arg_index != ARG_NONE) { int arg; if (!(a.arg[dp->width_arg_index].type == TYPE_INT)) abort (); arg = a.arg[dp->width_arg_index].a.a_int; if (arg < 0) { /* "A negative field width is taken as a '-' flag followed by a positive field width." */ flags |= FLAG_LEFT; width = (unsigned int) (-arg); } else width = arg; } else { const FCHAR_T *digitp = dp->width_start; do width = xsum (xtimes (width, 10), *digitp++ - '0'); while (digitp != dp->width_end); } has_width = 1; } has_precision = 0; precision = 0; if (dp->precision_start != dp->precision_end) { if (dp->precision_arg_index != ARG_NONE) { int arg; if (!(a.arg[dp->precision_arg_index].type == TYPE_INT)) abort (); arg = a.arg[dp->precision_arg_index].a.a_int; /* "A negative precision is taken as if the precision were omitted." */ if (arg >= 0) { precision = arg; has_precision = 1; } } else { const FCHAR_T *digitp = dp->precision_start + 1; precision = 0; while (digitp != dp->precision_end) precision = xsum (xtimes (precision, 10), *digitp++ - '0'); has_precision = 1; } } /* POSIX specifies the default precision to be 6 for %f, %F, %e, %E, but not for %g, %G. Implementations appear to use the same default precision also for %g, %G. But for %a, %A, the default precision is 0. */ if (!has_precision) if (!(dp->conversion == 'a' || dp->conversion == 'A')) precision = 6; /* Allocate a temporary buffer of sufficient size. */ # if NEED_PRINTF_DOUBLE && NEED_PRINTF_LONG_DOUBLE tmp_length = (type == TYPE_LONGDOUBLE ? LDBL_DIG + 1 : DBL_DIG + 1); # elif NEED_PRINTF_INFINITE_DOUBLE && NEED_PRINTF_LONG_DOUBLE tmp_length = (type == TYPE_LONGDOUBLE ? LDBL_DIG + 1 : 0); # elif NEED_PRINTF_LONG_DOUBLE tmp_length = LDBL_DIG + 1; # elif NEED_PRINTF_DOUBLE tmp_length = DBL_DIG + 1; # else tmp_length = 0; # endif if (tmp_length < precision) tmp_length = precision; # if NEED_PRINTF_LONG_DOUBLE # if NEED_PRINTF_DOUBLE || NEED_PRINTF_INFINITE_DOUBLE if (type == TYPE_LONGDOUBLE) # endif if (dp->conversion == 'f' || dp->conversion == 'F') { long double arg = a.arg[dp->arg_index].a.a_longdouble; if (!(isnanl (arg) || arg + arg == arg)) { /* arg is finite and nonzero. */ int exponent = floorlog10l (arg < 0 ? -arg : arg); if (exponent >= 0 && tmp_length < exponent + precision) tmp_length = exponent + precision; } } # endif # if NEED_PRINTF_DOUBLE # if NEED_PRINTF_LONG_DOUBLE || NEED_PRINTF_INFINITE_LONG_DOUBLE if (type == TYPE_DOUBLE) # endif if (dp->conversion == 'f' || dp->conversion == 'F') { double arg = a.arg[dp->arg_index].a.a_double; if (!(isnand (arg) || arg + arg == arg)) { /* arg is finite and nonzero. */ int exponent = floorlog10 (arg < 0 ? -arg : arg); if (exponent >= 0 && tmp_length < exponent + precision) tmp_length = exponent + precision; } } # endif /* Account for sign, decimal point etc. */ tmp_length = xsum (tmp_length, 12); if (tmp_length < width) tmp_length = width; tmp_length = xsum (tmp_length, 1); /* account for trailing NUL */ if (tmp_length <= sizeof (tmpbuf) / sizeof (DCHAR_T)) tmp = tmpbuf; else { size_t tmp_memsize = xtimes (tmp_length, sizeof (DCHAR_T)); if (size_overflow_p (tmp_memsize)) /* Overflow, would lead to out of memory. */ goto out_of_memory; tmp = (DCHAR_T *) malloc (tmp_memsize); if (tmp == NULL) /* Out of memory. */ goto out_of_memory; } pad_ptr = NULL; p = tmp; # if NEED_PRINTF_LONG_DOUBLE || NEED_PRINTF_INFINITE_LONG_DOUBLE # if NEED_PRINTF_DOUBLE || NEED_PRINTF_INFINITE_DOUBLE if (type == TYPE_LONGDOUBLE) # endif { long double arg = a.arg[dp->arg_index].a.a_longdouble; if (isnanl (arg)) { if (dp->conversion >= 'A' && dp->conversion <= 'Z') { *p++ = 'N'; *p++ = 'A'; *p++ = 'N'; } else { *p++ = 'n'; *p++ = 'a'; *p++ = 'n'; } } else { int sign = 0; DECL_LONG_DOUBLE_ROUNDING BEGIN_LONG_DOUBLE_ROUNDING (); if (signbit (arg)) /* arg < 0.0L or negative zero */ { sign = -1; arg = -arg; } if (sign < 0) *p++ = '-'; else if (flags & FLAG_SHOWSIGN) *p++ = '+'; else if (flags & FLAG_SPACE) *p++ = ' '; if (arg > 0.0L && arg + arg == arg) { if (dp->conversion >= 'A' && dp->conversion <= 'Z') { *p++ = 'I'; *p++ = 'N'; *p++ = 'F'; } else { *p++ = 'i'; *p++ = 'n'; *p++ = 'f'; } } else { # if NEED_PRINTF_LONG_DOUBLE pad_ptr = p; if (dp->conversion == 'f' || dp->conversion == 'F') { char *digits; size_t ndigits; digits = scale10_round_decimal_long_double (arg, precision); if (digits == NULL) { END_LONG_DOUBLE_ROUNDING (); goto out_of_memory; } ndigits = strlen (digits); if (ndigits > precision) do { --ndigits; *p++ = digits[ndigits]; } while (ndigits > precision); else *p++ = '0'; /* Here ndigits <= precision. */ if ((flags & FLAG_ALT) || precision > 0) { *p++ = decimal_point_char (); for (; precision > ndigits; precision--) *p++ = '0'; while (ndigits > 0) { --ndigits; *p++ = digits[ndigits]; } } free (digits); } else if (dp->conversion == 'e' || dp->conversion == 'E') { int exponent; if (arg == 0.0L) { exponent = 0; *p++ = '0'; if ((flags & FLAG_ALT) || precision > 0) { *p++ = decimal_point_char (); for (; precision > 0; precision--) *p++ = '0'; } } else { /* arg > 0.0L. */ int adjusted; char *digits; size_t ndigits; exponent = floorlog10l (arg); adjusted = 0; for (;;) { digits = scale10_round_decimal_long_double (arg, (int)precision - exponent); if (digits == NULL) { END_LONG_DOUBLE_ROUNDING (); goto out_of_memory; } ndigits = strlen (digits); if (ndigits == precision + 1) break; if (ndigits < precision || ndigits > precision + 2) /* The exponent was not guessed precisely enough. */ abort (); if (adjusted) /* None of two values of exponent is the right one. Prevent an endless loop. */ abort (); free (digits); if (ndigits == precision) exponent -= 1; else exponent += 1; adjusted = 1; } /* Here ndigits = precision+1. */ if (is_borderline (digits, precision)) { /* Maybe the exponent guess was too high and a smaller exponent can be reached by turning a 10...0 into 9...9x. */ char *digits2 = scale10_round_decimal_long_double (arg, (int)precision - exponent + 1); if (digits2 == NULL) { free (digits); END_LONG_DOUBLE_ROUNDING (); goto out_of_memory; } if (strlen (digits2) == precision + 1) { free (digits); digits = digits2; exponent -= 1; } else free (digits2); } /* Here ndigits = precision+1. */ *p++ = digits[--ndigits]; if ((flags & FLAG_ALT) || precision > 0) { *p++ = decimal_point_char (); while (ndigits > 0) { --ndigits; *p++ = digits[ndigits]; } } free (digits); } *p++ = dp->conversion; /* 'e' or 'E' */ # if WIDE_CHAR_VERSION { static const wchar_t decimal_format[] = { '%', '+', '.', '2', 'd', '\0' }; SNPRINTF (p, 6 + 1, decimal_format, exponent); } while (*p != '\0') p++; # else if (sizeof (DCHAR_T) == 1) { sprintf ((char *) p, "%+.2d", exponent); while (*p != '\0') p++; } else { char expbuf[6 + 1]; const char *ep; sprintf (expbuf, "%+.2d", exponent); for (ep = expbuf; (*p = *ep) != '\0'; ep++) p++; } # endif } else if (dp->conversion == 'g' || dp->conversion == 'G') { if (precision == 0) precision = 1; /* precision >= 1. */ if (arg == 0.0L) /* The exponent is 0, >= -4, < precision. Use fixed-point notation. */ { size_t ndigits = precision; /* Number of trailing zeroes that have to be dropped. */ size_t nzeroes = (flags & FLAG_ALT ? 0 : precision - 1); --ndigits; *p++ = '0'; if ((flags & FLAG_ALT) || ndigits > nzeroes) { *p++ = decimal_point_char (); while (ndigits > nzeroes) { --ndigits; *p++ = '0'; } } } else { /* arg > 0.0L. */ int exponent; int adjusted; char *digits; size_t ndigits; size_t nzeroes; exponent = floorlog10l (arg); adjusted = 0; for (;;) { digits = scale10_round_decimal_long_double (arg, (int)(precision - 1) - exponent); if (digits == NULL) { END_LONG_DOUBLE_ROUNDING (); goto out_of_memory; } ndigits = strlen (digits); if (ndigits == precision) break; if (ndigits < precision - 1 || ndigits > precision + 1) /* The exponent was not guessed precisely enough. */ abort (); if (adjusted) /* None of two values of exponent is the right one. Prevent an endless loop. */ abort (); free (digits); if (ndigits < precision) exponent -= 1; else exponent += 1; adjusted = 1; } /* Here ndigits = precision. */ if (is_borderline (digits, precision - 1)) { /* Maybe the exponent guess was too high and a smaller exponent can be reached by turning a 10...0 into 9...9x. */ char *digits2 = scale10_round_decimal_long_double (arg, (int)(precision - 1) - exponent + 1); if (digits2 == NULL) { free (digits); END_LONG_DOUBLE_ROUNDING (); goto out_of_memory; } if (strlen (digits2) == precision) { free (digits); digits = digits2; exponent -= 1; } else free (digits2); } /* Here ndigits = precision. */ /* Determine the number of trailing zeroes that have to be dropped. */ nzeroes = 0; if ((flags & FLAG_ALT) == 0) while (nzeroes < ndigits && digits[nzeroes] == '0') nzeroes++; /* The exponent is now determined. */ if (exponent >= -4 && exponent < (long)precision) { /* Fixed-point notation: max(exponent,0)+1 digits, then the decimal point, then the remaining digits without trailing zeroes. */ if (exponent >= 0) { size_t count = exponent + 1; /* Note: count <= precision = ndigits. */ for (; count > 0; count--) *p++ = digits[--ndigits]; if ((flags & FLAG_ALT) || ndigits > nzeroes) { *p++ = decimal_point_char (); while (ndigits > nzeroes) { --ndigits; *p++ = digits[ndigits]; } } } else { size_t count = -exponent - 1; *p++ = '0'; *p++ = decimal_point_char (); for (; count > 0; count--) *p++ = '0'; while (ndigits > nzeroes) { --ndigits; *p++ = digits[ndigits]; } } } else { /* Exponential notation. */ *p++ = digits[--ndigits]; if ((flags & FLAG_ALT) || ndigits > nzeroes) { *p++ = decimal_point_char (); while (ndigits > nzeroes) { --ndigits; *p++ = digits[ndigits]; } } *p++ = dp->conversion - 'G' + 'E'; /* 'e' or 'E' */ # if WIDE_CHAR_VERSION { static const wchar_t decimal_format[] = { '%', '+', '.', '2', 'd', '\0' }; SNPRINTF (p, 6 + 1, decimal_format, exponent); } while (*p != '\0') p++; # else if (sizeof (DCHAR_T) == 1) { sprintf ((char *) p, "%+.2d", exponent); while (*p != '\0') p++; } else { char expbuf[6 + 1]; const char *ep; sprintf (expbuf, "%+.2d", exponent); for (ep = expbuf; (*p = *ep) != '\0'; ep++) p++; } # endif } free (digits); } } else abort (); # else /* arg is finite. */ if (!(arg == 0.0L)) abort (); pad_ptr = p; if (dp->conversion == 'f' || dp->conversion == 'F') { *p++ = '0'; if ((flags & FLAG_ALT) || precision > 0) { *p++ = decimal_point_char (); for (; precision > 0; precision--) *p++ = '0'; } } else if (dp->conversion == 'e' || dp->conversion == 'E') { *p++ = '0'; if ((flags & FLAG_ALT) || precision > 0) { *p++ = decimal_point_char (); for (; precision > 0; precision--) *p++ = '0'; } *p++ = dp->conversion; /* 'e' or 'E' */ *p++ = '+'; *p++ = '0'; *p++ = '0'; } else if (dp->conversion == 'g' || dp->conversion == 'G') { *p++ = '0'; if (flags & FLAG_ALT) { size_t ndigits = (precision > 0 ? precision - 1 : 0); *p++ = decimal_point_char (); for (; ndigits > 0; --ndigits) *p++ = '0'; } } else if (dp->conversion == 'a' || dp->conversion == 'A') { *p++ = '0'; *p++ = dp->conversion - 'A' + 'X'; pad_ptr = p; *p++ = '0'; if ((flags & FLAG_ALT) || precision > 0) { *p++ = decimal_point_char (); for (; precision > 0; precision--) *p++ = '0'; } *p++ = dp->conversion - 'A' + 'P'; *p++ = '+'; *p++ = '0'; } else abort (); # endif } END_LONG_DOUBLE_ROUNDING (); } } # if NEED_PRINTF_DOUBLE || NEED_PRINTF_INFINITE_DOUBLE else # endif # endif # if NEED_PRINTF_DOUBLE || NEED_PRINTF_INFINITE_DOUBLE { double arg = a.arg[dp->arg_index].a.a_double; if (isnand (arg)) { if (dp->conversion >= 'A' && dp->conversion <= 'Z') { *p++ = 'N'; *p++ = 'A'; *p++ = 'N'; } else { *p++ = 'n'; *p++ = 'a'; *p++ = 'n'; } } else { int sign = 0; if (signbit (arg)) /* arg < 0.0 or negative zero */ { sign = -1; arg = -arg; } if (sign < 0) *p++ = '-'; else if (flags & FLAG_SHOWSIGN) *p++ = '+'; else if (flags & FLAG_SPACE) *p++ = ' '; if (arg > 0.0 && arg + arg == arg) { if (dp->conversion >= 'A' && dp->conversion <= 'Z') { *p++ = 'I'; *p++ = 'N'; *p++ = 'F'; } else { *p++ = 'i'; *p++ = 'n'; *p++ = 'f'; } } else { # if NEED_PRINTF_DOUBLE pad_ptr = p; if (dp->conversion == 'f' || dp->conversion == 'F') { char *digits; size_t ndigits; digits = scale10_round_decimal_double (arg, precision); if (digits == NULL) goto out_of_memory; ndigits = strlen (digits); if (ndigits > precision) do { --ndigits; *p++ = digits[ndigits]; } while (ndigits > precision); else *p++ = '0'; /* Here ndigits <= precision. */ if ((flags & FLAG_ALT) || precision > 0) { *p++ = decimal_point_char (); for (; precision > ndigits; precision--) *p++ = '0'; while (ndigits > 0) { --ndigits; *p++ = digits[ndigits]; } } free (digits); } else if (dp->conversion == 'e' || dp->conversion == 'E') { int exponent; if (arg == 0.0) { exponent = 0; *p++ = '0'; if ((flags & FLAG_ALT) || precision > 0) { *p++ = decimal_point_char (); for (; precision > 0; precision--) *p++ = '0'; } } else { /* arg > 0.0. */ int adjusted; char *digits; size_t ndigits; exponent = floorlog10 (arg); adjusted = 0; for (;;) { digits = scale10_round_decimal_double (arg, (int)precision - exponent); if (digits == NULL) goto out_of_memory; ndigits = strlen (digits); if (ndigits == precision + 1) break; if (ndigits < precision || ndigits > precision + 2) /* The exponent was not guessed precisely enough. */ abort (); if (adjusted) /* None of two values of exponent is the right one. Prevent an endless loop. */ abort (); free (digits); if (ndigits == precision) exponent -= 1; else exponent += 1; adjusted = 1; } /* Here ndigits = precision+1. */ if (is_borderline (digits, precision)) { /* Maybe the exponent guess was too high and a smaller exponent can be reached by turning a 10...0 into 9...9x. */ char *digits2 = scale10_round_decimal_double (arg, (int)precision - exponent + 1); if (digits2 == NULL) { free (digits); goto out_of_memory; } if (strlen (digits2) == precision + 1) { free (digits); digits = digits2; exponent -= 1; } else free (digits2); } /* Here ndigits = precision+1. */ *p++ = digits[--ndigits]; if ((flags & FLAG_ALT) || precision > 0) { *p++ = decimal_point_char (); while (ndigits > 0) { --ndigits; *p++ = digits[ndigits]; } } free (digits); } *p++ = dp->conversion; /* 'e' or 'E' */ # if WIDE_CHAR_VERSION { static const wchar_t decimal_format[] = /* Produce the same number of exponent digits as the native printf implementation. */ # if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ { '%', '+', '.', '3', 'd', '\0' }; # else { '%', '+', '.', '2', 'd', '\0' }; # endif SNPRINTF (p, 6 + 1, decimal_format, exponent); } while (*p != '\0') p++; # else { static const char decimal_format[] = /* Produce the same number of exponent digits as the native printf implementation. */ # if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ "%+.3d"; # else "%+.2d"; # endif if (sizeof (DCHAR_T) == 1) { sprintf ((char *) p, decimal_format, exponent); while (*p != '\0') p++; } else { char expbuf[6 + 1]; const char *ep; sprintf (expbuf, decimal_format, exponent); for (ep = expbuf; (*p = *ep) != '\0'; ep++) p++; } } # endif } else if (dp->conversion == 'g' || dp->conversion == 'G') { if (precision == 0) precision = 1; /* precision >= 1. */ if (arg == 0.0) /* The exponent is 0, >= -4, < precision. Use fixed-point notation. */ { size_t ndigits = precision; /* Number of trailing zeroes that have to be dropped. */ size_t nzeroes = (flags & FLAG_ALT ? 0 : precision - 1); --ndigits; *p++ = '0'; if ((flags & FLAG_ALT) || ndigits > nzeroes) { *p++ = decimal_point_char (); while (ndigits > nzeroes) { --ndigits; *p++ = '0'; } } } else { /* arg > 0.0. */ int exponent; int adjusted; char *digits; size_t ndigits; size_t nzeroes; exponent = floorlog10 (arg); adjusted = 0; for (;;) { digits = scale10_round_decimal_double (arg, (int)(precision - 1) - exponent); if (digits == NULL) goto out_of_memory; ndigits = strlen (digits); if (ndigits == precision) break; if (ndigits < precision - 1 || ndigits > precision + 1) /* The exponent was not guessed precisely enough. */ abort (); if (adjusted) /* None of two values of exponent is the right one. Prevent an endless loop. */ abort (); free (digits); if (ndigits < precision) exponent -= 1; else exponent += 1; adjusted = 1; } /* Here ndigits = precision. */ if (is_borderline (digits, precision - 1)) { /* Maybe the exponent guess was too high and a smaller exponent can be reached by turning a 10...0 into 9...9x. */ char *digits2 = scale10_round_decimal_double (arg, (int)(precision - 1) - exponent + 1); if (digits2 == NULL) { free (digits); goto out_of_memory; } if (strlen (digits2) == precision) { free (digits); digits = digits2; exponent -= 1; } else free (digits2); } /* Here ndigits = precision. */ /* Determine the number of trailing zeroes that have to be dropped. */ nzeroes = 0; if ((flags & FLAG_ALT) == 0) while (nzeroes < ndigits && digits[nzeroes] == '0') nzeroes++; /* The exponent is now determined. */ if (exponent >= -4 && exponent < (long)precision) { /* Fixed-point notation: max(exponent,0)+1 digits, then the decimal point, then the remaining digits without trailing zeroes. */ if (exponent >= 0) { size_t count = exponent + 1; /* Note: count <= precision = ndigits. */ for (; count > 0; count--) *p++ = digits[--ndigits]; if ((flags & FLAG_ALT) || ndigits > nzeroes) { *p++ = decimal_point_char (); while (ndigits > nzeroes) { --ndigits; *p++ = digits[ndigits]; } } } else { size_t count = -exponent - 1; *p++ = '0'; *p++ = decimal_point_char (); for (; count > 0; count--) *p++ = '0'; while (ndigits > nzeroes) { --ndigits; *p++ = digits[ndigits]; } } } else { /* Exponential notation. */ *p++ = digits[--ndigits]; if ((flags & FLAG_ALT) || ndigits > nzeroes) { *p++ = decimal_point_char (); while (ndigits > nzeroes) { --ndigits; *p++ = digits[ndigits]; } } *p++ = dp->conversion - 'G' + 'E'; /* 'e' or 'E' */ # if WIDE_CHAR_VERSION { static const wchar_t decimal_format[] = /* Produce the same number of exponent digits as the native printf implementation. */ # if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ { '%', '+', '.', '3', 'd', '\0' }; # else { '%', '+', '.', '2', 'd', '\0' }; # endif SNPRINTF (p, 6 + 1, decimal_format, exponent); } while (*p != '\0') p++; # else { static const char decimal_format[] = /* Produce the same number of exponent digits as the native printf implementation. */ # if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ "%+.3d"; # else "%+.2d"; # endif if (sizeof (DCHAR_T) == 1) { sprintf ((char *) p, decimal_format, exponent); while (*p != '\0') p++; } else { char expbuf[6 + 1]; const char *ep; sprintf (expbuf, decimal_format, exponent); for (ep = expbuf; (*p = *ep) != '\0'; ep++) p++; } } # endif } free (digits); } } else abort (); # else /* arg is finite. */ if (!(arg == 0.0)) abort (); pad_ptr = p; if (dp->conversion == 'f' || dp->conversion == 'F') { *p++ = '0'; if ((flags & FLAG_ALT) || precision > 0) { *p++ = decimal_point_char (); for (; precision > 0; precision--) *p++ = '0'; } } else if (dp->conversion == 'e' || dp->conversion == 'E') { *p++ = '0'; if ((flags & FLAG_ALT) || precision > 0) { *p++ = decimal_point_char (); for (; precision > 0; precision--) *p++ = '0'; } *p++ = dp->conversion; /* 'e' or 'E' */ *p++ = '+'; /* Produce the same number of exponent digits as the native printf implementation. */ # if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ *p++ = '0'; # endif *p++ = '0'; *p++ = '0'; } else if (dp->conversion == 'g' || dp->conversion == 'G') { *p++ = '0'; if (flags & FLAG_ALT) { size_t ndigits = (precision > 0 ? precision - 1 : 0); *p++ = decimal_point_char (); for (; ndigits > 0; --ndigits) *p++ = '0'; } } else abort (); # endif } } } # endif /* The generated string now extends from tmp to p, with the zero padding insertion point being at pad_ptr. */ if (has_width && p - tmp < width) { size_t pad = width - (p - tmp); DCHAR_T *end = p + pad; if (flags & FLAG_LEFT) { /* Pad with spaces on the right. */ for (; pad > 0; pad--) *p++ = ' '; } else if ((flags & FLAG_ZERO) && pad_ptr != NULL) { /* Pad with zeroes. */ DCHAR_T *q = end; while (p > pad_ptr) *--q = *--p; for (; pad > 0; pad--) *p++ = '0'; } else { /* Pad with spaces on the left. */ DCHAR_T *q = end; while (p > tmp) *--q = *--p; for (; pad > 0; pad--) *p++ = ' '; } p = end; } { size_t count = p - tmp; if (count >= tmp_length) /* tmp_length was incorrectly calculated - fix the code above! */ abort (); /* Make room for the result. */ if (count >= allocated - length) { size_t n = xsum (length, count); ENSURE_ALLOCATION (n); } /* Append the result. */ memcpy (result + length, tmp, count * sizeof (DCHAR_T)); if (tmp != tmpbuf) free (tmp); length += count; } } #endif else { arg_type type = a.arg[dp->arg_index].type; int flags = dp->flags; #if !USE_SNPRINTF || !HAVE_SNPRINTF_RETVAL_C99 || !DCHAR_IS_TCHAR || ENABLE_UNISTDIO || NEED_PRINTF_FLAG_LEFTADJUST || NEED_PRINTF_FLAG_ZERO || NEED_PRINTF_UNBOUNDED_PRECISION int has_width; size_t width; #endif #if !USE_SNPRINTF || !HAVE_SNPRINTF_RETVAL_C99 || NEED_PRINTF_UNBOUNDED_PRECISION int has_precision; size_t precision; #endif #if NEED_PRINTF_UNBOUNDED_PRECISION int prec_ourselves; #else # define prec_ourselves 0 #endif #if NEED_PRINTF_FLAG_LEFTADJUST # define pad_ourselves 1 #elif !DCHAR_IS_TCHAR || ENABLE_UNISTDIO || NEED_PRINTF_FLAG_ZERO || NEED_PRINTF_UNBOUNDED_PRECISION int pad_ourselves; #else # define pad_ourselves 0 #endif TCHAR_T *fbp; unsigned int prefix_count; int prefixes[2] IF_LINT (= { 0 }); int orig_errno; #if !USE_SNPRINTF size_t tmp_length; TCHAR_T tmpbuf[700]; TCHAR_T *tmp; #endif #if !USE_SNPRINTF || !HAVE_SNPRINTF_RETVAL_C99 || !DCHAR_IS_TCHAR || ENABLE_UNISTDIO || NEED_PRINTF_FLAG_LEFTADJUST || NEED_PRINTF_FLAG_ZERO || NEED_PRINTF_UNBOUNDED_PRECISION has_width = 0; width = 0; if (dp->width_start != dp->width_end) { if (dp->width_arg_index != ARG_NONE) { int arg; if (!(a.arg[dp->width_arg_index].type == TYPE_INT)) abort (); arg = a.arg[dp->width_arg_index].a.a_int; if (arg < 0) { /* "A negative field width is taken as a '-' flag followed by a positive field width." */ flags |= FLAG_LEFT; width = (unsigned int) (-arg); } else width = arg; } else { const FCHAR_T *digitp = dp->width_start; do width = xsum (xtimes (width, 10), *digitp++ - '0'); while (digitp != dp->width_end); } has_width = 1; } #endif #if !USE_SNPRINTF || !HAVE_SNPRINTF_RETVAL_C99 || NEED_PRINTF_UNBOUNDED_PRECISION has_precision = 0; precision = 6; if (dp->precision_start != dp->precision_end) { if (dp->precision_arg_index != ARG_NONE) { int arg; if (!(a.arg[dp->precision_arg_index].type == TYPE_INT)) abort (); arg = a.arg[dp->precision_arg_index].a.a_int; /* "A negative precision is taken as if the precision were omitted." */ if (arg >= 0) { precision = arg; has_precision = 1; } } else { const FCHAR_T *digitp = dp->precision_start + 1; precision = 0; while (digitp != dp->precision_end) precision = xsum (xtimes (precision, 10), *digitp++ - '0'); has_precision = 1; } } #endif /* Decide whether to handle the precision ourselves. */ #if NEED_PRINTF_UNBOUNDED_PRECISION switch (dp->conversion) { case 'd': case 'i': case 'u': case 'o': case 'x': case 'X': case 'p': prec_ourselves = has_precision && (precision > 0); break; default: prec_ourselves = 0; break; } #endif /* Decide whether to perform the padding ourselves. */ #if !NEED_PRINTF_FLAG_LEFTADJUST && (!DCHAR_IS_TCHAR || ENABLE_UNISTDIO || NEED_PRINTF_FLAG_ZERO || NEED_PRINTF_UNBOUNDED_PRECISION) switch (dp->conversion) { # if !DCHAR_IS_TCHAR || ENABLE_UNISTDIO /* If we need conversion from TCHAR_T[] to DCHAR_T[], we need to perform the padding after this conversion. Functions with unistdio extensions perform the padding based on character count rather than element count. */ case 'c': case 's': # endif # if NEED_PRINTF_FLAG_ZERO case 'f': case 'F': case 'e': case 'E': case 'g': case 'G': case 'a': case 'A': # endif pad_ourselves = 1; break; default: pad_ourselves = prec_ourselves; break; } #endif #if !USE_SNPRINTF /* Allocate a temporary buffer of sufficient size for calling sprintf. */ tmp_length = MAX_ROOM_NEEDED (&a, dp->arg_index, dp->conversion, type, flags, width, has_precision, precision, pad_ourselves); if (tmp_length <= sizeof (tmpbuf) / sizeof (TCHAR_T)) tmp = tmpbuf; else { size_t tmp_memsize = xtimes (tmp_length, sizeof (TCHAR_T)); if (size_overflow_p (tmp_memsize)) /* Overflow, would lead to out of memory. */ goto out_of_memory; tmp = (TCHAR_T *) malloc (tmp_memsize); if (tmp == NULL) /* Out of memory. */ goto out_of_memory; } #endif /* Construct the format string for calling snprintf or sprintf. */ fbp = buf; *fbp++ = '%'; #if NEED_PRINTF_FLAG_GROUPING /* The underlying implementation doesn't support the ' flag. Produce no grouping characters in this case; this is acceptable because the grouping is locale dependent. */ #else if (flags & FLAG_GROUP) *fbp++ = '\''; #endif if (flags & FLAG_LEFT) *fbp++ = '-'; if (flags & FLAG_SHOWSIGN) *fbp++ = '+'; if (flags & FLAG_SPACE) *fbp++ = ' '; if (flags & FLAG_ALT) *fbp++ = '#'; #if __GLIBC__ >= 2 && !defined __UCLIBC__ if (flags & FLAG_LOCALIZED) *fbp++ = 'I'; #endif if (!pad_ourselves) { if (flags & FLAG_ZERO) *fbp++ = '0'; if (dp->width_start != dp->width_end) { size_t n = dp->width_end - dp->width_start; /* The width specification is known to consist only of standard ASCII characters. */ if (sizeof (FCHAR_T) == sizeof (TCHAR_T)) { memcpy (fbp, dp->width_start, n * sizeof (TCHAR_T)); fbp += n; } else { const FCHAR_T *mp = dp->width_start; do *fbp++ = (unsigned char) *mp++; while (--n > 0); } } } if (!prec_ourselves) { if (dp->precision_start != dp->precision_end) { size_t n = dp->precision_end - dp->precision_start; /* The precision specification is known to consist only of standard ASCII characters. */ if (sizeof (FCHAR_T) == sizeof (TCHAR_T)) { memcpy (fbp, dp->precision_start, n * sizeof (TCHAR_T)); fbp += n; } else { const FCHAR_T *mp = dp->precision_start; do *fbp++ = (unsigned char) *mp++; while (--n > 0); } } } switch (type) { #if HAVE_LONG_LONG_INT case TYPE_LONGLONGINT: case TYPE_ULONGLONGINT: # if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ *fbp++ = 'I'; *fbp++ = '6'; *fbp++ = '4'; break; # else *fbp++ = 'l'; /*FALLTHROUGH*/ # endif #endif case TYPE_LONGINT: case TYPE_ULONGINT: #if HAVE_WINT_T case TYPE_WIDE_CHAR: #endif #if HAVE_WCHAR_T case TYPE_WIDE_STRING: #endif *fbp++ = 'l'; break; case TYPE_LONGDOUBLE: *fbp++ = 'L'; break; default: break; } #if NEED_PRINTF_DIRECTIVE_F if (dp->conversion == 'F') *fbp = 'f'; else #endif *fbp = dp->conversion; #if USE_SNPRINTF # if !(((__GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 3)) && !defined __UCLIBC__) || ((defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__)) fbp[1] = '%'; fbp[2] = 'n'; fbp[3] = '\0'; # else /* On glibc2 systems from glibc >= 2.3 - probably also older ones - we know that snprintf's return value conforms to ISO C 99: the tests gl_SNPRINTF_RETVAL_C99 and gl_SNPRINTF_TRUNCATION_C99 pass. Therefore we can avoid using %n in this situation. On glibc2 systems from 2004-10-18 or newer, the use of %n in format strings in writable memory may crash the program (if compiled with _FORTIFY_SOURCE=2), so we should avoid it in this situation. */ /* On native Windows systems (such as mingw), we can avoid using %n because: - Although the gl_SNPRINTF_TRUNCATION_C99 test fails, snprintf does not write more than the specified number of bytes. (snprintf (buf, 3, "%d %d", 4567, 89) writes '4', '5', '6' into buf, not '4', '5', '\0'.) - Although the gl_SNPRINTF_RETVAL_C99 test fails, snprintf allows us to recognize the case of an insufficient buffer size: it returns -1 in this case. On native Windows systems (such as mingw) where the OS is Windows Vista, the use of %n in format strings by default crashes the program. See and So we should avoid %n in this situation. */ fbp[1] = '\0'; # endif #else fbp[1] = '\0'; #endif /* Construct the arguments for calling snprintf or sprintf. */ prefix_count = 0; if (!pad_ourselves && dp->width_arg_index != ARG_NONE) { if (!(a.arg[dp->width_arg_index].type == TYPE_INT)) abort (); prefixes[prefix_count++] = a.arg[dp->width_arg_index].a.a_int; } if (!prec_ourselves && dp->precision_arg_index != ARG_NONE) { if (!(a.arg[dp->precision_arg_index].type == TYPE_INT)) abort (); prefixes[prefix_count++] = a.arg[dp->precision_arg_index].a.a_int; } #if USE_SNPRINTF /* The SNPRINTF result is appended after result[0..length]. The latter is an array of DCHAR_T; SNPRINTF appends an array of TCHAR_T to it. This is possible because sizeof (TCHAR_T) divides sizeof (DCHAR_T) and alignof (TCHAR_T) <= alignof (DCHAR_T). */ # define TCHARS_PER_DCHAR (sizeof (DCHAR_T) / sizeof (TCHAR_T)) /* Ensure that maxlen below will be >= 2. Needed on BeOS, where an snprintf() with maxlen==1 acts like sprintf(). */ ENSURE_ALLOCATION (xsum (length, (2 + TCHARS_PER_DCHAR - 1) / TCHARS_PER_DCHAR)); /* Prepare checking whether snprintf returns the count via %n. */ *(TCHAR_T *) (result + length) = '\0'; #endif orig_errno = errno; for (;;) { int count = -1; #if USE_SNPRINTF int retcount = 0; size_t maxlen = allocated - length; /* SNPRINTF can fail if its second argument is > INT_MAX. */ if (maxlen > INT_MAX / TCHARS_PER_DCHAR) maxlen = INT_MAX / TCHARS_PER_DCHAR; maxlen = maxlen * TCHARS_PER_DCHAR; # define SNPRINTF_BUF(arg) \ switch (prefix_count) \ { \ case 0: \ retcount = SNPRINTF ((TCHAR_T *) (result + length), \ maxlen, buf, \ arg, &count); \ break; \ case 1: \ retcount = SNPRINTF ((TCHAR_T *) (result + length), \ maxlen, buf, \ prefixes[0], arg, &count); \ break; \ case 2: \ retcount = SNPRINTF ((TCHAR_T *) (result + length), \ maxlen, buf, \ prefixes[0], prefixes[1], arg, \ &count); \ break; \ default: \ abort (); \ } #else # define SNPRINTF_BUF(arg) \ switch (prefix_count) \ { \ case 0: \ count = sprintf (tmp, buf, arg); \ break; \ case 1: \ count = sprintf (tmp, buf, prefixes[0], arg); \ break; \ case 2: \ count = sprintf (tmp, buf, prefixes[0], prefixes[1],\ arg); \ break; \ default: \ abort (); \ } #endif errno = 0; switch (type) { case TYPE_SCHAR: { int arg = a.arg[dp->arg_index].a.a_schar; SNPRINTF_BUF (arg); } break; case TYPE_UCHAR: { unsigned int arg = a.arg[dp->arg_index].a.a_uchar; SNPRINTF_BUF (arg); } break; case TYPE_SHORT: { int arg = a.arg[dp->arg_index].a.a_short; SNPRINTF_BUF (arg); } break; case TYPE_USHORT: { unsigned int arg = a.arg[dp->arg_index].a.a_ushort; SNPRINTF_BUF (arg); } break; case TYPE_INT: { int arg = a.arg[dp->arg_index].a.a_int; SNPRINTF_BUF (arg); } break; case TYPE_UINT: { unsigned int arg = a.arg[dp->arg_index].a.a_uint; SNPRINTF_BUF (arg); } break; case TYPE_LONGINT: { long int arg = a.arg[dp->arg_index].a.a_longint; SNPRINTF_BUF (arg); } break; case TYPE_ULONGINT: { unsigned long int arg = a.arg[dp->arg_index].a.a_ulongint; SNPRINTF_BUF (arg); } break; #if HAVE_LONG_LONG_INT case TYPE_LONGLONGINT: { long long int arg = a.arg[dp->arg_index].a.a_longlongint; SNPRINTF_BUF (arg); } break; case TYPE_ULONGLONGINT: { unsigned long long int arg = a.arg[dp->arg_index].a.a_ulonglongint; SNPRINTF_BUF (arg); } break; #endif case TYPE_DOUBLE: { double arg = a.arg[dp->arg_index].a.a_double; SNPRINTF_BUF (arg); } break; case TYPE_LONGDOUBLE: { long double arg = a.arg[dp->arg_index].a.a_longdouble; SNPRINTF_BUF (arg); } break; case TYPE_CHAR: { int arg = a.arg[dp->arg_index].a.a_char; SNPRINTF_BUF (arg); } break; #if HAVE_WINT_T case TYPE_WIDE_CHAR: { wint_t arg = a.arg[dp->arg_index].a.a_wide_char; SNPRINTF_BUF (arg); } break; #endif case TYPE_STRING: { const char *arg = a.arg[dp->arg_index].a.a_string; SNPRINTF_BUF (arg); } break; #if HAVE_WCHAR_T case TYPE_WIDE_STRING: { const wchar_t *arg = a.arg[dp->arg_index].a.a_wide_string; SNPRINTF_BUF (arg); } break; #endif case TYPE_POINTER: { void *arg = a.arg[dp->arg_index].a.a_pointer; SNPRINTF_BUF (arg); } break; default: abort (); } #if USE_SNPRINTF /* Portability: Not all implementations of snprintf() are ISO C 99 compliant. Determine the number of bytes that snprintf() has produced or would have produced. */ if (count >= 0) { /* Verify that snprintf() has NUL-terminated its result. */ if (count < maxlen && ((TCHAR_T *) (result + length)) [count] != '\0') abort (); /* Portability hack. */ if (retcount > count) count = retcount; } else { /* snprintf() doesn't understand the '%n' directive. */ if (fbp[1] != '\0') { /* Don't use the '%n' directive; instead, look at the snprintf() return value. */ fbp[1] = '\0'; continue; } else { /* Look at the snprintf() return value. */ if (retcount < 0) { # if !HAVE_SNPRINTF_RETVAL_C99 /* HP-UX 10.20 snprintf() is doubly deficient: It doesn't understand the '%n' directive, *and* it returns -1 (rather than the length that would have been required) when the buffer is too small. But a failure at this point can also come from other reasons than a too small buffer, such as an invalid wide string argument to the %ls directive, or possibly an invalid floating-point argument. */ size_t tmp_length = MAX_ROOM_NEEDED (&a, dp->arg_index, dp->conversion, type, flags, width, has_precision, precision, pad_ourselves); if (maxlen < tmp_length) { /* Make more room. But try to do through this reallocation only once. */ size_t bigger_need = xsum (length, xsum (tmp_length, TCHARS_PER_DCHAR - 1) / TCHARS_PER_DCHAR); /* And always grow proportionally. (There may be several arguments, each needing a little more room than the previous one.) */ size_t bigger_need2 = xsum (xtimes (allocated, 2), 12); if (bigger_need < bigger_need2) bigger_need = bigger_need2; ENSURE_ALLOCATION (bigger_need); continue; } # endif } else count = retcount; } } #endif /* Attempt to handle failure. */ if (count < 0) { /* SNPRINTF or sprintf failed. Save and use the errno that it has set, if any. */ int saved_errno = errno; if (!(result == resultbuf || result == NULL)) free (result); if (buf_malloced != NULL) free (buf_malloced); CLEANUP (); errno = (saved_errno != 0 ? saved_errno : (dp->conversion == 'c' || dp->conversion == 's' ? EILSEQ : EINVAL)); return NULL; } #if USE_SNPRINTF /* Handle overflow of the allocated buffer. If such an overflow occurs, a C99 compliant snprintf() returns a count >= maxlen. However, a non-compliant snprintf() function returns only count = maxlen - 1. To cover both cases, test whether count >= maxlen - 1. */ if ((unsigned int) count + 1 >= maxlen) { /* If maxlen already has attained its allowed maximum, allocating more memory will not increase maxlen. Instead of looping, bail out. */ if (maxlen == INT_MAX / TCHARS_PER_DCHAR) goto overflow; else { /* Need at least (count + 1) * sizeof (TCHAR_T) bytes. (The +1 is for the trailing NUL.) But ask for (count + 2) * sizeof (TCHAR_T) bytes, so that in the next round, we likely get maxlen > (unsigned int) count + 1 and so we don't get here again. And allocate proportionally, to avoid looping eternally if snprintf() reports a too small count. */ size_t n = xmax (xsum (length, ((unsigned int) count + 2 + TCHARS_PER_DCHAR - 1) / TCHARS_PER_DCHAR), xtimes (allocated, 2)); ENSURE_ALLOCATION (n); continue; } } #endif #if NEED_PRINTF_UNBOUNDED_PRECISION if (prec_ourselves) { /* Handle the precision. */ TCHAR_T *prec_ptr = # if USE_SNPRINTF (TCHAR_T *) (result + length); # else tmp; # endif size_t prefix_count; size_t move; prefix_count = 0; /* Put the additional zeroes after the sign. */ if (count >= 1 && (*prec_ptr == '-' || *prec_ptr == '+' || *prec_ptr == ' ')) prefix_count = 1; /* Put the additional zeroes after the 0x prefix if (flags & FLAG_ALT) || (dp->conversion == 'p'). */ else if (count >= 2 && prec_ptr[0] == '0' && (prec_ptr[1] == 'x' || prec_ptr[1] == 'X')) prefix_count = 2; move = count - prefix_count; if (precision > move) { /* Insert zeroes. */ size_t insert = precision - move; TCHAR_T *prec_end; # if USE_SNPRINTF size_t n = xsum (length, (count + insert + TCHARS_PER_DCHAR - 1) / TCHARS_PER_DCHAR); length += (count + TCHARS_PER_DCHAR - 1) / TCHARS_PER_DCHAR; ENSURE_ALLOCATION (n); length -= (count + TCHARS_PER_DCHAR - 1) / TCHARS_PER_DCHAR; prec_ptr = (TCHAR_T *) (result + length); # endif prec_end = prec_ptr + count; prec_ptr += prefix_count; while (prec_end > prec_ptr) { prec_end--; prec_end[insert] = prec_end[0]; } prec_end += insert; do *--prec_end = '0'; while (prec_end > prec_ptr); count += insert; } } #endif #if !USE_SNPRINTF if (count >= tmp_length) /* tmp_length was incorrectly calculated - fix the code above! */ abort (); #endif #if !DCHAR_IS_TCHAR /* Convert from TCHAR_T[] to DCHAR_T[]. */ if (dp->conversion == 'c' || dp->conversion == 's') { /* type = TYPE_CHAR or TYPE_WIDE_CHAR or TYPE_STRING TYPE_WIDE_STRING. The result string is not certainly ASCII. */ const TCHAR_T *tmpsrc; DCHAR_T *tmpdst; size_t tmpdst_len; /* This code assumes that TCHAR_T is 'char'. */ verify (sizeof (TCHAR_T) == 1); # if USE_SNPRINTF tmpsrc = (TCHAR_T *) (result + length); # else tmpsrc = tmp; # endif tmpdst = DCHAR_CONV_FROM_ENCODING (locale_charset (), iconveh_question_mark, tmpsrc, count, NULL, NULL, &tmpdst_len); if (tmpdst == NULL) { int saved_errno = errno; if (!(result == resultbuf || result == NULL)) free (result); if (buf_malloced != NULL) free (buf_malloced); CLEANUP (); errno = saved_errno; return NULL; } ENSURE_ALLOCATION (xsum (length, tmpdst_len)); DCHAR_CPY (result + length, tmpdst, tmpdst_len); free (tmpdst); count = tmpdst_len; } else { /* The result string is ASCII. Simple 1:1 conversion. */ # if USE_SNPRINTF /* If sizeof (DCHAR_T) == sizeof (TCHAR_T), it's a no-op conversion, in-place on the array starting at (result + length). */ if (sizeof (DCHAR_T) != sizeof (TCHAR_T)) # endif { const TCHAR_T *tmpsrc; DCHAR_T *tmpdst; size_t n; # if USE_SNPRINTF if (result == resultbuf) { tmpsrc = (TCHAR_T *) (result + length); /* ENSURE_ALLOCATION will not move tmpsrc (because it's part of resultbuf). */ ENSURE_ALLOCATION (xsum (length, count)); } else { /* ENSURE_ALLOCATION will move the array (because it uses realloc(). */ ENSURE_ALLOCATION (xsum (length, count)); tmpsrc = (TCHAR_T *) (result + length); } # else tmpsrc = tmp; ENSURE_ALLOCATION (xsum (length, count)); # endif tmpdst = result + length; /* Copy backwards, because of overlapping. */ tmpsrc += count; tmpdst += count; for (n = count; n > 0; n--) *--tmpdst = (unsigned char) *--tmpsrc; } } #endif #if DCHAR_IS_TCHAR && !USE_SNPRINTF /* Make room for the result. */ if (count > allocated - length) { /* Need at least count elements. But allocate proportionally. */ size_t n = xmax (xsum (length, count), xtimes (allocated, 2)); ENSURE_ALLOCATION (n); } #endif /* Here count <= allocated - length. */ /* Perform padding. */ #if !DCHAR_IS_TCHAR || ENABLE_UNISTDIO || NEED_PRINTF_FLAG_LEFTADJUST || NEED_PRINTF_FLAG_ZERO || NEED_PRINTF_UNBOUNDED_PRECISION if (pad_ourselves && has_width) { size_t w; # if ENABLE_UNISTDIO /* Outside POSIX, it's preferable to compare the width against the number of _characters_ of the converted value. */ w = DCHAR_MBSNLEN (result + length, count); # else /* The width is compared against the number of _bytes_ of the converted value, says POSIX. */ w = count; # endif if (w < width) { size_t pad = width - w; /* Make room for the result. */ if (xsum (count, pad) > allocated - length) { /* Need at least count + pad elements. But allocate proportionally. */ size_t n = xmax (xsum3 (length, count, pad), xtimes (allocated, 2)); # if USE_SNPRINTF length += count; ENSURE_ALLOCATION (n); length -= count; # else ENSURE_ALLOCATION (n); # endif } /* Here count + pad <= allocated - length. */ { # if !DCHAR_IS_TCHAR || USE_SNPRINTF DCHAR_T * const rp = result + length; # else DCHAR_T * const rp = tmp; # endif DCHAR_T *p = rp + count; DCHAR_T *end = p + pad; DCHAR_T *pad_ptr; # if !DCHAR_IS_TCHAR || ENABLE_UNISTDIO if (dp->conversion == 'c' || dp->conversion == 's') /* No zero-padding for string directives. */ pad_ptr = NULL; else # endif { pad_ptr = (*rp == '-' ? rp + 1 : rp); /* No zero-padding of "inf" and "nan". */ if ((*pad_ptr >= 'A' && *pad_ptr <= 'Z') || (*pad_ptr >= 'a' && *pad_ptr <= 'z')) pad_ptr = NULL; } /* The generated string now extends from rp to p, with the zero padding insertion point being at pad_ptr. */ count = count + pad; /* = end - rp */ if (flags & FLAG_LEFT) { /* Pad with spaces on the right. */ for (; pad > 0; pad--) *p++ = ' '; } else if ((flags & FLAG_ZERO) && pad_ptr != NULL) { /* Pad with zeroes. */ DCHAR_T *q = end; while (p > pad_ptr) *--q = *--p; for (; pad > 0; pad--) *p++ = '0'; } else { /* Pad with spaces on the left. */ DCHAR_T *q = end; while (p > rp) *--q = *--p; for (; pad > 0; pad--) *p++ = ' '; } } } } #endif /* Here still count <= allocated - length. */ #if !DCHAR_IS_TCHAR || USE_SNPRINTF /* The snprintf() result did fit. */ #else /* Append the sprintf() result. */ memcpy (result + length, tmp, count * sizeof (DCHAR_T)); #endif #if !USE_SNPRINTF if (tmp != tmpbuf) free (tmp); #endif #if NEED_PRINTF_DIRECTIVE_F if (dp->conversion == 'F') { /* Convert the %f result to upper case for %F. */ DCHAR_T *rp = result + length; size_t rc; for (rc = count; rc > 0; rc--, rp++) if (*rp >= 'a' && *rp <= 'z') *rp = *rp - 'a' + 'A'; } #endif length += count; break; } errno = orig_errno; #undef pad_ourselves #undef prec_ourselves } } } /* Add the final NUL. */ ENSURE_ALLOCATION (xsum (length, 1)); result[length] = '\0'; if (result != resultbuf && length + 1 < allocated) { /* Shrink the allocated memory if possible. */ DCHAR_T *memory; memory = (DCHAR_T *) realloc (result, (length + 1) * sizeof (DCHAR_T)); if (memory != NULL) result = memory; } if (buf_malloced != NULL) free (buf_malloced); CLEANUP (); *lengthp = length; /* Note that we can produce a big string of a length > INT_MAX. POSIX says that snprintf() fails with errno = EOVERFLOW in this case, but that's only because snprintf() returns an 'int'. This function does not have this limitation. */ return result; #if USE_SNPRINTF overflow: if (!(result == resultbuf || result == NULL)) free (result); if (buf_malloced != NULL) free (buf_malloced); CLEANUP (); errno = EOVERFLOW; return NULL; #endif out_of_memory: if (!(result == resultbuf || result == NULL)) free (result); if (buf_malloced != NULL) free (buf_malloced); out_of_memory_1: CLEANUP (); errno = ENOMEM; return NULL; } } #undef MAX_ROOM_NEEDED #undef TCHARS_PER_DCHAR #undef SNPRINTF #undef USE_SNPRINTF #undef DCHAR_SET #undef DCHAR_CPY #undef PRINTF_PARSE #undef DIRECTIVES #undef DIRECTIVE #undef DCHAR_IS_TCHAR #undef TCHAR_T #undef DCHAR_T #undef FCHAR_T #undef VASNPRINTF gcal-3.6.3/lib/fclose.c0000644000175000017500000000551212076511424011544 00000000000000/* fclose replacement. Copyright (C) 2008-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 . */ #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-3.6.3/lib/sys_wait.in.h0000644000175000017500000000755512125375411012555 00000000000000/* -*- buffer-read-only: t -*- vi: set ro: */ /* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* A POSIX-like . Copyright (C) 2001-2003, 2005-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, 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-3.6.3/lib/spawn_faction_addopen.c0000644000175000017500000000432012076511424014612 00000000000000/* Copyright (C) 2000, 2009-2013 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-3.6.3/lib/frexp.c0000644000175000017500000001036112076511424011413 00000000000000/* Split a double into fraction and mantissa. Copyright (C) 2007-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 . */ /* Written by Paolo Bonzini , 2003, and Bruno Haible , 2007. */ #if ! defined USE_LONG_DOUBLE # include #endif /* Specification. */ #include #include #ifdef USE_LONG_DOUBLE # include "isnanl-nolibm.h" # include "fpucw.h" #else # include "isnand-nolibm.h" #endif /* This file assumes FLT_RADIX = 2. If FLT_RADIX is a power of 2 greater than 2, or not even a power of 2, some rounding errors can occur, so that then the returned mantissa is only guaranteed to be <= 1.0, not < 1.0. */ #ifdef USE_LONG_DOUBLE # define FUNC frexpl # define DOUBLE long double # define ISNAN isnanl # define DECL_ROUNDING DECL_LONG_DOUBLE_ROUNDING # define BEGIN_ROUNDING() BEGIN_LONG_DOUBLE_ROUNDING () # define END_ROUNDING() END_LONG_DOUBLE_ROUNDING () # define L_(literal) literal##L #else # define FUNC frexp # define DOUBLE double # define ISNAN isnand # define DECL_ROUNDING # define BEGIN_ROUNDING() # define END_ROUNDING() # define L_(literal) literal #endif DOUBLE FUNC (DOUBLE x, int *expptr) { int sign; int exponent; DECL_ROUNDING /* Test for NaN, infinity, and zero. */ if (ISNAN (x) || x + x == x) { *expptr = 0; return x; } sign = 0; if (x < 0) { x = - x; sign = -1; } BEGIN_ROUNDING (); { /* Since the exponent is an 'int', it fits in 64 bits. Therefore the loops are executed no more than 64 times. */ DOUBLE pow2[64]; /* pow2[i] = 2^2^i */ DOUBLE powh[64]; /* powh[i] = 2^-2^i */ int i; exponent = 0; if (x >= L_(1.0)) { /* A positive exponent. */ DOUBLE pow2_i; /* = pow2[i] */ DOUBLE powh_i; /* = powh[i] */ /* Invariants: pow2_i = 2^2^i, powh_i = 2^-2^i, x * 2^exponent = argument, x >= 1.0. */ for (i = 0, pow2_i = L_(2.0), powh_i = L_(0.5); ; i++, pow2_i = pow2_i * pow2_i, powh_i = powh_i * powh_i) { if (x >= pow2_i) { exponent += (1 << i); x *= powh_i; } else break; pow2[i] = pow2_i; powh[i] = powh_i; } /* Avoid making x too small, as it could become a denormalized number and thus lose precision. */ while (i > 0 && x < pow2[i - 1]) { i--; powh_i = powh[i]; } exponent += (1 << i); x *= powh_i; /* Here 2^-2^i <= x < 1.0. */ } else { /* A negative or zero exponent. */ DOUBLE pow2_i; /* = pow2[i] */ DOUBLE powh_i; /* = powh[i] */ /* Invariants: pow2_i = 2^2^i, powh_i = 2^-2^i, x * 2^exponent = argument, x < 1.0. */ for (i = 0, pow2_i = L_(2.0), powh_i = L_(0.5); ; i++, pow2_i = pow2_i * pow2_i, powh_i = powh_i * powh_i) { if (x < powh_i) { exponent -= (1 << i); x *= pow2_i; } else break; pow2[i] = pow2_i; powh[i] = powh_i; } /* Here 2^-2^i <= x < 1.0. */ } /* Invariants: x * 2^exponent = argument, and 2^-2^i <= x < 1.0. */ while (i > 0) { i--; if (x < powh[i]) { exponent -= (1 << i); x *= pow2[i]; } } /* Here 0.5 <= x < 1.0. */ } if (sign < 0) x = - x; END_ROUNDING (); *expptr = exponent; return x; } gcal-3.6.3/lib/binary-io.h0000644000175000017500000000455412076511423012173 00000000000000/* Binary mode I/O. Copyright (C) 2001, 2003, 2005, 2008-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 . */ #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 _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. */ #ifdef __DJGPP__ # 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-3.6.3/lib/sig-handler.h0000644000175000017500000000343412076511424012474 00000000000000/* Convenience declarations when working with . Copyright (C) 2008-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 . */ #ifndef _GL_SIG_HANDLER_H #define _GL_SIG_HANDLER_H #include _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 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-3.6.3/lib/pipe2-safer.c0000644000175000017500000000271012076511424012403 00000000000000/* Invoke pipe2, but avoid some glitches. Copyright (C) 2005-2006, 2009-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 . */ /* 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-3.6.3/lib/strstr.c0000644000175000017500000000613112125375411011627 00000000000000/* -*- buffer-read-only: t -*- vi: set ro: */ /* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* Copyright (C) 1991-1994, 1996-1998, 2000, 2004, 2007-2013 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 #ifndef _LIBC # define __builtin_expect(expr, val) (expr) #endif #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-3.6.3/lib/wait-process.h0000644000175000017500000000570612076511424012723 00000000000000/* Waiting for a subprocess to finish. Copyright (C) 2001-2003, 2006, 2008-2013 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-3.6.3/lib/gl_list.c0000644000175000017500000000012212057472163011723 00000000000000#include #define GL_LIST_INLINE _GL_EXTERN_INLINE #include "gl_list.h" gcal-3.6.3/lib/xalloc-die.c0000644000175000017500000000243412076511424012312 00000000000000/* Report a memory allocation failure and exit. Copyright (C) 1997-2000, 2002-2004, 2006, 2009-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 . */ #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-3.6.3/lib/printf-frexpl.h0000644000175000017500000000210312076511424013067 00000000000000/* Split a 'long double' into fraction and mantissa, for hexadecimal printf. Copyright (C) 2007, 2009-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 . */ /* Write a finite, positive number x as x = mantissa * 2^exp where exp >= LDBL_MIN_EXP - 1, mantissa < 2.0, if x is not a denormalized number then mantissa >= 1.0. Store exp in *EXPPTR and return mantissa. */ extern long double printf_frexpl (long double x, int *expptr); gcal-3.6.3/lib/log.c0000644000175000017500000000215412076511424011051 00000000000000/* Logarithm. Copyright (C) 2012-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 . */ #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-3.6.3/lib/spawn_int.h0000644000175000017500000000331412076511424012276 00000000000000/* Copyright (C) 2000, 2008-2013 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-3.6.3/lib/c-strcasecmp.c0000644000175000017500000000317612125375410012657 00000000000000/* -*- buffer-read-only: t -*- vi: set ro: */ /* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* c-strcasecmp.c -- case insensitive string comparator in C locale Copyright (C) 1998-1999, 2005-2006, 2009-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, see . */ #include /* Specification. */ #include "c-strcase.h" #include #include "c-ctype.h" int c_strcasecmp (const char *s1, const char *s2) { register const unsigned char *p1 = (const unsigned char *) s1; register const unsigned char *p2 = (const unsigned char *) s2; unsigned char c1, c2; if (p1 == p2) return 0; do { c1 = c_tolower (*p1); c2 = c_tolower (*p2); if (c1 == '\0') break; ++p1; ++p2; } while (c1 == c2); if (UCHAR_MAX <= INT_MAX) return c1 - c2; else /* On machines where 'char' and 'int' are types of the same size, the difference of two 'unsigned char' values - including the sign bit - doesn't fit in an 'int'. */ return (c1 > c2 ? 1 : c1 < c2 ? -1 : 0); } gcal-3.6.3/lib/stdalign.in.h0000644000175000017500000000665612125375411012521 00000000000000/* -*- buffer-read-only: t -*- vi: set ro: */ /* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* A substitute for ISO C11 . Copyright 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, 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 #if defined __cplusplus template struct __alignof_helper { char __a; __t __b; }; # define _Alignof(type) offsetof (__alignof_helper, __b) #else # define _Alignof(type) offsetof (struct { char __a; type __b; }, __b) #endif #define alignof _Alignof #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 __GNUC__ || __IBMC__ || __IBMCPP__ || 0x5110 <= __SUNPRO_C # define _Alignas(a) __attribute__ ((__aligned__ (a))) #elif 1300 <= _MSC_VER # define _Alignas(a) __declspec (align (a)) #endif #ifdef _Alignas # define alignas _Alignas # define __alignas_is_defined 1 #endif #endif /* _GL_STDALIGN_H */ gcal-3.6.3/lib/pipe.h0000644000175000017500000000011611534672763011242 00000000000000/* Obsolete; consider using spawn-pipe.h instead. */ #include "spawn-pipe.h" gcal-3.6.3/lib/perror.c0000644000175000017500000000276312076511424011607 00000000000000/* Print a message describing error code. Copyright (C) 2008-2013 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-3.6.3/lib/printf-parse.c0000644000175000017500000005332312125375411012705 00000000000000/* -*- buffer-read-only: t -*- vi: set ro: */ /* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* Formatted output to strings. Copyright (C) 1999-2000, 2002-2003, 2006-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, see . */ /* This file can be parametrized with the following macros: CHAR_T The element type of the format string. CHAR_T_ONLY_ASCII Set to 1 to enable verification that all characters in the format string are ASCII. DIRECTIVE Structure denoting a format directive. Depends on CHAR_T. DIRECTIVES Structure denoting the set of format directives of a format string. Depends on CHAR_T. PRINTF_PARSE Function that parses a format string. Depends on CHAR_T. STATIC Set to 'static' to declare the function static. ENABLE_UNISTDIO Set to 1 to enable the unistdio extensions. */ #ifndef PRINTF_PARSE # include #endif /* Specification. */ #ifndef PRINTF_PARSE # include "printf-parse.h" #endif /* Default parameters. */ #ifndef PRINTF_PARSE # define PRINTF_PARSE printf_parse # define CHAR_T char # define DIRECTIVE char_directive # define DIRECTIVES char_directives #endif /* Get size_t, NULL. */ #include /* Get intmax_t. */ #if defined IN_LIBINTL || defined IN_LIBASPRINTF # if HAVE_STDINT_H_WITH_UINTMAX # include # endif # if HAVE_INTTYPES_H_WITH_UINTMAX # include # endif #else # include #endif /* malloc(), realloc(), free(). */ #include /* memcpy(). */ #include /* errno. */ #include /* Checked size_t computations. */ #include "xsize.h" #if CHAR_T_ONLY_ASCII /* c_isascii(). */ # include "c-ctype.h" #endif #ifdef STATIC STATIC #endif int PRINTF_PARSE (const CHAR_T *format, DIRECTIVES *d, arguments *a) { const CHAR_T *cp = format; /* pointer into format */ size_t arg_posn = 0; /* number of regular arguments consumed */ size_t d_allocated; /* allocated elements of d->dir */ size_t a_allocated; /* allocated elements of a->arg */ size_t max_width_length = 0; size_t max_precision_length = 0; d->count = 0; d_allocated = N_DIRECT_ALLOC_DIRECTIVES; d->dir = d->direct_alloc_dir; a->count = 0; a_allocated = N_DIRECT_ALLOC_ARGUMENTS; a->arg = a->direct_alloc_arg; #define REGISTER_ARG(_index_,_type_) \ { \ size_t n = (_index_); \ if (n >= a_allocated) \ { \ size_t memory_size; \ argument *memory; \ \ a_allocated = xtimes (a_allocated, 2); \ if (a_allocated <= n) \ a_allocated = xsum (n, 1); \ memory_size = xtimes (a_allocated, sizeof (argument)); \ if (size_overflow_p (memory_size)) \ /* Overflow, would lead to out of memory. */ \ goto out_of_memory; \ memory = (argument *) (a->arg != a->direct_alloc_arg \ ? realloc (a->arg, memory_size) \ : malloc (memory_size)); \ if (memory == NULL) \ /* Out of memory. */ \ goto out_of_memory; \ if (a->arg == a->direct_alloc_arg) \ memcpy (memory, a->arg, a->count * sizeof (argument)); \ a->arg = memory; \ } \ while (a->count <= n) \ a->arg[a->count++].type = TYPE_NONE; \ if (a->arg[n].type == TYPE_NONE) \ a->arg[n].type = (_type_); \ else if (a->arg[n].type != (_type_)) \ /* Ambiguous type for positional argument. */ \ goto error; \ } while (*cp != '\0') { CHAR_T c = *cp++; if (c == '%') { size_t arg_index = ARG_NONE; DIRECTIVE *dp = &d->dir[d->count]; /* pointer to next directive */ /* Initialize the next directive. */ dp->dir_start = cp - 1; dp->flags = 0; dp->width_start = NULL; dp->width_end = NULL; dp->width_arg_index = ARG_NONE; dp->precision_start = NULL; dp->precision_end = NULL; dp->precision_arg_index = ARG_NONE; dp->arg_index = ARG_NONE; /* Test for positional argument. */ if (*cp >= '0' && *cp <= '9') { const CHAR_T *np; for (np = cp; *np >= '0' && *np <= '9'; np++) ; if (*np == '$') { size_t n = 0; for (np = cp; *np >= '0' && *np <= '9'; np++) n = xsum (xtimes (n, 10), *np - '0'); if (n == 0) /* Positional argument 0. */ goto error; if (size_overflow_p (n)) /* n too large, would lead to out of memory later. */ goto error; arg_index = n - 1; cp = np + 1; } } /* Read the flags. */ for (;;) { if (*cp == '\'') { dp->flags |= FLAG_GROUP; cp++; } else if (*cp == '-') { dp->flags |= FLAG_LEFT; cp++; } else if (*cp == '+') { dp->flags |= FLAG_SHOWSIGN; cp++; } else if (*cp == ' ') { dp->flags |= FLAG_SPACE; cp++; } else if (*cp == '#') { dp->flags |= FLAG_ALT; cp++; } else if (*cp == '0') { dp->flags |= FLAG_ZERO; cp++; } #if __GLIBC__ >= 2 && !defined __UCLIBC__ else if (*cp == 'I') { dp->flags |= FLAG_LOCALIZED; cp++; } #endif else break; } /* Parse the field width. */ if (*cp == '*') { dp->width_start = cp; cp++; dp->width_end = cp; if (max_width_length < 1) max_width_length = 1; /* Test for positional argument. */ if (*cp >= '0' && *cp <= '9') { const CHAR_T *np; for (np = cp; *np >= '0' && *np <= '9'; np++) ; if (*np == '$') { size_t n = 0; for (np = cp; *np >= '0' && *np <= '9'; np++) n = xsum (xtimes (n, 10), *np - '0'); if (n == 0) /* Positional argument 0. */ goto error; if (size_overflow_p (n)) /* n too large, would lead to out of memory later. */ goto error; dp->width_arg_index = n - 1; cp = np + 1; } } if (dp->width_arg_index == ARG_NONE) { dp->width_arg_index = arg_posn++; if (dp->width_arg_index == ARG_NONE) /* arg_posn wrapped around. */ goto error; } REGISTER_ARG (dp->width_arg_index, TYPE_INT); } else if (*cp >= '0' && *cp <= '9') { size_t width_length; dp->width_start = cp; for (; *cp >= '0' && *cp <= '9'; cp++) ; dp->width_end = cp; width_length = dp->width_end - dp->width_start; if (max_width_length < width_length) max_width_length = width_length; } /* Parse the precision. */ if (*cp == '.') { cp++; if (*cp == '*') { dp->precision_start = cp - 1; cp++; dp->precision_end = cp; if (max_precision_length < 2) max_precision_length = 2; /* Test for positional argument. */ if (*cp >= '0' && *cp <= '9') { const CHAR_T *np; for (np = cp; *np >= '0' && *np <= '9'; np++) ; if (*np == '$') { size_t n = 0; for (np = cp; *np >= '0' && *np <= '9'; np++) n = xsum (xtimes (n, 10), *np - '0'); if (n == 0) /* Positional argument 0. */ goto error; if (size_overflow_p (n)) /* n too large, would lead to out of memory later. */ goto error; dp->precision_arg_index = n - 1; cp = np + 1; } } if (dp->precision_arg_index == ARG_NONE) { dp->precision_arg_index = arg_posn++; if (dp->precision_arg_index == ARG_NONE) /* arg_posn wrapped around. */ goto error; } REGISTER_ARG (dp->precision_arg_index, TYPE_INT); } else { size_t precision_length; dp->precision_start = cp - 1; for (; *cp >= '0' && *cp <= '9'; cp++) ; dp->precision_end = cp; precision_length = dp->precision_end - dp->precision_start; if (max_precision_length < precision_length) max_precision_length = precision_length; } } { arg_type type; /* Parse argument type/size specifiers. */ { int flags = 0; for (;;) { if (*cp == 'h') { flags |= (1 << (flags & 1)); cp++; } else if (*cp == 'L') { flags |= 4; cp++; } else if (*cp == 'l') { flags += 8; cp++; } else if (*cp == 'j') { if (sizeof (intmax_t) > sizeof (long)) { /* intmax_t = long long */ flags += 16; } else if (sizeof (intmax_t) > sizeof (int)) { /* intmax_t = long */ flags += 8; } cp++; } else if (*cp == 'z' || *cp == 'Z') { /* 'z' is standardized in ISO C 99, but glibc uses 'Z' because the warning facility in gcc-2.95.2 understands only 'Z' (see gcc-2.95.2/gcc/c-common.c:1784). */ if (sizeof (size_t) > sizeof (long)) { /* size_t = long long */ flags += 16; } else if (sizeof (size_t) > sizeof (int)) { /* size_t = long */ flags += 8; } cp++; } else if (*cp == 't') { if (sizeof (ptrdiff_t) > sizeof (long)) { /* ptrdiff_t = long long */ flags += 16; } else if (sizeof (ptrdiff_t) > sizeof (int)) { /* ptrdiff_t = long */ flags += 8; } cp++; } #if defined __APPLE__ && defined __MACH__ /* On Mac OS X 10.3, PRIdMAX is defined as "qd". We cannot change it to "lld" because PRIdMAX must also be understood by the system's printf routines. */ else if (*cp == 'q') { if (64 / 8 > sizeof (long)) { /* int64_t = long long */ flags += 16; } else { /* int64_t = long */ flags += 8; } cp++; } #endif #if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ /* On native Windows, PRIdMAX is defined as "I64d". We cannot change it to "lld" because PRIdMAX must also be understood by the system's printf routines. */ else if (*cp == 'I' && cp[1] == '6' && cp[2] == '4') { if (64 / 8 > sizeof (long)) { /* __int64 = long long */ flags += 16; } else { /* __int64 = long */ flags += 8; } cp += 3; } #endif else break; } /* Read the conversion character. */ c = *cp++; switch (c) { case 'd': case 'i': #if HAVE_LONG_LONG_INT /* If 'long long' exists and is larger than 'long': */ if (flags >= 16 || (flags & 4)) type = TYPE_LONGLONGINT; else #endif /* If 'long long' exists and is the same as 'long', we parse "lld" into TYPE_LONGINT. */ if (flags >= 8) type = TYPE_LONGINT; else if (flags & 2) type = TYPE_SCHAR; else if (flags & 1) type = TYPE_SHORT; else type = TYPE_INT; break; case 'o': case 'u': case 'x': case 'X': #if HAVE_LONG_LONG_INT /* If 'long long' exists and is larger than 'long': */ if (flags >= 16 || (flags & 4)) type = TYPE_ULONGLONGINT; else #endif /* If 'unsigned long long' exists and is the same as 'unsigned long', we parse "llu" into TYPE_ULONGINT. */ if (flags >= 8) type = TYPE_ULONGINT; else if (flags & 2) type = TYPE_UCHAR; else if (flags & 1) type = TYPE_USHORT; else type = TYPE_UINT; break; case 'f': case 'F': case 'e': case 'E': case 'g': case 'G': case 'a': case 'A': if (flags >= 16 || (flags & 4)) type = TYPE_LONGDOUBLE; else type = TYPE_DOUBLE; break; case 'c': if (flags >= 8) #if HAVE_WINT_T type = TYPE_WIDE_CHAR; #else goto error; #endif else type = TYPE_CHAR; break; #if HAVE_WINT_T case 'C': type = TYPE_WIDE_CHAR; c = 'c'; break; #endif case 's': if (flags >= 8) #if HAVE_WCHAR_T type = TYPE_WIDE_STRING; #else goto error; #endif else type = TYPE_STRING; break; #if HAVE_WCHAR_T case 'S': type = TYPE_WIDE_STRING; c = 's'; break; #endif case 'p': type = TYPE_POINTER; break; case 'n': #if HAVE_LONG_LONG_INT /* If 'long long' exists and is larger than 'long': */ if (flags >= 16 || (flags & 4)) type = TYPE_COUNT_LONGLONGINT_POINTER; else #endif /* If 'long long' exists and is the same as 'long', we parse "lln" into TYPE_COUNT_LONGINT_POINTER. */ if (flags >= 8) type = TYPE_COUNT_LONGINT_POINTER; else if (flags & 2) type = TYPE_COUNT_SCHAR_POINTER; else if (flags & 1) type = TYPE_COUNT_SHORT_POINTER; else type = TYPE_COUNT_INT_POINTER; break; #if ENABLE_UNISTDIO /* The unistdio extensions. */ case 'U': if (flags >= 16) type = TYPE_U32_STRING; else if (flags >= 8) type = TYPE_U16_STRING; else type = TYPE_U8_STRING; break; #endif case '%': type = TYPE_NONE; break; default: /* Unknown conversion character. */ goto error; } } if (type != TYPE_NONE) { dp->arg_index = arg_index; if (dp->arg_index == ARG_NONE) { dp->arg_index = arg_posn++; if (dp->arg_index == ARG_NONE) /* arg_posn wrapped around. */ goto error; } REGISTER_ARG (dp->arg_index, type); } dp->conversion = c; dp->dir_end = cp; } d->count++; if (d->count >= d_allocated) { size_t memory_size; DIRECTIVE *memory; d_allocated = xtimes (d_allocated, 2); memory_size = xtimes (d_allocated, sizeof (DIRECTIVE)); if (size_overflow_p (memory_size)) /* Overflow, would lead to out of memory. */ goto out_of_memory; memory = (DIRECTIVE *) (d->dir != d->direct_alloc_dir ? realloc (d->dir, memory_size) : malloc (memory_size)); if (memory == NULL) /* Out of memory. */ goto out_of_memory; if (d->dir == d->direct_alloc_dir) memcpy (memory, d->dir, d->count * sizeof (DIRECTIVE)); d->dir = memory; } } #if CHAR_T_ONLY_ASCII else if (!c_isascii (c)) { /* Non-ASCII character. Not supported. */ goto error; } #endif } d->dir[d->count].dir_start = cp; d->max_width_length = max_width_length; d->max_precision_length = max_precision_length; return 0; error: if (a->arg != a->direct_alloc_arg) free (a->arg); if (d->dir != d->direct_alloc_dir) free (d->dir); errno = EINVAL; return -1; out_of_memory: if (a->arg != a->direct_alloc_arg) free (a->arg); if (d->dir != d->direct_alloc_dir) free (d->dir); errno = ENOMEM; return -1; } #undef PRINTF_PARSE #undef DIRECTIVES #undef DIRECTIVE #undef CHAR_T_ONLY_ASCII #undef CHAR_T gcal-3.6.3/lib/fstat.c0000644000175000017500000000460512076511424011414 00000000000000/* fstat() replacement. Copyright (C) 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 . */ /* 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-3.6.3/lib/signbitd.c0000644000175000017500000000406612076511424012077 00000000000000/* signbit() macro: Determine the sign bit of a floating-point number. Copyright (C) 2007-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 . */ #include /* Specification. */ #include #include #include "isnand-nolibm.h" #include "float+.h" #ifdef gl_signbitd_OPTIMIZED_MACRO # undef gl_signbitd #endif int gl_signbitd (double arg) { #if defined DBL_SIGNBIT_WORD && defined DBL_SIGNBIT_BIT /* The use of a union to extract the bits of the representation of a 'long double' is safe in practice, despite of the "aliasing rules" of C99, because the GCC docs say "Even with '-fstrict-aliasing', type-punning is allowed, provided the memory is accessed through the union type." and similarly for other compilers. */ # define NWORDS \ ((sizeof (double) + sizeof (unsigned int) - 1) / sizeof (unsigned int)) union { double value; unsigned int word[NWORDS]; } m; m.value = arg; return (m.word[DBL_SIGNBIT_WORD] >> DBL_SIGNBIT_BIT) & 1; #elif HAVE_COPYSIGN_IN_LIBC return copysign (1.0, arg) < 0; #else /* This does not do the right thing for NaN, but this is irrelevant for most use cases. */ if (isnand (arg)) return 0; if (arg < 0.0) return 1; else if (arg == 0.0) { /* Distinguish 0.0 and -0.0. */ static double plus_zero = 0.0; double arg_mem = arg; return (memcmp (&plus_zero, &arg_mem, SIZEOF_DBL) != 0); } else return 0; #endif } gcal-3.6.3/lib/rawmemchr.valgrind0000644000175000017500000000040311534672763013650 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-3.6.3/lib/fflush.c0000644000175000017500000001647312076511424011570 00000000000000/* fflush.c -- allow flushing input streams Copyright (C) 2007-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 . */ /* 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__ /* FreeBSD, NetBSD, OpenBSD, DragonFly, Mac OS X, Cygwin */ 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, 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 __SNPT /* FreeBSD, NetBSD, OpenBSD, DragonFly, Mac OS X, Cygwin */ 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__ /* FreeBSD, NetBSD, OpenBSD, DragonFly, Mac OS X, Cygwin */ # 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 __SNPT /* FreeBSD, NetBSD, OpenBSD, DragonFly, Mac OS X, Cygwin */ { /* 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-3.6.3/lib/strchrnul.c0000644000175000017500000001301512076511424012312 00000000000000/* Searching in a string. Copyright (C) 2003, 2007-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 . */ #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-3.6.3/lib/c-strcase.h0000644000175000017500000000414612125375410012162 00000000000000/* -*- buffer-read-only: t -*- vi: set ro: */ /* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* Case-insensitive string comparison functions in C locale. Copyright (C) 1995-1996, 2001, 2003, 2005, 2009-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, see . */ #ifndef C_STRCASE_H #define C_STRCASE_H #include /* The functions defined in this file assume the "C" locale and a character set without diacritics (ASCII-US or EBCDIC-US or something like that). Even if the "C" locale on a particular system is an extension of the ASCII character set (like on BeOS, where it is UTF-8, or on AmigaOS, where it is ISO-8859-1), the functions in this file recognize only the ASCII characters. More precisely, one of the string arguments must be an ASCII string; the other one can also contain non-ASCII characters (but then the comparison result will be nonzero). */ #ifdef __cplusplus extern "C" { #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. */ extern int c_strcasecmp (const char *s1, const char *s2) _GL_ATTRIBUTE_PURE; /* Compare no more than N characters 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. */ extern int c_strncasecmp (const char *s1, const char *s2, size_t n) _GL_ATTRIBUTE_PURE; #ifdef __cplusplus } #endif #endif /* C_STRCASE_H */ gcal-3.6.3/lib/iconv_open-solaris.h0000644000175000017500000001563412125376132014115 00000000000000/* ANSI-C code produced by gperf version 3.0.3 */ /* Command-line: gperf -m 10 ./iconv_open-solaris.gperf */ /* Computed positions: -k'10' */ #if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \ && ('%' == 37) && ('&' == 38) && ('\'' == 39) && ('(' == 40) \ && (')' == 41) && ('*' == 42) && ('+' == 43) && (',' == 44) \ && ('-' == 45) && ('.' == 46) && ('/' == 47) && ('0' == 48) \ && ('1' == 49) && ('2' == 50) && ('3' == 51) && ('4' == 52) \ && ('5' == 53) && ('6' == 54) && ('7' == 55) && ('8' == 56) \ && ('9' == 57) && (':' == 58) && (';' == 59) && ('<' == 60) \ && ('=' == 61) && ('>' == 62) && ('?' == 63) && ('A' == 65) \ && ('B' == 66) && ('C' == 67) && ('D' == 68) && ('E' == 69) \ && ('F' == 70) && ('G' == 71) && ('H' == 72) && ('I' == 73) \ && ('J' == 74) && ('K' == 75) && ('L' == 76) && ('M' == 77) \ && ('N' == 78) && ('O' == 79) && ('P' == 80) && ('Q' == 81) \ && ('R' == 82) && ('S' == 83) && ('T' == 84) && ('U' == 85) \ && ('V' == 86) && ('W' == 87) && ('X' == 88) && ('Y' == 89) \ && ('Z' == 90) && ('[' == 91) && ('\\' == 92) && (']' == 93) \ && ('^' == 94) && ('_' == 95) && ('a' == 97) && ('b' == 98) \ && ('c' == 99) && ('d' == 100) && ('e' == 101) && ('f' == 102) \ && ('g' == 103) && ('h' == 104) && ('i' == 105) && ('j' == 106) \ && ('k' == 107) && ('l' == 108) && ('m' == 109) && ('n' == 110) \ && ('o' == 111) && ('p' == 112) && ('q' == 113) && ('r' == 114) \ && ('s' == 115) && ('t' == 116) && ('u' == 117) && ('v' == 118) \ && ('w' == 119) && ('x' == 120) && ('y' == 121) && ('z' == 122) \ && ('{' == 123) && ('|' == 124) && ('}' == 125) && ('~' == 126)) /* The character set is not based on ISO-646. */ #error "gperf generated tables don't work with this execution character set. Please report a bug to ." #endif #line 1 "./iconv_open-solaris.gperf" struct mapping { int standard_name; const char vendor_name[10 + 1]; }; #define TOTAL_KEYWORDS 13 #define MIN_WORD_LENGTH 5 #define MAX_WORD_LENGTH 11 #define MIN_HASH_VALUE 5 #define MAX_HASH_VALUE 19 /* maximum key range = 15, duplicates = 0 */ #ifdef __GNUC__ __inline #else #ifdef __cplusplus inline #endif #endif static unsigned int mapping_hash (register const char *str, register unsigned int len) { static const unsigned char asso_values[] = { 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 0, 9, 8, 7, 6, 5, 4, 3, 2, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20 }; register int hval = len; switch (hval) { default: hval += asso_values[(unsigned char)str[9]]; /*FALLTHROUGH*/ case 9: case 8: case 7: case 6: case 5: break; } return hval; } struct stringpool_t { char stringpool_str5[sizeof("ASCII")]; char stringpool_str6[sizeof("CP1251")]; char stringpool_str7[sizeof("$ abc")]; char stringpool_str10[sizeof("ISO-8859-1")]; char stringpool_str11[sizeof("ISO-8859-15")]; char stringpool_str12[sizeof("ISO-8859-9")]; char stringpool_str13[sizeof("ISO-8859-8")]; char stringpool_str14[sizeof("ISO-8859-7")]; char stringpool_str15[sizeof("ISO-8859-6")]; char stringpool_str16[sizeof("ISO-8859-5")]; char stringpool_str17[sizeof("ISO-8859-4")]; char stringpool_str18[sizeof("ISO-8859-3")]; char stringpool_str19[sizeof("ISO-8859-2")]; }; static const struct stringpool_t stringpool_contents = { "ASCII", "CP1251", "$ abc", "ISO-8859-1", "ISO-8859-15", "ISO-8859-9", "ISO-8859-8", "ISO-8859-7", "ISO-8859-6", "ISO-8859-5", "ISO-8859-4", "ISO-8859-3", "ISO-8859-2" }; #define stringpool ((const char *) &stringpool_contents) static const struct mapping mappings[] = { {-1}, {-1}, {-1}, {-1}, {-1}, #line 19 "./iconv_open-solaris.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str5, "646"}, #line 30 "./iconv_open-solaris.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str6, "ansi-1251"}, #line 18 "./iconv_open-solaris.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str7}, {-1}, {-1}, #line 20 "./iconv_open-solaris.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str10, "ISO8859-1"}, #line 29 "./iconv_open-solaris.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str11, "ISO8859-15"}, #line 28 "./iconv_open-solaris.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str12, "ISO8859-9"}, #line 27 "./iconv_open-solaris.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str13, "ISO8859-8"}, #line 26 "./iconv_open-solaris.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str14, "ISO8859-7"}, #line 25 "./iconv_open-solaris.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str15, "ISO8859-6"}, #line 24 "./iconv_open-solaris.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str16, "ISO8859-5"}, #line 23 "./iconv_open-solaris.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str17, "ISO8859-4"}, #line 22 "./iconv_open-solaris.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str18, "ISO8859-3"}, #line 21 "./iconv_open-solaris.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str19, "ISO8859-2"} }; #ifdef __GNUC__ __inline #ifdef __GNUC_STDC_INLINE__ __attribute__ ((__gnu_inline__)) #endif #endif const struct mapping * mapping_lookup (register const char *str, register unsigned int len) { if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH) { register int key = mapping_hash (str, len); if (key <= MAX_HASH_VALUE && key >= 0) { register int o = mappings[key].standard_name; if (o >= 0) { register const char *s = o + stringpool; if (*str == *s && !strcmp (str + 1, s + 1)) return &mappings[key]; } } } return 0; } gcal-3.6.3/lib/signbitf.c0000644000175000017500000000407712076511424012103 00000000000000/* signbit() macro: Determine the sign bit of a floating-point number. Copyright (C) 2007, 2009-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 . */ #include /* Specification. */ #include #include #include "isnanf-nolibm.h" #include "float+.h" #ifdef gl_signbitf_OPTIMIZED_MACRO # undef gl_signbitf #endif int gl_signbitf (float arg) { #if defined FLT_SIGNBIT_WORD && defined FLT_SIGNBIT_BIT /* The use of a union to extract the bits of the representation of a 'long double' is safe in practice, despite of the "aliasing rules" of C99, because the GCC docs say "Even with '-fstrict-aliasing', type-punning is allowed, provided the memory is accessed through the union type." and similarly for other compilers. */ # define NWORDS \ ((sizeof (float) + sizeof (unsigned int) - 1) / sizeof (unsigned int)) union { float value; unsigned int word[NWORDS]; } m; m.value = arg; return (m.word[FLT_SIGNBIT_WORD] >> FLT_SIGNBIT_BIT) & 1; #elif HAVE_COPYSIGNF_IN_LIBC return copysignf (1.0f, arg) < 0; #else /* This does not do the right thing for NaN, but this is irrelevant for most use cases. */ if (isnanf (arg)) return 0; if (arg < 0.0f) return 1; else if (arg == 0.0f) { /* Distinguish 0.0f and -0.0f. */ static float plus_zero = 0.0f; float arg_mem = arg; return (memcmp (&plus_zero, &arg_mem, SIZEOF_FLT) != 0); } else return 0; #endif } gcal-3.6.3/lib/sys_time.in.h0000644000175000017500000001701112125375411012533 00000000000000/* -*- buffer-read-only: t -*- vi: set ro: */ /* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* Provide a more complete sys/time.h. Copyright (C) 2007-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, see . */ /* Written by Paul Eggert. */ #ifndef _@GUARD_PREFIX@_SYS_TIME_H #if __GNUC__ >= 3 @PRAGMA_SYSTEM_HEADER@ #endif @PRAGMA_COLUMNS@ /* On Cygwin, 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 . */ #ifdef _CYGWIN_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); #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-3.6.3/lib/regex_internal.c0000644000175000017500000013716012125375411013303 00000000000000/* -*- buffer-read-only: t -*- vi: set ro: */ /* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* Extended regular expression matching and search library. Copyright (C) 2002-2013 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 = wc; if (iswlower (wc)) { size_t mbcdlen; wcu = towupper (wc); 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 = wc; if (iswlower (wc)) { size_t mbcdlen; wcu = towupper (wc); 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]; if (islower (ch)) pstr->mbs[char_idx] = toupper (ch); else pstr->mbs[char_idx] = 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 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 (! REG_VALID_INDEX (idx), 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) { #ifdef DEBUG /* It must not happen. */ assert (REG_VALID_INDEX (wc_idx)); #endif --wc_idx; if (! REG_VALID_INDEX (wc_idx)) 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 (REG_VALID_INDEX (id) && dest->elems[id] > src1->elems[i1]) --id; if (! REG_VALID_INDEX (id) || dest->elems[id] != src1->elems[i1]) dest->elems[--sbase] = src1->elems[i1]; if (! REG_VALID_INDEX (--i1) || ! REG_VALID_INDEX (--i2)) break; } /* Lower the highest of the two items. */ else if (src1->elems[i1] < src2->elems[i2]) { if (! REG_VALID_INDEX (--i2)) break; } else { if (! REG_VALID_INDEX (--i1)) 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 && REG_VALID_INDEX (id)) 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 (! REG_VALID_INDEX (--id)) 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; REG_VALID_INDEX (is) && REG_VALID_INDEX (id); ) { 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 (REG_VALID_INDEX (is)) { /* 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 (! REG_VALID_INDEX (--id)) { /* 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 ; REG_VALID_INDEX (--i) ; ) 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 (! REG_VALID_NONZERO_INDEX (set->nelem)) 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 REG_MISSING 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 REG_MISSING; new_nodes = re_realloc (dfa->nodes, re_token_t, new_nodes_alloc); if (BE (new_nodes == NULL, 0)) return REG_MISSING; 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)) return REG_MISSING; 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] = REG_MISSING; 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; #ifdef 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; #ifdef 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-3.6.3/lib/iconv_open-osf.h0000644000175000017500000002544112125376132013225 00000000000000/* ANSI-C code produced by gperf version 3.0.3 */ /* Command-line: gperf -m 10 ./iconv_open-osf.gperf */ /* Computed positions: -k'4,$' */ #if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \ && ('%' == 37) && ('&' == 38) && ('\'' == 39) && ('(' == 40) \ && (')' == 41) && ('*' == 42) && ('+' == 43) && (',' == 44) \ && ('-' == 45) && ('.' == 46) && ('/' == 47) && ('0' == 48) \ && ('1' == 49) && ('2' == 50) && ('3' == 51) && ('4' == 52) \ && ('5' == 53) && ('6' == 54) && ('7' == 55) && ('8' == 56) \ && ('9' == 57) && (':' == 58) && (';' == 59) && ('<' == 60) \ && ('=' == 61) && ('>' == 62) && ('?' == 63) && ('A' == 65) \ && ('B' == 66) && ('C' == 67) && ('D' == 68) && ('E' == 69) \ && ('F' == 70) && ('G' == 71) && ('H' == 72) && ('I' == 73) \ && ('J' == 74) && ('K' == 75) && ('L' == 76) && ('M' == 77) \ && ('N' == 78) && ('O' == 79) && ('P' == 80) && ('Q' == 81) \ && ('R' == 82) && ('S' == 83) && ('T' == 84) && ('U' == 85) \ && ('V' == 86) && ('W' == 87) && ('X' == 88) && ('Y' == 89) \ && ('Z' == 90) && ('[' == 91) && ('\\' == 92) && (']' == 93) \ && ('^' == 94) && ('_' == 95) && ('a' == 97) && ('b' == 98) \ && ('c' == 99) && ('d' == 100) && ('e' == 101) && ('f' == 102) \ && ('g' == 103) && ('h' == 104) && ('i' == 105) && ('j' == 106) \ && ('k' == 107) && ('l' == 108) && ('m' == 109) && ('n' == 110) \ && ('o' == 111) && ('p' == 112) && ('q' == 113) && ('r' == 114) \ && ('s' == 115) && ('t' == 116) && ('u' == 117) && ('v' == 118) \ && ('w' == 119) && ('x' == 120) && ('y' == 121) && ('z' == 122) \ && ('{' == 123) && ('|' == 124) && ('}' == 125) && ('~' == 126)) /* The character set is not based on ISO-646. */ #error "gperf generated tables don't work with this execution character set. Please report a bug to ." #endif #line 1 "./iconv_open-osf.gperf" struct mapping { int standard_name; const char vendor_name[10 + 1]; }; #define TOTAL_KEYWORDS 38 #define MIN_WORD_LENGTH 4 #define MAX_WORD_LENGTH 11 #define MIN_HASH_VALUE 6 #define MAX_HASH_VALUE 47 /* maximum key range = 42, duplicates = 0 */ #ifdef __GNUC__ __inline #else #ifdef __cplusplus inline #endif #endif static unsigned int mapping_hash (register const char *str, register unsigned int len) { static const unsigned char asso_values[] = { 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 2, 29, 24, 34, 31, 0, 15, 14, 10, 13, 2, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 7, 48, 48, 48, 48, 48, 48, 11, 48, 2, 7, 48, 48, 48, 1, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48 }; return len + asso_values[(unsigned char)str[3]+3] + asso_values[(unsigned char)str[len - 1]]; } struct stringpool_t { char stringpool_str6[sizeof("CP1255")]; char stringpool_str7[sizeof("CP775")]; char stringpool_str8[sizeof("CP1250")]; char stringpool_str9[sizeof("EUC-TW")]; char stringpool_str10[sizeof("EUC-KR")]; char stringpool_str11[sizeof("TIS-620")]; char stringpool_str12[sizeof("ISO-8859-5")]; char stringpool_str13[sizeof("ISO-8859-15")]; char stringpool_str14[sizeof("BIG5")]; char stringpool_str15[sizeof("CP855")]; char stringpool_str16[sizeof("CP1258")]; char stringpool_str17[sizeof("CP850")]; char stringpool_str18[sizeof("CP865")]; char stringpool_str19[sizeof("EUC-JP")]; char stringpool_str20[sizeof("CP1257")]; char stringpool_str21[sizeof("CP1256")]; char stringpool_str22[sizeof("ISO-8859-8")]; char stringpool_str23[sizeof("SHIFT_JIS")]; char stringpool_str25[sizeof("ISO-8859-9")]; char stringpool_str26[sizeof("ISO-8859-7")]; char stringpool_str27[sizeof("ISO-8859-6")]; char stringpool_str29[sizeof("CP857")]; char stringpool_str30[sizeof("CP1252")]; char stringpool_str31[sizeof("CP869")]; char stringpool_str32[sizeof("CP949")]; char stringpool_str33[sizeof("CP866")]; char stringpool_str34[sizeof("CP437")]; char stringpool_str35[sizeof("CP1251")]; char stringpool_str36[sizeof("ISO-8859-2")]; char stringpool_str37[sizeof("CP1254")]; char stringpool_str38[sizeof("CP874")]; char stringpool_str39[sizeof("CP852")]; char stringpool_str40[sizeof("CP1253")]; char stringpool_str41[sizeof("ISO-8859-1")]; char stringpool_str42[sizeof("CP862")]; char stringpool_str43[sizeof("ISO-8859-4")]; char stringpool_str46[sizeof("ISO-8859-3")]; char stringpool_str47[sizeof("CP861")]; }; static const struct stringpool_t stringpool_contents = { "CP1255", "CP775", "CP1250", "EUC-TW", "EUC-KR", "TIS-620", "ISO-8859-5", "ISO-8859-15", "BIG5", "CP855", "CP1258", "CP850", "CP865", "EUC-JP", "CP1257", "CP1256", "ISO-8859-8", "SHIFT_JIS", "ISO-8859-9", "ISO-8859-7", "ISO-8859-6", "CP857", "CP1252", "CP869", "CP949", "CP866", "CP437", "CP1251", "ISO-8859-2", "CP1254", "CP874", "CP852", "CP1253", "ISO-8859-1", "CP862", "ISO-8859-4", "ISO-8859-3", "CP861" }; #define stringpool ((const char *) &stringpool_contents) static const struct mapping mappings[] = { {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, #line 41 "./iconv_open-osf.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str6, "cp1255"}, #line 24 "./iconv_open-osf.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str7, "cp775"}, #line 36 "./iconv_open-osf.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str8, "cp1250"}, #line 47 "./iconv_open-osf.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str9, "eucTW"}, #line 46 "./iconv_open-osf.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str10, "eucKR"}, #line 50 "./iconv_open-osf.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str11, "TACTIS"}, #line 17 "./iconv_open-osf.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str12, "ISO8859-5"}, #line 22 "./iconv_open-osf.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str13, "ISO8859-15"}, #line 48 "./iconv_open-osf.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str14, "big5"}, #line 27 "./iconv_open-osf.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str15, "cp855"}, #line 44 "./iconv_open-osf.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str16, "cp1258"}, #line 25 "./iconv_open-osf.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str17, "cp850"}, #line 31 "./iconv_open-osf.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str18, "cp865"}, #line 45 "./iconv_open-osf.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str19, "eucJP"}, #line 43 "./iconv_open-osf.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str20, "cp1257"}, #line 42 "./iconv_open-osf.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str21, "cp1256"}, #line 20 "./iconv_open-osf.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str22, "ISO8859-8"}, #line 49 "./iconv_open-osf.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str23, "SJIS"}, {-1}, #line 21 "./iconv_open-osf.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str25, "ISO8859-9"}, #line 19 "./iconv_open-osf.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str26, "ISO8859-7"}, #line 18 "./iconv_open-osf.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str27, "ISO8859-6"}, {-1}, #line 28 "./iconv_open-osf.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str29, "cp857"}, #line 38 "./iconv_open-osf.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str30, "cp1252"}, #line 33 "./iconv_open-osf.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str31, "cp869"}, #line 35 "./iconv_open-osf.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str32, "KSC5601"}, #line 32 "./iconv_open-osf.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str33, "cp866"}, #line 23 "./iconv_open-osf.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str34, "cp437"}, #line 37 "./iconv_open-osf.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str35, "cp1251"}, #line 14 "./iconv_open-osf.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str36, "ISO8859-2"}, #line 40 "./iconv_open-osf.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str37, "cp1254"}, #line 34 "./iconv_open-osf.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str38, "cp874"}, #line 26 "./iconv_open-osf.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str39, "cp852"}, #line 39 "./iconv_open-osf.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str40, "cp1253"}, #line 13 "./iconv_open-osf.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str41, "ISO8859-1"}, #line 30 "./iconv_open-osf.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str42, "cp862"}, #line 16 "./iconv_open-osf.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str43, "ISO8859-4"}, {-1}, {-1}, #line 15 "./iconv_open-osf.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str46, "ISO8859-3"}, #line 29 "./iconv_open-osf.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str47, "cp861"} }; #ifdef __GNUC__ __inline #ifdef __GNUC_STDC_INLINE__ __attribute__ ((__gnu_inline__)) #endif #endif const struct mapping * mapping_lookup (register const char *str, register unsigned int len) { if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH) { register int key = mapping_hash (str, len); if (key <= MAX_HASH_VALUE && key >= 0) { register int o = mappings[key].standard_name; if (o >= 0) { register const char *s = o + stringpool; if (*str == *s && !strcmp (str + 1, s + 1)) return &mappings[key]; } } } return 0; } gcal-3.6.3/lib/iconv_open-solaris.gperf0000644000175000017500000000154311534672763014777 00000000000000struct mapping { int standard_name; const char vendor_name[10 + 1]; }; %struct-type %language=ANSI-C %define slot-name standard_name %define hash-function-name mapping_hash %define lookup-function-name mapping_lookup %readonly-tables %global-table %define word-array-name mappings %pic %% # On Solaris 10, look in the "iconv -l" output. Some aliases are advertised but # not actually supported by the iconv() function and by the 'iconv' program. # For example: # $ echo abc | iconv -f 646 -t ISO-8859-1 # Not supported 646 to ISO-8859-1 # $ echo abc | iconv -f 646 -t ISO8859-1 $ abc ASCII, "646" ISO-8859-1, "ISO8859-1" ISO-8859-2, "ISO8859-2" ISO-8859-3, "ISO8859-3" ISO-8859-4, "ISO8859-4" ISO-8859-5, "ISO8859-5" ISO-8859-6, "ISO8859-6" ISO-8859-7, "ISO8859-7" ISO-8859-8, "ISO8859-8" ISO-8859-9, "ISO8859-9" ISO-8859-15, "ISO8859-15" CP1251, "ansi-1251" gcal-3.6.3/lib/stdio.in.h0000644000175000017500000014055212125375411012030 00000000000000/* -*- buffer-read-only: t -*- vi: set ro: */ /* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* A GNU-like . Copyright (C) 2004, 2007-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, 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. */ #define _GL_ATTRIBUTE_FORMAT_PRINTF_SYSTEM(formatstring_parameter, first_argument) \ _GL_ATTRIBUTE_FORMAT ((__printf__, formatstring_parameter, first_argument)) /* _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 /* 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) #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 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 # define fwrite(a, b, c, d) ({size_t __r = fwrite (a, b, c, d); __r; }) # 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 _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-3.6.3/lib/wctype-h.c0000644000175000017500000000023312057472163012031 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-3.6.3/lib/sched.in.h0000644000175000017500000000312512076511424011767 00000000000000/* Replacement for platforms that lack it. Copyright (C) 2008-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 . */ #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@ # @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 #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-3.6.3/lib/open.c0000644000175000017500000001375512076511424011242 00000000000000/* Open a descriptor to a file. Copyright (C) 2007-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 . */ /* 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-3.6.3/lib/float.c0000644000175000017500000000250412076511424011374 00000000000000/* Auxiliary definitions for . Copyright (C) 2011-2013 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-3.6.3/lib/printf-frexp.c0000644000175000017500000001231612076511424012715 00000000000000/* Split a double into fraction and mantissa, for hexadecimal printf. Copyright (C) 2007, 2009-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 . */ #if ! defined USE_LONG_DOUBLE # include #endif /* Specification. */ #ifdef USE_LONG_DOUBLE # include "printf-frexpl.h" #else # include "printf-frexp.h" #endif #include #include #ifdef USE_LONG_DOUBLE # include "fpucw.h" #endif /* This file assumes FLT_RADIX = 2. If FLT_RADIX is a power of 2 greater than 2, or not even a power of 2, some rounding errors can occur, so that then the returned mantissa is only guaranteed to be <= 2.0, not < 2.0. */ #ifdef USE_LONG_DOUBLE # define FUNC printf_frexpl # define DOUBLE long double # define MIN_EXP LDBL_MIN_EXP # if HAVE_FREXPL_IN_LIBC && HAVE_LDEXPL_IN_LIBC # define USE_FREXP_LDEXP # define FREXP frexpl # define LDEXP ldexpl # endif # define DECL_ROUNDING DECL_LONG_DOUBLE_ROUNDING # define BEGIN_ROUNDING() BEGIN_LONG_DOUBLE_ROUNDING () # define END_ROUNDING() END_LONG_DOUBLE_ROUNDING () # define L_(literal) literal##L #else # define FUNC printf_frexp # define DOUBLE double # define MIN_EXP DBL_MIN_EXP # if HAVE_FREXP_IN_LIBC && HAVE_LDEXP_IN_LIBC # define USE_FREXP_LDEXP # define FREXP frexp # define LDEXP ldexp # endif # define DECL_ROUNDING # define BEGIN_ROUNDING() # define END_ROUNDING() # define L_(literal) literal #endif DOUBLE FUNC (DOUBLE x, int *expptr) { int exponent; DECL_ROUNDING BEGIN_ROUNDING (); #ifdef USE_FREXP_LDEXP /* frexp and ldexp are usually faster than the loop below. */ x = FREXP (x, &exponent); x = x + x; exponent -= 1; if (exponent < MIN_EXP - 1) { x = LDEXP (x, exponent - (MIN_EXP - 1)); exponent = MIN_EXP - 1; } #else { /* Since the exponent is an 'int', it fits in 64 bits. Therefore the loops are executed no more than 64 times. */ DOUBLE pow2[64]; /* pow2[i] = 2^2^i */ DOUBLE powh[64]; /* powh[i] = 2^-2^i */ int i; exponent = 0; if (x >= L_(1.0)) { /* A nonnegative exponent. */ { DOUBLE pow2_i; /* = pow2[i] */ DOUBLE powh_i; /* = powh[i] */ /* Invariants: pow2_i = 2^2^i, powh_i = 2^-2^i, x * 2^exponent = argument, x >= 1.0. */ for (i = 0, pow2_i = L_(2.0), powh_i = L_(0.5); ; i++, pow2_i = pow2_i * pow2_i, powh_i = powh_i * powh_i) { if (x >= pow2_i) { exponent += (1 << i); x *= powh_i; } else break; pow2[i] = pow2_i; powh[i] = powh_i; } } /* Here 1.0 <= x < 2^2^i. */ } else { /* A negative exponent. */ { DOUBLE pow2_i; /* = pow2[i] */ DOUBLE powh_i; /* = powh[i] */ /* Invariants: pow2_i = 2^2^i, powh_i = 2^-2^i, x * 2^exponent = argument, x < 1.0, exponent >= MIN_EXP - 1. */ for (i = 0, pow2_i = L_(2.0), powh_i = L_(0.5); ; i++, pow2_i = pow2_i * pow2_i, powh_i = powh_i * powh_i) { if (exponent - (1 << i) < MIN_EXP - 1) break; exponent -= (1 << i); x *= pow2_i; if (x >= L_(1.0)) break; pow2[i] = pow2_i; powh[i] = powh_i; } } /* Here either x < 1.0 and exponent - 2^i < MIN_EXP - 1 <= exponent, or 1.0 <= x < 2^2^i and exponent >= MIN_EXP - 1. */ if (x < L_(1.0)) /* Invariants: x * 2^exponent = argument, x < 1.0 and exponent - 2^i < MIN_EXP - 1 <= exponent. */ while (i > 0) { i--; if (exponent - (1 << i) >= MIN_EXP - 1) { exponent -= (1 << i); x *= pow2[i]; if (x >= L_(1.0)) break; } } /* Here either x < 1.0 and exponent = MIN_EXP - 1, or 1.0 <= x < 2^2^i and exponent >= MIN_EXP - 1. */ } /* Invariants: x * 2^exponent = argument, and either x < 1.0 and exponent = MIN_EXP - 1, or 1.0 <= x < 2^2^i and exponent >= MIN_EXP - 1. */ while (i > 0) { i--; if (x >= pow2[i]) { exponent += (1 << i); x *= powh[i]; } } /* Here either x < 1.0 and exponent = MIN_EXP - 1, or 1.0 <= x < 2.0 and exponent >= MIN_EXP - 1. */ } #endif END_ROUNDING (); *expptr = exponent; return x; } gcal-3.6.3/lib/cloexec.c0000644000175000017500000000442712076511423011716 00000000000000/* closexec.c - set or clear the close-on-exec descriptor flag Copyright (C) 1991, 2004-2006, 2009-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 . 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-3.6.3/lib/xalloc.h0000644000175000017500000001670212076511424011563 00000000000000/* xalloc.h -- malloc with out-of-memory checking Copyright (C) 1990-2000, 2003-2004, 2006-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 . */ #ifndef XALLOC_H_ #define XALLOC_H_ #include #include "xalloc-oversized.h" _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 __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_MALLOC _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. *PN must be nonzero unless P is null, and 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 = ceil (1.5 * N) so that progress is made if N == 1. Check for overflow, so that N * S stays in size_t range. The check is slightly conservative, but an exact check isn't worth the trouble. */ if ((size_t) -1 / 3 * 2 / s <= n) xalloc_die (); n += (n + 1) / 2; } *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 #endif /* !XALLOC_H_ */ gcal-3.6.3/lib/iconv_open-aix.gperf0000644000175000017500000000172411534672763014105 00000000000000struct mapping { int standard_name; const char vendor_name[10 + 1]; }; %struct-type %language=ANSI-C %define slot-name standard_name %define hash-function-name mapping_hash %define lookup-function-name mapping_lookup %readonly-tables %global-table %define word-array-name mappings %pic %% # On AIX 5.1, look in /usr/lib/nls/loc/uconvTable. ISO-8859-1, "ISO8859-1" ISO-8859-2, "ISO8859-2" ISO-8859-3, "ISO8859-3" ISO-8859-4, "ISO8859-4" ISO-8859-5, "ISO8859-5" ISO-8859-6, "ISO8859-6" ISO-8859-7, "ISO8859-7" ISO-8859-8, "ISO8859-8" ISO-8859-9, "ISO8859-9" ISO-8859-15, "ISO8859-15" CP437, "IBM-437" CP850, "IBM-850" CP852, "IBM-852" CP856, "IBM-856" CP857, "IBM-857" CP861, "IBM-861" CP865, "IBM-865" CP869, "IBM-869" ISO-8859-13, "IBM-921" CP922, "IBM-922" CP932, "IBM-932" CP943, "IBM-943" CP1046, "IBM-1046" CP1124, "IBM-1124" CP1125, "IBM-1125" CP1129, "IBM-1129" CP1252, "IBM-1252" GB2312, "IBM-eucCN" EUC-JP, "IBM-eucJP" EUC-KR, "IBM-eucKR" EUC-TW, "IBM-eucTW" BIG5, "big5" gcal-3.6.3/lib/Makefile.in0000644000175000017500000055613512125375435012213 00000000000000# Makefile.in generated by automake 1.11.6 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 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) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, # 2004, 2005, 2006, 2007, 2009, 2010, 2011, 2013 Free Software # Foundation, Inc. # Copyright (C) 2002-2013 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 --dir=. --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 git-version-gen ioctl langinfo link list locale log log10 malloc mkostemp nl_langinfo open perror pipe putenv realloc regex signal sin sqrt stat strcspn string strings strstr strtol tan time tmpdir unistdio/u8-sprintf unistr/u8-strlen unlink write VPATH = @srcdir@ am__make_dryrun = \ { \ am__dry=no; \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ *) \ for am__flg in $$MAKEFLAGS; do \ case $$am__flg in \ *=*|--*) ;; \ *n*) am__dry=yes; break;; \ esac; \ done;; \ esac; \ test $$am__dry = yes; \ } 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@ DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in $(srcdir)/gnulib.mk alloca.c @LIBUNISTRING_COMPILE_UNICONV_U8_CONV_FROM_ENC_TRUE@am__append_1 = uniconv/u8-conv-from-enc.c @LIBUNISTRING_COMPILE_UNISTDIO_U8_SPRINTF_TRUE@am__append_2 = unistdio/u8-sprintf.c @LIBUNISTRING_COMPILE_UNISTDIO_U8_VASNPRINTF_TRUE@am__append_3 = unistdio/u8-vasnprintf.c @LIBUNISTRING_COMPILE_UNISTDIO_U8_VSPRINTF_TRUE@am__append_4 = unistdio/u8-vsprintf.c @LIBUNISTRING_COMPILE_UNISTR_U16_MBTOUCR_TRUE@am__append_5 = unistr/u16-mbtoucr.c @LIBUNISTRING_COMPILE_UNISTR_U16_STRLEN_TRUE@am__append_6 = unistr/u16-strlen.c @LIBUNISTRING_COMPILE_UNISTR_U16_STRMBLEN_TRUE@am__append_7 = unistr/u16-strmblen.c @LIBUNISTRING_COMPILE_UNISTR_U16_TO_U8_TRUE@am__append_8 = unistr/u16-to-u8.c @LIBUNISTRING_COMPILE_UNISTR_U32_STRLEN_TRUE@am__append_9 = unistr/u32-strlen.c @LIBUNISTRING_COMPILE_UNISTR_U32_STRMBLEN_TRUE@am__append_10 = unistr/u32-strmblen.c @LIBUNISTRING_COMPILE_UNISTR_U32_TO_U8_TRUE@am__append_11 = unistr/u32-to-u8.c @LIBUNISTRING_COMPILE_UNISTR_U8_CHECK_TRUE@am__append_12 = unistr/u8-check.c @LIBUNISTRING_COMPILE_UNISTR_U8_CPY_TRUE@am__append_13 = unistr/u8-cpy.c @LIBUNISTRING_COMPILE_UNISTR_U8_MBLEN_TRUE@am__append_14 = unistr/u8-mblen.c @LIBUNISTRING_COMPILE_UNISTR_U8_MBSNLEN_TRUE@am__append_15 = unistr/u8-mbsnlen.c @LIBUNISTRING_COMPILE_UNISTR_U8_MBTOUC_TRUE@am__append_16 = unistr/u8-mbtouc.c unistr/u8-mbtouc-aux.c @LIBUNISTRING_COMPILE_UNISTR_U8_MBTOUC_UNSAFE_TRUE@am__append_17 = unistr/u8-mbtouc-unsafe.c unistr/u8-mbtouc-unsafe-aux.c @LIBUNISTRING_COMPILE_UNISTR_U8_MBTOUCR_TRUE@am__append_18 = unistr/u8-mbtoucr.c @LIBUNISTRING_COMPILE_UNISTR_U8_PREV_TRUE@am__append_19 = unistr/u8-prev.c @LIBUNISTRING_COMPILE_UNISTR_U8_SET_TRUE@am__append_20 = unistr/u8-set.c @LIBUNISTRING_COMPILE_UNISTR_U8_STRLEN_TRUE@am__append_21 = unistr/u8-strlen.c @LIBUNISTRING_COMPILE_UNISTR_U8_STRMBLEN_TRUE@am__append_22 = unistr/u8-strmblen.c @LIBUNISTRING_COMPILE_UNISTR_U8_UCTOMB_TRUE@am__append_23 = unistr/u8-uctomb.c unistr/u8-uctomb-aux.c subdir = lib ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.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/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/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/exponentd.m4 $(top_srcdir)/m4/exponentf.m4 \ $(top_srcdir)/m4/exponentl.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/fpieee.m4 \ $(top_srcdir)/m4/fpurge.m4 $(top_srcdir)/m4/freading.m4 \ $(top_srcdir)/m4/free.m4 $(top_srcdir)/m4/frexp.m4 \ $(top_srcdir)/m4/frexpl.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/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/iconv.m4 \ $(top_srcdir)/m4/iconv_h.m4 $(top_srcdir)/m4/iconv_open.m4 \ $(top_srcdir)/m4/include_next.m4 $(top_srcdir)/m4/inline.m4 \ $(top_srcdir)/m4/intlmacosx.m4 $(top_srcdir)/m4/intmax_t.m4 \ $(top_srcdir)/m4/inttypes_h.m4 $(top_srcdir)/m4/ioctl.m4 \ $(top_srcdir)/m4/isnand.m4 $(top_srcdir)/m4/isnanf.m4 \ $(top_srcdir)/m4/isnanl.m4 $(top_srcdir)/m4/langinfo_h.m4 \ $(top_srcdir)/m4/largefile.m4 $(top_srcdir)/m4/ldexpl.m4 \ $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ $(top_srcdir)/m4/lib-prefix.m4 \ $(top_srcdir)/m4/libunistring-base.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/malloca.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/nocrash.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/printf-frexp.m4 \ $(top_srcdir)/m4/printf-frexpl.m4 $(top_srcdir)/m4/printf.m4 \ $(top_srcdir)/m4/progtest.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/signbit.m4 \ $(top_srcdir)/m4/sin.m4 $(top_srcdir)/m4/size_max.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/stdint_h.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/ulonglong.m4 $(top_srcdir)/m4/unistd-safer.m4 \ $(top_srcdir)/m4/unistd_h.m4 $(top_srcdir)/m4/unlink.m4 \ $(top_srcdir)/m4/vasnprintf.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)/m4/xsize.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) 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_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ libgnu_a_AR = $(AR) $(ARFLAGS) am__DEPENDENCIES_1 = am__libgnu_a_SOURCES_DIST = binary-io.h binary-io.c c-ctype.h \ c-ctype.c c-strcase.h c-strcasecmp.c c-strncasecmp.c cloexec.c \ glthread/cond.h glthread/cond.c exitfail.c fatal-signal.h \ fatal-signal.c fd-hook.c fd-safer-flag.c dup-safer-flag.c \ freading.c gettext.h gl_list.h gl_list.c localcharset.h \ localcharset.c glthread/lock.h glthread/lock.c malloca.c \ math.c pipe2.c pipe2-safer.c printf-frexp.c printf-frexpl.c \ sig-handler.c size_max.h spawn-pipe.h spawn-pipe.c w32spawn.h \ striconveh.h striconveh.c striconveha.h striconveha.c \ sys_socket.c tempname.c glthread/threadlib.c tmpdir.h tmpdir.c \ uniconv/u8-conv-from-enc.c unistd.c dup-safer.c fd-safer.c \ pipe-safer.c unistdio/u-printf-args.c unistdio/u8-sprintf.c \ unistdio/u8-vasnprintf.c unistdio/u8-vsprintf.c \ unistdio/ulc-printf-parse.c unistr/u16-mbtoucr.c \ unistr/u16-strlen.c unistr/u16-strmblen.c unistr/u16-to-u8.c \ unistr/u32-strlen.c unistr/u32-strmblen.c unistr/u32-to-u8.c \ unistr/u8-check.c unistr/u8-cpy.c unistr/u8-mblen.c \ unistr/u8-mbsnlen.c unistr/u8-mbtouc.c unistr/u8-mbtouc-aux.c \ unistr/u8-mbtouc-unsafe.c unistr/u8-mbtouc-unsafe-aux.c \ unistr/u8-mbtoucr.c unistr/u8-prev.c unistr/u8-set.c \ unistr/u8-strlen.c unistr/u8-strmblen.c unistr/u8-uctomb.c \ unistr/u8-uctomb-aux.c wait-process.h wait-process.c \ wctype-h.c xmalloc.c xalloc-die.c xsize.h xsize.c am__dirstamp = $(am__leading_dot)dirstamp @LIBUNISTRING_COMPILE_UNICONV_U8_CONV_FROM_ENC_TRUE@am__objects_1 = uniconv/u8-conv-from-enc.$(OBJEXT) @LIBUNISTRING_COMPILE_UNISTDIO_U8_SPRINTF_TRUE@am__objects_2 = unistdio/u8-sprintf.$(OBJEXT) @LIBUNISTRING_COMPILE_UNISTDIO_U8_VASNPRINTF_TRUE@am__objects_3 = unistdio/u8-vasnprintf.$(OBJEXT) @LIBUNISTRING_COMPILE_UNISTDIO_U8_VSPRINTF_TRUE@am__objects_4 = unistdio/u8-vsprintf.$(OBJEXT) @LIBUNISTRING_COMPILE_UNISTR_U16_MBTOUCR_TRUE@am__objects_5 = unistr/u16-mbtoucr.$(OBJEXT) @LIBUNISTRING_COMPILE_UNISTR_U16_STRLEN_TRUE@am__objects_6 = unistr/u16-strlen.$(OBJEXT) @LIBUNISTRING_COMPILE_UNISTR_U16_STRMBLEN_TRUE@am__objects_7 = unistr/u16-strmblen.$(OBJEXT) @LIBUNISTRING_COMPILE_UNISTR_U16_TO_U8_TRUE@am__objects_8 = unistr/u16-to-u8.$(OBJEXT) @LIBUNISTRING_COMPILE_UNISTR_U32_STRLEN_TRUE@am__objects_9 = unistr/u32-strlen.$(OBJEXT) @LIBUNISTRING_COMPILE_UNISTR_U32_STRMBLEN_TRUE@am__objects_10 = unistr/u32-strmblen.$(OBJEXT) @LIBUNISTRING_COMPILE_UNISTR_U32_TO_U8_TRUE@am__objects_11 = unistr/u32-to-u8.$(OBJEXT) @LIBUNISTRING_COMPILE_UNISTR_U8_CHECK_TRUE@am__objects_12 = unistr/u8-check.$(OBJEXT) @LIBUNISTRING_COMPILE_UNISTR_U8_CPY_TRUE@am__objects_13 = unistr/u8-cpy.$(OBJEXT) @LIBUNISTRING_COMPILE_UNISTR_U8_MBLEN_TRUE@am__objects_14 = unistr/u8-mblen.$(OBJEXT) @LIBUNISTRING_COMPILE_UNISTR_U8_MBSNLEN_TRUE@am__objects_15 = unistr/u8-mbsnlen.$(OBJEXT) @LIBUNISTRING_COMPILE_UNISTR_U8_MBTOUC_TRUE@am__objects_16 = unistr/u8-mbtouc.$(OBJEXT) \ @LIBUNISTRING_COMPILE_UNISTR_U8_MBTOUC_TRUE@ unistr/u8-mbtouc-aux.$(OBJEXT) @LIBUNISTRING_COMPILE_UNISTR_U8_MBTOUC_UNSAFE_TRUE@am__objects_17 = unistr/u8-mbtouc-unsafe.$(OBJEXT) \ @LIBUNISTRING_COMPILE_UNISTR_U8_MBTOUC_UNSAFE_TRUE@ unistr/u8-mbtouc-unsafe-aux.$(OBJEXT) @LIBUNISTRING_COMPILE_UNISTR_U8_MBTOUCR_TRUE@am__objects_18 = unistr/u8-mbtoucr.$(OBJEXT) @LIBUNISTRING_COMPILE_UNISTR_U8_PREV_TRUE@am__objects_19 = unistr/u8-prev.$(OBJEXT) @LIBUNISTRING_COMPILE_UNISTR_U8_SET_TRUE@am__objects_20 = unistr/u8-set.$(OBJEXT) @LIBUNISTRING_COMPILE_UNISTR_U8_STRLEN_TRUE@am__objects_21 = unistr/u8-strlen.$(OBJEXT) @LIBUNISTRING_COMPILE_UNISTR_U8_STRMBLEN_TRUE@am__objects_22 = unistr/u8-strmblen.$(OBJEXT) @LIBUNISTRING_COMPILE_UNISTR_U8_UCTOMB_TRUE@am__objects_23 = unistr/u8-uctomb.$(OBJEXT) \ @LIBUNISTRING_COMPILE_UNISTR_U8_UCTOMB_TRUE@ unistr/u8-uctomb-aux.$(OBJEXT) am_libgnu_a_OBJECTS = binary-io.$(OBJEXT) c-ctype.$(OBJEXT) \ c-strcasecmp.$(OBJEXT) c-strncasecmp.$(OBJEXT) \ cloexec.$(OBJEXT) glthread/cond.$(OBJEXT) exitfail.$(OBJEXT) \ fatal-signal.$(OBJEXT) fd-hook.$(OBJEXT) \ fd-safer-flag.$(OBJEXT) dup-safer-flag.$(OBJEXT) \ freading.$(OBJEXT) gl_list.$(OBJEXT) localcharset.$(OBJEXT) \ glthread/lock.$(OBJEXT) malloca.$(OBJEXT) math.$(OBJEXT) \ pipe2.$(OBJEXT) pipe2-safer.$(OBJEXT) printf-frexp.$(OBJEXT) \ printf-frexpl.$(OBJEXT) sig-handler.$(OBJEXT) \ spawn-pipe.$(OBJEXT) striconveh.$(OBJEXT) \ striconveha.$(OBJEXT) sys_socket.$(OBJEXT) tempname.$(OBJEXT) \ glthread/threadlib.$(OBJEXT) tmpdir.$(OBJEXT) $(am__objects_1) \ unistd.$(OBJEXT) dup-safer.$(OBJEXT) fd-safer.$(OBJEXT) \ pipe-safer.$(OBJEXT) unistdio/u-printf-args.$(OBJEXT) \ $(am__objects_2) $(am__objects_3) $(am__objects_4) \ unistdio/ulc-printf-parse.$(OBJEXT) $(am__objects_5) \ $(am__objects_6) $(am__objects_7) $(am__objects_8) \ $(am__objects_9) $(am__objects_10) $(am__objects_11) \ $(am__objects_12) $(am__objects_13) $(am__objects_14) \ $(am__objects_15) $(am__objects_16) $(am__objects_17) \ $(am__objects_18) $(am__objects_19) $(am__objects_20) \ $(am__objects_21) $(am__objects_22) $(am__objects_23) \ wait-process.$(OBJEXT) wctype-h.$(OBJEXT) xmalloc.$(OBJEXT) \ xalloc-die.$(OBJEXT) xsize.$(OBJEXT) libgnu_a_OBJECTS = $(am_libgnu_a_OBJECTS) LTLIBRARIES = $(noinst_LTLIBRARIES) 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 " $@; 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_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libgnu_a_SOURCES) $(EXTRA_libgnu_a_SOURCES) DIST_SOURCES = $(am__libgnu_a_SOURCES_DIST) $(EXTRA_libgnu_a_SOURCES) RECURSIVE_TARGETS = all-recursive check-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 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=) \ $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ distdir ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) 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@ 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_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_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_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_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_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_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_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_SAME_LONG_DOUBLE_AS_DOUBLE = @HAVE_SAME_LONG_DOUBLE_AS_DOUBLE@ 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_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_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@ LIBUNISTRING_UNICONV_H = @LIBUNISTRING_UNICONV_H@ LIBUNISTRING_UNISTDIO_H = @LIBUNISTRING_UNISTDIO_H@ LIBUNISTRING_UNISTR_H = @LIBUNISTRING_UNISTR_H@ LIBUNISTRING_UNITYPES_H = @LIBUNISTRING_UNITYPES_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_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_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_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_DPRINTF = @REPLACE_DPRINTF@ REPLACE_DUP = @REPLACE_DUP@ REPLACE_DUP2 = @REPLACE_DUP2@ REPLACE_DUPLOCALE = @REPLACE_DUPLOCALE@ REPLACE_EXP2 = @REPLACE_EXP2@ REPLACE_EXP2L = @REPLACE_EXP2L@ 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_GETGROUPS = @REPLACE_GETGROUPS@ REPLACE_GETLINE = @REPLACE_GETLINE@ REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@ REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@ REPLACE_GETTIMEOFDAY = @REPLACE_GETTIMEOFDAY@ 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_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_RAISE = @REPLACE_RAISE@ REPLACE_RANDOM_R = @REPLACE_RANDOM_R@ REPLACE_READ = @REPLACE_READ@ REPLACE_READLINK = @REPLACE_READLINK@ 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_SLEEP = @REPLACE_SLEEP@ REPLACE_SNPRINTF = @REPLACE_SNPRINTF@ REPLACE_SPRINTF = @REPLACE_SPRINTF@ 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_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@ 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_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_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@ 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.5 gnits subdir-objects SUBDIRS = noinst_HEADERS = noinst_LIBRARIES = libgnu.a noinst_LTLIBRARIES = # This is for those projects which use "gettextize --intl" to put a source-code # copy of libintl into their package. In such projects, every Makefile.am needs # -I$(top_builddir)/intl, so that can be found in this directory. # For the Makefile.ams in other directories it is the maintainer's # responsibility; for the one from gnulib we do it here. # This option has no effect when the user disables NLS (because then the intl # directory contains no libintl.h file) or when the project does not use # "gettextize --intl". #AM_CPPFLAGS += -I$(top_builddir)/intl EXTRA_DIST = alloca.c alloca.in.h btowc.c c-strcaseeq.h ceil.c \ cloexec.h close.c 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 fpucw.h fpurge.c stdio-impl.h freading.h stdio-impl.h \ free.c frexp.c frexp.c frexpl.c fseek.c fseeko.c stdio-impl.h \ fstat.c ftell.c ftello.c stdio-impl.h getdtablesize.c \ $(top_srcdir)/build-aux/config.rpath gettimeofday.c \ $(top_srcdir)/build-aux/git-version-gen \ $(top_srcdir)/build-aux/config.rpath iconv.in.h \ iconv_open-aix.h iconv_open-hpux.h iconv_open-irix.h \ iconv_open-osf.h iconv_open-solaris.h iconv.c iconv_close.c \ iconv_open-aix.gperf iconv_open-hpux.gperf \ iconv_open-irix.gperf iconv_open-osf.gperf \ iconv_open-solaris.gperf iconv_open.c intprops.h ioctl.c \ w32sock.h float+.h isnan.c isnand-nolibm.h isnand.c float+.h \ isnan.c isnanf-nolibm.h isnanf.c float+.h isnan.c \ isnanl-nolibm.h isnanl.c langinfo.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 malloc.c malloc.c malloca.h malloca.valgrind \ 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 printf-frexp.h printf-frexp.c printf-frexpl.h \ 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 float+.h signbitd.c \ signbitf.c signbitl.c 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 iconveh.h 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 iconveh.h \ localcharset.h striconveha.h uniconv.in.h unistd.in.h \ unistd--.h unistd-safer.h unistdio.in.h printf-args.c \ printf-args.h unistdio/u-printf-args.h unistdio/u-sprintf.h \ vasnprintf.c unistdio/u-vsprintf.h printf-parse.c \ printf-parse.h unistdio/u-printf-parse.h unistr.in.h \ unistr/u-strlen.h unistr/u-strlen.h unistr/u-cpy.h \ unitypes.in.h unlink.c 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) iconv_open-aix.h iconv_open-hpux.h \ iconv_open-irix.h iconv_open-osf.h iconv_open-solaris.h \ langinfo.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 \ $(LIBUNISTRING_UNICONV_H) unistd.h $(LIBUNISTRING_UNISTDIO_H) \ $(LIBUNISTRING_UNISTR_H) $(LIBUNISTRING_UNITYPES_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 iconv_open-aix.h-t iconv_open-hpux.h-t \ iconv_open-irix.h-t iconv_open-osf.h-t iconv_open-solaris.h-t \ langinfo.h langinfo.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 uniconv.h uniconv.h-t unistd.h unistd.h-t \ unistdio.h unistdio.h-t unistr.h unistr.h-t unitypes.h \ unitypes.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 = iconv_open-aix.h iconv_open-hpux.h \ iconv_open-irix.h iconv_open-osf.h iconv_open-solaris.h AM_CPPFLAGS = AM_CFLAGS = libgnu_a_SOURCES = binary-io.h binary-io.c c-ctype.h c-ctype.c \ c-strcase.h c-strcasecmp.c c-strncasecmp.c cloexec.c \ glthread/cond.h glthread/cond.c exitfail.c fatal-signal.h \ fatal-signal.c fd-hook.c fd-safer-flag.c dup-safer-flag.c \ freading.c gettext.h gl_list.h gl_list.c localcharset.h \ localcharset.c glthread/lock.h glthread/lock.c malloca.c \ math.c pipe2.c pipe2-safer.c printf-frexp.c printf-frexpl.c \ sig-handler.c size_max.h spawn-pipe.h spawn-pipe.c w32spawn.h \ striconveh.h striconveh.c striconveha.h striconveha.c \ sys_socket.c tempname.c glthread/threadlib.c tmpdir.h tmpdir.c \ $(am__append_1) unistd.c dup-safer.c fd-safer.c pipe-safer.c \ unistdio/u-printf-args.c $(am__append_2) $(am__append_3) \ $(am__append_4) unistdio/ulc-printf-parse.c $(am__append_5) \ $(am__append_6) $(am__append_7) $(am__append_8) \ $(am__append_9) $(am__append_10) $(am__append_11) \ $(am__append_12) $(am__append_13) $(am__append_14) \ $(am__append_15) $(am__append_16) $(am__append_17) \ $(am__append_18) $(am__append_19) $(am__append_20) \ $(am__append_21) $(am__append_22) $(am__append_23) \ wait-process.h wait-process.c wctype-h.c xmalloc.c \ xalloc-die.c xsize.h xsize.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 frexp.c frexp.c frexpl.c fseek.c \ fseeko.c fstat.c ftell.c ftello.c getdtablesize.c \ gettimeofday.c iconv.c iconv_close.c iconv_open.c ioctl.c \ isnan.c isnand.c isnan.c isnanf.c isnan.c isnanl.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 \ printf-frexp.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 signbitd.c signbitf.c signbitl.c \ sigprocmask.c stat.c strchrnul.c strcspn.c strdup.c strerror.c \ strerror-override.c strerror_r.c strstr.c strtol.c \ printf-args.c vasnprintf.c printf-parse.c unlink.c waitpid.c \ wcrtomb.c write.c GPERF = gperf 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 $(srcdir)/gnulib.mk $(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 .PRECIOUS: 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; $(srcdir)/gnulib.mk: $(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) uniconv/$(am__dirstamp): @$(MKDIR_P) uniconv @: > uniconv/$(am__dirstamp) uniconv/$(DEPDIR)/$(am__dirstamp): @$(MKDIR_P) uniconv/$(DEPDIR) @: > uniconv/$(DEPDIR)/$(am__dirstamp) uniconv/u8-conv-from-enc.$(OBJEXT): uniconv/$(am__dirstamp) \ uniconv/$(DEPDIR)/$(am__dirstamp) unistdio/$(am__dirstamp): @$(MKDIR_P) unistdio @: > unistdio/$(am__dirstamp) unistdio/$(DEPDIR)/$(am__dirstamp): @$(MKDIR_P) unistdio/$(DEPDIR) @: > unistdio/$(DEPDIR)/$(am__dirstamp) unistdio/u-printf-args.$(OBJEXT): unistdio/$(am__dirstamp) \ unistdio/$(DEPDIR)/$(am__dirstamp) unistdio/u8-sprintf.$(OBJEXT): unistdio/$(am__dirstamp) \ unistdio/$(DEPDIR)/$(am__dirstamp) unistdio/u8-vasnprintf.$(OBJEXT): unistdio/$(am__dirstamp) \ unistdio/$(DEPDIR)/$(am__dirstamp) unistdio/u8-vsprintf.$(OBJEXT): unistdio/$(am__dirstamp) \ unistdio/$(DEPDIR)/$(am__dirstamp) unistdio/ulc-printf-parse.$(OBJEXT): unistdio/$(am__dirstamp) \ unistdio/$(DEPDIR)/$(am__dirstamp) unistr/$(am__dirstamp): @$(MKDIR_P) unistr @: > unistr/$(am__dirstamp) unistr/$(DEPDIR)/$(am__dirstamp): @$(MKDIR_P) unistr/$(DEPDIR) @: > unistr/$(DEPDIR)/$(am__dirstamp) unistr/u16-mbtoucr.$(OBJEXT): unistr/$(am__dirstamp) \ unistr/$(DEPDIR)/$(am__dirstamp) unistr/u16-strlen.$(OBJEXT): unistr/$(am__dirstamp) \ unistr/$(DEPDIR)/$(am__dirstamp) unistr/u16-strmblen.$(OBJEXT): unistr/$(am__dirstamp) \ unistr/$(DEPDIR)/$(am__dirstamp) unistr/u16-to-u8.$(OBJEXT): unistr/$(am__dirstamp) \ unistr/$(DEPDIR)/$(am__dirstamp) unistr/u32-strlen.$(OBJEXT): unistr/$(am__dirstamp) \ unistr/$(DEPDIR)/$(am__dirstamp) unistr/u32-strmblen.$(OBJEXT): unistr/$(am__dirstamp) \ unistr/$(DEPDIR)/$(am__dirstamp) unistr/u32-to-u8.$(OBJEXT): unistr/$(am__dirstamp) \ unistr/$(DEPDIR)/$(am__dirstamp) unistr/u8-check.$(OBJEXT): unistr/$(am__dirstamp) \ unistr/$(DEPDIR)/$(am__dirstamp) unistr/u8-cpy.$(OBJEXT): unistr/$(am__dirstamp) \ unistr/$(DEPDIR)/$(am__dirstamp) unistr/u8-mblen.$(OBJEXT): unistr/$(am__dirstamp) \ unistr/$(DEPDIR)/$(am__dirstamp) unistr/u8-mbsnlen.$(OBJEXT): unistr/$(am__dirstamp) \ unistr/$(DEPDIR)/$(am__dirstamp) unistr/u8-mbtouc.$(OBJEXT): unistr/$(am__dirstamp) \ unistr/$(DEPDIR)/$(am__dirstamp) unistr/u8-mbtouc-aux.$(OBJEXT): unistr/$(am__dirstamp) \ unistr/$(DEPDIR)/$(am__dirstamp) unistr/u8-mbtouc-unsafe.$(OBJEXT): unistr/$(am__dirstamp) \ unistr/$(DEPDIR)/$(am__dirstamp) unistr/u8-mbtouc-unsafe-aux.$(OBJEXT): unistr/$(am__dirstamp) \ unistr/$(DEPDIR)/$(am__dirstamp) unistr/u8-mbtoucr.$(OBJEXT): unistr/$(am__dirstamp) \ unistr/$(DEPDIR)/$(am__dirstamp) unistr/u8-prev.$(OBJEXT): unistr/$(am__dirstamp) \ unistr/$(DEPDIR)/$(am__dirstamp) unistr/u8-set.$(OBJEXT): unistr/$(am__dirstamp) \ unistr/$(DEPDIR)/$(am__dirstamp) unistr/u8-strlen.$(OBJEXT): unistr/$(am__dirstamp) \ unistr/$(DEPDIR)/$(am__dirstamp) unistr/u8-strmblen.$(OBJEXT): unistr/$(am__dirstamp) \ unistr/$(DEPDIR)/$(am__dirstamp) unistr/u8-uctomb.$(OBJEXT): unistr/$(am__dirstamp) \ unistr/$(DEPDIR)/$(am__dirstamp) unistr/u8-uctomb-aux.$(OBJEXT): unistr/$(am__dirstamp) \ unistr/$(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)'; for p in $$list; do \ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ test "$$dir" != "$$p" || dir=.; \ echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done mostlyclean-compile: -rm -f *.$(OBJEXT) -rm -f glthread/cond.$(OBJEXT) -rm -f glthread/lock.$(OBJEXT) -rm -f glthread/threadlib.$(OBJEXT) -rm -f uniconv/u8-conv-from-enc.$(OBJEXT) -rm -f unistdio/u-printf-args.$(OBJEXT) -rm -f unistdio/u8-sprintf.$(OBJEXT) -rm -f unistdio/u8-vasnprintf.$(OBJEXT) -rm -f unistdio/u8-vsprintf.$(OBJEXT) -rm -f unistdio/ulc-printf-parse.$(OBJEXT) -rm -f unistr/u16-mbtoucr.$(OBJEXT) -rm -f unistr/u16-strlen.$(OBJEXT) -rm -f unistr/u16-strmblen.$(OBJEXT) -rm -f unistr/u16-to-u8.$(OBJEXT) -rm -f unistr/u32-strlen.$(OBJEXT) -rm -f unistr/u32-strmblen.$(OBJEXT) -rm -f unistr/u32-to-u8.$(OBJEXT) -rm -f unistr/u8-check.$(OBJEXT) -rm -f unistr/u8-cpy.$(OBJEXT) -rm -f unistr/u8-mblen.$(OBJEXT) -rm -f unistr/u8-mbsnlen.$(OBJEXT) -rm -f unistr/u8-mbtouc-aux.$(OBJEXT) -rm -f unistr/u8-mbtouc-unsafe-aux.$(OBJEXT) -rm -f unistr/u8-mbtouc-unsafe.$(OBJEXT) -rm -f unistr/u8-mbtouc.$(OBJEXT) -rm -f unistr/u8-mbtoucr.$(OBJEXT) -rm -f unistr/u8-prev.$(OBJEXT) -rm -f unistr/u8-set.$(OBJEXT) -rm -f unistr/u8-strlen.$(OBJEXT) -rm -f unistr/u8-strmblen.$(OBJEXT) -rm -f unistr/u8-uctomb-aux.$(OBJEXT) -rm -f unistr/u8-uctomb.$(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)/binary-io.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/btowc.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/c-ctype.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/c-strcasecmp.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/c-strncasecmp.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)/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)/frexp.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/frexpl.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)/gettimeofday.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gl_list.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/iconv.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/iconv_close.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/iconv_open.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/isnan.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/isnand.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/isnanf.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/isnanl.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)/malloca.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)/printf-args.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/printf-frexp.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/printf-frexpl.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/printf-parse.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)/signbitd.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/signbitf.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/signbitl.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)/striconveh.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/striconveha.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)/vasnprintf.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@./$(DEPDIR)/xsize.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@ @AMDEP_TRUE@@am__include@ @am__quote@uniconv/$(DEPDIR)/u8-conv-from-enc.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@unistdio/$(DEPDIR)/u-printf-args.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@unistdio/$(DEPDIR)/u8-sprintf.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@unistdio/$(DEPDIR)/u8-vasnprintf.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@unistdio/$(DEPDIR)/u8-vsprintf.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@unistdio/$(DEPDIR)/ulc-printf-parse.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@unistr/$(DEPDIR)/u16-mbtoucr.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@unistr/$(DEPDIR)/u16-strlen.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@unistr/$(DEPDIR)/u16-strmblen.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@unistr/$(DEPDIR)/u16-to-u8.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@unistr/$(DEPDIR)/u32-strlen.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@unistr/$(DEPDIR)/u32-strmblen.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@unistr/$(DEPDIR)/u32-to-u8.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@unistr/$(DEPDIR)/u8-check.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@unistr/$(DEPDIR)/u8-cpy.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@unistr/$(DEPDIR)/u8-mblen.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@unistr/$(DEPDIR)/u8-mbsnlen.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@unistr/$(DEPDIR)/u8-mbtouc-aux.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@unistr/$(DEPDIR)/u8-mbtouc-unsafe-aux.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@unistr/$(DEPDIR)/u8-mbtouc-unsafe.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@unistr/$(DEPDIR)/u8-mbtouc.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@unistr/$(DEPDIR)/u8-mbtoucr.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@unistr/$(DEPDIR)/u8-prev.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@unistr/$(DEPDIR)/u8-set.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@unistr/$(DEPDIR)/u8-strlen.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@unistr/$(DEPDIR)/u8-strmblen.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@unistr/$(DEPDIR)/u8-uctomb-aux.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@unistr/$(DEPDIR)/u8-uctomb.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. $(RECURSIVE_TARGETS): @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ list='$(SUBDIRS)'; 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" $(RECURSIVE_CLEAN_TARGETS): @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ rev=''; for subdir in $$list; do \ if test "$$subdir" = "."; then :; else \ rev="$$subdir $$rev"; \ fi; \ done; \ rev="$$rev ."; \ target=`echo $@ | sed s/-recursive//`; \ for subdir in $$rev; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done ctags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) 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; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ 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 CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ 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" 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) -rm -f uniconv/$(DEPDIR)/$(am__dirstamp) -rm -f uniconv/$(am__dirstamp) -rm -f unistdio/$(DEPDIR)/$(am__dirstamp) -rm -f unistdio/$(am__dirstamp) -rm -f unistr/$(DEPDIR)/$(am__dirstamp) -rm -f unistr/$(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) uniconv/$(DEPDIR) unistdio/$(DEPDIR) unistr/$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile 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-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) uniconv/$(DEPDIR) unistdio/$(DEPDIR) unistr/$(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: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) all check \ ctags-recursive install install-am install-strip \ tags-recursive .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ all all-am all-local check check-am clean clean-generic \ clean-noinstLIBRARIES clean-noinstLTLIBRARIES ctags \ ctags-recursive distclean distclean-compile 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-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-recursive uninstall uninstall-am uninstall-local # 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+. # 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 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 $@ # 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 $@ iconv_open-aix.h: iconv_open-aix.gperf $(GPERF) -m 10 $(srcdir)/iconv_open-aix.gperf > $(srcdir)/iconv_open-aix.h-t mv $(srcdir)/iconv_open-aix.h-t $(srcdir)/iconv_open-aix.h iconv_open-hpux.h: iconv_open-hpux.gperf $(GPERF) -m 10 $(srcdir)/iconv_open-hpux.gperf > $(srcdir)/iconv_open-hpux.h-t mv $(srcdir)/iconv_open-hpux.h-t $(srcdir)/iconv_open-hpux.h iconv_open-irix.h: iconv_open-irix.gperf $(GPERF) -m 10 $(srcdir)/iconv_open-irix.gperf > $(srcdir)/iconv_open-irix.h-t mv $(srcdir)/iconv_open-irix.h-t $(srcdir)/iconv_open-irix.h iconv_open-osf.h: iconv_open-osf.gperf $(GPERF) -m 10 $(srcdir)/iconv_open-osf.gperf > $(srcdir)/iconv_open-osf.h-t mv $(srcdir)/iconv_open-osf.h-t $(srcdir)/iconv_open-osf.h iconv_open-solaris.h: iconv_open-solaris.gperf $(GPERF) -m 10 $(srcdir)/iconv_open-solaris.gperf > $(srcdir)/iconv_open-solaris.h-t mv $(srcdir)/iconv_open-solaris.h-t $(srcdir)/iconv_open-solaris.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 $@ # 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_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_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_SQRTL''@|$(REPLACE_SQRTL)|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|@''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_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_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@ < $(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_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_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_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_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|@''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|@''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 '/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 $@ uniconv.h: uniconv.in.h $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ cat $(srcdir)/uniconv.in.h; \ } > $@-t && \ mv -f $@-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_GETLOGIN''@|$(HAVE_GETLOGIN)|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_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_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_RMDIR''@|$(REPLACE_RMDIR)|g' \ -e 's|@''REPLACE_SLEEP''@|$(REPLACE_SLEEP)|g' \ -e 's|@''REPLACE_SYMLINK''@|$(REPLACE_SYMLINK)|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 $@ unistdio.h: unistdio.in.h $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ cat $(srcdir)/unistdio.in.h; \ } > $@-t && \ mv -f $@-t $@ unistr.h: unistr.in.h $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ cat $(srcdir)/unistr.in.h; \ } > $@-t && \ mv -f $@-t $@ unitypes.h: unitypes.in.h $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ cat $(srcdir)/unitypes.in.h; \ } > $@-t && \ mv -f $@-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_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_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-3.6.3/lib/iconv_open.c0000644000175000017500000001303012125375410012420 00000000000000/* -*- buffer-read-only: t -*- vi: set ro: */ /* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* Character set conversion. Copyright (C) 2007, 2009-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, see . */ #include /* Specification. */ #include #include #include #include "c-ctype.h" #include "c-strcase.h" #define SIZEOF(a) (sizeof(a) / sizeof(a[0])) /* Namespace cleanliness. */ #define mapping_lookup rpl_iconv_open_mapping_lookup /* The macro ICONV_FLAVOR is defined to one of these or undefined. */ #define ICONV_FLAVOR_AIX "iconv_open-aix.h" #define ICONV_FLAVOR_HPUX "iconv_open-hpux.h" #define ICONV_FLAVOR_IRIX "iconv_open-irix.h" #define ICONV_FLAVOR_OSF "iconv_open-osf.h" #define ICONV_FLAVOR_SOLARIS "iconv_open-solaris.h" #ifdef ICONV_FLAVOR # include ICONV_FLAVOR #endif iconv_t rpl_iconv_open (const char *tocode, const char *fromcode) #undef iconv_open { char fromcode_upper[32]; char tocode_upper[32]; char *fromcode_upper_end; char *tocode_upper_end; #if REPLACE_ICONV_UTF /* Special handling of conversion between UTF-8 and UTF-{16,32}{BE,LE}. Do this here, before calling the real iconv_open(), because OSF/1 5.1 iconv() to these encoding inserts a BOM, which is wrong. We do not need to handle conversion between arbitrary encodings and UTF-{16,32}{BE,LE}, because the 'striconveh' module implements two-step conversion through UTF-8. The _ICONV_* constants are chosen to be disjoint from any iconv_t returned by the system's iconv_open() functions. Recall that iconv_t is a scalar type. */ if (c_toupper (fromcode[0]) == 'U' && c_toupper (fromcode[1]) == 'T' && c_toupper (fromcode[2]) == 'F' && fromcode[3] == '-') { if (c_toupper (tocode[0]) == 'U' && c_toupper (tocode[1]) == 'T' && c_toupper (tocode[2]) == 'F' && tocode[3] == '-') { if (strcmp (fromcode + 4, "8") == 0) { if (c_strcasecmp (tocode + 4, "16BE") == 0) return _ICONV_UTF8_UTF16BE; if (c_strcasecmp (tocode + 4, "16LE") == 0) return _ICONV_UTF8_UTF16LE; if (c_strcasecmp (tocode + 4, "32BE") == 0) return _ICONV_UTF8_UTF32BE; if (c_strcasecmp (tocode + 4, "32LE") == 0) return _ICONV_UTF8_UTF32LE; } else if (strcmp (tocode + 4, "8") == 0) { if (c_strcasecmp (fromcode + 4, "16BE") == 0) return _ICONV_UTF16BE_UTF8; if (c_strcasecmp (fromcode + 4, "16LE") == 0) return _ICONV_UTF16LE_UTF8; if (c_strcasecmp (fromcode + 4, "32BE") == 0) return _ICONV_UTF32BE_UTF8; if (c_strcasecmp (fromcode + 4, "32LE") == 0) return _ICONV_UTF32LE_UTF8; } } } #endif /* Do *not* add special support for 8-bit encodings like ASCII or ISO-8859-1 here. This would lead to programs that work in some locales (such as the "C" or "en_US" locales) but do not work in East Asian locales. It is better if programmers make their programs depend on GNU libiconv (except on glibc systems), e.g. by using the AM_ICONV macro and documenting the dependency in an INSTALL or DEPENDENCIES file. */ /* Try with the original names first. This covers the case when fromcode or tocode is a lowercase encoding name that is understood by the system's iconv_open but not listed in our mappings table. */ { iconv_t cd = iconv_open (tocode, fromcode); if (cd != (iconv_t)(-1)) return cd; } /* Convert the encodings to upper case, because 1. in the arguments of iconv_open() on AIX, HP-UX, and OSF/1 the case matters, 2. it makes searching in the table faster. */ { const char *p = fromcode; char *q = fromcode_upper; while ((*q = c_toupper (*p)) != '\0') { p++; q++; if (q == &fromcode_upper[SIZEOF (fromcode_upper)]) { errno = EINVAL; return (iconv_t)(-1); } } fromcode_upper_end = q; } { const char *p = tocode; char *q = tocode_upper; while ((*q = c_toupper (*p)) != '\0') { p++; q++; if (q == &tocode_upper[SIZEOF (tocode_upper)]) { errno = EINVAL; return (iconv_t)(-1); } } tocode_upper_end = q; } #ifdef ICONV_FLAVOR /* Apply the mappings. */ { const struct mapping *m = mapping_lookup (fromcode_upper, fromcode_upper_end - fromcode_upper); fromcode = (m != NULL ? m->vendor_name : fromcode_upper); } { const struct mapping *m = mapping_lookup (tocode_upper, tocode_upper_end - tocode_upper); tocode = (m != NULL ? m->vendor_name : tocode_upper); } #else fromcode = fromcode_upper; tocode = tocode_upper; #endif return iconv_open (tocode, fromcode); } gcal-3.6.3/lib/unistd-safer.h0000644000175000017500000000203412076511424012676 00000000000000/* Invoke unistd-like functions, but avoid some glitches. Copyright (C) 2001, 2003, 2005, 2009-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 . */ /* 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-3.6.3/lib/isnanl-nolibm.h0000644000175000017500000000230712076511424013037 00000000000000/* Test for NaN that does not need libm. Copyright (C) 2007-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 . */ #if HAVE_ISNANL_IN_LIBC /* Get declaration of isnan macro or (older) isnanl function. */ # include # 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 extern int isnanl (long double x); #endif gcal-3.6.3/lib/ftello.c0000644000175000017500000000461012076511424011554 00000000000000/* An ftello() function that works around platform bugs. Copyright (C) 2007, 2009-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 . */ #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-3.6.3/lib/ftell.c0000644000175000017500000000215512076511424011377 00000000000000/* An ftell() function that works around platform bugs. Copyright (C) 2007-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 . */ #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-3.6.3/lib/close.c0000644000175000017500000000270712076511423011400 00000000000000/* close replacement. Copyright (C) 2008-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 . */ #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-3.6.3/lib/uniconv/0000755000175000017500000000000012125376241011664 500000000000000gcal-3.6.3/lib/uniconv/u8-conv-from-enc.c0000644000175000017500000000605112125375412014754 00000000000000/* -*- buffer-read-only: t -*- vi: set ro: */ /* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* Conversion to UTF-8 from legacy encodings. Copyright (C) 2002, 2006-2007, 2009-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 . */ /* Written by Bruno Haible . */ #include /* Specification. */ #include "uniconv.h" #include #include #include #include "c-strcaseeq.h" #include "striconveha.h" #include "unistr.h" uint8_t * u8_conv_from_encoding (const char *fromcode, enum iconv_ilseq_handler handler, const char *src, size_t srclen, size_t *offsets, uint8_t *resultbuf, size_t *lengthp) { if (STRCASEEQ (fromcode, "UTF-8", 'U','T','F','-','8',0,0,0,0)) { /* Conversion from UTF-8 to UTF-8. No need to go through iconv(). */ uint8_t *result; if (u8_check ((const uint8_t *) src, srclen)) { errno = EILSEQ; return NULL; } if (offsets != NULL) { size_t i; for (i = 0; i < srclen; ) { int count = u8_mblen ((const uint8_t *) src + i, srclen - i); /* We can rely on count > 0 because of the previous u8_check. */ if (count <= 0) abort (); offsets[i] = i; i++; while (--count > 0) offsets[i++] = (size_t)(-1); } } /* Memory allocation. */ if (resultbuf != NULL && *lengthp >= srclen) result = resultbuf; else { result = (uint8_t *) malloc (srclen > 0 ? srclen : 1); if (result == NULL) { errno = ENOMEM; return NULL; } } memcpy ((char *) result, src, srclen); *lengthp = srclen; return result; } else { char *result = (char *) resultbuf; size_t length = *lengthp; if (mem_iconveha (src, srclen, fromcode, "UTF-8", true, handler, offsets, &result, &length) < 0) return NULL; if (result == NULL) /* when (resultbuf == NULL && length == 0) */ { result = (char *) malloc (1); if (result == NULL) { errno = ENOMEM; return NULL; } } *lengthp = length; return (uint8_t *) result; } } gcal-3.6.3/lib/iconv.in.h0000644000175000017500000000707612125375410012026 00000000000000/* -*- buffer-read-only: t -*- vi: set ro: */ /* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* A GNU-like . Copyright (C) 2007-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, 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-3.6.3/lib/sys_ioctl.in.h0000644000175000017500000000504112125375411012707 00000000000000/* -*- buffer-read-only: t -*- vi: set ro: */ /* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* Substitute for and wrapper around . Copyright (C) 2008-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, 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-3.6.3/lib/isnand.c0000644000175000017500000000146712076511424011552 00000000000000/* Test for NaN that does not need libm. Copyright (C) 2008-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 . */ /* Written by Bruno Haible , 2008. */ #include "isnan.c" gcal-3.6.3/lib/ref-add.sin0000644000175000017500000000175212125375411012143 00000000000000# Add this package to a list of references stored in a text file. # # Copyright (C) 2000, 2009-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, 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-3.6.3/lib/error.c0000644000175000017500000002407012076511423011421 00000000000000/* Error handler for noninteractive utilities Copyright (C) 1990-1998, 2000-2007, 2009-2013 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 #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) INTUSE(_IO_fflush) (s) # undef putc # define putc(c, fp) INTUSE(_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 /* The calling program should define program_name and set it to the name of the executing program. */ extern char *program_name; # 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 STRERROR_R_CHAR_P || _LIBC 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 error_tail (int status, int errnum, const char *message, va_list args) { #if _LIBC if (_IO_fwide (stderr, 0) > 0) { # define ALLOCA_LIMIT 2000 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 / 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 || 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:%d: " : " ", file_name, line_number); #else fprintf (stderr, file_name != NULL ? "%s:%d: " : " ", 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-3.6.3/lib/regcomp.c0000644000175000017500000033445212125375411011734 00000000000000/* -*- buffer-read-only: t -*- vi: set ro: */ /* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* Extended regular expression matching and search library. Copyright (C) 2002-2013 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 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. */ #ifdef _LIBC const char * re_compile_pattern (pattern, length, bufp) const char *pattern; size_t length; struct re_pattern_buffer *bufp; #else /* size_t might promote */ const char * re_compile_pattern (const char *pattern, size_t length, struct re_pattern_buffer *bufp) #endif { 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 (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 (bufp) 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 (preg, pattern, cflags) 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. */ #ifdef _LIBC size_t regerror (errcode, preg, errbuf, errbuf_size) int errcode; const regex_t *_Restrict_ preg; char *_Restrict_ errbuf; size_t errbuf_size; #else /* size_t might promote */ size_t regerror (int errcode, const regex_t *_Restrict_ preg, char *_Restrict_ errbuf, size_t errbuf_size) #endif { 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. */ # ifdef __GNUC__ [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 (preg) regex_t *preg; { re_dfa_t *dfa = preg->buffer; if (BE (dfa != NULL, 1)) 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 (s) 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, 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 __libc_lock_init (dfa->lock); 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); 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)) { 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 == REG_MISSING, 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 (REG_VALID_INDEX (left)); assert (REG_VALID_INDEX (right)); 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 == REG_MISSING, 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 == REG_MISSING, 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 == REG_MISSING) { /* 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 == REG_MISSING, 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 == REG_MISSING, 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 REG_MISSING; /* Not found. */ } /* Duplicate the node whose index is ORG_IDX and set the constraint CONSTRAINT. Return the index of the new node, or REG_MISSING 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 != REG_MISSING, 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 != REG_MISSING); #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 = REG_MISSING; /* 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 == REG_MISSING) { 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; 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)) { branch = parse_branch (regexp, preg, token, syntax, nest, err); if (BE (*err != REG_NOERROR && branch == NULL, 0)) return NULL; } 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) { tree = parse_dup_op (tree, regexp, dfa, token, syntax, err); if (BE (*err != REG_NOERROR && tree == NULL, 0)) return NULL; /* In BRE consecutive duplications are not allowed. */ if ((syntax & RE_CONTEXT_INVALID_DUP) && (token->type == OP_DUP_ASTERISK || token->type == OP_OPEN_DUP_NUM)) { *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 == REG_MISSING) { 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 != REG_ERROR, 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) : REG_ERROR)); } if (BE (start == REG_ERROR || end == REG_ERROR, 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 != REG_MISSING && 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 == REG_MISSING ? start : end), 0)) { *err = REG_ESIZE; return NULL; } } else { start = (token->type == OP_DUP_PLUS) ? 1 : 0; end = (token->type == OP_DUP_QUESTION) ? 1 : REG_MISSING; } 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); 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 == REG_MISSING ? 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 != REG_MISSING, to rewrite {0,n} as ((...?)?)?... We have already created the start+1-th copy. */ if (TYPE_SIGNED (Idx) || end != REG_MISSING) 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 /* 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) ? __btowc (start_ch) : start_elem->opr.wch); end_wc = ((end_elem->type == SB_CHAR || end_elem->type == COLL_SYM) ? __btowc (end_ch) : 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)) 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; 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; 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; /* This #include defines a local function! */ # include /* 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 (&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 (&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); #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 /* not RE_ENABLE_I18N */ if (BE (sbcset == NULL, 0)) #endif /* not RE_ENABLE_I18N */ { *err = REG_ESPACE; return NULL; } if (non_match) { #ifdef RE_ENABLE_I18N mbcset->non_match = 1; #endif /* not 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. */ 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 REG_MISSING if the number field is empty like "{,1}". Return RE_DUP_MAX + 1 if the number field is too large. Return REG_ERROR if an error occurred. */ static Idx fetch_number (re_string_t *input, re_token_t *token, reg_syntax_t syntax) { Idx num = REG_MISSING; unsigned char c; while (1) { fetch_token (token, input, syntax); c = token->opr.c; if (BE (token->type == END_OF_RE, 0)) return REG_ERROR; if (token->type == OP_CLOSE_DUP_NUM || c == ',') break; num = ((token->type != CHARACTER || c < '0' || '9' < c || num == REG_ERROR) ? REG_ERROR : num == REG_MISSING ? 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; 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 = REG_MISSING; 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-3.6.3/lib/memchr.valgrind0000644000175000017500000000065211534672763013144 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-3.6.3/lib/alloca.c0000644000175000017500000003445411704322374011534 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-3.6.3/lib/printf-frexpl.c0000644000175000017500000000210012076511424013057 00000000000000/* Split a 'long double' into fraction and mantissa, for hexadecimal printf. Copyright (C) 2007, 2009-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 . */ #include #if HAVE_SAME_LONG_DOUBLE_AS_DOUBLE /* Specification. */ # include "printf-frexpl.h" # include "printf-frexp.h" long double printf_frexpl (long double x, int *expptr) { return printf_frexp (x, expptr); } #else # define USE_LONG_DOUBLE # include "printf-frexp.c" #endif gcal-3.6.3/lib/fpurge.c0000644000175000017500000001142412076511424011560 00000000000000/* Flushing buffers of a FILE stream. Copyright (C) 2007-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 . */ #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__ /* FreeBSD, NetBSD, OpenBSD, DragonFly, Mac OS X, Cygwin */ 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__ /* FreeBSD, NetBSD, OpenBSD, DragonFly, Mac OS X, Cygwin */ 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, 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-3.6.3/lib/strings.in.h0000644000175000017500000001001012125375411012360 00000000000000/* -*- buffer-read-only: t -*- vi: set ro: */ /* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* A substitute . Copyright (C) 2007-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, 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-3.6.3/lib/regexec.c0000644000175000017500000040015412125375411011713 00000000000000/* -*- buffer-read-only: t -*- vi: set ro: */ /* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* Extended regular expression matching and search library. Copyright (C) 2002-2013 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 (preg, string, nmatch, pmatch, eflags) const regex_t *_Restrict_ preg; const char *_Restrict_ string; size_t nmatch; regmatch_t pmatch[_Restrict_arr_]; int eflags; { reg_errcode_t err; Idx start, length; #ifdef _LIBC re_dfa_t *dfa = preg->buffer; #endif 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); } __libc_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); __libc_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 (bufp, string, length, start, regs) struct re_pattern_buffer *bufp; const char *string; Idx length, 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 (bufp, string, length, start, range, regs) struct re_pattern_buffer *bufp; const char *string; Idx length, 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 (bufp, string1, length1, string2, length2, start, regs, stop) struct re_pattern_buffer *bufp; const char *string1, *string2; Idx length1, length2, start, stop; struct re_registers *regs; { 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 (bufp, string1, length1, string2, length2, start, range, regs, stop) struct re_pattern_buffer *bufp; const char *string1, *string2; Idx length1, length2, start, stop; regoff_t range; struct re_registers *regs; { 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 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 = length1 + length2; char *s = NULL; if (BE (length1 < 0 || length2 < 0 || stop < 0 || len < length1, 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 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; #ifdef _LIBC re_dfa_t *dfa = bufp->buffer; #endif 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; __libc_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: __libc_lock_unlock (dfa->lock); return rval; } static unsigned 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 (bufp, regs, num_regs, starts, ends) struct re_pattern_buffer *bufp; struct re_registers *regs; __re_size_t num_regs; regoff_t *starts, *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 (s) 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__ 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 = REG_MISSING; 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 != REG_MISSING) { if (BE (match_last == REG_ERROR, 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 = REG_MISSING; } else break; /* We found a match. */ } } match_ctx_clean (&mctx); } #ifdef DEBUG assert (match_last != REG_MISSING); 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 __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 (! REG_VALID_INDEX (match_last)) { 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 REG_MISSING if there is no match, and return REG_ERROR 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 = REG_MISSING; 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 REG_ERROR; } 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 REG_ERROR; } } 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 REG_ERROR; 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 REG_MISSING 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 REG_ERROR; /* Pick up a valid destination, or return REG_MISSING if none is found. */ for (dest_node = REG_MISSING, i = 0; i < edests->nelem; ++i) { Idx candidate = edests->elems[i]; if (!re_node_set_contains (cur_nodes, candidate)) continue; if (dest_node == REG_MISSING) 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 REG_ERROR; /* 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 REG_MISSING; 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 REG_MISSING; } } if (naccepted == 0) { Idx dest_node; ok = re_node_set_insert (eps_via_nodes, node); if (BE (! ok, 0)) return REG_ERROR; 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 REG_MISSING; re_node_set_empty (eps_via_nodes); return dest_node; } } return REG_MISSING; } 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 (REG_VALID_INDEX (num)); *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 (! REG_VALID_INDEX (cur_node), 0)) { if (BE (cur_node == REG_ERROR, 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] : REG_MISSING); if ((!re_node_set_contains (inv_eclosure, edst1) && re_node_set_contains (dest_nodes, edst1)) || (REG_VALID_NONZERO_INDEX (edst2) && !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 != REG_MISSING) { 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 = REG_MISSING; Idx cls_node = REG_MISSING; 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 (REG_VALID_INDEX (ops_node)) { 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 (REG_VALID_INDEX (cls_node)) 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 == REG_MISSING) 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] != REG_MISSING); #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] != REG_MISSING); #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 != REG_MISSING) { 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 == REG_MISSING) 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 REG_MISSING; } /* 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 == REG_MISSING) { /* 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 == REG_MISSING) 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 (! REG_VALID_NONZERO_INDEX (ndests), 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 != REG_MISSING) { 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 REG_MISSING; } #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. */ 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; /* This #include defines a local function! */ # include /* 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 (&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 = REG_MISSING; 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 REG_MISSING 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 REG_MISSING; } /* 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-3.6.3/lib/string.in.h0000644000175000017500000011661312125375411012215 00000000000000/* -*- buffer-read-only: t -*- vi: set ro: */ /* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* A GNU-like . Copyright (C) 1995-1996, 2001-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, see . */ #ifndef _@GUARD_PREFIX@_STRING_H #if __GNUC__ >= 3 @PRAGMA_SYSTEM_HEADER@ #endif @PRAGMA_COLUMNS@ /* The include_next requires a split double-inclusion guard. */ #@INCLUDE_NEXT@ @NEXT_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 *__string, size_t __n) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (strndup, char *, (char const *__string, size_t __n)); # else # if ! @HAVE_DECL_STRNDUP@ _GL_FUNCDECL_SYS (strndup, char *, (char const *__string, size_t __n) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (strndup, char *, (char const *__string, 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 *__string, size_t __maxlen) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (strnlen, size_t, (char const *__string, size_t __maxlen)); # else # if ! @HAVE_DECL_STRNLEN@ _GL_FUNCDECL_SYS (strnlen, size_t, (char const *__string, size_t __maxlen) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (strnlen, size_t, (char const *__string, 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 */ gcal-3.6.3/lib/locale.in.h0000644000175000017500000001600212076511424012136 00000000000000/* A POSIX . Copyright (C) 2007-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 . */ #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-3.6.3/lib/fatal-signal.c0000644000175000017500000001722412076511424012636 00000000000000/* Emergency actions in case of a fatal signal. Copyright (C) 2003-2004, 2006-2013 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-3.6.3/lib/striconveh.c0000644000175000017500000011453312076511424012461 00000000000000/* Character set conversion with error handling. Copyright (C) 2001-2013 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 "striconveh.h" #include #include #include #include #if HAVE_ICONV # include # include "unistr.h" #endif #include "c-strcase.h" #include "c-strcaseeq.h" #ifndef SIZE_MAX # define SIZE_MAX ((size_t) -1) #endif #if HAVE_ICONV /* The caller must provide an iconveh_t, not just an iconv_t, because when a conversion error occurs, we may have to determine the Unicode representation of the inconvertible character. */ int iconveh_open (const char *to_codeset, const char *from_codeset, iconveh_t *cdp) { iconv_t cd; iconv_t cd1; iconv_t cd2; /* Avoid glibc-2.1 bug with EUC-KR. */ # if ((__GLIBC__ == 2 && __GLIBC_MINOR__ <= 1) && !defined __UCLIBC__) \ && !defined _LIBICONV_VERSION if (c_strcasecmp (from_codeset, "EUC-KR") == 0 || c_strcasecmp (to_codeset, "EUC-KR") == 0) { errno = EINVAL; return -1; } # endif cd = iconv_open (to_codeset, from_codeset); if (STRCASEEQ (from_codeset, "UTF-8", 'U','T','F','-','8',0,0,0,0)) cd1 = (iconv_t)(-1); else { cd1 = iconv_open ("UTF-8", from_codeset); if (cd1 == (iconv_t)(-1)) { int saved_errno = errno; if (cd != (iconv_t)(-1)) iconv_close (cdp->cd); errno = saved_errno; return -1; } } if (STRCASEEQ (to_codeset, "UTF-8", 'U','T','F','-','8',0,0,0,0) # if (((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 2) || __GLIBC__ > 2) \ && !defined __UCLIBC__) \ || _LIBICONV_VERSION >= 0x0105 || c_strcasecmp (to_codeset, "UTF-8//TRANSLIT") == 0 # endif ) cd2 = (iconv_t)(-1); else { cd2 = iconv_open (to_codeset, "UTF-8"); if (cd2 == (iconv_t)(-1)) { int saved_errno = errno; if (cd1 != (iconv_t)(-1)) iconv_close (cd1); if (cd != (iconv_t)(-1)) iconv_close (cd); errno = saved_errno; return -1; } } cdp->cd = cd; cdp->cd1 = cd1; cdp->cd2 = cd2; return 0; } int iconveh_close (const iconveh_t *cd) { if (cd->cd2 != (iconv_t)(-1) && iconv_close (cd->cd2) < 0) { /* Return -1, but preserve the errno from iconv_close. */ int saved_errno = errno; if (cd->cd1 != (iconv_t)(-1)) iconv_close (cd->cd1); if (cd->cd != (iconv_t)(-1)) iconv_close (cd->cd); errno = saved_errno; return -1; } if (cd->cd1 != (iconv_t)(-1) && iconv_close (cd->cd1) < 0) { /* Return -1, but preserve the errno from iconv_close. */ int saved_errno = errno; if (cd->cd != (iconv_t)(-1)) iconv_close (cd->cd); errno = saved_errno; return -1; } if (cd->cd != (iconv_t)(-1) && iconv_close (cd->cd) < 0) return -1; return 0; } /* iconv_carefully is like iconv, except that it stops as soon as it encounters a conversion error, and it returns in *INCREMENTED a boolean telling whether it has incremented the input pointers past the error location. */ # if !defined _LIBICONV_VERSION && !(defined __GLIBC__ && !defined __UCLIBC__) /* Irix iconv() inserts a NUL byte if it cannot convert. NetBSD iconv() inserts a question mark if it cannot convert. Only GNU libiconv and GNU libc are known to prefer to fail rather than doing a lossy conversion. */ static size_t iconv_carefully (iconv_t cd, const char **inbuf, size_t *inbytesleft, char **outbuf, size_t *outbytesleft, bool *incremented) { const char *inptr = *inbuf; const char *inptr_end = inptr + *inbytesleft; char *outptr = *outbuf; size_t outsize = *outbytesleft; const char *inptr_before; size_t res; do { size_t insize; inptr_before = inptr; res = (size_t)(-1); for (insize = 1; inptr + insize <= inptr_end; insize++) { res = iconv (cd, (ICONV_CONST char **) &inptr, &insize, &outptr, &outsize); if (!(res == (size_t)(-1) && errno == EINVAL)) break; /* iconv can eat up a shift sequence but give EINVAL while attempting to convert the first character. E.g. libiconv does this. */ if (inptr > inptr_before) { res = 0; break; } } if (res == 0) { *outbuf = outptr; *outbytesleft = outsize; } } while (res == 0 && inptr < inptr_end); *inbuf = inptr; *inbytesleft = inptr_end - inptr; if (res != (size_t)(-1) && res > 0) { /* iconv() has already incremented INPTR. We cannot go back to a previous INPTR, otherwise the state inside CD would become invalid, if FROM_CODESET is a stateful encoding. So, tell the caller that *INBUF has already been incremented. */ *incremented = (inptr > inptr_before); errno = EILSEQ; return (size_t)(-1); } else { *incremented = false; return res; } } # else # define iconv_carefully(cd, inbuf, inbytesleft, outbuf, outbytesleft, incremented) \ (*(incremented) = false, \ iconv (cd, (ICONV_CONST char **) (inbuf), inbytesleft, outbuf, outbytesleft)) # endif /* iconv_carefully_1 is like iconv_carefully, except that it stops after converting one character or one shift sequence. */ static size_t iconv_carefully_1 (iconv_t cd, const char **inbuf, size_t *inbytesleft, char **outbuf, size_t *outbytesleft, bool *incremented) { const char *inptr_before = *inbuf; const char *inptr = inptr_before; const char *inptr_end = inptr_before + *inbytesleft; char *outptr = *outbuf; size_t outsize = *outbytesleft; size_t res = (size_t)(-1); size_t insize; for (insize = 1; inptr_before + insize <= inptr_end; insize++) { inptr = inptr_before; res = iconv (cd, (ICONV_CONST char **) &inptr, &insize, &outptr, &outsize); if (!(res == (size_t)(-1) && errno == EINVAL)) break; /* iconv can eat up a shift sequence but give EINVAL while attempting to convert the first character. E.g. libiconv does this. */ if (inptr > inptr_before) { res = 0; break; } } *inbuf = inptr; *inbytesleft = inptr_end - inptr; # if !defined _LIBICONV_VERSION && !(defined __GLIBC__ && !defined __UCLIBC__) /* Irix iconv() inserts a NUL byte if it cannot convert. NetBSD iconv() inserts a question mark if it cannot convert. Only GNU libiconv and GNU libc are known to prefer to fail rather than doing a lossy conversion. */ if (res != (size_t)(-1) && res > 0) { /* iconv() has already incremented INPTR. We cannot go back to a previous INPTR, otherwise the state inside CD would become invalid, if FROM_CODESET is a stateful encoding. So, tell the caller that *INBUF has already been incremented. */ *incremented = (inptr > inptr_before); errno = EILSEQ; return (size_t)(-1); } # endif if (res != (size_t)(-1)) { *outbuf = outptr; *outbytesleft = outsize; } *incremented = false; return res; } /* utf8conv_carefully is like iconv, except that - it converts from UTF-8 to UTF-8, - it stops as soon as it encounters a conversion error, and it returns in *INCREMENTED a boolean telling whether it has incremented the input pointers past the error location, - if one_character_only is true, it stops after converting one character. */ static size_t utf8conv_carefully (bool one_character_only, const char **inbuf, size_t *inbytesleft, char **outbuf, size_t *outbytesleft, bool *incremented) { const char *inptr = *inbuf; size_t insize = *inbytesleft; char *outptr = *outbuf; size_t outsize = *outbytesleft; size_t res; res = 0; do { ucs4_t uc; int n; int m; n = u8_mbtoucr (&uc, (const uint8_t *) inptr, insize); if (n < 0) { errno = (n == -2 ? EINVAL : EILSEQ); n = u8_mbtouc (&uc, (const uint8_t *) inptr, insize); inptr += n; insize -= n; res = (size_t)(-1); *incremented = true; break; } if (outsize == 0) { errno = E2BIG; res = (size_t)(-1); *incremented = false; break; } m = u8_uctomb ((uint8_t *) outptr, uc, outsize); if (m == -2) { errno = E2BIG; res = (size_t)(-1); *incremented = false; break; } inptr += n; insize -= n; if (m == -1) { errno = EILSEQ; res = (size_t)(-1); *incremented = true; break; } outptr += m; outsize -= m; } while (!one_character_only && insize > 0); *inbuf = inptr; *inbytesleft = insize; *outbuf = outptr; *outbytesleft = outsize; return res; } static int mem_cd_iconveh_internal (const char *src, size_t srclen, iconv_t cd, iconv_t cd1, iconv_t cd2, enum iconv_ilseq_handler handler, size_t extra_alloc, size_t *offsets, char **resultp, size_t *lengthp) { /* When a conversion error occurs, we cannot start using CD1 and CD2 at this point: FROM_CODESET may be a stateful encoding like ISO-2022-KR. Instead, we have to start afresh from the beginning of SRC. */ /* Use a temporary buffer, so that for small strings, a single malloc() call will be sufficient. */ # define tmpbufsize 4096 /* The alignment is needed when converting e.g. to glibc's WCHAR_T or libiconv's UCS-4-INTERNAL encoding. */ union { unsigned int align; char buf[tmpbufsize]; } tmp; # define tmpbuf tmp.buf char *initial_result; char *result; size_t allocated; size_t length; size_t last_length = (size_t)(-1); /* only needed if offsets != NULL */ if (*resultp != NULL && *lengthp >= sizeof (tmpbuf)) { initial_result = *resultp; allocated = *lengthp; } else { initial_result = tmpbuf; allocated = sizeof (tmpbuf); } result = initial_result; /* Test whether a direct conversion is possible at all. */ if (cd == (iconv_t)(-1)) goto indirectly; if (offsets != NULL) { size_t i; for (i = 0; i < srclen; i++) offsets[i] = (size_t)(-1); last_length = (size_t)(-1); } length = 0; /* First, try a direct conversion, and see whether a conversion error occurs at all. */ { const char *inptr = src; size_t insize = srclen; /* Avoid glibc-2.1 bug and Solaris 2.7-2.9 bug. */ # if defined _LIBICONV_VERSION \ || !(((__GLIBC__ == 2 && __GLIBC_MINOR__ <= 1) && !defined __UCLIBC__) \ || defined __sun) /* Set to the initial state. */ iconv (cd, NULL, NULL, NULL, NULL); # endif while (insize > 0) { char *outptr = result + length; size_t outsize = allocated - extra_alloc - length; bool incremented; size_t res; bool grow; if (offsets != NULL) { if (length != last_length) /* ensure that offset[] be increasing */ { offsets[inptr - src] = length; last_length = length; } res = iconv_carefully_1 (cd, &inptr, &insize, &outptr, &outsize, &incremented); } else /* Use iconv_carefully instead of iconv here, because: - If TO_CODESET is UTF-8, we can do the error handling in this loop, no need for a second loop, - With iconv() implementations other than GNU libiconv and GNU libc, if we use iconv() in a big swoop, checking for an E2BIG return, we lose the number of irreversible conversions. */ res = iconv_carefully (cd, &inptr, &insize, &outptr, &outsize, &incremented); length = outptr - result; grow = (length + extra_alloc > allocated / 2); if (res == (size_t)(-1)) { if (errno == E2BIG) grow = true; else if (errno == EINVAL) break; else if (errno == EILSEQ && handler != iconveh_error) { if (cd2 == (iconv_t)(-1)) { /* TO_CODESET is UTF-8. */ /* Error handling can produce up to 1 byte of output. */ if (length + 1 + extra_alloc > allocated) { char *memory; allocated = 2 * allocated; if (length + 1 + extra_alloc > allocated) abort (); if (result == initial_result) memory = (char *) malloc (allocated); else memory = (char *) realloc (result, allocated); if (memory == NULL) { if (result != initial_result) free (result); errno = ENOMEM; return -1; } if (result == initial_result) memcpy (memory, initial_result, length); result = memory; grow = false; } /* The input is invalid in FROM_CODESET. Eat up one byte and emit a question mark. */ if (!incremented) { if (insize == 0) abort (); inptr++; insize--; } result[length] = '?'; length++; } else goto indirectly; } else { if (result != initial_result) { int saved_errno = errno; free (result); errno = saved_errno; } return -1; } } if (insize == 0) break; if (grow) { char *memory; allocated = 2 * allocated; if (result == initial_result) memory = (char *) malloc (allocated); else memory = (char *) realloc (result, allocated); if (memory == NULL) { if (result != initial_result) free (result); errno = ENOMEM; return -1; } if (result == initial_result) memcpy (memory, initial_result, length); result = memory; } } } /* Now get the conversion state back to the initial state. But avoid glibc-2.1 bug and Solaris 2.7 bug. */ #if defined _LIBICONV_VERSION \ || !(((__GLIBC__ == 2 && __GLIBC_MINOR__ <= 1) && !defined __UCLIBC__) \ || defined __sun) for (;;) { char *outptr = result + length; size_t outsize = allocated - extra_alloc - length; size_t res; res = iconv (cd, NULL, NULL, &outptr, &outsize); length = outptr - result; if (res == (size_t)(-1)) { if (errno == E2BIG) { char *memory; allocated = 2 * allocated; if (result == initial_result) memory = (char *) malloc (allocated); else memory = (char *) realloc (result, allocated); if (memory == NULL) { if (result != initial_result) free (result); errno = ENOMEM; return -1; } if (result == initial_result) memcpy (memory, initial_result, length); result = memory; } else { if (result != initial_result) { int saved_errno = errno; free (result); errno = saved_errno; } return -1; } } else break; } #endif /* The direct conversion succeeded. */ goto done; indirectly: /* The direct conversion failed. Use a conversion through UTF-8. */ if (offsets != NULL) { size_t i; for (i = 0; i < srclen; i++) offsets[i] = (size_t)(-1); last_length = (size_t)(-1); } length = 0; { const bool slowly = (offsets != NULL || handler == iconveh_error); # define utf8bufsize 4096 /* may also be smaller or larger than tmpbufsize */ char utf8buf[utf8bufsize + 1]; size_t utf8len = 0; const char *in1ptr = src; size_t in1size = srclen; bool do_final_flush1 = true; bool do_final_flush2 = true; /* Avoid glibc-2.1 bug and Solaris 2.7-2.9 bug. */ # if defined _LIBICONV_VERSION \ || !(((__GLIBC__ == 2 && __GLIBC_MINOR__ <= 1) && !defined __UCLIBC__) \ || defined __sun) /* Set to the initial state. */ if (cd1 != (iconv_t)(-1)) iconv (cd1, NULL, NULL, NULL, NULL); if (cd2 != (iconv_t)(-1)) iconv (cd2, NULL, NULL, NULL, NULL); # endif while (in1size > 0 || do_final_flush1 || utf8len > 0 || do_final_flush2) { char *out1ptr = utf8buf + utf8len; size_t out1size = utf8bufsize - utf8len; bool incremented1; size_t res1; int errno1; /* Conversion step 1: from FROM_CODESET to UTF-8. */ if (in1size > 0) { if (offsets != NULL && length != last_length) /* ensure that offset[] be increasing */ { offsets[in1ptr - src] = length; last_length = length; } if (cd1 != (iconv_t)(-1)) { if (slowly) res1 = iconv_carefully_1 (cd1, &in1ptr, &in1size, &out1ptr, &out1size, &incremented1); else res1 = iconv_carefully (cd1, &in1ptr, &in1size, &out1ptr, &out1size, &incremented1); } else { /* FROM_CODESET is UTF-8. */ res1 = utf8conv_carefully (slowly, &in1ptr, &in1size, &out1ptr, &out1size, &incremented1); } } else if (do_final_flush1) { /* Now get the conversion state of CD1 back to the initial state. But avoid glibc-2.1 bug and Solaris 2.7 bug. */ # if defined _LIBICONV_VERSION \ || !(((__GLIBC__ == 2 && __GLIBC_MINOR__ <= 1) && !defined __UCLIBC__) \ || defined __sun) if (cd1 != (iconv_t)(-1)) res1 = iconv (cd1, NULL, NULL, &out1ptr, &out1size); else # endif res1 = 0; do_final_flush1 = false; incremented1 = true; } else { res1 = 0; incremented1 = true; } if (res1 == (size_t)(-1) && !(errno == E2BIG || errno == EINVAL || errno == EILSEQ)) { if (result != initial_result) { int saved_errno = errno; free (result); errno = saved_errno; } return -1; } if (res1 == (size_t)(-1) && errno == EILSEQ && handler != iconveh_error) { /* The input is invalid in FROM_CODESET. Eat up one byte and emit a question mark. Room for the question mark was allocated at the end of utf8buf. */ if (!incremented1) { if (in1size == 0) abort (); in1ptr++; in1size--; } *out1ptr++ = '?'; res1 = 0; } errno1 = errno; utf8len = out1ptr - utf8buf; if (offsets != NULL || in1size == 0 || utf8len > utf8bufsize / 2 || (res1 == (size_t)(-1) && errno1 == E2BIG)) { /* Conversion step 2: from UTF-8 to TO_CODESET. */ const char *in2ptr = utf8buf; size_t in2size = utf8len; while (in2size > 0 || (in1size == 0 && !do_final_flush1 && do_final_flush2)) { char *out2ptr = result + length; size_t out2size = allocated - extra_alloc - length; bool incremented2; size_t res2; bool grow; if (in2size > 0) { if (cd2 != (iconv_t)(-1)) res2 = iconv_carefully (cd2, &in2ptr, &in2size, &out2ptr, &out2size, &incremented2); else /* TO_CODESET is UTF-8. */ res2 = utf8conv_carefully (false, &in2ptr, &in2size, &out2ptr, &out2size, &incremented2); } else /* in1size == 0 && !do_final_flush1 && in2size == 0 && do_final_flush2 */ { /* Now get the conversion state of CD1 back to the initial state. But avoid glibc-2.1 bug and Solaris 2.7 bug. */ # if defined _LIBICONV_VERSION \ || !(((__GLIBC__ == 2 && __GLIBC_MINOR__ <= 1) && !defined __UCLIBC__) \ || defined __sun) if (cd2 != (iconv_t)(-1)) res2 = iconv (cd2, NULL, NULL, &out2ptr, &out2size); else # endif res2 = 0; do_final_flush2 = false; incremented2 = true; } length = out2ptr - result; grow = (length + extra_alloc > allocated / 2); if (res2 == (size_t)(-1)) { if (errno == E2BIG) grow = true; else if (errno == EINVAL) break; else if (errno == EILSEQ && handler != iconveh_error) { /* Error handling can produce up to 10 bytes of ASCII output. But TO_CODESET may be UCS-2, UTF-16 or UCS-4, so use CD2 here as well. */ char scratchbuf[10]; size_t scratchlen; ucs4_t uc; const char *inptr; size_t insize; size_t res; if (incremented2) { if (u8_prev (&uc, (const uint8_t *) in2ptr, (const uint8_t *) utf8buf) == NULL) abort (); } else { int n; if (in2size == 0) abort (); n = u8_mbtouc_unsafe (&uc, (const uint8_t *) in2ptr, in2size); in2ptr += n; in2size -= n; } if (handler == iconveh_escape_sequence) { static char hex[16] = "0123456789ABCDEF"; scratchlen = 0; scratchbuf[scratchlen++] = '\\'; if (uc < 0x10000) scratchbuf[scratchlen++] = 'u'; else { scratchbuf[scratchlen++] = 'U'; scratchbuf[scratchlen++] = hex[(uc>>28) & 15]; scratchbuf[scratchlen++] = hex[(uc>>24) & 15]; scratchbuf[scratchlen++] = hex[(uc>>20) & 15]; scratchbuf[scratchlen++] = hex[(uc>>16) & 15]; } scratchbuf[scratchlen++] = hex[(uc>>12) & 15]; scratchbuf[scratchlen++] = hex[(uc>>8) & 15]; scratchbuf[scratchlen++] = hex[(uc>>4) & 15]; scratchbuf[scratchlen++] = hex[uc & 15]; } else { scratchbuf[0] = '?'; scratchlen = 1; } inptr = scratchbuf; insize = scratchlen; if (cd2 != (iconv_t)(-1)) res = iconv (cd2, (ICONV_CONST char **) &inptr, &insize, &out2ptr, &out2size); else { /* TO_CODESET is UTF-8. */ if (out2size >= insize) { memcpy (out2ptr, inptr, insize); out2ptr += insize; out2size -= insize; inptr += insize; insize = 0; res = 0; } else { errno = E2BIG; res = (size_t)(-1); } } length = out2ptr - result; if (res == (size_t)(-1) && errno == E2BIG) { char *memory; allocated = 2 * allocated; if (length + 1 + extra_alloc > allocated) abort (); if (result == initial_result) memory = (char *) malloc (allocated); else memory = (char *) realloc (result, allocated); if (memory == NULL) { if (result != initial_result) free (result); errno = ENOMEM; return -1; } if (result == initial_result) memcpy (memory, initial_result, length); result = memory; grow = false; out2ptr = result + length; out2size = allocated - extra_alloc - length; if (cd2 != (iconv_t)(-1)) res = iconv (cd2, (ICONV_CONST char **) &inptr, &insize, &out2ptr, &out2size); else { /* TO_CODESET is UTF-8. */ if (!(out2size >= insize)) abort (); memcpy (out2ptr, inptr, insize); out2ptr += insize; out2size -= insize; inptr += insize; insize = 0; res = 0; } length = out2ptr - result; } # if !defined _LIBICONV_VERSION && !(defined __GLIBC__ && !defined __UCLIBC__) /* Irix iconv() inserts a NUL byte if it cannot convert. NetBSD iconv() inserts a question mark if it cannot convert. Only GNU libiconv and GNU libc are known to prefer to fail rather than doing a lossy conversion. */ if (res != (size_t)(-1) && res > 0) { errno = EILSEQ; res = (size_t)(-1); } # endif if (res == (size_t)(-1)) { /* Failure converting the ASCII replacement. */ if (result != initial_result) { int saved_errno = errno; free (result); errno = saved_errno; } return -1; } } else { if (result != initial_result) { int saved_errno = errno; free (result); errno = saved_errno; } return -1; } } if (!(in2size > 0 || (in1size == 0 && !do_final_flush1 && do_final_flush2))) break; if (grow) { char *memory; allocated = 2 * allocated; if (result == initial_result) memory = (char *) malloc (allocated); else memory = (char *) realloc (result, allocated); if (memory == NULL) { if (result != initial_result) free (result); errno = ENOMEM; return -1; } if (result == initial_result) memcpy (memory, initial_result, length); result = memory; } } /* Move the remaining bytes to the beginning of utf8buf. */ if (in2size > 0) memmove (utf8buf, in2ptr, in2size); utf8len = in2size; } if (res1 == (size_t)(-1)) { if (errno1 == EINVAL) in1size = 0; else if (errno1 == EILSEQ) { if (result != initial_result) free (result); errno = errno1; return -1; } } } # undef utf8bufsize } done: /* Now the final memory allocation. */ if (result == tmpbuf) { size_t memsize = length + extra_alloc; if (*resultp != NULL && *lengthp >= memsize) result = *resultp; else { char *memory; memory = (char *) malloc (memsize > 0 ? memsize : 1); if (memory != NULL) result = memory; else { errno = ENOMEM; return -1; } } memcpy (result, tmpbuf, length); } else if (result != *resultp && length + extra_alloc < allocated) { /* Shrink the allocated memory if possible. */ size_t memsize = length + extra_alloc; char *memory; memory = (char *) realloc (result, memsize > 0 ? memsize : 1); if (memory != NULL) result = memory; } *resultp = result; *lengthp = length; return 0; # undef tmpbuf # undef tmpbufsize } int mem_cd_iconveh (const char *src, size_t srclen, const iconveh_t *cd, enum iconv_ilseq_handler handler, size_t *offsets, char **resultp, size_t *lengthp) { return mem_cd_iconveh_internal (src, srclen, cd->cd, cd->cd1, cd->cd2, handler, 0, offsets, resultp, lengthp); } char * str_cd_iconveh (const char *src, const iconveh_t *cd, enum iconv_ilseq_handler handler) { /* For most encodings, a trailing NUL byte in the input will be converted to a trailing NUL byte in the output. But not for UTF-7. So that this function is usable for UTF-7, we have to exclude the NUL byte from the conversion and add it by hand afterwards. */ char *result = NULL; size_t length = 0; int retval = mem_cd_iconveh_internal (src, strlen (src), cd->cd, cd->cd1, cd->cd2, handler, 1, NULL, &result, &length); if (retval < 0) { if (result != NULL) { int saved_errno = errno; free (result); errno = saved_errno; } return NULL; } /* Add the terminating NUL byte. */ result[length] = '\0'; return result; } #endif int mem_iconveh (const char *src, size_t srclen, const char *from_codeset, const char *to_codeset, enum iconv_ilseq_handler handler, size_t *offsets, char **resultp, size_t *lengthp) { if (srclen == 0) { /* Nothing to convert. */ *lengthp = 0; return 0; } else if (offsets == NULL && c_strcasecmp (from_codeset, to_codeset) == 0) { char *result; if (*resultp != NULL && *lengthp >= srclen) result = *resultp; else { result = (char *) malloc (srclen); if (result == NULL) { errno = ENOMEM; return -1; } } memcpy (result, src, srclen); *resultp = result; *lengthp = srclen; return 0; } else { #if HAVE_ICONV iconveh_t cd; char *result; size_t length; int retval; if (iconveh_open (to_codeset, from_codeset, &cd) < 0) return -1; result = *resultp; length = *lengthp; retval = mem_cd_iconveh (src, srclen, &cd, handler, offsets, &result, &length); if (retval < 0) { /* Close cd, but preserve the errno from str_cd_iconv. */ int saved_errno = errno; iconveh_close (&cd); errno = saved_errno; } else { if (iconveh_close (&cd) < 0) { /* Return -1, but free the allocated memory, and while doing that, preserve the errno from iconveh_close. */ int saved_errno = errno; if (result != *resultp && result != NULL) free (result); errno = saved_errno; return -1; } *resultp = result; *lengthp = length; } return retval; #else /* This is a different error code than if iconv_open existed but didn't support from_codeset and to_codeset, so that the caller can emit an error message such as "iconv() is not supported. Installing GNU libiconv and then reinstalling this package would fix this." */ errno = ENOSYS; return -1; #endif } } char * str_iconveh (const char *src, const char *from_codeset, const char *to_codeset, enum iconv_ilseq_handler handler) { if (*src == '\0' || c_strcasecmp (from_codeset, to_codeset) == 0) { char *result = strdup (src); if (result == NULL) errno = ENOMEM; return result; } else { #if HAVE_ICONV iconveh_t cd; char *result; if (iconveh_open (to_codeset, from_codeset, &cd) < 0) return NULL; result = str_cd_iconveh (src, &cd, handler); if (result == NULL) { /* Close cd, but preserve the errno from str_cd_iconv. */ int saved_errno = errno; iconveh_close (&cd); errno = saved_errno; } else { if (iconveh_close (&cd) < 0) { /* Return NULL, but free the allocated memory, and while doing that, preserve the errno from iconveh_close. */ int saved_errno = errno; free (result); errno = saved_errno; return NULL; } } return result; #else /* This is a different error code than if iconv_open existed but didn't support from_codeset and to_codeset, so that the caller can emit an error message such as "iconv() is not supported. Installing GNU libiconv and then reinstalling this package would fix this." */ errno = ENOSYS; return NULL; #endif } } gcal-3.6.3/lib/sys_types.in.h0000644000175000017500000000332712125375411012746 00000000000000/* -*- buffer-read-only: t -*- vi: set ro: */ /* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* Provide a more complete sys/types.h. Copyright (C) 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, 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. */ #@INCLUDE_NEXT@ @NEXT_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-3.6.3/lib/str-two-way.h0000644000175000017500000004231712125375411012516 00000000000000/* -*- buffer-read-only: t -*- vi: set ro: */ /* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* Byte-wise substring search, using the Two-Way algorithm. Copyright (C) 2008-2013 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-3.6.3/lib/spawn_faction_adddup2.c0000644000175000017500000000413412076511424014526 00000000000000/* Copyright (C) 2000, 2009-2013 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-3.6.3/lib/w32sock.h0000644000175000017500000000634112076511424011572 00000000000000/* w32sock.h --- internal auxiliary functions for Windows socket functions Copyright (C) 2008-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 . */ /* 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-3.6.3/lib/time.in.h0000644000175000017500000002164612125375411011646 00000000000000/* -*- buffer-read-only: t -*- vi: set ro: */ /* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* A more-standard . Copyright (C) 2007-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, 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. 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 _@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 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 /* The pthreads-win32 also defines a couple of broken macros. */ # undef asctime_r # undef ctime_r # undef gmtime_r # undef localtime_r # undef rand_r # undef strtok_r # 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 /* Parse BUF as a time stamp, 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 /* 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-3.6.3/lib/wait-process.c0000644000175000017500000002607412076511424012717 00000000000000/* Waiting for a subprocess to finish. Copyright (C) 2001-2003, 2005-2013 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-3.6.3/lib/intprops.h0000644000175000017500000003500612076511424012155 00000000000000/* intprops.h -- properties of integer types Copyright (C) 2001-2005, 2009-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 . */ /* Written by Paul Eggert. */ #ifndef _GL_INTPROPS_H #define _GL_INTPROPS_H #include /* Return an integer value, converted to the same type as the integer expression E after integer type promotion. V is the unconverted value. */ #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 negative values of the signed integer type T use two's complement, ones' complement, or signed magnitude representation, respectively. Much GNU code assumes two's complement, but some people like to be portable to all possible C hosts. */ #define TYPE_TWOS_COMPLEMENT(t) ((t) ~ (t) 0 == (t) -1) #define TYPE_ONES_COMPLEMENT(t) ((t) ~ (t) 0 == 0) #define TYPE_SIGNED_MAGNITUDE(t) ((t) ~ (t) 0 < (t) -1) /* True if the signed integer expression E uses two's complement. */ #define _GL_INT_TWOS_COMPLEMENT(e) (~ _GL_INT_CONVERT (e, 0) == -1) /* True if the arithmetic type T is signed. */ #define TYPE_SIGNED(t) (! ((t) 0 < (t) -1)) /* Return 1 if the integer expression E, after integer promotion, has a signed type. */ #define _GL_INT_SIGNED(e) (_GL_INT_NEGATE_CONVERT (e, 1) < 0) /* Minimum and maximum values for integer types and expressions. These macros have undefined behavior if T is signed and has padding bits. 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_SIGNED (t) \ ? (t) 0 \ : TYPE_SIGNED_MAGNITUDE (t) \ ? ~ (t) 0 \ : ~ TYPE_MAXIMUM (t))) #define TYPE_MAXIMUM(t) \ ((t) (! TYPE_SIGNED (t) \ ? (t) -1 \ : ((((t) 1 << (sizeof (t) * CHAR_BIT - 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) \ (_GL_INT_SIGNED (e) \ ? - _GL_INT_TWOS_COMPLEMENT (e) - _GL_SIGNED_INT_MAXIMUM (e) \ : _GL_INT_CONVERT (e, 0)) #define _GL_INT_MAXIMUM(e) \ (_GL_INT_SIGNED (e) \ ? _GL_SIGNED_INT_MAXIMUM (e) \ : _GL_INT_NEGATE_CONVERT (e, 1)) #define _GL_SIGNED_INT_MAXIMUM(e) \ (((_GL_INT_CONVERT (e, 1) << (sizeof ((e) + 0) * CHAR_BIT - 2)) - 1) * 2 + 1) /* Return 1 if the __typeof__ keyword works. This could be done by 'configure', but for now it's easier to do it by hand. */ #if 2 <= __GNUC__ || 0x5110 <= __SUNPRO_C # 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 (sizeof (t) * CHAR_BIT \ - _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)) /* 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. */ #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)) #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) /* Integer overflow checks. The INT__OVERFLOW macros return 1 if the corresponding C operators might not yield numerically correct answers due to arithmetic overflow. They work correctly on all known practical hosts, and do not rely on undefined behavior due to signed arithmetic overflow. Example usage: long int i = ...; long int j = ...; if (INT_MULTIPLY_OVERFLOW (i, j)) printf ("multiply would overflow"); else printf ("product is %ld", i * j); 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. 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) #define INT_NEGATE_OVERFLOW(a) \ INT_NEGATE_RANGE_OVERFLOW (a, _GL_INT_MINIMUM (a), _GL_INT_MAXIMUM (a)) #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))) #endif /* _GL_INTPROPS_H */ gcal-3.6.3/lib/iconv_open-hpux.h0000644000175000017500000002744112125376132013424 00000000000000/* ANSI-C code produced by gperf version 3.0.3 */ /* Command-line: gperf -m 10 ./iconv_open-hpux.gperf */ /* Computed positions: -k'4,$' */ #if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \ && ('%' == 37) && ('&' == 38) && ('\'' == 39) && ('(' == 40) \ && (')' == 41) && ('*' == 42) && ('+' == 43) && (',' == 44) \ && ('-' == 45) && ('.' == 46) && ('/' == 47) && ('0' == 48) \ && ('1' == 49) && ('2' == 50) && ('3' == 51) && ('4' == 52) \ && ('5' == 53) && ('6' == 54) && ('7' == 55) && ('8' == 56) \ && ('9' == 57) && (':' == 58) && (';' == 59) && ('<' == 60) \ && ('=' == 61) && ('>' == 62) && ('?' == 63) && ('A' == 65) \ && ('B' == 66) && ('C' == 67) && ('D' == 68) && ('E' == 69) \ && ('F' == 70) && ('G' == 71) && ('H' == 72) && ('I' == 73) \ && ('J' == 74) && ('K' == 75) && ('L' == 76) && ('M' == 77) \ && ('N' == 78) && ('O' == 79) && ('P' == 80) && ('Q' == 81) \ && ('R' == 82) && ('S' == 83) && ('T' == 84) && ('U' == 85) \ && ('V' == 86) && ('W' == 87) && ('X' == 88) && ('Y' == 89) \ && ('Z' == 90) && ('[' == 91) && ('\\' == 92) && (']' == 93) \ && ('^' == 94) && ('_' == 95) && ('a' == 97) && ('b' == 98) \ && ('c' == 99) && ('d' == 100) && ('e' == 101) && ('f' == 102) \ && ('g' == 103) && ('h' == 104) && ('i' == 105) && ('j' == 106) \ && ('k' == 107) && ('l' == 108) && ('m' == 109) && ('n' == 110) \ && ('o' == 111) && ('p' == 112) && ('q' == 113) && ('r' == 114) \ && ('s' == 115) && ('t' == 116) && ('u' == 117) && ('v' == 118) \ && ('w' == 119) && ('x' == 120) && ('y' == 121) && ('z' == 122) \ && ('{' == 123) && ('|' == 124) && ('}' == 125) && ('~' == 126)) /* The character set is not based on ISO-646. */ #error "gperf generated tables don't work with this execution character set. Please report a bug to ." #endif #line 1 "./iconv_open-hpux.gperf" struct mapping { int standard_name; const char vendor_name[9 + 1]; }; #define TOTAL_KEYWORDS 44 #define MIN_WORD_LENGTH 4 #define MAX_WORD_LENGTH 11 #define MIN_HASH_VALUE 6 #define MAX_HASH_VALUE 49 /* maximum key range = 44, duplicates = 0 */ #ifdef __GNUC__ __inline #else #ifdef __cplusplus inline #endif #endif static unsigned int mapping_hash (register const char *str, register unsigned int len) { static const unsigned char asso_values[] = { 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 1, 2, 24, 43, 5, 10, 0, 13, 32, 3, 19, 18, 50, 50, 50, 50, 50, 50, 50, 50, 50, 5, 50, 50, 50, 50, 14, 5, 0, 50, 50, 0, 27, 50, 12, 14, 50, 50, 0, 5, 2, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50 }; return len + asso_values[(unsigned char)str[3]+4] + asso_values[(unsigned char)str[len - 1]]; } struct stringpool_t { char stringpool_str6[sizeof("CP1256")]; char stringpool_str7[sizeof("CP1250")]; char stringpool_str8[sizeof("CP1251")]; char stringpool_str9[sizeof("CP850")]; char stringpool_str10[sizeof("TIS-620")]; char stringpool_str11[sizeof("CP1254")]; char stringpool_str12[sizeof("ISO-8859-6")]; char stringpool_str13[sizeof("EUC-TW")]; char stringpool_str14[sizeof("ISO-8859-1")]; char stringpool_str15[sizeof("ISO-8859-9")]; char stringpool_str16[sizeof("CP1255")]; char stringpool_str17[sizeof("BIG5")]; char stringpool_str18[sizeof("CP855")]; char stringpool_str19[sizeof("CP1257")]; char stringpool_str20[sizeof("EUC-KR")]; char stringpool_str21[sizeof("CP857")]; char stringpool_str22[sizeof("ISO-8859-5")]; char stringpool_str23[sizeof("ISO-8859-15")]; char stringpool_str24[sizeof("CP866")]; char stringpool_str25[sizeof("ISO-8859-7")]; char stringpool_str26[sizeof("CP861")]; char stringpool_str27[sizeof("CP869")]; char stringpool_str28[sizeof("CP874")]; char stringpool_str29[sizeof("CP864")]; char stringpool_str30[sizeof("CP1252")]; char stringpool_str31[sizeof("CP437")]; char stringpool_str32[sizeof("CP852")]; char stringpool_str33[sizeof("CP775")]; char stringpool_str34[sizeof("CP865")]; char stringpool_str35[sizeof("EUC-JP")]; char stringpool_str36[sizeof("ISO-8859-2")]; char stringpool_str37[sizeof("SHIFT_JIS")]; char stringpool_str38[sizeof("CP1258")]; char stringpool_str39[sizeof("UTF-8")]; char stringpool_str40[sizeof("HP-KANA8")]; char stringpool_str41[sizeof("HP-ROMAN8")]; char stringpool_str42[sizeof("HP-HEBREW8")]; char stringpool_str43[sizeof("GB2312")]; char stringpool_str44[sizeof("ISO-8859-8")]; char stringpool_str45[sizeof("HP-TURKISH8")]; char stringpool_str46[sizeof("HP-GREEK8")]; char stringpool_str47[sizeof("HP-ARABIC8")]; char stringpool_str48[sizeof("CP862")]; char stringpool_str49[sizeof("CP1253")]; }; static const struct stringpool_t stringpool_contents = { "CP1256", "CP1250", "CP1251", "CP850", "TIS-620", "CP1254", "ISO-8859-6", "EUC-TW", "ISO-8859-1", "ISO-8859-9", "CP1255", "BIG5", "CP855", "CP1257", "EUC-KR", "CP857", "ISO-8859-5", "ISO-8859-15", "CP866", "ISO-8859-7", "CP861", "CP869", "CP874", "CP864", "CP1252", "CP437", "CP852", "CP775", "CP865", "EUC-JP", "ISO-8859-2", "SHIFT_JIS", "CP1258", "UTF-8", "HP-KANA8", "HP-ROMAN8", "HP-HEBREW8", "GB2312", "ISO-8859-8", "HP-TURKISH8", "HP-GREEK8", "HP-ARABIC8", "CP862", "CP1253" }; #define stringpool ((const char *) &stringpool_contents) static const struct mapping mappings[] = { {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, #line 40 "./iconv_open-hpux.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str6, "cp1256"}, #line 34 "./iconv_open-hpux.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str7, "cp1250"}, #line 35 "./iconv_open-hpux.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str8, "cp1251"}, #line 23 "./iconv_open-hpux.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str9, "cp850"}, #line 49 "./iconv_open-hpux.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str10, "tis620"}, #line 38 "./iconv_open-hpux.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str11, "cp1254"}, #line 16 "./iconv_open-hpux.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str12, "iso88596"}, #line 53 "./iconv_open-hpux.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str13, "eucTW"}, #line 13 "./iconv_open-hpux.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str14, "iso88591"}, #line 19 "./iconv_open-hpux.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str15, "iso88599"}, #line 39 "./iconv_open-hpux.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str16, "cp1255"}, #line 54 "./iconv_open-hpux.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str17, "big5"}, #line 25 "./iconv_open-hpux.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str18, "cp855"}, #line 41 "./iconv_open-hpux.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str19, "cp1257"}, #line 52 "./iconv_open-hpux.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str20, "eucKR"}, #line 26 "./iconv_open-hpux.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str21, "cp857"}, #line 15 "./iconv_open-hpux.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str22, "iso88595"}, #line 20 "./iconv_open-hpux.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str23, "iso885915"}, #line 31 "./iconv_open-hpux.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str24, "cp866"}, #line 17 "./iconv_open-hpux.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str25, "iso88597"}, #line 27 "./iconv_open-hpux.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str26, "cp861"}, #line 32 "./iconv_open-hpux.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str27, "cp869"}, #line 33 "./iconv_open-hpux.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str28, "cp874"}, #line 29 "./iconv_open-hpux.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str29, "cp864"}, #line 36 "./iconv_open-hpux.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str30, "cp1252"}, #line 21 "./iconv_open-hpux.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str31, "cp437"}, #line 24 "./iconv_open-hpux.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str32, "cp852"}, #line 22 "./iconv_open-hpux.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str33, "cp775"}, #line 30 "./iconv_open-hpux.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str34, "cp865"}, #line 51 "./iconv_open-hpux.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str35, "eucJP"}, #line 14 "./iconv_open-hpux.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str36, "iso88592"}, #line 55 "./iconv_open-hpux.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str37, "sjis"}, #line 42 "./iconv_open-hpux.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str38, "cp1258"}, #line 56 "./iconv_open-hpux.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str39, "utf8"}, #line 48 "./iconv_open-hpux.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str40, "kana8"}, #line 43 "./iconv_open-hpux.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str41, "roman8"}, #line 46 "./iconv_open-hpux.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str42, "hebrew8"}, #line 50 "./iconv_open-hpux.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str43, "hp15CN"}, #line 18 "./iconv_open-hpux.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str44, "iso88598"}, #line 47 "./iconv_open-hpux.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str45, "turkish8"}, #line 45 "./iconv_open-hpux.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str46, "greek8"}, #line 44 "./iconv_open-hpux.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str47, "arabic8"}, #line 28 "./iconv_open-hpux.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str48, "cp862"}, #line 37 "./iconv_open-hpux.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str49, "cp1253"} }; #ifdef __GNUC__ __inline #ifdef __GNUC_STDC_INLINE__ __attribute__ ((__gnu_inline__)) #endif #endif const struct mapping * mapping_lookup (register const char *str, register unsigned int len) { if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH) { register int key = mapping_hash (str, len); if (key <= MAX_HASH_VALUE && key >= 0) { register int o = mappings[key].standard_name; if (o >= 0) { register const char *s = o + stringpool; if (*str == *s && !strcmp (str + 1, s + 1)) return &mappings[key]; } } } return 0; } gcal-3.6.3/lib/write.c0000644000175000017500000001201112076511424011413 00000000000000/* POSIX compatible write() function. Copyright (C) 2008-2013 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-3.6.3/lib/stdbool.in.h0000644000175000017500000001212412125375411012345 00000000000000/* -*- buffer-read-only: t -*- vi: set ro: */ /* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* Copyright (C) 2001-2003, 2006-2013 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-3.6.3/lib/malloca.valgrind0000644000175000017500000000025711534672763013302 00000000000000# Suppress a valgrind message about use of uninitialized memory in freea(). # This use is OK because it provides only a speedup. { freea Memcheck:Cond fun:freea } gcal-3.6.3/lib/tempname.h0000644000175000017500000000346512076511424012111 00000000000000/* Create a temporary file or directory. Copyright (C) 2006, 2009-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 . */ /* 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 /* 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); #endif /* GL_TEMPNAME_H */ gcal-3.6.3/lib/dup2.c0000644000175000017500000000716512076511423011150 00000000000000/* Duplicate an open file descriptor to a specified file descriptor. Copyright (C) 1999, 2004-2007, 2009-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 . */ /* 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 # 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 Haiku, dup2 (fd, fd) mistakenly clears FD_CLOEXEC. */ 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-3.6.3/lib/freading.c0000644000175000017500000000576612076511424012063 00000000000000/* Retrieve information about a FILE stream. Copyright (C) 2007-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 . */ #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__ /* FreeBSD, NetBSD, OpenBSD, DragonFly, Mac OS X, Cygwin */ 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, 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-3.6.3/lib/isnand-nolibm.h0000644000175000017500000000221612076511424013026 00000000000000/* Test for NaN that does not need libm. Copyright (C) 2007-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 . */ #if HAVE_ISNAND_IN_LIBC /* Get declaration of isnan macro. */ # include # 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 extern int isnand (double x); #endif gcal-3.6.3/lib/Makefile.am0000644000175000017500000000143012125364451012155 00000000000000# GNU gcal # Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, # 2004, 2005, 2006, 2007, 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 ## 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 gnulib.mk gcal-3.6.3/lib/printf-parse.h0000644000175000017500000001231512125375411012706 00000000000000/* -*- buffer-read-only: t -*- vi: set ro: */ /* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* Parse printf format string. Copyright (C) 1999, 2002-2003, 2005, 2007, 2010-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, see . */ #ifndef _PRINTF_PARSE_H #define _PRINTF_PARSE_H /* This file can be parametrized with the following macros: ENABLE_UNISTDIO Set to 1 to enable the unistdio extensions. STATIC Set to 'static' to declare the function static. */ #if HAVE_FEATURES_H # include /* for __GLIBC__, __UCLIBC__ */ #endif #include "printf-args.h" /* Flags */ #define FLAG_GROUP 1 /* ' flag */ #define FLAG_LEFT 2 /* - flag */ #define FLAG_SHOWSIGN 4 /* + flag */ #define FLAG_SPACE 8 /* space flag */ #define FLAG_ALT 16 /* # flag */ #define FLAG_ZERO 32 #if __GLIBC__ >= 2 && !defined __UCLIBC__ # define FLAG_LOCALIZED 64 /* I flag, uses localized digits */ #endif /* arg_index value indicating that no argument is consumed. */ #define ARG_NONE (~(size_t)0) /* xxx_directive: A parsed directive. xxx_directives: A parsed format string. */ /* Number of directly allocated directives (no malloc() needed). */ #define N_DIRECT_ALLOC_DIRECTIVES 7 /* A parsed directive. */ typedef struct { const char* dir_start; const char* dir_end; int flags; const char* width_start; const char* width_end; size_t width_arg_index; const char* precision_start; const char* precision_end; size_t precision_arg_index; char conversion; /* d i o u x X f F e E g G a A c s p n U % but not C S */ size_t arg_index; } char_directive; /* A parsed format string. */ typedef struct { size_t count; char_directive *dir; size_t max_width_length; size_t max_precision_length; char_directive direct_alloc_dir[N_DIRECT_ALLOC_DIRECTIVES]; } char_directives; #if ENABLE_UNISTDIO /* A parsed directive. */ typedef struct { const uint8_t* dir_start; const uint8_t* dir_end; int flags; const uint8_t* width_start; const uint8_t* width_end; size_t width_arg_index; const uint8_t* precision_start; const uint8_t* precision_end; size_t precision_arg_index; uint8_t conversion; /* d i o u x X f F e E g G a A c s p n U % but not C S */ size_t arg_index; } u8_directive; /* A parsed format string. */ typedef struct { size_t count; u8_directive *dir; size_t max_width_length; size_t max_precision_length; u8_directive direct_alloc_dir[N_DIRECT_ALLOC_DIRECTIVES]; } u8_directives; /* A parsed directive. */ typedef struct { const uint16_t* dir_start; const uint16_t* dir_end; int flags; const uint16_t* width_start; const uint16_t* width_end; size_t width_arg_index; const uint16_t* precision_start; const uint16_t* precision_end; size_t precision_arg_index; uint16_t conversion; /* d i o u x X f F e E g G a A c s p n U % but not C S */ size_t arg_index; } u16_directive; /* A parsed format string. */ typedef struct { size_t count; u16_directive *dir; size_t max_width_length; size_t max_precision_length; u16_directive direct_alloc_dir[N_DIRECT_ALLOC_DIRECTIVES]; } u16_directives; /* A parsed directive. */ typedef struct { const uint32_t* dir_start; const uint32_t* dir_end; int flags; const uint32_t* width_start; const uint32_t* width_end; size_t width_arg_index; const uint32_t* precision_start; const uint32_t* precision_end; size_t precision_arg_index; uint32_t conversion; /* d i o u x X f F e E g G a A c s p n U % but not C S */ size_t arg_index; } u32_directive; /* A parsed format string. */ typedef struct { size_t count; u32_directive *dir; size_t max_width_length; size_t max_precision_length; u32_directive direct_alloc_dir[N_DIRECT_ALLOC_DIRECTIVES]; } u32_directives; #endif /* Parses the format string. Fills in the number N of directives, and fills in directives[0], ..., directives[N-1], and sets directives[N].dir_start to the end of the format string. Also fills in the arg_type fields of the arguments and the needed count of arguments. */ #if ENABLE_UNISTDIO extern int ulc_printf_parse (const char *format, char_directives *d, arguments *a); extern int u8_printf_parse (const uint8_t *format, u8_directives *d, arguments *a); extern int u16_printf_parse (const uint16_t *format, u16_directives *d, arguments *a); extern int u32_printf_parse (const uint32_t *format, u32_directives *d, arguments *a); #else # ifdef STATIC STATIC # else extern # endif int printf_parse (const char *format, char_directives *d, arguments *a); #endif #endif /* _PRINTF_PARSE_H */ gcal-3.6.3/lib/isnanf.c0000644000175000017500000000151712076511424011550 00000000000000/* Test for NaN that does not need libm. Copyright (C) 2007, 2009-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 . */ /* Written by Bruno Haible , 2007. */ #define USE_FLOAT #include "isnan.c" gcal-3.6.3/lib/math.in.h0000644000175000017500000017764612076511424011656 00000000000000/* A GNU-like . Copyright (C) 2002-2003, 2007-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 . */ #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 _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) \ 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); \ } #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 !@HAVE_ACOSF@ # undef acosf _GL_FUNCDECL_SYS (acosf, float, (float x)); # endif _GL_CXXALIAS_SYS (acosf, float, (float x)); _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 !@HAVE_ASINF@ # undef asinf _GL_FUNCDECL_SYS (asinf, float, (float x)); # endif _GL_CXXALIAS_SYS (asinf, float, (float x)); _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 !@HAVE_ATANF@ # undef atanf _GL_FUNCDECL_SYS (atanf, float, (float x)); # endif _GL_CXXALIAS_SYS (atanf, float, (float x)); _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 !@HAVE_ATAN2F@ # undef atan2f _GL_FUNCDECL_SYS (atan2f, float, (float y, float x)); # endif _GL_CXXALIAS_SYS (atan2f, float, (float y, float x)); _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) # 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 !@HAVE_COSF@ # undef cosf _GL_FUNCDECL_SYS (cosf, float, (float x)); # endif _GL_CXXALIAS_SYS (cosf, float, (float x)); _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 !@HAVE_COSHF@ # undef coshf _GL_FUNCDECL_SYS (coshf, float, (float x)); # endif _GL_CXXALIAS_SYS (coshf, float, (float x)); _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 !@HAVE_EXPF@ # undef expf _GL_FUNCDECL_SYS (expf, float, (float x)); # endif _GL_CXXALIAS_SYS (expf, float, (float x)); _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) # 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) # 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_CXXALIASWARN (frexp); #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 !@HAVE_SINF@ # undef sinf _GL_FUNCDECL_SYS (sinf, float, (float x)); # endif _GL_CXXALIAS_SYS (sinf, float, (float x)); _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 !@HAVE_SINHF@ # undef sinhf _GL_FUNCDECL_SYS (sinhf, float, (float x)); # endif _GL_CXXALIAS_SYS (sinhf, float, (float x)); _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 !@HAVE_SQRTF@ # undef sqrtf _GL_FUNCDECL_SYS (sqrtf, float, (float x)); # endif _GL_CXXALIAS_SYS (sqrtf, float, (float x)); _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 !@HAVE_TANF@ # undef tanf _GL_FUNCDECL_SYS (tanf, float, (float x)); # endif _GL_CXXALIAS_SYS (tanf, float, (float x)); _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 !@HAVE_TANHF@ # undef tanhf _GL_FUNCDECL_SYS (tanhf, float, (float x)); # endif _GL_CXXALIAS_SYS (tanhf, float, (float x)); _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) # 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) # 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 # ifdef isfinite _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 # ifdef isinf _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 # ifdef isnan _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@ # 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 # ifdef signbit _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-3.6.3/lib/unistd.c0000644000175000017500000000012412057472163011576 00000000000000#include #define _GL_UNISTD_INLINE _GL_EXTERN_INLINE #include "unistd.h" gcal-3.6.3/lib/xmalloc.c0000644000175000017500000000646712076511424011742 00000000000000/* xmalloc.c -- malloc with out of memory checking Copyright (C) 1990-2000, 2002-2006, 2008-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 . */ #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 some calloc implementations don't have proper overflow checks. But omit overflow and size-zero tests if HAVE_GNU_CALLOC, since GNU calloc catches overflow and never returns NULL if successful. */ if ((! HAVE_GNU_CALLOC && 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-3.6.3/lib/strchrnul.valgrind0000644000175000017500000000040311534672763013707 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-3.6.3/lib/cloexec.h0000644000175000017500000000273412076511423011722 00000000000000/* closexec.c - set or clear the close-on-exec descriptor flag Copyright (C) 2004, 2009-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 . */ #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-3.6.3/lib/spawn_faction_init.c0000644000175000017500000000327212076511424014150 00000000000000/* Copyright (C) 2000, 2009-2013 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-3.6.3/lib/fcntl.c0000644000175000017500000002300112076511424011370 00000000000000/* Provide file descriptor control. Copyright (C) 2009-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 . */ /* 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 */ { /* TODO: Translate GetLastError () into errno. */ errno = EMFILE; result = -1; break; } duplicated_fd = _open_osfhandle ((intptr_t) new_handle, flags); if (duplicated_fd < 0) { CloseHandle (new_handle); errno = EMFILE; 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 */ /* 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-3.6.3/lib/error.h0000644000175000017500000000474612076511423011436 00000000000000/* Declaration for error-reporting function Copyright (C) 1995-1997, 2003, 2006, 2008-2013 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 #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 ((__printf__, 3, 4)); extern void error_at_line (int __status, int __errnum, const char *__fname, unsigned int __lineno, const char *__format, ...) _GL_ATTRIBUTE_FORMAT ((__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-3.6.3/lib/spawn-pipe.h0000644000175000017500000001431612076511424012363 00000000000000/* Creation of subprocesses, communicating via pipes. Copyright (C) 2001-2003, 2006, 2008-2013 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-3.6.3/lib/verify.h0000644000175000017500000002313212076511424011600 00000000000000/* Compile-time assert-like macros. Copyright (C) 2005-2006, 2009-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 . */ /* 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__ || (__GNUC__ == 4 && 6 <= __GNUC_MINOR__)) && !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 /* 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 ")") /* @assert.h omit end@ */ #endif gcal-3.6.3/lib/iconv.c0000644000175000017500000002642712125375410011415 00000000000000/* -*- buffer-read-only: t -*- vi: set ro: */ /* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* Character set conversion. Copyright (C) 1999-2001, 2007, 2009-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, see . */ #include /* Specification. */ #include #include #if REPLACE_ICONV_UTF # include # include # include # include "unistr.h" # ifndef uintptr_t # define uintptr_t unsigned long # endif #endif #if REPLACE_ICONV_UTF /* UTF-{16,32}{BE,LE} converters taken from GNU libiconv 1.11. */ /* Return code if invalid. (xxx_mbtowc) */ # define RET_ILSEQ -1 /* Return code if no bytes were read. (xxx_mbtowc) */ # define RET_TOOFEW -2 /* Return code if invalid. (xxx_wctomb) */ # define RET_ILUNI -1 /* Return code if output buffer is too small. (xxx_wctomb, xxx_reset) */ # define RET_TOOSMALL -2 /* * UTF-16BE */ /* Specification: RFC 2781 */ static int utf16be_mbtowc (ucs4_t *pwc, const unsigned char *s, size_t n) { if (n >= 2) { ucs4_t wc = (s[0] << 8) + s[1]; if (wc >= 0xd800 && wc < 0xdc00) { if (n >= 4) { ucs4_t wc2 = (s[2] << 8) + s[3]; if (!(wc2 >= 0xdc00 && wc2 < 0xe000)) return RET_ILSEQ; *pwc = 0x10000 + ((wc - 0xd800) << 10) + (wc2 - 0xdc00); return 4; } } else if (wc >= 0xdc00 && wc < 0xe000) { return RET_ILSEQ; } else { *pwc = wc; return 2; } } return RET_TOOFEW; } static int utf16be_wctomb (unsigned char *r, ucs4_t wc, size_t n) { if (!(wc >= 0xd800 && wc < 0xe000)) { if (wc < 0x10000) { if (n >= 2) { r[0] = (unsigned char) (wc >> 8); r[1] = (unsigned char) wc; return 2; } else return RET_TOOSMALL; } else if (wc < 0x110000) { if (n >= 4) { ucs4_t wc1 = 0xd800 + ((wc - 0x10000) >> 10); ucs4_t wc2 = 0xdc00 + ((wc - 0x10000) & 0x3ff); r[0] = (unsigned char) (wc1 >> 8); r[1] = (unsigned char) wc1; r[2] = (unsigned char) (wc2 >> 8); r[3] = (unsigned char) wc2; return 4; } else return RET_TOOSMALL; } } return RET_ILUNI; } /* * UTF-16LE */ /* Specification: RFC 2781 */ static int utf16le_mbtowc (ucs4_t *pwc, const unsigned char *s, size_t n) { if (n >= 2) { ucs4_t wc = s[0] + (s[1] << 8); if (wc >= 0xd800 && wc < 0xdc00) { if (n >= 4) { ucs4_t wc2 = s[2] + (s[3] << 8); if (!(wc2 >= 0xdc00 && wc2 < 0xe000)) return RET_ILSEQ; *pwc = 0x10000 + ((wc - 0xd800) << 10) + (wc2 - 0xdc00); return 4; } } else if (wc >= 0xdc00 && wc < 0xe000) { return RET_ILSEQ; } else { *pwc = wc; return 2; } } return RET_TOOFEW; } static int utf16le_wctomb (unsigned char *r, ucs4_t wc, size_t n) { if (!(wc >= 0xd800 && wc < 0xe000)) { if (wc < 0x10000) { if (n >= 2) { r[0] = (unsigned char) wc; r[1] = (unsigned char) (wc >> 8); return 2; } else return RET_TOOSMALL; } else if (wc < 0x110000) { if (n >= 4) { ucs4_t wc1 = 0xd800 + ((wc - 0x10000) >> 10); ucs4_t wc2 = 0xdc00 + ((wc - 0x10000) & 0x3ff); r[0] = (unsigned char) wc1; r[1] = (unsigned char) (wc1 >> 8); r[2] = (unsigned char) wc2; r[3] = (unsigned char) (wc2 >> 8); return 4; } else return RET_TOOSMALL; } } return RET_ILUNI; } /* * UTF-32BE */ /* Specification: Unicode 3.1 Standard Annex #19 */ static int utf32be_mbtowc (ucs4_t *pwc, const unsigned char *s, size_t n) { if (n >= 4) { ucs4_t wc = (s[0] << 24) + (s[1] << 16) + (s[2] << 8) + s[3]; if (wc < 0x110000 && !(wc >= 0xd800 && wc < 0xe000)) { *pwc = wc; return 4; } else return RET_ILSEQ; } return RET_TOOFEW; } static int utf32be_wctomb (unsigned char *r, ucs4_t wc, size_t n) { if (wc < 0x110000 && !(wc >= 0xd800 && wc < 0xe000)) { if (n >= 4) { r[0] = 0; r[1] = (unsigned char) (wc >> 16); r[2] = (unsigned char) (wc >> 8); r[3] = (unsigned char) wc; return 4; } else return RET_TOOSMALL; } return RET_ILUNI; } /* * UTF-32LE */ /* Specification: Unicode 3.1 Standard Annex #19 */ static int utf32le_mbtowc (ucs4_t *pwc, const unsigned char *s, size_t n) { if (n >= 4) { ucs4_t wc = s[0] + (s[1] << 8) + (s[2] << 16) + (s[3] << 24); if (wc < 0x110000 && !(wc >= 0xd800 && wc < 0xe000)) { *pwc = wc; return 4; } else return RET_ILSEQ; } return RET_TOOFEW; } static int utf32le_wctomb (unsigned char *r, ucs4_t wc, size_t n) { if (wc < 0x110000 && !(wc >= 0xd800 && wc < 0xe000)) { if (n >= 4) { r[0] = (unsigned char) wc; r[1] = (unsigned char) (wc >> 8); r[2] = (unsigned char) (wc >> 16); r[3] = 0; return 4; } else return RET_TOOSMALL; } return RET_ILUNI; } #endif size_t rpl_iconv (iconv_t cd, ICONV_CONST char **inbuf, size_t *inbytesleft, char **outbuf, size_t *outbytesleft) #undef iconv { #if REPLACE_ICONV_UTF switch ((uintptr_t) cd) { { int (*xxx_wctomb) (unsigned char *, ucs4_t, size_t); case (uintptr_t) _ICONV_UTF8_UTF16BE: xxx_wctomb = utf16be_wctomb; goto loop_from_utf8; case (uintptr_t) _ICONV_UTF8_UTF16LE: xxx_wctomb = utf16le_wctomb; goto loop_from_utf8; case (uintptr_t) _ICONV_UTF8_UTF32BE: xxx_wctomb = utf32be_wctomb; goto loop_from_utf8; case (uintptr_t) _ICONV_UTF8_UTF32LE: xxx_wctomb = utf32le_wctomb; goto loop_from_utf8; loop_from_utf8: if (inbuf == NULL || *inbuf == NULL) return 0; { ICONV_CONST char *inptr = *inbuf; size_t inleft = *inbytesleft; char *outptr = *outbuf; size_t outleft = *outbytesleft; size_t res = 0; while (inleft > 0) { ucs4_t uc; int m = u8_mbtoucr (&uc, (const uint8_t *) inptr, inleft); if (m <= 0) { if (m == -1) { errno = EILSEQ; res = (size_t)(-1); break; } if (m == -2) { errno = EINVAL; res = (size_t)(-1); break; } abort (); } else { int n = xxx_wctomb ((uint8_t *) outptr, uc, outleft); if (n < 0) { if (n == RET_ILUNI) { errno = EILSEQ; res = (size_t)(-1); break; } if (n == RET_TOOSMALL) { errno = E2BIG; res = (size_t)(-1); break; } abort (); } else { inptr += m; inleft -= m; outptr += n; outleft -= n; } } } *inbuf = inptr; *inbytesleft = inleft; *outbuf = outptr; *outbytesleft = outleft; return res; } } { int (*xxx_mbtowc) (ucs4_t *, const unsigned char *, size_t); case (uintptr_t) _ICONV_UTF16BE_UTF8: xxx_mbtowc = utf16be_mbtowc; goto loop_to_utf8; case (uintptr_t) _ICONV_UTF16LE_UTF8: xxx_mbtowc = utf16le_mbtowc; goto loop_to_utf8; case (uintptr_t) _ICONV_UTF32BE_UTF8: xxx_mbtowc = utf32be_mbtowc; goto loop_to_utf8; case (uintptr_t) _ICONV_UTF32LE_UTF8: xxx_mbtowc = utf32le_mbtowc; goto loop_to_utf8; loop_to_utf8: if (inbuf == NULL || *inbuf == NULL) return 0; { ICONV_CONST char *inptr = *inbuf; size_t inleft = *inbytesleft; char *outptr = *outbuf; size_t outleft = *outbytesleft; size_t res = 0; while (inleft > 0) { ucs4_t uc; int m = xxx_mbtowc (&uc, (const uint8_t *) inptr, inleft); if (m <= 0) { if (m == RET_ILSEQ) { errno = EILSEQ; res = (size_t)(-1); break; } if (m == RET_TOOFEW) { errno = EINVAL; res = (size_t)(-1); break; } abort (); } else { int n = u8_uctomb ((uint8_t *) outptr, uc, outleft); if (n < 0) { if (n == -1) { errno = EILSEQ; res = (size_t)(-1); break; } if (n == -2) { errno = E2BIG; res = (size_t)(-1); break; } abort (); } else { inptr += m; inleft -= m; outptr += n; outleft -= n; } } } *inbuf = inptr; *inbytesleft = inleft; *outbuf = outptr; *outbytesleft = outleft; return res; } } } #endif return iconv (cd, inbuf, inbytesleft, outbuf, outbytesleft); } gcal-3.6.3/lib/unistr.in.h0000644000175000017500000005532712125375411012237 00000000000000/* -*- buffer-read-only: t -*- vi: set ro: */ /* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* Elementary Unicode string functions. Copyright (C) 2001-2002, 2005-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 . */ #ifndef _UNISTR_H #define _UNISTR_H #include "unitypes.h" /* Get common macros for C. */ #include "unused-parameter.h" /* Get bool. */ #include /* Get size_t. */ #include #ifdef __cplusplus extern "C" { #endif /* Conventions: All functions prefixed with u8_ operate on UTF-8 encoded strings. Their unit is an uint8_t (1 byte). All functions prefixed with u16_ operate on UTF-16 encoded strings. Their unit is an uint16_t (a 2-byte word). All functions prefixed with u32_ operate on UCS-4 encoded strings. Their unit is an uint32_t (a 4-byte word). All argument pairs (s, n) denote a Unicode string s[0..n-1] with exactly n units. All arguments starting with "str" and the arguments of functions starting with u8_str/u16_str/u32_str denote a NUL terminated string, i.e. a string which terminates at the first NUL unit. This termination unit is considered part of the string for all memory allocation purposes, but is not considered part of the string for all other logical purposes. Functions returning a string result take a (resultbuf, lengthp) argument pair. If resultbuf is not NULL and the result fits into *lengthp units, it is put in resultbuf, and resultbuf is returned. Otherwise, a freshly allocated string is returned. In both cases, *lengthp is set to the length (number of units) of the returned string. In case of error, NULL is returned and errno is set. */ /* Elementary string checks. */ /* Check whether an UTF-8 string is well-formed. Return NULL if valid, or a pointer to the first invalid unit otherwise. */ extern const uint8_t * u8_check (const uint8_t *s, size_t n) _UC_ATTRIBUTE_PURE; /* Check whether an UTF-16 string is well-formed. Return NULL if valid, or a pointer to the first invalid unit otherwise. */ extern const uint16_t * u16_check (const uint16_t *s, size_t n) _UC_ATTRIBUTE_PURE; /* Check whether an UCS-4 string is well-formed. Return NULL if valid, or a pointer to the first invalid unit otherwise. */ extern const uint32_t * u32_check (const uint32_t *s, size_t n) _UC_ATTRIBUTE_PURE; /* Elementary string conversions. */ /* Convert an UTF-8 string to an UTF-16 string. */ extern uint16_t * u8_to_u16 (const uint8_t *s, size_t n, uint16_t *resultbuf, size_t *lengthp); /* Convert an UTF-8 string to an UCS-4 string. */ extern uint32_t * u8_to_u32 (const uint8_t *s, size_t n, uint32_t *resultbuf, size_t *lengthp); /* Convert an UTF-16 string to an UTF-8 string. */ extern uint8_t * u16_to_u8 (const uint16_t *s, size_t n, uint8_t *resultbuf, size_t *lengthp); /* Convert an UTF-16 string to an UCS-4 string. */ extern uint32_t * u16_to_u32 (const uint16_t *s, size_t n, uint32_t *resultbuf, size_t *lengthp); /* Convert an UCS-4 string to an UTF-8 string. */ extern uint8_t * u32_to_u8 (const uint32_t *s, size_t n, uint8_t *resultbuf, size_t *lengthp); /* Convert an UCS-4 string to an UTF-16 string. */ extern uint16_t * u32_to_u16 (const uint32_t *s, size_t n, uint16_t *resultbuf, size_t *lengthp); /* Elementary string functions. */ /* Return the length (number of units) of the first character in S, which is no longer than N. Return 0 if it is the NUL character. Return -1 upon failure. */ /* Similar to mblen(), except that s must not be NULL. */ extern int u8_mblen (const uint8_t *s, size_t n) _UC_ATTRIBUTE_PURE; extern int u16_mblen (const uint16_t *s, size_t n) _UC_ATTRIBUTE_PURE; extern int u32_mblen (const uint32_t *s, size_t n) _UC_ATTRIBUTE_PURE; /* Return the length (number of units) of the first character in S, putting its 'ucs4_t' representation in *PUC. Upon failure, *PUC is set to 0xfffd, and an appropriate number of units is returned. The number of available units, N, must be > 0. */ /* Similar to mbtowc(), except that puc and s must not be NULL, n must be > 0, and the NUL character is not treated specially. */ /* The variants with _safe suffix are safe, even if the library is compiled without --enable-safety. */ #if GNULIB_UNISTR_U8_MBTOUC_UNSAFE || HAVE_LIBUNISTRING # if !HAVE_INLINE extern int u8_mbtouc_unsafe (ucs4_t *puc, const uint8_t *s, size_t n); # else extern int u8_mbtouc_unsafe_aux (ucs4_t *puc, const uint8_t *s, size_t n); static inline int u8_mbtouc_unsafe (ucs4_t *puc, const uint8_t *s, size_t n) { uint8_t c = *s; if (c < 0x80) { *puc = c; return 1; } else return u8_mbtouc_unsafe_aux (puc, s, n); } # endif #endif #if GNULIB_UNISTR_U16_MBTOUC_UNSAFE || HAVE_LIBUNISTRING # if !HAVE_INLINE extern int u16_mbtouc_unsafe (ucs4_t *puc, const uint16_t *s, size_t n); # else extern int u16_mbtouc_unsafe_aux (ucs4_t *puc, const uint16_t *s, size_t n); static inline int u16_mbtouc_unsafe (ucs4_t *puc, const uint16_t *s, size_t n) { uint16_t c = *s; if (c < 0xd800 || c >= 0xe000) { *puc = c; return 1; } else return u16_mbtouc_unsafe_aux (puc, s, n); } # endif #endif #if GNULIB_UNISTR_U32_MBTOUC_UNSAFE || HAVE_LIBUNISTRING # if !HAVE_INLINE extern int u32_mbtouc_unsafe (ucs4_t *puc, const uint32_t *s, size_t n); # else static inline int u32_mbtouc_unsafe (ucs4_t *puc, const uint32_t *s, size_t n _GL_UNUSED_PARAMETER) { uint32_t c = *s; # if CONFIG_UNICODE_SAFETY if (c < 0xd800 || (c >= 0xe000 && c < 0x110000)) # endif *puc = c; # if CONFIG_UNICODE_SAFETY else /* invalid multibyte character */ *puc = 0xfffd; # endif return 1; } # endif #endif #if GNULIB_UNISTR_U8_MBTOUC || HAVE_LIBUNISTRING # if !HAVE_INLINE extern int u8_mbtouc (ucs4_t *puc, const uint8_t *s, size_t n); # else extern int u8_mbtouc_aux (ucs4_t *puc, const uint8_t *s, size_t n); static inline int u8_mbtouc (ucs4_t *puc, const uint8_t *s, size_t n) { uint8_t c = *s; if (c < 0x80) { *puc = c; return 1; } else return u8_mbtouc_aux (puc, s, n); } # endif #endif #if GNULIB_UNISTR_U16_MBTOUC || HAVE_LIBUNISTRING # if !HAVE_INLINE extern int u16_mbtouc (ucs4_t *puc, const uint16_t *s, size_t n); # else extern int u16_mbtouc_aux (ucs4_t *puc, const uint16_t *s, size_t n); static inline int u16_mbtouc (ucs4_t *puc, const uint16_t *s, size_t n) { uint16_t c = *s; if (c < 0xd800 || c >= 0xe000) { *puc = c; return 1; } else return u16_mbtouc_aux (puc, s, n); } # endif #endif #if GNULIB_UNISTR_U32_MBTOUC || HAVE_LIBUNISTRING # if !HAVE_INLINE extern int u32_mbtouc (ucs4_t *puc, const uint32_t *s, size_t n); # else static inline int u32_mbtouc (ucs4_t *puc, const uint32_t *s, size_t n _GL_UNUSED_PARAMETER) { uint32_t c = *s; if (c < 0xd800 || (c >= 0xe000 && c < 0x110000)) *puc = c; else /* invalid multibyte character */ *puc = 0xfffd; return 1; } # endif #endif /* Return the length (number of units) of the first character in S, putting its 'ucs4_t' representation in *PUC. Upon failure, *PUC is set to 0xfffd, and -1 is returned for an invalid sequence of units, -2 is returned for an incomplete sequence of units. The number of available units, N, must be > 0. */ /* Similar to u*_mbtouc(), except that the return value gives more details about the failure, similar to mbrtowc(). */ #if GNULIB_UNISTR_U8_MBTOUCR || HAVE_LIBUNISTRING extern int u8_mbtoucr (ucs4_t *puc, const uint8_t *s, size_t n); #endif #if GNULIB_UNISTR_U16_MBTOUCR || HAVE_LIBUNISTRING extern int u16_mbtoucr (ucs4_t *puc, const uint16_t *s, size_t n); #endif #if GNULIB_UNISTR_U32_MBTOUCR || HAVE_LIBUNISTRING extern int u32_mbtoucr (ucs4_t *puc, const uint32_t *s, size_t n); #endif /* Put the multibyte character represented by UC in S, returning its length. Return -1 upon failure, -2 if the number of available units, N, is too small. The latter case cannot occur if N >= 6/2/1, respectively. */ /* Similar to wctomb(), except that s must not be NULL, and the argument n must be specified. */ #if GNULIB_UNISTR_U8_UCTOMB || HAVE_LIBUNISTRING /* Auxiliary function, also used by u8_chr, u8_strchr, u8_strrchr. */ extern int u8_uctomb_aux (uint8_t *s, ucs4_t uc, int n); # if !HAVE_INLINE extern int u8_uctomb (uint8_t *s, ucs4_t uc, int n); # else static inline int u8_uctomb (uint8_t *s, ucs4_t uc, int n) { if (uc < 0x80 && n > 0) { s[0] = uc; return 1; } else return u8_uctomb_aux (s, uc, n); } # endif #endif #if GNULIB_UNISTR_U16_UCTOMB || HAVE_LIBUNISTRING /* Auxiliary function, also used by u16_chr, u16_strchr, u16_strrchr. */ extern int u16_uctomb_aux (uint16_t *s, ucs4_t uc, int n); # if !HAVE_INLINE extern int u16_uctomb (uint16_t *s, ucs4_t uc, int n); # else static inline int u16_uctomb (uint16_t *s, ucs4_t uc, int n) { if (uc < 0xd800 && n > 0) { s[0] = uc; return 1; } else return u16_uctomb_aux (s, uc, n); } # endif #endif #if GNULIB_UNISTR_U32_UCTOMB || HAVE_LIBUNISTRING # if !HAVE_INLINE extern int u32_uctomb (uint32_t *s, ucs4_t uc, int n); # else static inline int u32_uctomb (uint32_t *s, ucs4_t uc, int n) { if (uc < 0xd800 || (uc >= 0xe000 && uc < 0x110000)) { if (n > 0) { *s = uc; return 1; } else return -2; } else return -1; } # endif #endif /* Copy N units from SRC to DEST. */ /* Similar to memcpy(). */ extern uint8_t * u8_cpy (uint8_t *dest, const uint8_t *src, size_t n); extern uint16_t * u16_cpy (uint16_t *dest, const uint16_t *src, size_t n); extern uint32_t * u32_cpy (uint32_t *dest, const uint32_t *src, size_t n); /* Copy N units from SRC to DEST, guaranteeing correct behavior for overlapping memory areas. */ /* Similar to memmove(). */ extern uint8_t * u8_move (uint8_t *dest, const uint8_t *src, size_t n); extern uint16_t * u16_move (uint16_t *dest, const uint16_t *src, size_t n); extern uint32_t * u32_move (uint32_t *dest, const uint32_t *src, size_t n); /* Set the first N characters of S to UC. UC should be a character that occupies only 1 unit. */ /* Similar to memset(). */ extern uint8_t * u8_set (uint8_t *s, ucs4_t uc, size_t n); extern uint16_t * u16_set (uint16_t *s, ucs4_t uc, size_t n); extern uint32_t * u32_set (uint32_t *s, ucs4_t uc, size_t n); /* Compare S1 and S2, each of length N. */ /* Similar to memcmp(). */ extern int u8_cmp (const uint8_t *s1, const uint8_t *s2, size_t n) _UC_ATTRIBUTE_PURE; extern int u16_cmp (const uint16_t *s1, const uint16_t *s2, size_t n) _UC_ATTRIBUTE_PURE; extern int u32_cmp (const uint32_t *s1, const uint32_t *s2, size_t n) _UC_ATTRIBUTE_PURE; /* Compare S1 and S2. */ /* Similar to the gnulib function memcmp2(). */ extern int u8_cmp2 (const uint8_t *s1, size_t n1, const uint8_t *s2, size_t n2) _UC_ATTRIBUTE_PURE; extern int u16_cmp2 (const uint16_t *s1, size_t n1, const uint16_t *s2, size_t n2) _UC_ATTRIBUTE_PURE; extern int u32_cmp2 (const uint32_t *s1, size_t n1, const uint32_t *s2, size_t n2) _UC_ATTRIBUTE_PURE; /* Search the string at S for UC. */ /* Similar to memchr(). */ extern uint8_t * u8_chr (const uint8_t *s, size_t n, ucs4_t uc) _UC_ATTRIBUTE_PURE; extern uint16_t * u16_chr (const uint16_t *s, size_t n, ucs4_t uc) _UC_ATTRIBUTE_PURE; extern uint32_t * u32_chr (const uint32_t *s, size_t n, ucs4_t uc) _UC_ATTRIBUTE_PURE; /* Count the number of Unicode characters in the N units from S. */ /* Similar to mbsnlen(). */ extern size_t u8_mbsnlen (const uint8_t *s, size_t n) _UC_ATTRIBUTE_PURE; extern size_t u16_mbsnlen (const uint16_t *s, size_t n) _UC_ATTRIBUTE_PURE; extern size_t u32_mbsnlen (const uint32_t *s, size_t n) _UC_ATTRIBUTE_PURE; /* Elementary string functions with memory allocation. */ /* Make a freshly allocated copy of S, of length N. */ extern uint8_t * u8_cpy_alloc (const uint8_t *s, size_t n); extern uint16_t * u16_cpy_alloc (const uint16_t *s, size_t n); extern uint32_t * u32_cpy_alloc (const uint32_t *s, size_t n); /* Elementary string functions on NUL terminated strings. */ /* Return the length (number of units) of the first character in S. Return 0 if it is the NUL character. Return -1 upon failure. */ extern int u8_strmblen (const uint8_t *s) _UC_ATTRIBUTE_PURE; extern int u16_strmblen (const uint16_t *s) _UC_ATTRIBUTE_PURE; extern int u32_strmblen (const uint32_t *s) _UC_ATTRIBUTE_PURE; /* Return the length (number of units) of the first character in S, putting its 'ucs4_t' representation in *PUC. Return 0 if it is the NUL character. Return -1 upon failure. */ extern int u8_strmbtouc (ucs4_t *puc, const uint8_t *s); extern int u16_strmbtouc (ucs4_t *puc, const uint16_t *s); extern int u32_strmbtouc (ucs4_t *puc, const uint32_t *s); /* Forward iteration step. Advances the pointer past the next character, or returns NULL if the end of the string has been reached. Puts the character's 'ucs4_t' representation in *PUC. */ extern const uint8_t * u8_next (ucs4_t *puc, const uint8_t *s); extern const uint16_t * u16_next (ucs4_t *puc, const uint16_t *s); extern const uint32_t * u32_next (ucs4_t *puc, const uint32_t *s); /* Backward iteration step. Advances the pointer to point to the previous character, or returns NULL if the beginning of the string had been reached. Puts the character's 'ucs4_t' representation in *PUC. */ extern const uint8_t * u8_prev (ucs4_t *puc, const uint8_t *s, const uint8_t *start); extern const uint16_t * u16_prev (ucs4_t *puc, const uint16_t *s, const uint16_t *start); extern const uint32_t * u32_prev (ucs4_t *puc, const uint32_t *s, const uint32_t *start); /* Return the number of units in S. */ /* Similar to strlen(), wcslen(). */ extern size_t u8_strlen (const uint8_t *s) _UC_ATTRIBUTE_PURE; extern size_t u16_strlen (const uint16_t *s) _UC_ATTRIBUTE_PURE; extern size_t u32_strlen (const uint32_t *s) _UC_ATTRIBUTE_PURE; /* Return the number of units in S, but at most MAXLEN. */ /* Similar to strnlen(), wcsnlen(). */ extern size_t u8_strnlen (const uint8_t *s, size_t maxlen) _UC_ATTRIBUTE_PURE; extern size_t u16_strnlen (const uint16_t *s, size_t maxlen) _UC_ATTRIBUTE_PURE; extern size_t u32_strnlen (const uint32_t *s, size_t maxlen) _UC_ATTRIBUTE_PURE; /* Copy SRC to DEST. */ /* Similar to strcpy(), wcscpy(). */ extern uint8_t * u8_strcpy (uint8_t *dest, const uint8_t *src); extern uint16_t * u16_strcpy (uint16_t *dest, const uint16_t *src); extern uint32_t * u32_strcpy (uint32_t *dest, const uint32_t *src); /* Copy SRC to DEST, returning the address of the terminating NUL in DEST. */ /* Similar to stpcpy(). */ extern uint8_t * u8_stpcpy (uint8_t *dest, const uint8_t *src); extern uint16_t * u16_stpcpy (uint16_t *dest, const uint16_t *src); extern uint32_t * u32_stpcpy (uint32_t *dest, const uint32_t *src); /* Copy no more than N units of SRC to DEST. */ /* Similar to strncpy(), wcsncpy(). */ extern uint8_t * u8_strncpy (uint8_t *dest, const uint8_t *src, size_t n); extern uint16_t * u16_strncpy (uint16_t *dest, const uint16_t *src, size_t n); extern uint32_t * u32_strncpy (uint32_t *dest, const uint32_t *src, size_t n); /* Copy no more than N units of SRC to DEST. Return a pointer past the last non-NUL unit written into DEST. */ /* Similar to stpncpy(). */ extern uint8_t * u8_stpncpy (uint8_t *dest, const uint8_t *src, size_t n); extern uint16_t * u16_stpncpy (uint16_t *dest, const uint16_t *src, size_t n); extern uint32_t * u32_stpncpy (uint32_t *dest, const uint32_t *src, size_t n); /* Append SRC onto DEST. */ /* Similar to strcat(), wcscat(). */ extern uint8_t * u8_strcat (uint8_t *dest, const uint8_t *src); extern uint16_t * u16_strcat (uint16_t *dest, const uint16_t *src); extern uint32_t * u32_strcat (uint32_t *dest, const uint32_t *src); /* Append no more than N units of SRC onto DEST. */ /* Similar to strncat(), wcsncat(). */ extern uint8_t * u8_strncat (uint8_t *dest, const uint8_t *src, size_t n); extern uint16_t * u16_strncat (uint16_t *dest, const uint16_t *src, size_t n); extern uint32_t * u32_strncat (uint32_t *dest, const uint32_t *src, size_t n); /* Compare S1 and S2. */ /* Similar to strcmp(), wcscmp(). */ #ifdef __sun /* Avoid a collision with the u8_strcmp() function in Solaris 11 libc. */ extern int u8_strcmp_gnu (const uint8_t *s1, const uint8_t *s2) _UC_ATTRIBUTE_PURE; # define u8_strcmp u8_strcmp_gnu #else extern int u8_strcmp (const uint8_t *s1, const uint8_t *s2) _UC_ATTRIBUTE_PURE; #endif extern int u16_strcmp (const uint16_t *s1, const uint16_t *s2) _UC_ATTRIBUTE_PURE; extern int u32_strcmp (const uint32_t *s1, const uint32_t *s2) _UC_ATTRIBUTE_PURE; /* Compare S1 and S2 using the collation rules of the current locale. Return -1 if S1 < S2, 0 if S1 = S2, 1 if S1 > S2. Upon failure, set errno and return any value. */ /* Similar to strcoll(), wcscoll(). */ extern int u8_strcoll (const uint8_t *s1, const uint8_t *s2); extern int u16_strcoll (const uint16_t *s1, const uint16_t *s2); extern int u32_strcoll (const uint32_t *s1, const uint32_t *s2); /* Compare no more than N units of S1 and S2. */ /* Similar to strncmp(), wcsncmp(). */ extern int u8_strncmp (const uint8_t *s1, const uint8_t *s2, size_t n) _UC_ATTRIBUTE_PURE; extern int u16_strncmp (const uint16_t *s1, const uint16_t *s2, size_t n) _UC_ATTRIBUTE_PURE; extern int u32_strncmp (const uint32_t *s1, const uint32_t *s2, size_t n) _UC_ATTRIBUTE_PURE; /* Duplicate S, returning an identical malloc'd string. */ /* Similar to strdup(), wcsdup(). */ extern uint8_t * u8_strdup (const uint8_t *s); extern uint16_t * u16_strdup (const uint16_t *s); extern uint32_t * u32_strdup (const uint32_t *s); /* Find the first occurrence of UC in STR. */ /* Similar to strchr(), wcschr(). */ extern uint8_t * u8_strchr (const uint8_t *str, ucs4_t uc) _UC_ATTRIBUTE_PURE; extern uint16_t * u16_strchr (const uint16_t *str, ucs4_t uc) _UC_ATTRIBUTE_PURE; extern uint32_t * u32_strchr (const uint32_t *str, ucs4_t uc) _UC_ATTRIBUTE_PURE; /* Find the last occurrence of UC in STR. */ /* Similar to strrchr(), wcsrchr(). */ extern uint8_t * u8_strrchr (const uint8_t *str, ucs4_t uc) _UC_ATTRIBUTE_PURE; extern uint16_t * u16_strrchr (const uint16_t *str, ucs4_t uc) _UC_ATTRIBUTE_PURE; extern uint32_t * u32_strrchr (const uint32_t *str, ucs4_t uc) _UC_ATTRIBUTE_PURE; /* Return the length of the initial segment of STR which consists entirely of Unicode characters not in REJECT. */ /* Similar to strcspn(), wcscspn(). */ extern size_t u8_strcspn (const uint8_t *str, const uint8_t *reject) _UC_ATTRIBUTE_PURE; extern size_t u16_strcspn (const uint16_t *str, const uint16_t *reject) _UC_ATTRIBUTE_PURE; extern size_t u32_strcspn (const uint32_t *str, const uint32_t *reject) _UC_ATTRIBUTE_PURE; /* Return the length of the initial segment of STR which consists entirely of Unicode characters in ACCEPT. */ /* Similar to strspn(), wcsspn(). */ extern size_t u8_strspn (const uint8_t *str, const uint8_t *accept) _UC_ATTRIBUTE_PURE; extern size_t u16_strspn (const uint16_t *str, const uint16_t *accept) _UC_ATTRIBUTE_PURE; extern size_t u32_strspn (const uint32_t *str, const uint32_t *accept) _UC_ATTRIBUTE_PURE; /* Find the first occurrence in STR of any character in ACCEPT. */ /* Similar to strpbrk(), wcspbrk(). */ extern uint8_t * u8_strpbrk (const uint8_t *str, const uint8_t *accept) _UC_ATTRIBUTE_PURE; extern uint16_t * u16_strpbrk (const uint16_t *str, const uint16_t *accept) _UC_ATTRIBUTE_PURE; extern uint32_t * u32_strpbrk (const uint32_t *str, const uint32_t *accept) _UC_ATTRIBUTE_PURE; /* Find the first occurrence of NEEDLE in HAYSTACK. */ /* Similar to strstr(), wcsstr(). */ extern uint8_t * u8_strstr (const uint8_t *haystack, const uint8_t *needle) _UC_ATTRIBUTE_PURE; extern uint16_t * u16_strstr (const uint16_t *haystack, const uint16_t *needle) _UC_ATTRIBUTE_PURE; extern uint32_t * u32_strstr (const uint32_t *haystack, const uint32_t *needle) _UC_ATTRIBUTE_PURE; /* Test whether STR starts with PREFIX. */ extern bool u8_startswith (const uint8_t *str, const uint8_t *prefix) _UC_ATTRIBUTE_PURE; extern bool u16_startswith (const uint16_t *str, const uint16_t *prefix) _UC_ATTRIBUTE_PURE; extern bool u32_startswith (const uint32_t *str, const uint32_t *prefix) _UC_ATTRIBUTE_PURE; /* Test whether STR ends with SUFFIX. */ extern bool u8_endswith (const uint8_t *str, const uint8_t *suffix) _UC_ATTRIBUTE_PURE; extern bool u16_endswith (const uint16_t *str, const uint16_t *suffix) _UC_ATTRIBUTE_PURE; extern bool u32_endswith (const uint32_t *str, const uint32_t *suffix) _UC_ATTRIBUTE_PURE; /* Divide STR into tokens separated by characters in DELIM. This interface is actually more similar to wcstok than to strtok. */ /* Similar to strtok_r(), wcstok(). */ extern uint8_t * u8_strtok (uint8_t *str, const uint8_t *delim, uint8_t **ptr); extern uint16_t * u16_strtok (uint16_t *str, const uint16_t *delim, uint16_t **ptr); extern uint32_t * u32_strtok (uint32_t *str, const uint32_t *delim, uint32_t **ptr); #ifdef __cplusplus } #endif #endif /* _UNISTR_H */ gcal-3.6.3/lib/mbtowc-impl.h0000644000175000017500000000262612076511424012533 00000000000000/* Convert multibyte character to wide character. Copyright (C) 2011-2013 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-3.6.3/lib/xalloc-oversized.h0000644000175000017500000000322712076511424013571 00000000000000/* xalloc-oversized.h -- memory allocation size checking Copyright (C) 1990-2000, 2003-2004, 2006-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 . */ #ifndef XALLOC_OVERSIZED_H_ # define XALLOC_OVERSIZED_H_ # include /* Return 1 if an array of N objects, each of size S, cannot exist due to size 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. By gnulib convention, SIZE_MAX represents overflow in size calculations, so the conservative dividend to use here is SIZE_MAX - 1, since SIZE_MAX might represent an overflowed value. However, malloc (SIZE_MAX) fails on all known hosts where sizeof (ptrdiff_t) <= sizeof (size_t), so do not bother to test for exactly-SIZE_MAX allocations on such hosts; this avoids a test and branch when S is known to be 1. */ # define xalloc_oversized(n, s) \ ((size_t) (sizeof (ptrdiff_t) <= sizeof (size_t) ? -1 : -2) / (s) < (n)) #endif /* !XALLOC_OVERSIZED_H_ */ gcal-3.6.3/lib/localcharset.c0000644000175000017500000004350612125375410012740 00000000000000/* -*- buffer-read-only: t -*- vi: set ro: */ /* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* Determine a canonical name for the current locale's character encoding. Copyright (C) 2000-2006, 2008-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, 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 #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 #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__) 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 #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: 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; /* 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; } } /* Resolve through the charset.alias file. */ codeset = locale; } else { /* 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 <= 1) codeset = "ASCII"; #endif return codeset; } gcal-3.6.3/lib/fd-hook.c0000644000175000017500000000714412125375410011621 00000000000000/* -*- buffer-read-only: t -*- vi: set ro: */ /* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* Hook for making making file descriptor functions close(), ioctl() extensible. Copyright (C) 2009-2013 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-3.6.3/lib/unistr/0000755000175000017500000000000012125376242011530 500000000000000gcal-3.6.3/lib/unistr/u16-mbtoucr.c0000644000175000017500000000314412125375412013700 00000000000000/* -*- buffer-read-only: t -*- vi: set ro: */ /* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* Look at first character in UTF-16 string, returning an error code. Copyright (C) 1999-2002, 2006-2007, 2009-2013 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 "unistr.h" int u16_mbtoucr (ucs4_t *puc, const uint16_t *s, size_t n) { uint16_t c = *s; if (c < 0xd800 || c >= 0xe000) { *puc = c; return 1; } if (c < 0xdc00) { if (n >= 2) { if (s[1] >= 0xdc00 && s[1] < 0xe000) { *puc = 0x10000 + ((c - 0xd800) << 10) + (s[1] - 0xdc00); return 2; } /* invalid multibyte character */ } else { /* incomplete multibyte character */ *puc = 0xfffd; return -2; } } /* invalid multibyte character */ *puc = 0xfffd; return -1; } gcal-3.6.3/lib/unistr/u32-strlen.c0000644000175000017500000000201412125375412013525 00000000000000/* -*- buffer-read-only: t -*- vi: set ro: */ /* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* Determine length of UTF-32 string. Copyright (C) 1999, 2002, 2006, 2009-2013 Free Software Foundation, Inc. Written by Bruno Haible , 2002. This program is free software: you can redistribute 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 "unistr.h" #define FUNC u32_strlen #define UNIT uint32_t #include "u-strlen.h" gcal-3.6.3/lib/unistr/u16-to-u8.c0000644000175000017500000000741212125375412013203 00000000000000/* -*- buffer-read-only: t -*- vi: set ro: */ /* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* Convert UTF-16 string to UTF-8 string. Copyright (C) 2002, 2006-2007, 2009-2013 Free Software Foundation, Inc. Written by Bruno Haible , 2002. This program is free software: you can redistribute 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 "unistr.h" #define FUNC u16_to_u8 #define SRC_UNIT uint16_t #define DST_UNIT uint8_t #include #include #include DST_UNIT * FUNC (const SRC_UNIT *s, size_t n, DST_UNIT *resultbuf, size_t *lengthp) { const SRC_UNIT *s_end = s + n; /* Output string accumulator. */ DST_UNIT *result; size_t allocated; size_t length; if (resultbuf != NULL) { result = resultbuf; allocated = *lengthp; } else { result = NULL; allocated = 0; } length = 0; /* Invariants: result is either == resultbuf or == NULL or malloc-allocated. If length > 0, then result != NULL. */ while (s < s_end) { ucs4_t uc; int count; /* Fetch a Unicode character from the input string. */ count = u16_mbtoucr (&uc, s, s_end - s); if (count < 0) { if (!(result == resultbuf || result == NULL)) free (result); errno = EILSEQ; return NULL; } s += count; /* Store it in the output string. */ count = u8_uctomb (result + length, uc, allocated - length); if (count == -1) { if (!(result == resultbuf || result == NULL)) free (result); errno = EILSEQ; return NULL; } if (count == -2) { DST_UNIT *memory; allocated = (allocated > 0 ? 2 * allocated : 12); if (length + 6 > allocated) allocated = length + 6; if (result == resultbuf || result == NULL) memory = (DST_UNIT *) malloc (allocated * sizeof (DST_UNIT)); else memory = (DST_UNIT *) realloc (result, allocated * sizeof (DST_UNIT)); if (memory == NULL) { if (!(result == resultbuf || result == NULL)) free (result); errno = ENOMEM; return NULL; } if (result == resultbuf && length > 0) memcpy ((char *) memory, (char *) result, length * sizeof (DST_UNIT)); result = memory; count = u8_uctomb (result + length, uc, allocated - length); if (count < 0) abort (); } length += count; } if (length == 0) { if (result == NULL) { /* Return a non-NULL value. NULL means error. */ result = (DST_UNIT *) malloc (1); if (result == NULL) { errno = ENOMEM; return NULL; } } } else if (result != resultbuf && length < allocated) { /* Shrink the allocated memory if possible. */ DST_UNIT *memory; memory = (DST_UNIT *) realloc (result, length * sizeof (DST_UNIT)); if (memory != NULL) result = memory; } *lengthp = length; return result; } gcal-3.6.3/lib/unistr/u8-uctomb.c0000644000175000017500000000454612125375412013446 00000000000000/* -*- buffer-read-only: t -*- vi: set ro: */ /* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* Store a character in UTF-8 string. Copyright (C) 2002, 2005-2006, 2009-2013 Free Software Foundation, Inc. Written by Bruno Haible , 2002. This program is free software: you can redistribute 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 #if defined IN_LIBUNISTRING /* Tell unistr.h to declare u8_uctomb as 'extern', not 'static inline'. */ # include "unistring-notinline.h" #endif /* Specification. */ #include "unistr.h" #if !HAVE_INLINE int u8_uctomb (uint8_t *s, ucs4_t uc, int n) { if (uc < 0x80) { if (n > 0) { s[0] = uc; return 1; } /* else return -2, below. */ } else { int count; if (uc < 0x800) count = 2; else if (uc < 0x10000) { if (uc < 0xd800 || uc >= 0xe000) count = 3; else return -1; } #if 0 else if (uc < 0x200000) count = 4; else if (uc < 0x4000000) count = 5; else if (uc <= 0x7fffffff) count = 6; #else else if (uc < 0x110000) count = 4; #endif else return -1; if (n >= count) { switch (count) /* note: code falls through cases! */ { #if 0 case 6: s[5] = 0x80 | (uc & 0x3f); uc = uc >> 6; uc |= 0x4000000; case 5: s[4] = 0x80 | (uc & 0x3f); uc = uc >> 6; uc |= 0x200000; #endif case 4: s[3] = 0x80 | (uc & 0x3f); uc = uc >> 6; uc |= 0x10000; case 3: s[2] = 0x80 | (uc & 0x3f); uc = uc >> 6; uc |= 0x800; case 2: s[1] = 0x80 | (uc & 0x3f); uc = uc >> 6; uc |= 0xc0; /*case 1:*/ s[0] = uc; } return count; } } return -2; } #endif gcal-3.6.3/lib/unistr/u8-check.c0000644000175000017500000000607412125375412013230 00000000000000/* -*- buffer-read-only: t -*- vi: set ro: */ /* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* Check UTF-8 string. Copyright (C) 2002, 2006-2007, 2009-2013 Free Software Foundation, Inc. Written by Bruno Haible , 2002. This program is free software: you can redistribute 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 "unistr.h" const uint8_t * u8_check (const uint8_t *s, size_t n) { const uint8_t *s_end = s + n; while (s < s_end) { /* Keep in sync with unistr.h and u8-mbtouc-aux.c. */ uint8_t c = *s; if (c < 0x80) { s++; continue; } if (c >= 0xc2) { if (c < 0xe0) { if (s + 2 <= s_end && (s[1] ^ 0x80) < 0x40) { s += 2; continue; } } else if (c < 0xf0) { if (s + 3 <= s_end && (s[1] ^ 0x80) < 0x40 && (s[2] ^ 0x80) < 0x40 && (c >= 0xe1 || s[1] >= 0xa0) && (c != 0xed || s[1] < 0xa0)) { s += 3; continue; } } else if (c < 0xf8) { if (s + 4 <= s_end && (s[1] ^ 0x80) < 0x40 && (s[2] ^ 0x80) < 0x40 && (s[3] ^ 0x80) < 0x40 && (c >= 0xf1 || s[1] >= 0x90) #if 1 && (c < 0xf4 || (c == 0xf4 && s[1] < 0x90)) #endif ) { s += 4; continue; } } #if 0 else if (c < 0xfc) { if (s + 5 <= s_end && (s[1] ^ 0x80) < 0x40 && (s[2] ^ 0x80) < 0x40 && (s[3] ^ 0x80) < 0x40 && (s[4] ^ 0x80) < 0x40 && (c >= 0xf9 || s[1] >= 0x88)) { s += 5; continue; } } else if (c < 0xfe) { if (s + 6 <= s_end && (s[1] ^ 0x80) < 0x40 && (s[2] ^ 0x80) < 0x40 && (s[3] ^ 0x80) < 0x40 && (s[4] ^ 0x80) < 0x40 && (s[5] ^ 0x80) < 0x40 && (c >= 0xfd || s[1] >= 0x84)) { s += 6; continue; } } #endif } /* invalid or incomplete multibyte character */ return s; } return NULL; } gcal-3.6.3/lib/unistr/u8-mbtouc-unsafe.c0000644000175000017500000002137712125375412014726 00000000000000/* -*- buffer-read-only: t -*- vi: set ro: */ /* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* Look at first character in UTF-8 string. Copyright (C) 1999-2002, 2006-2007, 2009-2013 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 #if defined IN_LIBUNISTRING /* Tell unistr.h to declare u8_mbtouc_unsafe as 'extern', not 'static inline'. */ # include "unistring-notinline.h" #endif /* Specification. */ #include "unistr.h" #if !HAVE_INLINE int u8_mbtouc_unsafe (ucs4_t *puc, const uint8_t *s, size_t n) { uint8_t c = *s; if (c < 0x80) { *puc = c; return 1; } else if (c >= 0xc2) { if (c < 0xe0) { if (n >= 2) { #if CONFIG_UNICODE_SAFETY if ((s[1] ^ 0x80) < 0x40) #endif { *puc = ((unsigned int) (c & 0x1f) << 6) | (unsigned int) (s[1] ^ 0x80); return 2; } #if CONFIG_UNICODE_SAFETY /* invalid multibyte character */ #endif } else { /* incomplete multibyte character */ *puc = 0xfffd; return 1; } } else if (c < 0xf0) { if (n >= 3) { #if CONFIG_UNICODE_SAFETY if ((s[1] ^ 0x80) < 0x40) { if ((s[2] ^ 0x80) < 0x40) { if ((c >= 0xe1 || s[1] >= 0xa0) && (c != 0xed || s[1] < 0xa0)) #endif { *puc = ((unsigned int) (c & 0x0f) << 12) | ((unsigned int) (s[1] ^ 0x80) << 6) | (unsigned int) (s[2] ^ 0x80); return 3; } #if CONFIG_UNICODE_SAFETY /* invalid multibyte character */ *puc = 0xfffd; return 3; } /* invalid multibyte character */ *puc = 0xfffd; return 2; } /* invalid multibyte character */ #endif } else { /* incomplete multibyte character */ *puc = 0xfffd; if (n == 1 || (s[1] ^ 0x80) >= 0x40) return 1; else return 2; } } else if (c < 0xf8) { if (n >= 4) { #if CONFIG_UNICODE_SAFETY if ((s[1] ^ 0x80) < 0x40) { if ((s[2] ^ 0x80) < 0x40) { if ((s[3] ^ 0x80) < 0x40) { if ((c >= 0xf1 || s[1] >= 0x90) #if 1 && (c < 0xf4 || (c == 0xf4 && s[1] < 0x90)) #endif ) #endif { *puc = ((unsigned int) (c & 0x07) << 18) | ((unsigned int) (s[1] ^ 0x80) << 12) | ((unsigned int) (s[2] ^ 0x80) << 6) | (unsigned int) (s[3] ^ 0x80); return 4; } #if CONFIG_UNICODE_SAFETY /* invalid multibyte character */ *puc = 0xfffd; return 4; } /* invalid multibyte character */ *puc = 0xfffd; return 3; } /* invalid multibyte character */ *puc = 0xfffd; return 2; } /* invalid multibyte character */ #endif } else { /* incomplete multibyte character */ *puc = 0xfffd; if (n == 1 || (s[1] ^ 0x80) >= 0x40) return 1; else if (n == 2 || (s[2] ^ 0x80) >= 0x40) return 2; else return 3; } } #if 0 else if (c < 0xfc) { if (n >= 5) { #if CONFIG_UNICODE_SAFETY if ((s[1] ^ 0x80) < 0x40) { if ((s[2] ^ 0x80) < 0x40) { if ((s[3] ^ 0x80) < 0x40) { if ((s[4] ^ 0x80) < 0x40) { if (c >= 0xf9 || s[1] >= 0x88) #endif { *puc = ((unsigned int) (c & 0x03) << 24) | ((unsigned int) (s[1] ^ 0x80) << 18) | ((unsigned int) (s[2] ^ 0x80) << 12) | ((unsigned int) (s[3] ^ 0x80) << 6) | (unsigned int) (s[4] ^ 0x80); return 5; } #if CONFIG_UNICODE_SAFETY /* invalid multibyte character */ *puc = 0xfffd; return 5; } /* invalid multibyte character */ *puc = 0xfffd; return 4; } /* invalid multibyte character */ *puc = 0xfffd; return 3; } /* invalid multibyte character */ return 2; } /* invalid multibyte character */ #endif } else { /* incomplete multibyte character */ *puc = 0xfffd; return n; } } else if (c < 0xfe) { if (n >= 6) { #if CONFIG_UNICODE_SAFETY if ((s[1] ^ 0x80) < 0x40) { if ((s[2] ^ 0x80) < 0x40) { if ((s[3] ^ 0x80) < 0x40) { if ((s[4] ^ 0x80) < 0x40) { if ((s[5] ^ 0x80) < 0x40) { if (c >= 0xfd || s[1] >= 0x84) #endif { *puc = ((unsigned int) (c & 0x01) << 30) | ((unsigned int) (s[1] ^ 0x80) << 24) | ((unsigned int) (s[2] ^ 0x80) << 18) | ((unsigned int) (s[3] ^ 0x80) << 12) | ((unsigned int) (s[4] ^ 0x80) << 6) | (unsigned int) (s[5] ^ 0x80); return 6; } #if CONFIG_UNICODE_SAFETY /* invalid multibyte character */ *puc = 0xfffd; return 6; } /* invalid multibyte character */ *puc = 0xfffd; return 5; } /* invalid multibyte character */ *puc = 0xfffd; return 4; } /* invalid multibyte character */ *puc = 0xfffd; return 3; } /* invalid multibyte character */ return 2; } /* invalid multibyte character */ #endif } else { /* incomplete multibyte character */ *puc = 0xfffd; return n; } } #endif } /* invalid multibyte character */ *puc = 0xfffd; return 1; } #endif gcal-3.6.3/lib/unistr/u-cpy.h0000644000175000017500000000220612125375412012654 00000000000000/* -*- buffer-read-only: t -*- vi: set ro: */ /* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* Copy piece of UTF-8/UTF-16/UTF-32 string. Copyright (C) 1999, 2002, 2006, 2009-2013 Free Software Foundation, Inc. Written by Bruno Haible , 2002. This program is free software: you can redistribute 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 UNIT * FUNC (UNIT *dest, const UNIT *src, size_t n) { #if 0 UNIT *destptr = dest; for (; n > 0; n--) *destptr++ = *src++; #else memcpy ((char *) dest, (const char *) src, n * sizeof (UNIT)); #endif return dest; } gcal-3.6.3/lib/unistr/u8-strlen.c0000644000175000017500000000204212125375412013451 00000000000000/* -*- buffer-read-only: t -*- vi: set ro: */ /* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* Determine length of UTF-8 string. Copyright (C) 2002, 2006, 2009-2013 Free Software Foundation, Inc. Written by Bruno Haible , 2002. This program is free software: you can redistribute 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 "unistr.h" #include size_t u8_strlen (const uint8_t *s) { return strlen ((const char *) s); } gcal-3.6.3/lib/unistr/u8-mbtouc-aux.c0000644000175000017500000002034112125375412014230 00000000000000/* -*- buffer-read-only: t -*- vi: set ro: */ /* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* Conversion UTF-8 to UCS-4. Copyright (C) 2001-2002, 2006-2007, 2009-2013 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 "unistr.h" #if defined IN_LIBUNISTRING || HAVE_INLINE int u8_mbtouc_aux (ucs4_t *puc, const uint8_t *s, size_t n) { uint8_t c = *s; if (c >= 0xc2) { if (c < 0xe0) { if (n >= 2) { if ((s[1] ^ 0x80) < 0x40) { *puc = ((unsigned int) (c & 0x1f) << 6) | (unsigned int) (s[1] ^ 0x80); return 2; } /* invalid multibyte character */ } else { /* incomplete multibyte character */ *puc = 0xfffd; return 1; } } else if (c < 0xf0) { if (n >= 3) { if ((s[1] ^ 0x80) < 0x40) { if ((s[2] ^ 0x80) < 0x40) { if ((c >= 0xe1 || s[1] >= 0xa0) && (c != 0xed || s[1] < 0xa0)) { *puc = ((unsigned int) (c & 0x0f) << 12) | ((unsigned int) (s[1] ^ 0x80) << 6) | (unsigned int) (s[2] ^ 0x80); return 3; } /* invalid multibyte character */ *puc = 0xfffd; return 3; } /* invalid multibyte character */ *puc = 0xfffd; return 2; } /* invalid multibyte character */ } else { /* incomplete multibyte character */ *puc = 0xfffd; if (n == 1 || (s[1] ^ 0x80) >= 0x40) return 1; else return 2; } } else if (c < 0xf8) { if (n >= 4) { if ((s[1] ^ 0x80) < 0x40) { if ((s[2] ^ 0x80) < 0x40) { if ((s[3] ^ 0x80) < 0x40) { if ((c >= 0xf1 || s[1] >= 0x90) #if 1 && (c < 0xf4 || (c == 0xf4 && s[1] < 0x90)) #endif ) { *puc = ((unsigned int) (c & 0x07) << 18) | ((unsigned int) (s[1] ^ 0x80) << 12) | ((unsigned int) (s[2] ^ 0x80) << 6) | (unsigned int) (s[3] ^ 0x80); return 4; } /* invalid multibyte character */ *puc = 0xfffd; return 4; } /* invalid multibyte character */ *puc = 0xfffd; return 3; } /* invalid multibyte character */ *puc = 0xfffd; return 2; } /* invalid multibyte character */ } else { /* incomplete multibyte character */ *puc = 0xfffd; if (n == 1 || (s[1] ^ 0x80) >= 0x40) return 1; else if (n == 2 || (s[2] ^ 0x80) >= 0x40) return 2; else return 3; } } #if 0 else if (c < 0xfc) { if (n >= 5) { if ((s[1] ^ 0x80) < 0x40) { if ((s[2] ^ 0x80) < 0x40) { if ((s[3] ^ 0x80) < 0x40) { if ((s[4] ^ 0x80) < 0x40) { if (c >= 0xf9 || s[1] >= 0x88) { *puc = ((unsigned int) (c & 0x03) << 24) | ((unsigned int) (s[1] ^ 0x80) << 18) | ((unsigned int) (s[2] ^ 0x80) << 12) | ((unsigned int) (s[3] ^ 0x80) << 6) | (unsigned int) (s[4] ^ 0x80); return 5; } /* invalid multibyte character */ *puc = 0xfffd; return 5; } /* invalid multibyte character */ *puc = 0xfffd; return 4; } /* invalid multibyte character */ *puc = 0xfffd; return 3; } /* invalid multibyte character */ return 2; } /* invalid multibyte character */ } else { /* incomplete multibyte character */ *puc = 0xfffd; return n; } } else if (c < 0xfe) { if (n >= 6) { if ((s[1] ^ 0x80) < 0x40) { if ((s[2] ^ 0x80) < 0x40) { if ((s[3] ^ 0x80) < 0x40) { if ((s[4] ^ 0x80) < 0x40) { if ((s[5] ^ 0x80) < 0x40) { if (c >= 0xfd || s[1] >= 0x84) { *puc = ((unsigned int) (c & 0x01) << 30) | ((unsigned int) (s[1] ^ 0x80) << 24) | ((unsigned int) (s[2] ^ 0x80) << 18) | ((unsigned int) (s[3] ^ 0x80) << 12) | ((unsigned int) (s[4] ^ 0x80) << 6) | (unsigned int) (s[5] ^ 0x80); return 6; } /* invalid multibyte character */ *puc = 0xfffd; return 6; } /* invalid multibyte character */ *puc = 0xfffd; return 5; } /* invalid multibyte character */ *puc = 0xfffd; return 4; } /* invalid multibyte character */ *puc = 0xfffd; return 3; } /* invalid multibyte character */ return 2; } /* invalid multibyte character */ } else { /* incomplete multibyte character */ *puc = 0xfffd; return n; } } #endif } /* invalid multibyte character */ *puc = 0xfffd; return 1; } #endif gcal-3.6.3/lib/unistr/u8-set.c0000644000175000017500000000242212125375412012737 00000000000000/* -*- buffer-read-only: t -*- vi: set ro: */ /* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* Fill UTF-8 string. Copyright (C) 2002, 2006, 2009-2013 Free Software Foundation, Inc. Written by Bruno Haible , 2002. This program is free software: you can redistribute 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 "unistr.h" #define FUNC u8_set #define UNIT uint8_t #define IS_SINGLE_UNIT(uc) (uc < 0x80) #include #include UNIT * FUNC (UNIT *s, ucs4_t uc, size_t n) { if (n > 0) { if (IS_SINGLE_UNIT (uc)) memset ((char *) s, uc, n); else { errno = EILSEQ; return NULL; } } return s; } gcal-3.6.3/lib/unistr/u-strlen.h0000644000175000017500000000200312125375412013363 00000000000000/* -*- buffer-read-only: t -*- vi: set ro: */ /* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* Determine length of UTF-8/UTF-16/UTF-32 string. Copyright (C) 1999, 2002, 2006, 2009-2013 Free Software Foundation, Inc. Written by Bruno Haible , 2002. This program is free software: you can redistribute 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 . */ size_t FUNC (const UNIT *s) { const UNIT *ptr; for (ptr = s; *ptr != 0; ptr++) ; return ptr - s; } gcal-3.6.3/lib/unistr/u8-mbsnlen.c0000644000175000017500000000251212125375412013602 00000000000000/* -*- buffer-read-only: t -*- vi: set ro: */ /* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* Count characters in UTF-8 string. Copyright (C) 2007, 2009-2013 Free Software Foundation, Inc. Written by Bruno Haible , 2007. This program is free software: you can redistribute 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 "unistr.h" size_t u8_mbsnlen (const uint8_t *s, size_t n) { size_t characters; characters = 0; while (n > 0) { ucs4_t uc; int count = u8_mbtoucr (&uc, s, n); characters++; if (count == -2) break; if (count < 0) count = u8_mbtouc (&uc, s, n); else if (count == 0) count = 1; s += count; n -= count; } return characters; } gcal-3.6.3/lib/unistr/u8-mbtouc-unsafe-aux.c0000644000175000017500000002106212125375412015510 00000000000000/* -*- buffer-read-only: t -*- vi: set ro: */ /* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* Conversion UTF-8 to UCS-4. Copyright (C) 2001-2002, 2006-2007, 2009-2013 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 "unistr.h" #if defined IN_LIBUNISTRING || HAVE_INLINE int u8_mbtouc_unsafe_aux (ucs4_t *puc, const uint8_t *s, size_t n) { uint8_t c = *s; if (c >= 0xc2) { if (c < 0xe0) { if (n >= 2) { #if CONFIG_UNICODE_SAFETY if ((s[1] ^ 0x80) < 0x40) #endif { *puc = ((unsigned int) (c & 0x1f) << 6) | (unsigned int) (s[1] ^ 0x80); return 2; } #if CONFIG_UNICODE_SAFETY /* invalid multibyte character */ #endif } else { /* incomplete multibyte character */ *puc = 0xfffd; return 1; } } else if (c < 0xf0) { if (n >= 3) { #if CONFIG_UNICODE_SAFETY if ((s[1] ^ 0x80) < 0x40) { if ((s[2] ^ 0x80) < 0x40) { if ((c >= 0xe1 || s[1] >= 0xa0) && (c != 0xed || s[1] < 0xa0)) #endif { *puc = ((unsigned int) (c & 0x0f) << 12) | ((unsigned int) (s[1] ^ 0x80) << 6) | (unsigned int) (s[2] ^ 0x80); return 3; } #if CONFIG_UNICODE_SAFETY /* invalid multibyte character */ *puc = 0xfffd; return 3; } /* invalid multibyte character */ *puc = 0xfffd; return 2; } /* invalid multibyte character */ #endif } else { /* incomplete multibyte character */ *puc = 0xfffd; if (n == 1 || (s[1] ^ 0x80) >= 0x40) return 1; else return 2; } } else if (c < 0xf8) { if (n >= 4) { #if CONFIG_UNICODE_SAFETY if ((s[1] ^ 0x80) < 0x40) { if ((s[2] ^ 0x80) < 0x40) { if ((s[3] ^ 0x80) < 0x40) { if ((c >= 0xf1 || s[1] >= 0x90) #if 1 && (c < 0xf4 || (c == 0xf4 && s[1] < 0x90)) #endif ) #endif { *puc = ((unsigned int) (c & 0x07) << 18) | ((unsigned int) (s[1] ^ 0x80) << 12) | ((unsigned int) (s[2] ^ 0x80) << 6) | (unsigned int) (s[3] ^ 0x80); return 4; } #if CONFIG_UNICODE_SAFETY /* invalid multibyte character */ *puc = 0xfffd; return 4; } /* invalid multibyte character */ *puc = 0xfffd; return 3; } /* invalid multibyte character */ *puc = 0xfffd; return 2; } /* invalid multibyte character */ #endif } else { /* incomplete multibyte character */ *puc = 0xfffd; if (n == 1 || (s[1] ^ 0x80) >= 0x40) return 1; else if (n == 2 || (s[2] ^ 0x80) >= 0x40) return 2; else return 3; } } #if 0 else if (c < 0xfc) { if (n >= 5) { #if CONFIG_UNICODE_SAFETY if ((s[1] ^ 0x80) < 0x40) { if ((s[2] ^ 0x80) < 0x40) { if ((s[3] ^ 0x80) < 0x40) { if ((s[4] ^ 0x80) < 0x40) { if (c >= 0xf9 || s[1] >= 0x88) #endif { *puc = ((unsigned int) (c & 0x03) << 24) | ((unsigned int) (s[1] ^ 0x80) << 18) | ((unsigned int) (s[2] ^ 0x80) << 12) | ((unsigned int) (s[3] ^ 0x80) << 6) | (unsigned int) (s[4] ^ 0x80); return 5; } #if CONFIG_UNICODE_SAFETY /* invalid multibyte character */ *puc = 0xfffd; return 5; } /* invalid multibyte character */ *puc = 0xfffd; return 4; } /* invalid multibyte character */ *puc = 0xfffd; return 3; } /* invalid multibyte character */ return 2; } /* invalid multibyte character */ #endif } else { /* incomplete multibyte character */ *puc = 0xfffd; return n; } } else if (c < 0xfe) { if (n >= 6) { #if CONFIG_UNICODE_SAFETY if ((s[1] ^ 0x80) < 0x40) { if ((s[2] ^ 0x80) < 0x40) { if ((s[3] ^ 0x80) < 0x40) { if ((s[4] ^ 0x80) < 0x40) { if ((s[5] ^ 0x80) < 0x40) { if (c >= 0xfd || s[1] >= 0x84) #endif { *puc = ((unsigned int) (c & 0x01) << 30) | ((unsigned int) (s[1] ^ 0x80) << 24) | ((unsigned int) (s[2] ^ 0x80) << 18) | ((unsigned int) (s[3] ^ 0x80) << 12) | ((unsigned int) (s[4] ^ 0x80) << 6) | (unsigned int) (s[5] ^ 0x80); return 6; } #if CONFIG_UNICODE_SAFETY /* invalid multibyte character */ *puc = 0xfffd; return 6; } /* invalid multibyte character */ *puc = 0xfffd; return 5; } /* invalid multibyte character */ *puc = 0xfffd; return 4; } /* invalid multibyte character */ *puc = 0xfffd; return 3; } /* invalid multibyte character */ return 2; } /* invalid multibyte character */ #endif } else { /* incomplete multibyte character */ *puc = 0xfffd; return n; } } #endif } /* invalid multibyte character */ *puc = 0xfffd; return 1; } #endif gcal-3.6.3/lib/unistr/u8-mbtoucr.c0000644000175000017500000002447612125375412013634 00000000000000/* -*- buffer-read-only: t -*- vi: set ro: */ /* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* Look at first character in UTF-8 string, returning an error code. Copyright (C) 1999-2002, 2006-2007, 2009-2013 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 "unistr.h" int u8_mbtoucr (ucs4_t *puc, const uint8_t *s, size_t n) { uint8_t c = *s; if (c < 0x80) { *puc = c; return 1; } else if (c >= 0xc2) { if (c < 0xe0) { if (n >= 2) { if ((s[1] ^ 0x80) < 0x40) { *puc = ((unsigned int) (c & 0x1f) << 6) | (unsigned int) (s[1] ^ 0x80); return 2; } /* invalid multibyte character */ } else { /* incomplete multibyte character */ *puc = 0xfffd; return -2; } } else if (c < 0xf0) { if (n >= 2) { if ((s[1] ^ 0x80) < 0x40 && (c >= 0xe1 || s[1] >= 0xa0) && (c != 0xed || s[1] < 0xa0)) { if (n >= 3) { if ((s[2] ^ 0x80) < 0x40) { *puc = ((unsigned int) (c & 0x0f) << 12) | ((unsigned int) (s[1] ^ 0x80) << 6) | (unsigned int) (s[2] ^ 0x80); return 3; } /* invalid multibyte character */ } else { /* incomplete multibyte character */ *puc = 0xfffd; return -2; } } /* invalid multibyte character */ } else { /* incomplete multibyte character */ *puc = 0xfffd; return -2; } } else if (c < 0xf8) { if (n >= 2) { if ((s[1] ^ 0x80) < 0x40 && (c >= 0xf1 || s[1] >= 0x90) #if 1 && (c < 0xf4 || (c == 0xf4 && s[1] < 0x90)) #endif ) { if (n >= 3) { if ((s[2] ^ 0x80) < 0x40) { if (n >= 4) { if ((s[3] ^ 0x80) < 0x40) { *puc = ((unsigned int) (c & 0x07) << 18) | ((unsigned int) (s[1] ^ 0x80) << 12) | ((unsigned int) (s[2] ^ 0x80) << 6) | (unsigned int) (s[3] ^ 0x80); return 4; } /* invalid multibyte character */ } else { /* incomplete multibyte character */ *puc = 0xfffd; return -2; } } /* invalid multibyte character */ } else { /* incomplete multibyte character */ *puc = 0xfffd; return -2; } } /* invalid multibyte character */ } else { /* incomplete multibyte character */ *puc = 0xfffd; return -2; } } #if 0 else if (c < 0xfc) { if (n >= 2) { if ((s[1] ^ 0x80) < 0x40 && (c >= 0xf9 || s[1] >= 0x88)) { if (n >= 3) { if ((s[2] ^ 0x80) < 0x40) { if (n >= 4) { if ((s[3] ^ 0x80) < 0x40) { if (n >= 5) { if ((s[4] ^ 0x80) < 0x40) { *puc = ((unsigned int) (c & 0x03) << 24) | ((unsigned int) (s[1] ^ 0x80) << 18) | ((unsigned int) (s[2] ^ 0x80) << 12) | ((unsigned int) (s[3] ^ 0x80) << 6) | (unsigned int) (s[4] ^ 0x80); return 5; } /* invalid multibyte character */ } else { /* incomplete multibyte character */ *puc = 0xfffd; return -2; } } /* invalid multibyte character */ } else { /* incomplete multibyte character */ *puc = 0xfffd; return -2; } } /* invalid multibyte character */ } else { /* incomplete multibyte character */ *puc = 0xfffd; return -2; } } /* invalid multibyte character */ } else { /* incomplete multibyte character */ *puc = 0xfffd; return -2; } } else if (c < 0xfe) { if (n >= 2) { if ((s[1] ^ 0x80) < 0x40 && (c >= 0xfd || s[1] >= 0x84)) { if (n >= 3) { if ((s[2] ^ 0x80) < 0x40) { if (n >= 4) { if ((s[3] ^ 0x80) < 0x40) { if (n >= 5) { if ((s[4] ^ 0x80) < 0x40) { if (n >= 6) { if ((s[5] ^ 0x80) < 0x40) { *puc = ((unsigned int) (c & 0x01) << 30) | ((unsigned int) (s[1] ^ 0x80) << 24) | ((unsigned int) (s[2] ^ 0x80) << 18) | ((unsigned int) (s[3] ^ 0x80) << 12) | ((unsigned int) (s[4] ^ 0x80) << 6) | (unsigned int) (s[5] ^ 0x80); return 6; } /* invalid multibyte character */ } else { /* incomplete multibyte character */ *puc = 0xfffd; return -2; } } /* invalid multibyte character */ } else { /* incomplete multibyte character */ *puc = 0xfffd; return -2; } } /* invalid multibyte character */ } else { /* incomplete multibyte character */ *puc = 0xfffd; return -2; } } /* invalid multibyte character */ } else { /* incomplete multibyte character */ *puc = 0xfffd; return -2; } } /* invalid multibyte character */ } else { /* incomplete multibyte character */ *puc = 0xfffd; return -2; } } #endif } /* invalid multibyte character */ *puc = 0xfffd; return -1; } gcal-3.6.3/lib/unistr/u32-to-u8.c0000644000175000017500000000723112125375412013200 00000000000000/* -*- buffer-read-only: t -*- vi: set ro: */ /* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* Convert UTF-32 string to UTF-8 string. Copyright (C) 2002, 2006-2007, 2009-2013 Free Software Foundation, Inc. Written by Bruno Haible , 2002. This program is free software: you can redistribute 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 "unistr.h" #define FUNC u32_to_u8 #define SRC_UNIT uint32_t #define DST_UNIT uint8_t #include #include #include DST_UNIT * FUNC (const SRC_UNIT *s, size_t n, DST_UNIT *resultbuf, size_t *lengthp) { const SRC_UNIT *s_end = s + n; /* Output string accumulator. */ DST_UNIT *result; size_t allocated; size_t length; if (resultbuf != NULL) { result = resultbuf; allocated = *lengthp; } else { result = NULL; allocated = 0; } length = 0; /* Invariants: result is either == resultbuf or == NULL or malloc-allocated. If length > 0, then result != NULL. */ while (s < s_end) { ucs4_t uc; int count; /* Fetch a Unicode character from the input string. */ uc = *s++; /* No need to call the safe variant u32_mbtouc, because u8_uctomb will verify uc anyway. */ /* Store it in the output string. */ count = u8_uctomb (result + length, uc, allocated - length); if (count == -1) { if (!(result == resultbuf || result == NULL)) free (result); errno = EILSEQ; return NULL; } if (count == -2) { DST_UNIT *memory; allocated = (allocated > 0 ? 2 * allocated : 12); if (length + 6 > allocated) allocated = length + 6; if (result == resultbuf || result == NULL) memory = (DST_UNIT *) malloc (allocated * sizeof (DST_UNIT)); else memory = (DST_UNIT *) realloc (result, allocated * sizeof (DST_UNIT)); if (memory == NULL) { if (!(result == resultbuf || result == NULL)) free (result); errno = ENOMEM; return NULL; } if (result == resultbuf && length > 0) memcpy ((char *) memory, (char *) result, length * sizeof (DST_UNIT)); result = memory; count = u8_uctomb (result + length, uc, allocated - length); if (count < 0) abort (); } length += count; } if (length == 0) { if (result == NULL) { /* Return a non-NULL value. NULL means error. */ result = (DST_UNIT *) malloc (1); if (result == NULL) { errno = ENOMEM; return NULL; } } } else if (result != resultbuf && length < allocated) { /* Shrink the allocated memory if possible. */ DST_UNIT *memory; memory = (DST_UNIT *) realloc (result, length * sizeof (DST_UNIT)); if (memory != NULL) result = memory; } *lengthp = length; return result; } gcal-3.6.3/lib/unistr/u8-uctomb-aux.c0000644000175000017500000000370012125375412014230 00000000000000/* -*- buffer-read-only: t -*- vi: set ro: */ /* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* Conversion UCS-4 to UTF-8. Copyright (C) 2002, 2006-2007, 2009-2013 Free Software Foundation, Inc. Written by Bruno Haible , 2002. This program is free software: you can redistribute 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 "unistr.h" int u8_uctomb_aux (uint8_t *s, ucs4_t uc, int n) { int count; if (uc < 0x80) /* The case n >= 1 is already handled by the caller. */ return -2; else if (uc < 0x800) count = 2; else if (uc < 0x10000) { if (uc < 0xd800 || uc >= 0xe000) count = 3; else return -1; } #if 0 else if (uc < 0x200000) count = 4; else if (uc < 0x4000000) count = 5; else if (uc <= 0x7fffffff) count = 6; #else else if (uc < 0x110000) count = 4; #endif else return -1; if (n < count) return -2; switch (count) /* note: code falls through cases! */ { #if 0 case 6: s[5] = 0x80 | (uc & 0x3f); uc = uc >> 6; uc |= 0x4000000; case 5: s[4] = 0x80 | (uc & 0x3f); uc = uc >> 6; uc |= 0x200000; #endif case 4: s[3] = 0x80 | (uc & 0x3f); uc = uc >> 6; uc |= 0x10000; case 3: s[2] = 0x80 | (uc & 0x3f); uc = uc >> 6; uc |= 0x800; case 2: s[1] = 0x80 | (uc & 0x3f); uc = uc >> 6; uc |= 0xc0; /*case 1:*/ s[0] = uc; } return count; } gcal-3.6.3/lib/unistr/u16-strmblen.c0000644000175000017500000000255512125375412014060 00000000000000/* -*- buffer-read-only: t -*- vi: set ro: */ /* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* Look at first character in UTF-16 string. Copyright (C) 1999-2000, 2002, 2006-2007, 2009-2013 Free Software Foundation, Inc. Written by Bruno Haible , 2002. This program is free software: you can redistribute 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 "unistr.h" int u16_strmblen (const uint16_t *s) { /* Keep in sync with unistr.h and utf16-ucs4.c. */ uint16_t c = *s; if (c < 0xd800 || c >= 0xe000) return (c != 0 ? 1 : 0); #if CONFIG_UNICODE_SAFETY if (c < 0xdc00) { if (s[1] >= 0xdc00 && s[1] < 0xe000) return 2; } #else if (s[1] != 0) return 2; #endif /* invalid or incomplete multibyte character */ return -1; } gcal-3.6.3/lib/unistr/u16-strlen.c0000644000175000017500000000201412125375412013527 00000000000000/* -*- buffer-read-only: t -*- vi: set ro: */ /* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* Determine length of UTF-16 string. Copyright (C) 1999, 2002, 2006, 2009-2013 Free Software Foundation, Inc. Written by Bruno Haible , 2002. This program is free software: you can redistribute 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 "unistr.h" #define FUNC u16_strlen #define UNIT uint16_t #include "u-strlen.h" gcal-3.6.3/lib/unistr/u8-strmblen.c0000644000175000017500000000540112125375412013772 00000000000000/* -*- buffer-read-only: t -*- vi: set ro: */ /* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* Look at first character in UTF-8 string. Copyright (C) 1999-2000, 2002, 2006-2007, 2009-2013 Free Software Foundation, Inc. Written by Bruno Haible , 2002. This program is free software: you can redistribute 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 "unistr.h" int u8_strmblen (const uint8_t *s) { /* Keep in sync with unistr.h and u8-mbtouc-aux.c. */ uint8_t c = *s; if (c < 0x80) return (c != 0 ? 1 : 0); if (c >= 0xc2) { if (c < 0xe0) { #if CONFIG_UNICODE_SAFETY if ((s[1] ^ 0x80) < 0x40) #else if (s[1] != 0) #endif return 2; } else if (c < 0xf0) { #if CONFIG_UNICODE_SAFETY if ((s[1] ^ 0x80) < 0x40 && (s[2] ^ 0x80) < 0x40 && (c >= 0xe1 || s[1] >= 0xa0) && (c != 0xed || s[1] < 0xa0)) #else if (s[1] != 0 && s[2] != 0) #endif return 3; } else if (c < 0xf8) { #if CONFIG_UNICODE_SAFETY if ((s[1] ^ 0x80) < 0x40 && (s[2] ^ 0x80) < 0x40 && (s[3] ^ 0x80) < 0x40 && (c >= 0xf1 || s[1] >= 0x90) #if 1 && (c < 0xf4 || (c == 0xf4 && s[1] < 0x90)) #endif ) #else if (s[1] != 0 && s[2] != 0 && s[3] != 0) #endif return 4; } #if 0 else if (c < 0xfc) { #if CONFIG_UNICODE_SAFETY if ((s[1] ^ 0x80) < 0x40 && (s[2] ^ 0x80) < 0x40 && (s[3] ^ 0x80) < 0x40 && (s[4] ^ 0x80) < 0x40 && (c >= 0xf9 || s[1] >= 0x88)) #else if (s[1] != 0 && s[2] != 0 && s[3] != 0 && s[4] != 0) #endif return 5; } else if (c < 0xfe) { #if CONFIG_UNICODE_SAFETY if ((s[1] ^ 0x80) < 0x40 && (s[2] ^ 0x80) < 0x40 && (s[3] ^ 0x80) < 0x40 && (s[4] ^ 0x80) < 0x40 && (s[5] ^ 0x80) < 0x40 && (c >= 0xfd || s[1] >= 0x84)) #else if (s[1] != 0 && s[2] != 0 && s[3] != 0 && s[4] != 0 && s[5] != 0) #endif return 6; } #endif } /* invalid or incomplete multibyte character */ return -1; } gcal-3.6.3/lib/unistr/u8-mbtouc.c0000644000175000017500000002064412125375412013443 00000000000000/* -*- buffer-read-only: t -*- vi: set ro: */ /* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* Look at first character in UTF-8 string. Copyright (C) 1999-2002, 2006-2007, 2009-2013 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 #if defined IN_LIBUNISTRING /* Tell unistr.h to declare u8_mbtouc as 'extern', not 'static inline'. */ # include "unistring-notinline.h" #endif /* Specification. */ #include "unistr.h" #if !HAVE_INLINE int u8_mbtouc (ucs4_t *puc, const uint8_t *s, size_t n) { uint8_t c = *s; if (c < 0x80) { *puc = c; return 1; } else if (c >= 0xc2) { if (c < 0xe0) { if (n >= 2) { if ((s[1] ^ 0x80) < 0x40) { *puc = ((unsigned int) (c & 0x1f) << 6) | (unsigned int) (s[1] ^ 0x80); return 2; } /* invalid multibyte character */ } else { /* incomplete multibyte character */ *puc = 0xfffd; return 1; } } else if (c < 0xf0) { if (n >= 3) { if ((s[1] ^ 0x80) < 0x40) { if ((s[2] ^ 0x80) < 0x40) { if ((c >= 0xe1 || s[1] >= 0xa0) && (c != 0xed || s[1] < 0xa0)) { *puc = ((unsigned int) (c & 0x0f) << 12) | ((unsigned int) (s[1] ^ 0x80) << 6) | (unsigned int) (s[2] ^ 0x80); return 3; } /* invalid multibyte character */ *puc = 0xfffd; return 3; } /* invalid multibyte character */ *puc = 0xfffd; return 2; } /* invalid multibyte character */ } else { /* incomplete multibyte character */ *puc = 0xfffd; if (n == 1 || (s[1] ^ 0x80) >= 0x40) return 1; else return 2; } } else if (c < 0xf8) { if (n >= 4) { if ((s[1] ^ 0x80) < 0x40) { if ((s[2] ^ 0x80) < 0x40) { if ((s[3] ^ 0x80) < 0x40) { if ((c >= 0xf1 || s[1] >= 0x90) #if 1 && (c < 0xf4 || (c == 0xf4 && s[1] < 0x90)) #endif ) { *puc = ((unsigned int) (c & 0x07) << 18) | ((unsigned int) (s[1] ^ 0x80) << 12) | ((unsigned int) (s[2] ^ 0x80) << 6) | (unsigned int) (s[3] ^ 0x80); return 4; } /* invalid multibyte character */ *puc = 0xfffd; return 4; } /* invalid multibyte character */ *puc = 0xfffd; return 3; } /* invalid multibyte character */ *puc = 0xfffd; return 2; } /* invalid multibyte character */ } else { /* incomplete multibyte character */ *puc = 0xfffd; if (n == 1 || (s[1] ^ 0x80) >= 0x40) return 1; else if (n == 2 || (s[2] ^ 0x80) >= 0x40) return 2; else return 3; } } #if 0 else if (c < 0xfc) { if (n >= 5) { if ((s[1] ^ 0x80) < 0x40) { if ((s[2] ^ 0x80) < 0x40) { if ((s[3] ^ 0x80) < 0x40) { if ((s[4] ^ 0x80) < 0x40) { if (c >= 0xf9 || s[1] >= 0x88) { *puc = ((unsigned int) (c & 0x03) << 24) | ((unsigned int) (s[1] ^ 0x80) << 18) | ((unsigned int) (s[2] ^ 0x80) << 12) | ((unsigned int) (s[3] ^ 0x80) << 6) | (unsigned int) (s[4] ^ 0x80); return 5; } /* invalid multibyte character */ *puc = 0xfffd; return 5; } /* invalid multibyte character */ *puc = 0xfffd; return 4; } /* invalid multibyte character */ *puc = 0xfffd; return 3; } /* invalid multibyte character */ return 2; } /* invalid multibyte character */ } else { /* incomplete multibyte character */ *puc = 0xfffd; return n; } } else if (c < 0xfe) { if (n >= 6) { if ((s[1] ^ 0x80) < 0x40) { if ((s[2] ^ 0x80) < 0x40) { if ((s[3] ^ 0x80) < 0x40) { if ((s[4] ^ 0x80) < 0x40) { if ((s[5] ^ 0x80) < 0x40) { if (c >= 0xfd || s[1] >= 0x84) { *puc = ((unsigned int) (c & 0x01) << 30) | ((unsigned int) (s[1] ^ 0x80) << 24) | ((unsigned int) (s[2] ^ 0x80) << 18) | ((unsigned int) (s[3] ^ 0x80) << 12) | ((unsigned int) (s[4] ^ 0x80) << 6) | (unsigned int) (s[5] ^ 0x80); return 6; } /* invalid multibyte character */ *puc = 0xfffd; return 6; } /* invalid multibyte character */ *puc = 0xfffd; return 5; } /* invalid multibyte character */ *puc = 0xfffd; return 4; } /* invalid multibyte character */ *puc = 0xfffd; return 3; } /* invalid multibyte character */ return 2; } /* invalid multibyte character */ } else { /* incomplete multibyte character */ *puc = 0xfffd; return n; } } #endif } /* invalid multibyte character */ *puc = 0xfffd; return 1; } #endif gcal-3.6.3/lib/unistr/u8-prev.c0000644000175000017500000000611712125375412013125 00000000000000/* -*- buffer-read-only: t -*- vi: set ro: */ /* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* Iterate over previous character in UTF-8 string. Copyright (C) 2002, 2006-2007, 2009-2013 Free Software Foundation, Inc. Written by Bruno Haible , 2002. This program is free software: you can redistribute 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 "unistr.h" const uint8_t * u8_prev (ucs4_t *puc, const uint8_t *s, const uint8_t *start) { /* Keep in sync with unistr.h and u8-mbtouc-aux.c. */ if (s != start) { uint8_t c_1 = s[-1]; if (c_1 < 0x80) { *puc = c_1; return s - 1; } #if CONFIG_UNICODE_SAFETY if ((c_1 ^ 0x80) < 0x40) #endif if (s - 1 != start) { uint8_t c_2 = s[-2]; if (c_2 >= 0xc2 && c_2 < 0xe0) { *puc = ((unsigned int) (c_2 & 0x1f) << 6) | (unsigned int) (c_1 ^ 0x80); return s - 2; } #if CONFIG_UNICODE_SAFETY if ((c_2 ^ 0x80) < 0x40) #endif if (s - 2 != start) { uint8_t c_3 = s[-3]; if (c_3 >= 0xe0 && c_3 < 0xf0 #if CONFIG_UNICODE_SAFETY && (c_3 >= 0xe1 || c_2 >= 0xa0) && (c_3 != 0xed || c_2 < 0xa0) #endif ) { *puc = ((unsigned int) (c_3 & 0x0f) << 12) | ((unsigned int) (c_2 ^ 0x80) << 6) | (unsigned int) (c_1 ^ 0x80); return s - 3; } #if CONFIG_UNICODE_SAFETY if ((c_3 ^ 0x80) < 0x40) #endif if (s - 3 != start) { uint8_t c_4 = s[-4]; if (c_4 >= 0xf0 && c_4 < 0xf8 #if CONFIG_UNICODE_SAFETY && (c_4 >= 0xf1 || c_3 >= 0x90) && (c_4 < 0xf4 || (c_4 == 0xf4 && c_3 < 0x90)) #endif ) { *puc = ((unsigned int) (c_4 & 0x07) << 18) | ((unsigned int) (c_3 ^ 0x80) << 12) | ((unsigned int) (c_2 ^ 0x80) << 6) | (unsigned int) (c_1 ^ 0x80); return s - 4; } } } } } return NULL; } gcal-3.6.3/lib/unistr/u8-cpy.c0000644000175000017500000000176712125375412012752 00000000000000/* -*- buffer-read-only: t -*- vi: set ro: */ /* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* Copy piece of UTF-8 string. Copyright (C) 2002, 2006, 2009-2013 Free Software Foundation, Inc. Written by Bruno Haible , 2002. This program is free software: you can redistribute 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 "unistr.h" #define FUNC u8_cpy #define UNIT uint8_t #include "u-cpy.h" gcal-3.6.3/lib/unistr/u32-strmblen.c0000644000175000017500000000231612125375412014051 00000000000000/* -*- buffer-read-only: t -*- vi: set ro: */ /* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* Look at first character in UTF-32 string. Copyright (C) 2002, 2006-2007, 2009-2013 Free Software Foundation, Inc. Written by Bruno Haible , 2002. This program is free software: you can redistribute 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 "unistr.h" int u32_strmblen (const uint32_t *s) { uint32_t c = *s; #if CONFIG_UNICODE_SAFETY if (c < 0xd800 || (c >= 0xe000 && c < 0x110000)) #endif return (c != 0 ? 1 : 0); #if CONFIG_UNICODE_SAFETY /* invalid multibyte character */ return -1; #endif } gcal-3.6.3/lib/unistr/u8-mblen.c0000644000175000017500000000560412125375412013246 00000000000000/* -*- buffer-read-only: t -*- vi: set ro: */ /* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* Look at first character in UTF-8 string. Copyright (C) 1999-2000, 2002, 2006-2007, 2009-2013 Free Software Foundation, Inc. Written by Bruno Haible , 2002. This program is free software: you can redistribute 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 "unistr.h" int u8_mblen (const uint8_t *s, size_t n) { if (n > 0) { /* Keep in sync with unistr.h and u8-mbtouc-aux.c. */ uint8_t c = *s; if (c < 0x80) return (c != 0 ? 1 : 0); if (c >= 0xc2) { if (c < 0xe0) { if (n >= 2 #if CONFIG_UNICODE_SAFETY && (s[1] ^ 0x80) < 0x40 #endif ) return 2; } else if (c < 0xf0) { if (n >= 3 #if CONFIG_UNICODE_SAFETY && (s[1] ^ 0x80) < 0x40 && (s[2] ^ 0x80) < 0x40 && (c >= 0xe1 || s[1] >= 0xa0) && (c != 0xed || s[1] < 0xa0) #endif ) return 3; } else if (c < 0xf8) { if (n >= 4 #if CONFIG_UNICODE_SAFETY && (s[1] ^ 0x80) < 0x40 && (s[2] ^ 0x80) < 0x40 && (s[3] ^ 0x80) < 0x40 && (c >= 0xf1 || s[1] >= 0x90) #if 1 && (c < 0xf4 || (c == 0xf4 && s[1] < 0x90)) #endif #endif ) return 4; } #if 0 else if (c < 0xfc) { if (n >= 5 #if CONFIG_UNICODE_SAFETY && (s[1] ^ 0x80) < 0x40 && (s[2] ^ 0x80) < 0x40 && (s[3] ^ 0x80) < 0x40 && (s[4] ^ 0x80) < 0x40 && (c >= 0xf9 || s[1] >= 0x88) #endif ) return 5; } else if (c < 0xfe) { if (n >= 6 #if CONFIG_UNICODE_SAFETY && (s[1] ^ 0x80) < 0x40 && (s[2] ^ 0x80) < 0x40 && (s[3] ^ 0x80) < 0x40 && (s[4] ^ 0x80) < 0x40 && (s[5] ^ 0x80) < 0x40 && (c >= 0xfd || s[1] >= 0x84) #endif ) return 6; } #endif } } /* invalid or incomplete multibyte character */ return -1; } gcal-3.6.3/lib/printf-args.c0000644000175000017500000001476412125375411012535 00000000000000/* -*- buffer-read-only: t -*- vi: set ro: */ /* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* Decomposed printf argument list. Copyright (C) 1999, 2002-2003, 2005-2007, 2009-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, see . */ /* This file can be parametrized with the following macros: ENABLE_UNISTDIO Set to 1 to enable the unistdio extensions. PRINTF_FETCHARGS Name of the function to be defined. STATIC Set to 'static' to declare the function static. */ #ifndef PRINTF_FETCHARGS # include #endif /* Specification. */ #ifndef PRINTF_FETCHARGS # include "printf-args.h" #endif #ifdef STATIC STATIC #endif int PRINTF_FETCHARGS (va_list args, arguments *a) { size_t i; argument *ap; for (i = 0, ap = &a->arg[0]; i < a->count; i++, ap++) switch (ap->type) { case TYPE_SCHAR: ap->a.a_schar = va_arg (args, /*signed char*/ int); break; case TYPE_UCHAR: ap->a.a_uchar = va_arg (args, /*unsigned char*/ int); break; case TYPE_SHORT: ap->a.a_short = va_arg (args, /*short*/ int); break; case TYPE_USHORT: ap->a.a_ushort = va_arg (args, /*unsigned short*/ int); break; case TYPE_INT: ap->a.a_int = va_arg (args, int); break; case TYPE_UINT: ap->a.a_uint = va_arg (args, unsigned int); break; case TYPE_LONGINT: ap->a.a_longint = va_arg (args, long int); break; case TYPE_ULONGINT: ap->a.a_ulongint = va_arg (args, unsigned long int); break; #if HAVE_LONG_LONG_INT case TYPE_LONGLONGINT: ap->a.a_longlongint = va_arg (args, long long int); break; case TYPE_ULONGLONGINT: ap->a.a_ulonglongint = va_arg (args, unsigned long long int); break; #endif case TYPE_DOUBLE: ap->a.a_double = va_arg (args, double); break; case TYPE_LONGDOUBLE: ap->a.a_longdouble = va_arg (args, long double); break; case TYPE_CHAR: ap->a.a_char = va_arg (args, int); break; #if HAVE_WINT_T case TYPE_WIDE_CHAR: /* Although ISO C 99 7.24.1.(2) says that wint_t is "unchanged by default argument promotions", this is not the case in mingw32, where wint_t is 'unsigned short'. */ ap->a.a_wide_char = (sizeof (wint_t) < sizeof (int) ? (wint_t) va_arg (args, int) : va_arg (args, wint_t)); break; #endif case TYPE_STRING: ap->a.a_string = va_arg (args, const char *); /* A null pointer is an invalid argument for "%s", but in practice it occurs quite frequently in printf statements that produce debug output. Use a fallback in this case. */ if (ap->a.a_string == NULL) ap->a.a_string = "(NULL)"; break; #if HAVE_WCHAR_T case TYPE_WIDE_STRING: ap->a.a_wide_string = va_arg (args, const wchar_t *); /* A null pointer is an invalid argument for "%ls", but in practice it occurs quite frequently in printf statements that produce debug output. Use a fallback in this case. */ if (ap->a.a_wide_string == NULL) { static const wchar_t wide_null_string[] = { (wchar_t)'(', (wchar_t)'N', (wchar_t)'U', (wchar_t)'L', (wchar_t)'L', (wchar_t)')', (wchar_t)0 }; ap->a.a_wide_string = wide_null_string; } break; #endif case TYPE_POINTER: ap->a.a_pointer = va_arg (args, void *); break; case TYPE_COUNT_SCHAR_POINTER: ap->a.a_count_schar_pointer = va_arg (args, signed char *); break; case TYPE_COUNT_SHORT_POINTER: ap->a.a_count_short_pointer = va_arg (args, short *); break; case TYPE_COUNT_INT_POINTER: ap->a.a_count_int_pointer = va_arg (args, int *); break; case TYPE_COUNT_LONGINT_POINTER: ap->a.a_count_longint_pointer = va_arg (args, long int *); break; #if HAVE_LONG_LONG_INT case TYPE_COUNT_LONGLONGINT_POINTER: ap->a.a_count_longlongint_pointer = va_arg (args, long long int *); break; #endif #if ENABLE_UNISTDIO /* The unistdio extensions. */ case TYPE_U8_STRING: ap->a.a_u8_string = va_arg (args, const uint8_t *); /* A null pointer is an invalid argument for "%U", but in practice it occurs quite frequently in printf statements that produce debug output. Use a fallback in this case. */ if (ap->a.a_u8_string == NULL) { static const uint8_t u8_null_string[] = { '(', 'N', 'U', 'L', 'L', ')', 0 }; ap->a.a_u8_string = u8_null_string; } break; case TYPE_U16_STRING: ap->a.a_u16_string = va_arg (args, const uint16_t *); /* A null pointer is an invalid argument for "%lU", but in practice it occurs quite frequently in printf statements that produce debug output. Use a fallback in this case. */ if (ap->a.a_u16_string == NULL) { static const uint16_t u16_null_string[] = { '(', 'N', 'U', 'L', 'L', ')', 0 }; ap->a.a_u16_string = u16_null_string; } break; case TYPE_U32_STRING: ap->a.a_u32_string = va_arg (args, const uint32_t *); /* A null pointer is an invalid argument for "%llU", but in practice it occurs quite frequently in printf statements that produce debug output. Use a fallback in this case. */ if (ap->a.a_u32_string == NULL) { static const uint32_t u32_null_string[] = { '(', 'N', 'U', 'L', 'L', ')', 0 }; ap->a.a_u32_string = u32_null_string; } break; #endif default: /* Unknown type. */ return -1; } return 0; } gcal-3.6.3/lib/exitfail.c0000644000175000017500000000153312076511423012074 00000000000000/* Failure exit status Copyright (C) 2002-2003, 2005-2007, 2009-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 . */ #include #include "exitfail.h" #include int volatile exit_failure = EXIT_FAILURE; gcal-3.6.3/lib/size_max.h0000644000175000017500000000234312125375411012113 00000000000000/* -*- buffer-read-only: t -*- vi: set ro: */ /* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* size_max.h -- declare SIZE_MAX through system headers Copyright (C) 2005-2006, 2009-2013 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 . */ #ifndef GNULIB_SIZE_MAX_H #define GNULIB_SIZE_MAX_H /* Get SIZE_MAX declaration on systems like Solaris 7/8/9. */ # include /* Get SIZE_MAX declaration on systems like glibc 2. */ # if HAVE_STDINT_H # include # endif /* On systems where these include files don't define it, SIZE_MAX is defined in config.h. */ #endif /* GNULIB_SIZE_MAX_H */ gcal-3.6.3/lib/signbitl.c0000644000175000017500000000414212076511424012102 00000000000000/* signbit() macro: Determine the sign bit of a floating-point number. Copyright (C) 2007, 2009-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 . */ #include /* Specification. */ #include #include #include "isnanl-nolibm.h" #include "float+.h" #ifdef gl_signbitl_OPTIMIZED_MACRO # undef gl_signbitl #endif int gl_signbitl (long double arg) { #if defined LDBL_SIGNBIT_WORD && defined LDBL_SIGNBIT_BIT /* The use of a union to extract the bits of the representation of a 'long double' is safe in practice, despite of the "aliasing rules" of C99, because the GCC docs say "Even with '-fstrict-aliasing', type-punning is allowed, provided the memory is accessed through the union type." and similarly for other compilers. */ # define NWORDS \ ((sizeof (long double) + sizeof (unsigned int) - 1) / sizeof (unsigned int)) union { long double value; unsigned int word[NWORDS]; } m; m.value = arg; return (m.word[LDBL_SIGNBIT_WORD] >> LDBL_SIGNBIT_BIT) & 1; #elif HAVE_COPYSIGNL_IN_LIBC return copysignl (1.0L, arg) < 0; #else /* This does not do the right thing for NaN, but this is irrelevant for most use cases. */ if (isnanl (arg)) return 0; if (arg < 0.0L) return 1; else if (arg == 0.0L) { /* Distinguish 0.0L and -0.0L. */ static long double plus_zero = 0.0L; long double arg_mem = arg; return (memcmp (&plus_zero, &arg_mem, SIZEOF_LDBL) != 0); } else return 0; #endif } gcal-3.6.3/lib/fd-safer-flag.c0000644000175000017500000000335112076511424012666 00000000000000/* Adjust a file descriptor result so that it avoids clobbering STD{IN,OUT,ERR}_FILENO, with specific flags. Copyright (C) 2005-2006, 2009-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 . */ /* 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-3.6.3/lib/unlink.c0000644000175000017500000000652712076511424011600 00000000000000/* Work around unlink bugs. Copyright (C) 2009-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 . */ #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-3.6.3/lib/isnan.c0000644000175000017500000001436412076511424011406 00000000000000/* Test for NaN that does not need libm. Copyright (C) 2007-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 . */ /* Written by Bruno Haible , 2007. */ #include /* Specification. */ #ifdef USE_LONG_DOUBLE /* Specification found in math.h or isnanl-nolibm.h. */ extern int rpl_isnanl (long double x) _GL_ATTRIBUTE_CONST; #elif ! defined USE_FLOAT /* Specification found in math.h or isnand-nolibm.h. */ extern int rpl_isnand (double x); #else /* defined USE_FLOAT */ /* Specification found in math.h or isnanf-nolibm.h. */ extern int rpl_isnanf (float x); #endif #include #include #include "float+.h" #ifdef USE_LONG_DOUBLE # define FUNC rpl_isnanl # define DOUBLE long double # define MAX_EXP LDBL_MAX_EXP # define MIN_EXP LDBL_MIN_EXP # if defined LDBL_EXPBIT0_WORD && defined LDBL_EXPBIT0_BIT # define KNOWN_EXPBIT0_LOCATION # define EXPBIT0_WORD LDBL_EXPBIT0_WORD # define EXPBIT0_BIT LDBL_EXPBIT0_BIT # endif # define SIZE SIZEOF_LDBL # define L_(literal) literal##L #elif ! defined USE_FLOAT # define FUNC rpl_isnand # define DOUBLE double # define MAX_EXP DBL_MAX_EXP # define MIN_EXP DBL_MIN_EXP # if defined DBL_EXPBIT0_WORD && defined DBL_EXPBIT0_BIT # define KNOWN_EXPBIT0_LOCATION # define EXPBIT0_WORD DBL_EXPBIT0_WORD # define EXPBIT0_BIT DBL_EXPBIT0_BIT # endif # define SIZE SIZEOF_DBL # define L_(literal) literal #else /* defined USE_FLOAT */ # define FUNC rpl_isnanf # define DOUBLE float # define MAX_EXP FLT_MAX_EXP # define MIN_EXP FLT_MIN_EXP # if defined FLT_EXPBIT0_WORD && defined FLT_EXPBIT0_BIT # define KNOWN_EXPBIT0_LOCATION # define EXPBIT0_WORD FLT_EXPBIT0_WORD # define EXPBIT0_BIT FLT_EXPBIT0_BIT # endif # define SIZE SIZEOF_FLT # define L_(literal) literal##f #endif #define EXP_MASK ((MAX_EXP - MIN_EXP) | 7) #define NWORDS \ ((sizeof (DOUBLE) + sizeof (unsigned int) - 1) / sizeof (unsigned int)) typedef union { DOUBLE value; unsigned int word[NWORDS]; } memory_double; int FUNC (DOUBLE x) { #ifdef KNOWN_EXPBIT0_LOCATION # if defined USE_LONG_DOUBLE && ((defined __ia64 && LDBL_MANT_DIG == 64) || (defined __x86_64__ || defined __amd64__) || (defined __i386 || defined __i386__ || defined _I386 || defined _M_IX86 || defined _X86_)) && !HAVE_SAME_LONG_DOUBLE_AS_DOUBLE /* Special CPU dependent code is needed to treat bit patterns outside the IEEE 754 specification (such as Pseudo-NaNs, Pseudo-Infinities, Pseudo-Zeroes, Unnormalized Numbers, and Pseudo-Denormals) as NaNs. These bit patterns are: - exponent = 0x0001..0x7FFF, mantissa bit 63 = 0, - exponent = 0x0000, mantissa bit 63 = 1. The NaN bit pattern is: - exponent = 0x7FFF, mantissa >= 0x8000000000000001. */ memory_double m; unsigned int exponent; m.value = x; exponent = (m.word[EXPBIT0_WORD] >> EXPBIT0_BIT) & EXP_MASK; # ifdef WORDS_BIGENDIAN /* Big endian: EXPBIT0_WORD = 0, EXPBIT0_BIT = 16. */ if (exponent == 0) return 1 & (m.word[0] >> 15); else if (exponent == EXP_MASK) return (((m.word[0] ^ 0x8000U) << 16) | m.word[1] | (m.word[2] >> 16)) != 0; else return 1 & ~(m.word[0] >> 15); # else /* Little endian: EXPBIT0_WORD = 2, EXPBIT0_BIT = 0. */ if (exponent == 0) return (m.word[1] >> 31); else if (exponent == EXP_MASK) return ((m.word[1] ^ 0x80000000U) | m.word[0]) != 0; else return (m.word[1] >> 31) ^ 1; # endif # else /* Be careful to not do any floating-point operation on x, such as x == x, because x may be a signaling NaN. */ # if defined __SUNPRO_C || defined __ICC || defined _MSC_VER \ || defined __DECC || defined __TINYC__ \ || (defined __sgi && !defined __GNUC__) /* The Sun C 5.0, Intel ICC 10.0, Microsoft Visual C/C++ 9.0, Compaq (ex-DEC) 6.4, and TinyCC compilers don't recognize the initializers as constant expressions. The Compaq compiler also fails when constant-folding 0.0 / 0.0 even when constant-folding is not required. The Microsoft Visual C/C++ compiler also fails when constant-folding 1.0 / 0.0 even when constant-folding is not required. The SGI MIPSpro C compiler complains about "floating-point operation result is out of range". */ static DOUBLE zero = L_(0.0); memory_double nan; DOUBLE plus_inf = L_(1.0) / zero; DOUBLE minus_inf = -L_(1.0) / zero; nan.value = zero / zero; # else static memory_double nan = { L_(0.0) / L_(0.0) }; static DOUBLE plus_inf = L_(1.0) / L_(0.0); static DOUBLE minus_inf = -L_(1.0) / L_(0.0); # endif { memory_double m; /* A NaN can be recognized through its exponent. But exclude +Infinity and -Infinity, which have the same exponent. */ m.value = x; if (((m.word[EXPBIT0_WORD] ^ nan.word[EXPBIT0_WORD]) & (EXP_MASK << EXPBIT0_BIT)) == 0) return (memcmp (&m.value, &plus_inf, SIZE) != 0 && memcmp (&m.value, &minus_inf, SIZE) != 0); else return 0; } # endif #else /* The configuration did not find sufficient information. Give up about the signaling NaNs, handle only the quiet NaNs. */ if (x == x) { # if defined USE_LONG_DOUBLE && ((defined __ia64 && LDBL_MANT_DIG == 64) || (defined __x86_64__ || defined __amd64__) || (defined __i386 || defined __i386__ || defined _I386 || defined _M_IX86 || defined _X86_)) && !HAVE_SAME_LONG_DOUBLE_AS_DOUBLE /* Detect any special bit patterns that pass ==; see comment above. */ memory_double m1; memory_double m2; memset (&m1.value, 0, SIZE); memset (&m2.value, 0, SIZE); m1.value = x; m2.value = x + (x ? 0.0L : -0.0L); if (memcmp (&m1.value, &m2.value, SIZE) != 0) return 1; # endif return 0; } else return 1; #endif } gcal-3.6.3/lib/mbrtowc.c0000644000175000017500000002514312076511424011750 00000000000000/* Convert multibyte character to wide character. Copyright (C) 1999-2002, 2005-2013 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 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) { # if MBRTOWC_NULL_ARG2_BUG || MBRTOWC_RETVAL_BUG if (s == NULL) { pwc = NULL; s = ""; n = 1; } # endif # 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--) { wchar_t wc; size_t 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. */ if (pwc != NULL) *pwc = wc; return (wc == 0 ? 0 : count); } } return (size_t)(-2); } } # endif # if MBRTOWC_NUL_RETVAL_BUG { wchar_t wc; size_t ret = mbrtowc (&wc, s, n, ps); if (ret != (size_t)(-1) && ret != (size_t)(-2)) { if (pwc != NULL) *pwc = wc; if (wc == 0) ret = 0; } return ret; } # else { # if MBRTOWC_NULL_ARG1_BUG wchar_t dummy; if (pwc == NULL) pwc = &dummy; # endif return mbrtowc (pwc, s, n, ps); } # endif } #endif gcal-3.6.3/lib/memchr.c0000644000175000017500000001334612076511424011550 00000000000000/* Copyright (C) 1991, 1993, 1996-1997, 1999-2000, 2003-2004, 2006, 2008-2013 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-3.6.3/lib/pipe-safer.c0000644000175000017500000000265612076511424012332 00000000000000/* Invoke pipe, but avoid some glitches. Copyright (C) 2005-2006, 2009-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 . */ /* 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-3.6.3/lib/freading.h0000644000175000017500000000361612076511424012060 00000000000000/* Retrieve information about a FILE stream. Copyright (C) 2007-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 . */ #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); # ifdef __cplusplus } # endif #endif gcal-3.6.3/lib/nl_langinfo.c0000644000175000017500000001503712076511424012562 00000000000000/* nl_langinfo() replacement: query locale dependent information. Copyright (C) 2007-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 . */ #include /* Specification. */ #include #if REPLACE_NL_LANGINFO /* Override nl_langinfo with support for added nl_item values. */ # include # include # undef nl_langinfo char * rpl_nl_langinfo (nl_item item) { switch (item) { # if GNULIB_defined_CODESET case CODESET: { const char *locale; static char buf[2 + 10 + 1]; locale = setlocale (LC_CTYPE, NULL); 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; } } } return ""; } # endif # if GNULIB_defined_T_FMT_AMPM case T_FMT_AMPM: return "%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 ""; 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 "\0\0\0\0\0\0\0\0\0\0"; # endif # if GNULIB_defined_YESEXPR || !FUNC_NL_LANGINFO_YESEXPR_WORKS case YESEXPR: return "^[yY]"; case NOEXPR: return "^[nN]"; # endif default: break; } return nl_langinfo (item); } #else /* Provide nl_langinfo from scratch. */ # if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ /* Native Windows platforms. */ # define WIN32_LEAN_AND_MEAN /* avoid including junk */ # include # include # else /* An old Unix platform without locales, such as Linux libc5 or BeOS. */ # endif # include char * nl_langinfo (nl_item item) { switch (item) { /* nl_langinfo items of the LC_CTYPE category */ case CODESET: # if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ { static char buf[2 + 10 + 1]; /* The Windows API has a function returning the locale's codepage as a number. */ sprintf (buf, "CP%u", GetACP ()); return buf; } # elif defined __BEOS__ return "UTF-8"; # else return "ISO-8859-1"; # endif /* nl_langinfo items of the LC_NUMERIC category */ case RADIXCHAR: return localeconv () ->decimal_point; case THOUSEP: return localeconv () ->thousands_sep; /* nl_langinfo items of the LC_TIME category. TODO: Really use the locale. */ case D_T_FMT: case ERA_D_T_FMT: return "%a %b %e %H:%M:%S %Y"; case D_FMT: case ERA_D_FMT: return "%m/%d/%y"; case T_FMT: case ERA_T_FMT: return "%H:%M:%S"; case T_FMT_AMPM: return "%I:%M:%S %p"; case AM_STR: return "AM"; case PM_STR: return "PM"; case DAY_1: return "Sunday"; case DAY_2: return "Monday"; case DAY_3: return "Tuesday"; case DAY_4: return "Wednesday"; case DAY_5: return "Thursday"; case DAY_6: return "Friday"; case DAY_7: return "Saturday"; case ABDAY_1: return "Sun"; case ABDAY_2: return "Mon"; case ABDAY_3: return "Tue"; case ABDAY_4: return "Wed"; case ABDAY_5: return "Thu"; case ABDAY_6: return "Fri"; case ABDAY_7: return "Sat"; case MON_1: return "January"; case MON_2: return "February"; case MON_3: return "March"; case MON_4: return "April"; case MON_5: return "May"; case MON_6: return "June"; case MON_7: return "July"; case MON_8: return "August"; case MON_9: return "September"; case MON_10: return "October"; case MON_11: return "November"; case MON_12: return "December"; case ABMON_1: return "Jan"; case ABMON_2: return "Feb"; case ABMON_3: return "Mar"; case ABMON_4: return "Apr"; case ABMON_5: return "May"; case ABMON_6: return "Jun"; case ABMON_7: return "Jul"; case ABMON_8: return "Aug"; case ABMON_9: return "Sep"; case ABMON_10: return "Oct"; case ABMON_11: return "Nov"; case ABMON_12: return "Dec"; case ERA: return ""; case ALT_DIGITS: return "\0\0\0\0\0\0\0\0\0\0"; /* nl_langinfo items of the LC_MONETARY category TODO: Really use the locale. */ case CRNCYSTR: return "-"; /* nl_langinfo items of the LC_MESSAGES category TODO: Really use the locale. */ case YESEXPR: return "^[yY]"; case NOEXPR: return "^[nN]"; default: return ""; } } #endif gcal-3.6.3/lib/localcharset.h0000644000175000017500000000256412125375410012744 00000000000000/* -*- buffer-read-only: t -*- vi: set ro: */ /* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* Determine a canonical name for the current locale's character encoding. Copyright (C) 2000-2003, 2009-2013 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-3.6.3/lib/secure_getenv.c0000644000175000017500000000224312125375411013124 00000000000000/* -*- buffer-read-only: t -*- vi: set ro: */ /* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* Look up an environment variable more securely. Copyright 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 . */ #include #include #if !HAVE___SECURE_GETENV # if HAVE_ISSETUGID # include # else # undef issetugid # define issetugid() 1 # endif #endif char * secure_getenv (char const *name) { #if HAVE___SECURE_GETENV return __secure_getenv (name); #else if (issetugid ()) return 0; return getenv (name); #endif } gcal-3.6.3/lib/lseek.c0000644000175000017500000000356512125375410011400 00000000000000/* -*- buffer-read-only: t -*- vi: set ro: */ /* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* An lseek() function that detects pipes. Copyright (C) 2007, 2009-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, 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-3.6.3/lib/pipe2.c0000644000175000017500000001043312125375411011305 00000000000000/* -*- buffer-read-only: t -*- vi: set ro: */ /* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* Create a pipe, with specific opening flags. Copyright (C) 2009-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, 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) { setmode (fd[1], O_BINARY); setmode (fd[0], O_BINARY); } else if (flags & O_TEXT) { setmode (fd[1], O_TEXT); setmode (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-3.6.3/lib/rawmemchr.c0000644000175000017500000001220112076511424012247 00000000000000/* Searching in a string. Copyright (C) 2008-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 . */ #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-3.6.3/lib/xsize.h0000644000175000017500000000707012125375412011441 00000000000000/* -*- buffer-read-only: t -*- vi: set ro: */ /* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* xsize.h -- Checked size_t computations. Copyright (C) 2003, 2008-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, see . */ #ifndef _XSIZE_H #define _XSIZE_H /* Get size_t. */ #include /* Get SIZE_MAX. */ #include #if HAVE_STDINT_H # include #endif _GL_INLINE_HEADER_BEGIN #ifndef XSIZE_INLINE # define XSIZE_INLINE _GL_INLINE #endif /* The size of memory objects is often computed through expressions of type size_t. Example: void* p = malloc (header_size + n * element_size). These computations can lead to overflow. When this happens, malloc() returns a piece of memory that is way too small, and the program then crashes while attempting to fill the memory. To avoid this, the functions and macros in this file check for overflow. The convention is that SIZE_MAX represents overflow. malloc (SIZE_MAX) is not guaranteed to fail -- think of a malloc implementation that uses mmap --, it's recommended to use size_overflow_p() or size_in_bounds_p() before invoking malloc(). The example thus becomes: size_t size = xsum (header_size, xtimes (n, element_size)); void *p = (size_in_bounds_p (size) ? malloc (size) : NULL); */ /* Convert an arbitrary value >= 0 to type size_t. */ #define xcast_size_t(N) \ ((N) <= SIZE_MAX ? (size_t) (N) : SIZE_MAX) /* Sum of two sizes, with overflow check. */ XSIZE_INLINE size_t #if __GNUC__ >= 3 __attribute__ ((__pure__)) #endif xsum (size_t size1, size_t size2) { size_t sum = size1 + size2; return (sum >= size1 ? sum : SIZE_MAX); } /* Sum of three sizes, with overflow check. */ XSIZE_INLINE size_t #if __GNUC__ >= 3 __attribute__ ((__pure__)) #endif xsum3 (size_t size1, size_t size2, size_t size3) { return xsum (xsum (size1, size2), size3); } /* Sum of four sizes, with overflow check. */ XSIZE_INLINE size_t #if __GNUC__ >= 3 __attribute__ ((__pure__)) #endif xsum4 (size_t size1, size_t size2, size_t size3, size_t size4) { return xsum (xsum (xsum (size1, size2), size3), size4); } /* Maximum of two sizes, with overflow check. */ XSIZE_INLINE size_t #if __GNUC__ >= 3 __attribute__ ((__pure__)) #endif xmax (size_t size1, size_t size2) { /* No explicit check is needed here, because for any n: max (SIZE_MAX, n) == SIZE_MAX and max (n, SIZE_MAX) == SIZE_MAX. */ return (size1 >= size2 ? size1 : size2); } /* Multiplication of a count with an element size, with overflow check. The count must be >= 0 and the element size must be > 0. This is a macro, not a function, so that it works correctly even when N is of a wider type and N > SIZE_MAX. */ #define xtimes(N, ELSIZE) \ ((N) <= SIZE_MAX / (ELSIZE) ? (size_t) (N) * (ELSIZE) : SIZE_MAX) /* Check for overflow. */ #define size_overflow_p(SIZE) \ ((SIZE) == SIZE_MAX) /* Check against overflow. */ #define size_in_bounds_p(SIZE) \ ((SIZE) != SIZE_MAX) _GL_INLINE_HEADER_END #endif /* _XSIZE_H */ gcal-3.6.3/lib/wcrtomb.c0000644000175000017500000000271512076511424011750 00000000000000/* Convert wide character to multibyte character. Copyright (C) 2008-2013 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-3.6.3/lib/regex_internal.h0000644000175000017500000005705512125375411013314 00000000000000/* -*- buffer-read-only: t -*- vi: set ro: */ /* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* Extended regular expression matching and search library. Copyright (C) 2002-2013 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 #if defined _LIBC # include #else # define __libc_lock_init(NAME) do { } while (0) # define __libc_lock_lock(NAME) do { } while (0) # define __libc_lock_unlock(NAME) do { } while (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 # 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 && HAVE_WCSCOLL) || _LIBC # define RE_ENABLE_I18N #endif #if __GNUC__ >= 3 # define BE(expr, val) __builtin_expect (expr, val) #else # define BE(expr, val) (expr) #endif /* 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 __iswctype iswctype # 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 typedef __re_idx_t Idx; #ifdef _REGEX_LARGE_OFFSETS # define IDX_MAX (SIZE_MAX - 2) #else # define IDX_MAX INT_MAX #endif /* Special return value for failure to match. */ #define REG_MISSING ((Idx) -1) /* Special return value for internal error. */ #define REG_ERROR ((Idx) -2) /* Test whether N is a valid index, and is not one of the above. */ #ifdef _REGEX_LARGE_OFFSETS # define REG_VALID_INDEX(n) ((Idx) (n) < REG_ERROR) #else # define REG_VALID_INDEX(n) (0 <= (n)) #endif /* Test whether N is a valid nonzero index. */ #ifdef _REGEX_LARGE_OFFSETS # define REG_VALID_NONZERO_INDEX(n) ((Idx) ((n) - 1) < (Idx) (REG_ERROR - 1)) #else # define REG_VALID_NONZERO_INDEX(n) (0 < (n)) #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 #endif #ifndef NOT_IN_libc 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)); #endif #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 #ifdef _LIBC __libc_lock_define (, lock) #endif }; #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]; } # ifndef NOT_IN_libc 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; # include 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 (&p, pstr->len - idx); return p - pstr->mbs - idx; } else # endif /* _LIBC */ return 1; } # endif #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-3.6.3/lib/realloc.c0000644000175000017500000000407012076511424011710 00000000000000/* realloc() function that is glibc compatible. Copyright (C) 1997, 2003-2004, 2006-2007, 2009-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 . */ /* 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-3.6.3/lib/fseeko.c0000644000175000017500000001266212125375410011547 00000000000000/* -*- buffer-read-only: t -*- vi: set ro: */ /* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* An fseeko() function that, together with fflush(), is POSIX compliant. Copyright (C) 2007-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, see . */ #include /* Specification. */ #include /* Get off_t and lseek. */ #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__ /* FreeBSD, NetBSD, OpenBSD, DragonFly, Mac OS X, Cygwin */ # 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, 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) #else #error "Please port gnulib fseeko.c to your platform! Look at the code in fpurge.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__ /* FreeBSD, NetBSD, OpenBSD, DragonFly, Mac OS X, Cygwin */ 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__ /* FreeBSD, NetBSD, OpenBSD, DragonFly, Mac OS X, Cygwin */ # 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; fp_->_flags &= ~__SEOF; #elif defined __EMX__ /* emx+gcc */ fp->_flags &= ~_IOEOF; #elif defined _IOERR /* AIX, HP-UX, IRIX, OSF/1, Solaris, OpenServer, mingw, 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-3.6.3/lib/btowc.c0000644000175000017500000000210712076511423011403 00000000000000/* Convert unibyte character to wide character. Copyright (C) 2008, 2010-2013 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-3.6.3/lib/spawnattr_setsigmask.c0000644000175000017500000000215412076511424014545 00000000000000/* Copyright (C) 2000, 2009-2013 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-3.6.3/lib/frexpl.c0000644000175000017500000000175612076511424011577 00000000000000/* Split a 'long double' into fraction and mantissa. Copyright (C) 2007, 2009-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 . */ #include #if HAVE_SAME_LONG_DOUBLE_AS_DOUBLE /* Specification. */ # include long double frexpl (long double x, int *expptr) { return frexp (x, expptr); } #else # define USE_LONG_DOUBLE # include "frexp.c" #endif gcal-3.6.3/lib/gettext.h0000644000175000017500000002355012125375410011762 00000000000000/* -*- buffer-read-only: t -*- vi: set ro: */ /* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* Convenience header for conditional use of GNU . Copyright (C) 1995-1998, 2000-2002, 2004-2006, 2009-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, 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 { 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); #if !_LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS if (msg_ctxt_id != buf) free (msg_ctxt_id); #endif if (translation != msg_ctxt_id) 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 { 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); #if !_LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS if (msg_ctxt_id != buf) free (msg_ctxt_id); #endif if (!(translation == msg_ctxt_id || translation == msgid_plural)) return translation; } return (n == 1 ? msgid : msgid_plural); } #endif /* _LIBGETTEXT_H */ gcal-3.6.3/lib/uniconv.in.h0000644000175000017500000001663512125375411012373 00000000000000/* -*- buffer-read-only: t -*- vi: set ro: */ /* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* Conversions between Unicode and legacy encodings. Copyright (C) 2002, 2005, 2007, 2009-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 . */ #ifndef _UNICONV_H #define _UNICONV_H /* Get size_t. */ #include #include "unitypes.h" /* Get enum iconv_ilseq_handler. */ #include "iconveh.h" /* Get uniconv_register_autodetect() declaration. */ #include "striconveha.h" /* Get locale_charset() declaration. */ #include "localcharset.h" #ifdef __cplusplus extern "C" { #endif /* Converts an entire string, possibly including NUL bytes, from one encoding to a Unicode encoding. Converts a memory region given in encoding FROMCODE. FROMCODE is as for iconv_open(3). The input is in the memory region between SRC (inclusive) and SRC + SRCLEN (exclusive). If OFFSETS is not NULL, it should point to an array of SRCLEN integers; this array is filled with offsets into the result, i.e. the character starting at SRC[i] corresponds to the character starting at (*RESULTP)[OFFSETS[i]], and other offsets are set to (size_t)(-1). RESULTBUF and *LENGTHP should initially be a scratch buffer and its size, or *RESULTBUF can be NULL. May erase the contents of the memory at RESULTBUF. If successful: The resulting Unicode string (non-NULL) is returned and its length stored in *LENGTHP. The resulting string is RESULTBUF if no dynamic memory allocation was necessary, or a freshly allocated memory block otherwise. In case of error: NULL is returned and errno is set. Particular errno values: EINVAL, EILSEQ, ENOMEM. */ extern uint8_t * u8_conv_from_encoding (const char *fromcode, enum iconv_ilseq_handler handler, const char *src, size_t srclen, size_t *offsets, uint8_t *resultbuf, size_t *lengthp); extern uint16_t * u16_conv_from_encoding (const char *fromcode, enum iconv_ilseq_handler handler, const char *src, size_t srclen, size_t *offsets, uint16_t *resultbuf, size_t *lengthp); extern uint32_t * u32_conv_from_encoding (const char *fromcode, enum iconv_ilseq_handler handler, const char *src, size_t srclen, size_t *offsets, uint32_t *resultbuf, size_t *lengthp); /* Converts an entire Unicode string, possibly including NUL units, from a Unicode encoding to a given encoding. Converts a memory region to encoding TOCODE. TOCODE is as for iconv_open(3). The input is in the memory region between SRC (inclusive) and SRC + SRCLEN (exclusive). If OFFSETS is not NULL, it should point to an array of SRCLEN integers; this array is filled with offsets into the result, i.e. the character starting at SRC[i] corresponds to the character starting at (*RESULTP)[OFFSETS[i]], and other offsets are set to (size_t)(-1). RESULTBUF and *LENGTHP should initially be a scratch buffer and its size, or RESULTBUF can be NULL. May erase the contents of the memory at RESULTBUF. If successful: The resulting string (non-NULL) is returned and its length stored in *LENGTHP. The resulting string is RESULTBUF if no dynamic memory allocation was necessary, or a freshly allocated memory block otherwise. In case of error: NULL is returned and errno is set. Particular errno values: EINVAL, EILSEQ, ENOMEM. */ extern char * u8_conv_to_encoding (const char *tocode, enum iconv_ilseq_handler handler, const uint8_t *src, size_t srclen, size_t *offsets, char *resultbuf, size_t *lengthp); extern char * u16_conv_to_encoding (const char *tocode, enum iconv_ilseq_handler handler, const uint16_t *src, size_t srclen, size_t *offsets, char *resultbuf, size_t *lengthp); extern char * u32_conv_to_encoding (const char *tocode, enum iconv_ilseq_handler handler, const uint32_t *src, size_t srclen, size_t *offsets, char *resultbuf, size_t *lengthp); /* Converts a NUL terminated string from a given encoding. The result is malloc allocated, or NULL (with errno set) in case of error. Particular errno values: EILSEQ, ENOMEM. */ extern uint8_t * u8_strconv_from_encoding (const char *string, const char *fromcode, enum iconv_ilseq_handler handler); extern uint16_t * u16_strconv_from_encoding (const char *string, const char *fromcode, enum iconv_ilseq_handler handler); extern uint32_t * u32_strconv_from_encoding (const char *string, const char *fromcode, enum iconv_ilseq_handler handler); /* Converts a NUL terminated string to a given encoding. The result is malloc allocated, or NULL (with errno set) in case of error. Particular errno values: EILSEQ, ENOMEM. */ extern char * u8_strconv_to_encoding (const uint8_t *string, const char *tocode, enum iconv_ilseq_handler handler); extern char * u16_strconv_to_encoding (const uint16_t *string, const char *tocode, enum iconv_ilseq_handler handler); extern char * u32_strconv_to_encoding (const uint32_t *string, const char *tocode, enum iconv_ilseq_handler handler); /* Converts a NUL terminated string from the locale encoding. The result is malloc allocated, or NULL (with errno set) in case of error. Particular errno values: ENOMEM. */ extern uint8_t * u8_strconv_from_locale (const char *string); extern uint16_t * u16_strconv_from_locale (const char *string); extern uint32_t * u32_strconv_from_locale (const char *string); /* Converts a NUL terminated string to the locale encoding. The result is malloc allocated, or NULL (with errno set) in case of error. Particular errno values: ENOMEM. */ extern char * u8_strconv_to_locale (const uint8_t *string); extern char * u16_strconv_to_locale (const uint16_t *string); extern char * u32_strconv_to_locale (const uint32_t *string); #ifdef __cplusplus } #endif #endif /* _UNICONV_H */ gcal-3.6.3/lib/spawnattr_init.c0000644000175000017500000000213112076511424013331 00000000000000/* Copyright (C) 2000, 2009-2013 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-3.6.3/lib/stdio-impl.h0000644000175000017500000001022112076511424012350 00000000000000/* Implementation details of FILE streams. Copyright (C) 2007-2008, 2010-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 . */ /* 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__ /* FreeBSD, NetBSD, OpenBSD, DragonFly, Mac OS X, Cygwin */ # 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__ /* NetBSD >= 1.5ZA, OpenBSD */ /* 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 */ # 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 #endif gcal-3.6.3/lib/gettimeofday.c0000644000175000017500000001010312125375410012740 00000000000000/* -*- buffer-read-only: t -*- vi: set ro: */ /* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* Provide gettimeofday for systems that don't have it or for which it's broken. Copyright (C) 2001-2003, 2005-2007, 2009-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, 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-3.6.3/lib/alloca.in.h0000644000175000017500000000405612125375410012136 00000000000000/* -*- buffer-read-only: t -*- vi: set ro: */ /* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* Memory allocation on the stack. Copyright (C) 1995, 1999, 2001-2004, 2006-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, 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 # else # include # ifdef __cplusplus extern "C" # endif void *alloca (size_t); # endif #endif #endif /* _GL_ALLOCA_H */ gcal-3.6.3/lib/wchar.in.h0000644000175000017500000010202712125375412012006 00000000000000/* -*- buffer-read-only: t -*- vi: set ro: */ /* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* A substitute for ISO C99 , for platforms that have issues. Copyright (C) 2007-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, 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 __hpux && ((defined _INTTYPES_INCLUDED && !defined strtoimax) || defined _GL_JUST_INCLUDE_SYSTEM_WCHAR_H)) || defined _GL_ALREADY_INCLUDING_WCHAR_H /* Special invocation convention: - Inside glibc and uClibc header files. - 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 . - 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 /* MSVC defines 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 defined _MSC_VER # 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); # 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-3.6.3/lib/spawnattr_setflags.c0000644000175000017500000000320012076511424014174 00000000000000/* Copyright (C) 2000, 2004, 2009-2013 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-3.6.3/lib/spawn.in.h0000644000175000017500000010756712076511424012050 00000000000000/* Definitions for POSIX spawn interface. Copyright (C) 2000, 2003-2004, 2008-2013 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-3.6.3/lib/localeconv.c0000644000175000017500000000656212076511424012424 00000000000000/* Query locale dependent information for formatting numbers. Copyright (C) 2012-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 . */ #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-3.6.3/lib/c-ctype.h0000644000175000017500000002216012125375410011636 00000000000000/* -*- buffer-read-only: t -*- vi: set ro: */ /* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* Character handling in C locale. These functions work like the corresponding functions in , except that they have the C (POSIX) locale hardwired, whereas the functions' behaviour depends on the current locale set via setlocale. Copyright (C) 2000-2003, 2006, 2008-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 . */ #ifndef C_CTYPE_H #define C_CTYPE_H #include #ifdef __cplusplus extern "C" { #endif /* The functions defined in this file assume the "C" locale and a character set without diacritics (ASCII-US or EBCDIC-US or something like that). Even if the "C" locale on a particular system is an extension of the ASCII character set (like on BeOS, where it is UTF-8, or on AmigaOS, where it is ISO-8859-1), the functions in this file recognize only the ASCII characters. */ /* Check whether the ASCII optimizations apply. */ /* ANSI C89 (and ISO C99 5.2.1.3 too) already guarantees that '0', '1', ..., '9' have consecutive integer values. */ #define C_CTYPE_CONSECUTIVE_DIGITS 1 #if ('A' <= 'Z') \ && ('A' + 1 == 'B') && ('B' + 1 == 'C') && ('C' + 1 == 'D') \ && ('D' + 1 == 'E') && ('E' + 1 == 'F') && ('F' + 1 == 'G') \ && ('G' + 1 == 'H') && ('H' + 1 == 'I') && ('I' + 1 == 'J') \ && ('J' + 1 == 'K') && ('K' + 1 == 'L') && ('L' + 1 == 'M') \ && ('M' + 1 == 'N') && ('N' + 1 == 'O') && ('O' + 1 == 'P') \ && ('P' + 1 == 'Q') && ('Q' + 1 == 'R') && ('R' + 1 == 'S') \ && ('S' + 1 == 'T') && ('T' + 1 == 'U') && ('U' + 1 == 'V') \ && ('V' + 1 == 'W') && ('W' + 1 == 'X') && ('X' + 1 == 'Y') \ && ('Y' + 1 == 'Z') #define C_CTYPE_CONSECUTIVE_UPPERCASE 1 #endif #if ('a' <= 'z') \ && ('a' + 1 == 'b') && ('b' + 1 == 'c') && ('c' + 1 == 'd') \ && ('d' + 1 == 'e') && ('e' + 1 == 'f') && ('f' + 1 == 'g') \ && ('g' + 1 == 'h') && ('h' + 1 == 'i') && ('i' + 1 == 'j') \ && ('j' + 1 == 'k') && ('k' + 1 == 'l') && ('l' + 1 == 'm') \ && ('m' + 1 == 'n') && ('n' + 1 == 'o') && ('o' + 1 == 'p') \ && ('p' + 1 == 'q') && ('q' + 1 == 'r') && ('r' + 1 == 's') \ && ('s' + 1 == 't') && ('t' + 1 == 'u') && ('u' + 1 == 'v') \ && ('v' + 1 == 'w') && ('w' + 1 == 'x') && ('x' + 1 == 'y') \ && ('y' + 1 == 'z') #define C_CTYPE_CONSECUTIVE_LOWERCASE 1 #endif #if (' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \ && ('%' == 37) && ('&' == 38) && ('\'' == 39) && ('(' == 40) \ && (')' == 41) && ('*' == 42) && ('+' == 43) && (',' == 44) \ && ('-' == 45) && ('.' == 46) && ('/' == 47) && ('0' == 48) \ && ('1' == 49) && ('2' == 50) && ('3' == 51) && ('4' == 52) \ && ('5' == 53) && ('6' == 54) && ('7' == 55) && ('8' == 56) \ && ('9' == 57) && (':' == 58) && (';' == 59) && ('<' == 60) \ && ('=' == 61) && ('>' == 62) && ('?' == 63) && ('A' == 65) \ && ('B' == 66) && ('C' == 67) && ('D' == 68) && ('E' == 69) \ && ('F' == 70) && ('G' == 71) && ('H' == 72) && ('I' == 73) \ && ('J' == 74) && ('K' == 75) && ('L' == 76) && ('M' == 77) \ && ('N' == 78) && ('O' == 79) && ('P' == 80) && ('Q' == 81) \ && ('R' == 82) && ('S' == 83) && ('T' == 84) && ('U' == 85) \ && ('V' == 86) && ('W' == 87) && ('X' == 88) && ('Y' == 89) \ && ('Z' == 90) && ('[' == 91) && ('\\' == 92) && (']' == 93) \ && ('^' == 94) && ('_' == 95) && ('a' == 97) && ('b' == 98) \ && ('c' == 99) && ('d' == 100) && ('e' == 101) && ('f' == 102) \ && ('g' == 103) && ('h' == 104) && ('i' == 105) && ('j' == 106) \ && ('k' == 107) && ('l' == 108) && ('m' == 109) && ('n' == 110) \ && ('o' == 111) && ('p' == 112) && ('q' == 113) && ('r' == 114) \ && ('s' == 115) && ('t' == 116) && ('u' == 117) && ('v' == 118) \ && ('w' == 119) && ('x' == 120) && ('y' == 121) && ('z' == 122) \ && ('{' == 123) && ('|' == 124) && ('}' == 125) && ('~' == 126) /* The character set is ASCII or one of its variants or extensions, not EBCDIC. Testing the value of '\n' and '\r' is not relevant. */ #define C_CTYPE_ASCII 1 #endif /* Function declarations. */ /* Unlike the functions in , which require an argument in the range of the 'unsigned char' type, the functions here operate on values that are in the 'unsigned char' range or in the 'char' range. In other words, when you have a 'char' value, you need to cast it before using it as argument to a function: const char *s = ...; if (isalpha ((unsigned char) *s)) ... but you don't need to cast it for the functions defined in this file: const char *s = ...; if (c_isalpha (*s)) ... */ extern bool c_isascii (int c) _GL_ATTRIBUTE_CONST; /* not locale dependent */ extern bool c_isalnum (int c) _GL_ATTRIBUTE_CONST; extern bool c_isalpha (int c) _GL_ATTRIBUTE_CONST; extern bool c_isblank (int c) _GL_ATTRIBUTE_CONST; extern bool c_iscntrl (int c) _GL_ATTRIBUTE_CONST; extern bool c_isdigit (int c) _GL_ATTRIBUTE_CONST; extern bool c_islower (int c) _GL_ATTRIBUTE_CONST; extern bool c_isgraph (int c) _GL_ATTRIBUTE_CONST; extern bool c_isprint (int c) _GL_ATTRIBUTE_CONST; extern bool c_ispunct (int c) _GL_ATTRIBUTE_CONST; extern bool c_isspace (int c) _GL_ATTRIBUTE_CONST; extern bool c_isupper (int c) _GL_ATTRIBUTE_CONST; extern bool c_isxdigit (int c) _GL_ATTRIBUTE_CONST; extern int c_tolower (int c) _GL_ATTRIBUTE_CONST; extern int c_toupper (int c) _GL_ATTRIBUTE_CONST; #if defined __GNUC__ && defined __OPTIMIZE__ && !defined __OPTIMIZE_SIZE__ && !defined NO_C_CTYPE_MACROS /* ASCII optimizations. */ #undef c_isascii #define c_isascii(c) \ ({ int __c = (c); \ (__c >= 0x00 && __c <= 0x7f); \ }) #if C_CTYPE_CONSECUTIVE_DIGITS \ && C_CTYPE_CONSECUTIVE_UPPERCASE && C_CTYPE_CONSECUTIVE_LOWERCASE #if C_CTYPE_ASCII #undef c_isalnum #define c_isalnum(c) \ ({ int __c = (c); \ ((__c >= '0' && __c <= '9') \ || ((__c & ~0x20) >= 'A' && (__c & ~0x20) <= 'Z')); \ }) #else #undef c_isalnum #define c_isalnum(c) \ ({ int __c = (c); \ ((__c >= '0' && __c <= '9') \ || (__c >= 'A' && __c <= 'Z') \ || (__c >= 'a' && __c <= 'z')); \ }) #endif #endif #if C_CTYPE_CONSECUTIVE_UPPERCASE && C_CTYPE_CONSECUTIVE_LOWERCASE #if C_CTYPE_ASCII #undef c_isalpha #define c_isalpha(c) \ ({ int __c = (c); \ ((__c & ~0x20) >= 'A' && (__c & ~0x20) <= 'Z'); \ }) #else #undef c_isalpha #define c_isalpha(c) \ ({ int __c = (c); \ ((__c >= 'A' && __c <= 'Z') || (__c >= 'a' && __c <= 'z')); \ }) #endif #endif #undef c_isblank #define c_isblank(c) \ ({ int __c = (c); \ (__c == ' ' || __c == '\t'); \ }) #if C_CTYPE_ASCII #undef c_iscntrl #define c_iscntrl(c) \ ({ int __c = (c); \ ((__c & ~0x1f) == 0 || __c == 0x7f); \ }) #endif #if C_CTYPE_CONSECUTIVE_DIGITS #undef c_isdigit #define c_isdigit(c) \ ({ int __c = (c); \ (__c >= '0' && __c <= '9'); \ }) #endif #if C_CTYPE_CONSECUTIVE_LOWERCASE #undef c_islower #define c_islower(c) \ ({ int __c = (c); \ (__c >= 'a' && __c <= 'z'); \ }) #endif #if C_CTYPE_ASCII #undef c_isgraph #define c_isgraph(c) \ ({ int __c = (c); \ (__c >= '!' && __c <= '~'); \ }) #endif #if C_CTYPE_ASCII #undef c_isprint #define c_isprint(c) \ ({ int __c = (c); \ (__c >= ' ' && __c <= '~'); \ }) #endif #if C_CTYPE_ASCII #undef c_ispunct #define c_ispunct(c) \ ({ int _c = (c); \ (c_isgraph (_c) && ! c_isalnum (_c)); \ }) #endif #undef c_isspace #define c_isspace(c) \ ({ int __c = (c); \ (__c == ' ' || __c == '\t' \ || __c == '\n' || __c == '\v' || __c == '\f' || __c == '\r'); \ }) #if C_CTYPE_CONSECUTIVE_UPPERCASE #undef c_isupper #define c_isupper(c) \ ({ int __c = (c); \ (__c >= 'A' && __c <= 'Z'); \ }) #endif #if C_CTYPE_CONSECUTIVE_DIGITS \ && C_CTYPE_CONSECUTIVE_UPPERCASE && C_CTYPE_CONSECUTIVE_LOWERCASE #if C_CTYPE_ASCII #undef c_isxdigit #define c_isxdigit(c) \ ({ int __c = (c); \ ((__c >= '0' && __c <= '9') \ || ((__c & ~0x20) >= 'A' && (__c & ~0x20) <= 'F')); \ }) #else #undef c_isxdigit #define c_isxdigit(c) \ ({ int __c = (c); \ ((__c >= '0' && __c <= '9') \ || (__c >= 'A' && __c <= 'F') \ || (__c >= 'a' && __c <= 'f')); \ }) #endif #endif #if C_CTYPE_CONSECUTIVE_UPPERCASE && C_CTYPE_CONSECUTIVE_LOWERCASE #undef c_tolower #define c_tolower(c) \ ({ int __c = (c); \ (__c >= 'A' && __c <= 'Z' ? __c - 'A' + 'a' : __c); \ }) #undef c_toupper #define c_toupper(c) \ ({ int __c = (c); \ (__c >= 'a' && __c <= 'z' ? __c - 'a' + 'A' : __c); \ }) #endif #endif /* optimizing for speed */ #ifdef __cplusplus } #endif #endif /* C_CTYPE_H */ gcal-3.6.3/lib/tempname.c0000644000175000017500000002161612116431050012071 00000000000000/* tempname.c - generate the name of a temporary file. Copyright (C) 1991-2003, 2005-2007, 2009-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 . */ /* 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 __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"; /* 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 len; char *XXXXXX; static uint64_t value; uint64_t random_time_bits; unsigned int count; int fd = -1; int save_errno = errno; struct_stat64 st; /* 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]; switch (kind) { case __GT_FILE: fd = __open (tmpl, (flags & ~O_ACCMODE) | O_RDWR | O_CREAT | O_EXCL, S_IRUSR | S_IWUSR); break; case __GT_DIR: fd = __mkdir (tmpl, S_IRUSR | S_IWUSR | S_IXUSR); break; case __GT_NOCREATE: /* This case is backward from the other three. __gen_tempname succeeds if __xstat fails because the name does not exist. Note the continue to bypass the common logic at the bottom of the loop. */ if (__lxstat64 (_STAT_VER, tmpl, &st) < 0) { if (errno == ENOENT) { __set_errno (save_errno); return 0; } else /* Give up now. */ return -1; } continue; default: assert (! "invalid KIND in __gen_tempname"); abort (); } 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; } gcal-3.6.3/lib/dosname.h0000644000175000017500000000373312076511423011726 00000000000000/* File names on MS-DOS/Windows systems. Copyright (C) 2000-2001, 2004-2006, 2009-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 . 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-3.6.3/lib/float.in.h0000644000175000017500000001673412076511424012020 00000000000000/* A correct . Copyright (C) 2007-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 . */ #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-3.6.3/lib/strerror-override.h0000644000175000017500000000371712076511424014002 00000000000000/* strerror-override.h --- POSIX compatible system error routine Copyright (C) 2010-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 . */ #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); # else # define strerror_override(ignored) NULL # endif #endif /* _GL_STRERROR_OVERRIDE_H */ gcal-3.6.3/lib/lstat.c0000644000175000017500000000667412076511424011432 00000000000000/* Work around a bug of lstat on some systems Copyright (C) 1997-2006, 2008-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 . */ /* 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-3.6.3/lib/spawnattr_destroy.c0000644000175000017500000000174412076511424014070 00000000000000/* Copyright (C) 2000, 2009-2013 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-3.6.3/lib/striconveha.c0000644000175000017500000002574612076511424012631 00000000000000/* Character set conversion with error handling and autodetection. Copyright (C) 2002, 2005, 2007, 2009-2013 Free Software Foundation, Inc. Written by Bruno Haible. This program is free software: you can redistribute 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 "striconveha.h" #include #include #include #include "malloca.h" #include "c-strcase.h" #include "striconveh.h" #define SIZEOF(a) (sizeof(a)/sizeof(a[0])) /* Autodetection list. */ struct autodetect_alias { struct autodetect_alias *next; const char *name; const char * const *encodings_to_try; }; static const char * const autodetect_utf8_try[] = { /* Try UTF-8 first. There are very few ISO-8859-1 inputs that would be valid UTF-8, but many UTF-8 inputs are valid ISO-8859-1. */ "UTF-8", "ISO-8859-1", NULL }; static const char * const autodetect_jp_try[] = { /* Try 7-bit encoding first. If the input contains bytes >= 0x80, it will fail. Try EUC-JP next. Short SHIFT_JIS inputs may come out wrong. This is unavoidable. People will condemn SHIFT_JIS. If we tried SHIFT_JIS first, then some short EUC-JP inputs would come out wrong, and people would condemn EUC-JP and Unix, which would not be good. Finally try SHIFT_JIS. */ "ISO-2022-JP-2", "EUC-JP", "SHIFT_JIS", NULL }; static const char * const autodetect_kr_try[] = { /* Try 7-bit encoding first. If the input contains bytes >= 0x80, it will fail. Finally try EUC-KR. */ "ISO-2022-KR", "EUC-KR", NULL }; static struct autodetect_alias autodetect_predefined[] = { { &autodetect_predefined[1], "autodetect_utf8", autodetect_utf8_try }, { &autodetect_predefined[2], "autodetect_jp", autodetect_jp_try }, { NULL, "autodetect_kr", autodetect_kr_try } }; static struct autodetect_alias *autodetect_list = &autodetect_predefined[0]; static struct autodetect_alias **autodetect_list_end = &autodetect_predefined[SIZEOF(autodetect_predefined)-1].next; int uniconv_register_autodetect (const char *name, const char * const *try_in_order) { size_t namelen; size_t listlen; size_t memneed; size_t i; char *memory; struct autodetect_alias *new_alias; char *new_name; const char **new_try_in_order; /* The TRY_IN_ORDER list must not be empty. */ if (try_in_order[0] == NULL) { errno = EINVAL; return -1; } /* We must deep-copy NAME and TRY_IN_ORDER, because they may be allocated with dynamic extent. */ namelen = strlen (name) + 1; memneed = sizeof (struct autodetect_alias) + namelen + sizeof (char *); for (i = 0; try_in_order[i] != NULL; i++) memneed += sizeof (char *) + strlen (try_in_order[i]) + 1; listlen = i; memory = (char *) malloc (memneed); if (memory != NULL) { new_alias = (struct autodetect_alias *) memory; memory += sizeof (struct autodetect_alias); new_try_in_order = (const char **) memory; memory += (listlen + 1) * sizeof (char *); new_name = (char *) memory; memcpy (new_name, name, namelen); memory += namelen; for (i = 0; i < listlen; i++) { size_t len = strlen (try_in_order[i]) + 1; memcpy (memory, try_in_order[i], len); new_try_in_order[i] = (const char *) memory; memory += len; } new_try_in_order[i] = NULL; /* Now insert the new alias. */ new_alias->name = new_name; new_alias->encodings_to_try = new_try_in_order; new_alias->next = NULL; /* FIXME: Not multithread-safe. */ *autodetect_list_end = new_alias; autodetect_list_end = &new_alias->next; return 0; } else { errno = ENOMEM; return -1; } } /* Like mem_iconveha, except no handling of transliteration. */ static int mem_iconveha_notranslit (const char *src, size_t srclen, const char *from_codeset, const char *to_codeset, enum iconv_ilseq_handler handler, size_t *offsets, char **resultp, size_t *lengthp) { int retval = mem_iconveh (src, srclen, from_codeset, to_codeset, handler, offsets, resultp, lengthp); if (retval >= 0 || errno != EINVAL) return retval; else { struct autodetect_alias *alias; /* Unsupported from_codeset or to_codeset. Check whether the caller requested autodetection. */ for (alias = autodetect_list; alias != NULL; alias = alias->next) if (strcmp (from_codeset, alias->name) == 0) { const char * const *encodings; if (handler != iconveh_error) { /* First try all encodings without any forgiving. */ encodings = alias->encodings_to_try; do { retval = mem_iconveha_notranslit (src, srclen, *encodings, to_codeset, iconveh_error, offsets, resultp, lengthp); if (!(retval < 0 && errno == EILSEQ)) return retval; encodings++; } while (*encodings != NULL); } encodings = alias->encodings_to_try; do { retval = mem_iconveha_notranslit (src, srclen, *encodings, to_codeset, handler, offsets, resultp, lengthp); if (!(retval < 0 && errno == EILSEQ)) return retval; encodings++; } while (*encodings != NULL); /* Return the last call's result. */ return -1; } /* It wasn't an autodetection name. */ errno = EINVAL; return -1; } } int mem_iconveha (const char *src, size_t srclen, const char *from_codeset, const char *to_codeset, bool transliterate, enum iconv_ilseq_handler handler, size_t *offsets, char **resultp, size_t *lengthp) { if (srclen == 0) { /* Nothing to convert. */ *lengthp = 0; return 0; } /* When using GNU libc >= 2.2 or GNU libiconv >= 1.5, we want to use transliteration. */ #if (((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 2) || __GLIBC__ > 2) \ && !defined __UCLIBC__) \ || _LIBICONV_VERSION >= 0x0105 if (transliterate) { int retval; size_t len = strlen (to_codeset); char *to_codeset_suffixed = (char *) malloca (len + 10 + 1); memcpy (to_codeset_suffixed, to_codeset, len); memcpy (to_codeset_suffixed + len, "//TRANSLIT", 10 + 1); retval = mem_iconveha_notranslit (src, srclen, from_codeset, to_codeset_suffixed, handler, offsets, resultp, lengthp); freea (to_codeset_suffixed); return retval; } else #endif return mem_iconveha_notranslit (src, srclen, from_codeset, to_codeset, handler, offsets, resultp, lengthp); } /* Like str_iconveha, except no handling of transliteration. */ static char * str_iconveha_notranslit (const char *src, const char *from_codeset, const char *to_codeset, enum iconv_ilseq_handler handler) { char *result = str_iconveh (src, from_codeset, to_codeset, handler); if (result != NULL || errno != EINVAL) return result; else { struct autodetect_alias *alias; /* Unsupported from_codeset or to_codeset. Check whether the caller requested autodetection. */ for (alias = autodetect_list; alias != NULL; alias = alias->next) if (strcmp (from_codeset, alias->name) == 0) { const char * const *encodings; if (handler != iconveh_error) { /* First try all encodings without any forgiving. */ encodings = alias->encodings_to_try; do { result = str_iconveha_notranslit (src, *encodings, to_codeset, iconveh_error); if (!(result == NULL && errno == EILSEQ)) return result; encodings++; } while (*encodings != NULL); } encodings = alias->encodings_to_try; do { result = str_iconveha_notranslit (src, *encodings, to_codeset, handler); if (!(result == NULL && errno == EILSEQ)) return result; encodings++; } while (*encodings != NULL); /* Return the last call's result. */ return NULL; } /* It wasn't an autodetection name. */ errno = EINVAL; return NULL; } } char * str_iconveha (const char *src, const char *from_codeset, const char *to_codeset, bool transliterate, enum iconv_ilseq_handler handler) { if (*src == '\0' || c_strcasecmp (from_codeset, to_codeset) == 0) { char *result = strdup (src); if (result == NULL) errno = ENOMEM; return result; } /* When using GNU libc >= 2.2 or GNU libiconv >= 1.5, we want to use transliteration. */ #if (((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 2) || __GLIBC__ > 2) \ && !defined __UCLIBC__) \ || _LIBICONV_VERSION >= 0x0105 if (transliterate) { char *result; size_t len = strlen (to_codeset); char *to_codeset_suffixed = (char *) malloca (len + 10 + 1); memcpy (to_codeset_suffixed, to_codeset, len); memcpy (to_codeset_suffixed + len, "//TRANSLIT", 10 + 1); result = str_iconveha_notranslit (src, from_codeset, to_codeset_suffixed, handler); freea (to_codeset_suffixed); return result; } else #endif return str_iconveha_notranslit (src, from_codeset, to_codeset, handler); } gcal-3.6.3/lib/unitypes.in.h0000644000175000017500000000331512125375411012561 00000000000000/* -*- buffer-read-only: t -*- vi: set ro: */ /* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* Elementary types and macros for the GNU UniString library. Copyright (C) 2002, 2005-2006, 2009-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 . */ #ifndef _UNITYPES_H #define _UNITYPES_H /* Get uint8_t, uint16_t, uint32_t. */ #include /* Type representing a Unicode character. */ typedef uint32_t ucs4_t; /* Attribute of a function whose result depends only on the arguments (not pointers!) and which has no side effects. */ #ifndef _UC_ATTRIBUTE_CONST # if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 95) # define _UC_ATTRIBUTE_CONST __attribute__ ((__const__)) # else # define _UC_ATTRIBUTE_CONST # endif #endif /* Attribute of a function whose result depends only on the arguments (possibly pointers) and global memory, and which has no side effects. */ #ifndef _UC_ATTRIBUTE_PURE # if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96) # define _UC_ATTRIBUTE_PURE __attribute__ ((__pure__)) # else # define _UC_ATTRIBUTE_PURE # endif #endif #endif /* _UNITYPES_H */ gcal-3.6.3/lib/spawnp.c0000644000175000017500000000240212076511424011574 00000000000000/* Copyright (C) 2000, 2009-2013 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-3.6.3/lib/fcntl.in.h0000644000175000017500000002244312076511424012013 00000000000000/* Like , but with non-working flags defined to 0. Copyright (C) 2006-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 . */ /* 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 && !(__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 && !(__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. */ #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-3.6.3/lib/link.c0000644000175000017500000001321512125375410011223 00000000000000/* -*- buffer-read-only: t -*- vi: set ro: */ /* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* Emulate link on platforms that lack it, namely native Windows platforms. Copyright (C) 2009-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, 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-3.6.3/lib/striconveh.h0000644000175000017500000001322512076511424012462 00000000000000/* Character set conversion with error handling. Copyright (C) 2001-2007, 2009-2013 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 . */ #ifndef _STRICONVEH_H #define _STRICONVEH_H #include #if HAVE_ICONV #include #endif #include "iconveh.h" #ifdef __cplusplus extern "C" { #endif #if HAVE_ICONV /* A conversion descriptor for use by the iconveh functions. */ typedef struct { /* Conversion descriptor from FROM_CODESET to TO_CODESET, or (iconv_t)(-1) if the system does not support a direct conversion from FROM_CODESET to TO_CODESET. */ iconv_t cd; /* Conversion descriptor from FROM_CODESET to UTF-8 (or (iconv_t)(-1) if FROM_CODESET is UTF-8). */ iconv_t cd1; /* Conversion descriptor from UTF-8 to TO_CODESET (or (iconv_t)(-1) if TO_CODESET is UTF-8). */ iconv_t cd2; } iconveh_t; /* Open a conversion descriptor for use by the iconveh functions. If successful, fills *CDP and returns 0. Upon failure, return -1 with errno set. */ extern int iconveh_open (const char *to_codeset, const char *from_codeset, iconveh_t *cdp); /* Close a conversion descriptor created by iconveh_open(). Return value: 0 if successful, otherwise -1 and errno set. */ extern int iconveh_close (const iconveh_t *cd); /* Convert an entire string from one encoding to another, using iconv. The original string is at [SRC,...,SRC+SRCLEN-1]. CD points to the conversion descriptor from FROMCODE to TOCODE, created by the function iconveh_open(). If OFFSETS is not NULL, it should point to an array of SRCLEN integers; this array is filled with offsets into the result, i.e. the character starting at SRC[i] corresponds to the character starting at (*RESULTP)[OFFSETS[i]], and other offsets are set to (size_t)(-1). *RESULTP and *LENGTH should initially be a scratch buffer and its size, or *RESULTP can initially be NULL. May erase the contents of the memory at *RESULTP. Return value: 0 if successful, otherwise -1 and errno set. If successful: The resulting string is stored in *RESULTP and its length in *LENGTHP. *RESULTP is set to a freshly allocated memory block, or is unchanged if no dynamic memory allocation was necessary. */ extern int mem_cd_iconveh (const char *src, size_t srclen, const iconveh_t *cd, enum iconv_ilseq_handler handler, size_t *offsets, char **resultp, size_t *lengthp); /* Convert an entire string from one encoding to another, using iconv. The original string is the NUL-terminated string starting at SRC. CD points to the conversion descriptor from FROMCODE to TOCODE, created by the function iconveh_open(). Both the "from" and the "to" encoding must use a single NUL byte at the end of the string (i.e. not UCS-2, UCS-4, UTF-16, UTF-32). Allocate a malloced memory block for the result. Return value: the freshly allocated resulting NUL-terminated string if successful, otherwise NULL and errno set. */ extern char * str_cd_iconveh (const char *src, const iconveh_t *cd, enum iconv_ilseq_handler handler); #endif /* Convert an entire string from one encoding to another, using iconv. The original string is at [SRC,...,SRC+SRCLEN-1]. If OFFSETS is not NULL, it should point to an array of SRCLEN integers; this array is filled with offsets into the result, i.e. the character starting at SRC[i] corresponds to the character starting at (*RESULTP)[OFFSETS[i]], and other offsets are set to (size_t)(-1). *RESULTP and *LENGTH should initially be a scratch buffer and its size, or *RESULTP can initially be NULL. May erase the contents of the memory at *RESULTP. Return value: 0 if successful, otherwise -1 and errno set. If successful: The resulting string is stored in *RESULTP and its length in *LENGTHP. *RESULTP is set to a freshly allocated memory block, or is unchanged if no dynamic memory allocation was necessary. */ extern int mem_iconveh (const char *src, size_t srclen, const char *from_codeset, const char *to_codeset, enum iconv_ilseq_handler handler, size_t *offsets, char **resultp, size_t *lengthp); /* Convert an entire string from one encoding to another, using iconv. The original string is the NUL-terminated string starting at SRC. Both the "from" and the "to" encoding must use a single NUL byte at the end of the string (i.e. not UCS-2, UCS-4, UTF-16, UTF-32). Allocate a malloced memory block for the result. Return value: the freshly allocated resulting NUL-terminated string if successful, otherwise NULL and errno set. */ extern char * str_iconveh (const char *src, const char *from_codeset, const char *to_codeset, enum iconv_ilseq_handler handler); #ifdef __cplusplus } #endif #endif /* _STRICONVEH_H */ gcal-3.6.3/lib/stat.c0000644000175000017500000001066612076511424011252 00000000000000/* Work around platform bugs in stat. Copyright (C) 2009-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 . */ /* 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-3.6.3/lib/striconveha.h0000644000175000017500000001003412076511424012616 00000000000000/* Character set conversion with error handling and autodetection. Copyright (C) 2002, 2005, 2007-2013 Free Software Foundation, Inc. Written by Bruno Haible. This program is free software: you can redistribute 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 _STRICONVEHA_H #define _STRICONVEHA_H #include #include #include "iconveh.h" #ifdef __cplusplus extern "C" { #endif /* Convert an entire string from one encoding to another, using iconv. The original string is at [SRC,...,SRC+SRCLEN-1]. The "from" encoding can also be a name defined for autodetection. If TRANSLITERATE is true, transliteration will attempted to avoid conversion errors, for iconv implementations that support this. Usually you'll choose TRANSLITERATE = true if HANDLER != iconveh_error. If OFFSETS is not NULL, it should point to an array of SRCLEN integers; this array is filled with offsets into the result, i.e. the character starting at SRC[i] corresponds to the character starting at (*RESULTP)[OFFSETS[i]], and other offsets are set to (size_t)(-1). *RESULTP and *LENGTH should initially be a scratch buffer and its size, or *RESULTP can initially be NULL. May erase the contents of the memory at *RESULTP. Return value: 0 if successful, otherwise -1 and errno set. If successful: The resulting string is stored in *RESULTP and its length in *LENGTHP. *RESULTP is set to a freshly allocated memory block, or is unchanged if no dynamic memory allocation was necessary. */ extern int mem_iconveha (const char *src, size_t srclen, const char *from_codeset, const char *to_codeset, bool transliterate, enum iconv_ilseq_handler handler, size_t *offsets, char **resultp, size_t *lengthp); /* Convert an entire string from one encoding to another, using iconv. The original string is the NUL-terminated string starting at SRC. Both the "from" and the "to" encoding must use a single NUL byte at the end of the string (i.e. not UCS-2, UCS-4, UTF-16, UTF-32). The "from" encoding can also be a name defined for autodetection. If TRANSLITERATE is true, transliteration will attempted to avoid conversion errors, for iconv implementations that support this. Usually you'll choose TRANSLITERATE = true if HANDLER != iconveh_error. Allocate a malloced memory block for the result. Return value: the freshly allocated resulting NUL-terminated string if successful, otherwise NULL and errno set. */ extern char * str_iconveha (const char *src, const char *from_codeset, const char *to_codeset, bool transliterate, enum iconv_ilseq_handler handler); /* In the above, FROM_CODESET can also be one of the following values: "autodetect_utf8" supports ISO-8859-1 and UTF-8 "autodetect_jp" supports EUC-JP, ISO-2022-JP-2 and SHIFT_JIS "autodetect_kr" supports EUC-KR and ISO-2022-KR More names can be defined for autodetection. */ /* Registers an encoding name for autodetection. TRY_IN_ORDER is a NULL terminated list of encodings to be tried. Returns 0 upon success, or -1 (with errno set) in case of error. Particular errno values: ENOMEM. */ extern int uniconv_register_autodetect (const char *name, const char * const *try_in_order); #ifdef __cplusplus } #endif #endif /* _STRICONVEHA_H */ gcal-3.6.3/lib/c-strncasecmp.c0000644000175000017500000000324012125375410013025 00000000000000/* -*- buffer-read-only: t -*- vi: set ro: */ /* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* c-strncasecmp.c -- case insensitive string comparator in C locale Copyright (C) 1998-1999, 2005-2006, 2009-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, see . */ #include /* Specification. */ #include "c-strcase.h" #include #include "c-ctype.h" int c_strncasecmp (const char *s1, const char *s2, size_t n) { register const unsigned char *p1 = (const unsigned char *) s1; register const unsigned char *p2 = (const unsigned char *) s2; unsigned char c1, c2; if (p1 == p2 || n == 0) return 0; do { c1 = c_tolower (*p1); c2 = c_tolower (*p2); if (--n == 0 || c1 == '\0') break; ++p1; ++p2; } while (c1 == c2); if (UCHAR_MAX <= INT_MAX) return c1 - c2; else /* On machines where 'char' and 'int' are types of the same size, the difference of two 'unsigned char' values - including the sign bit - doesn't fit in an 'int'. */ return (c1 > c2 ? 1 : c1 < c2 ? -1 : 0); } gcal-3.6.3/lib/strcspn.c0000644000175000017500000000233612076511424011766 00000000000000/* Copyright (C) 1991, 1994, 1996-1997, 2002-2003, 2005-2006, 2009-2013 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-3.6.3/lib/fd-hook.h0000644000175000017500000001150312125375410011620 00000000000000/* -*- buffer-read-only: t -*- vi: set ro: */ /* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* Hook for making making file descriptor functions close(), ioctl() extensible. Copyright (C) 2009-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 . */ #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-3.6.3/lib/sys_stat.in.h0000644000175000017500000005002312125375411012550 00000000000000/* -*- buffer-read-only: t -*- vi: set ro: */ /* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* Provide a more complete sys/stat header file. Copyright (C) 2005-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, 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-3.6.3/lib/fd-safer.c0000644000175000017500000000300212076511424011750 00000000000000/* Return a safer copy of a file descriptor. Copyright (C) 2005-2006, 2009-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 . */ /* 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-3.6.3/lib/signal.in.h0000644000175000017500000003350412076511424012162 00000000000000/* A GNU-like . Copyright (C) 2006-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 . */ #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 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 __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 /* 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-3.6.3/lib/spawn_faction_addclose.c0000644000175000017500000000400512076511424014756 00000000000000/* Copyright (C) 2000, 2009-2013 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-3.6.3/lib/strerror.c0000644000175000017500000000404312076511424012151 00000000000000/* strerror.c --- POSIX compatible system error routine Copyright (C) 2007-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 . */ #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 (); return memcpy (buf, msg, len + 1); } gcal-3.6.3/lib/printf-args.h0000644000175000017500000000766512125375411012544 00000000000000/* -*- buffer-read-only: t -*- vi: set ro: */ /* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* Decomposed printf argument list. Copyright (C) 1999, 2002-2003, 2006-2007, 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, see . */ #ifndef _PRINTF_ARGS_H #define _PRINTF_ARGS_H /* This file can be parametrized with the following macros: ENABLE_UNISTDIO Set to 1 to enable the unistdio extensions. PRINTF_FETCHARGS Name of the function to be declared. STATIC Set to 'static' to declare the function static. */ /* Default parameters. */ #ifndef PRINTF_FETCHARGS # define PRINTF_FETCHARGS printf_fetchargs #endif /* Get size_t. */ #include /* Get wchar_t. */ #if HAVE_WCHAR_T # include #endif /* Get wint_t. */ #if HAVE_WINT_T # include #endif /* Get va_list. */ #include /* Argument types */ typedef enum { TYPE_NONE, TYPE_SCHAR, TYPE_UCHAR, TYPE_SHORT, TYPE_USHORT, TYPE_INT, TYPE_UINT, TYPE_LONGINT, TYPE_ULONGINT, #if HAVE_LONG_LONG_INT TYPE_LONGLONGINT, TYPE_ULONGLONGINT, #endif TYPE_DOUBLE, TYPE_LONGDOUBLE, TYPE_CHAR, #if HAVE_WINT_T TYPE_WIDE_CHAR, #endif TYPE_STRING, #if HAVE_WCHAR_T TYPE_WIDE_STRING, #endif TYPE_POINTER, TYPE_COUNT_SCHAR_POINTER, TYPE_COUNT_SHORT_POINTER, TYPE_COUNT_INT_POINTER, TYPE_COUNT_LONGINT_POINTER #if HAVE_LONG_LONG_INT , TYPE_COUNT_LONGLONGINT_POINTER #endif #if ENABLE_UNISTDIO /* The unistdio extensions. */ , TYPE_U8_STRING , TYPE_U16_STRING , TYPE_U32_STRING #endif } arg_type; /* Polymorphic argument */ typedef struct { arg_type type; union { signed char a_schar; unsigned char a_uchar; short a_short; unsigned short a_ushort; int a_int; unsigned int a_uint; long int a_longint; unsigned long int a_ulongint; #if HAVE_LONG_LONG_INT long long int a_longlongint; unsigned long long int a_ulonglongint; #endif float a_float; double a_double; long double a_longdouble; int a_char; #if HAVE_WINT_T wint_t a_wide_char; #endif const char* a_string; #if HAVE_WCHAR_T const wchar_t* a_wide_string; #endif void* a_pointer; signed char * a_count_schar_pointer; short * a_count_short_pointer; int * a_count_int_pointer; long int * a_count_longint_pointer; #if HAVE_LONG_LONG_INT long long int * a_count_longlongint_pointer; #endif #if ENABLE_UNISTDIO /* The unistdio extensions. */ const uint8_t * a_u8_string; const uint16_t * a_u16_string; const uint32_t * a_u32_string; #endif } a; } argument; /* Number of directly allocated arguments (no malloc() needed). */ #define N_DIRECT_ALLOC_ARGUMENTS 7 typedef struct { size_t count; argument *arg; argument direct_alloc_arg[N_DIRECT_ALLOC_ARGUMENTS]; } arguments; /* Fetch the arguments, putting them into a. */ #ifdef STATIC STATIC #else extern #endif int PRINTF_FETCHARGS (va_list args, arguments *a); #endif /* _PRINTF_ARGS_H */ gcal-3.6.3/lib/c-ctype.c0000644000175000017500000002547312125375410011643 00000000000000/* -*- buffer-read-only: t -*- vi: set ro: */ /* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* Character handling in C locale. Copyright 2000-2003, 2006, 2009-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 . */ #include /* Specification. */ #define NO_C_CTYPE_MACROS #include "c-ctype.h" /* The function isascii is not locale dependent. Its use in EBCDIC is questionable. */ bool c_isascii (int c) { return (c >= 0x00 && c <= 0x7f); } bool c_isalnum (int c) { #if C_CTYPE_CONSECUTIVE_DIGITS \ && C_CTYPE_CONSECUTIVE_UPPERCASE && C_CTYPE_CONSECUTIVE_LOWERCASE #if C_CTYPE_ASCII return ((c >= '0' && c <= '9') || ((c & ~0x20) >= 'A' && (c & ~0x20) <= 'Z')); #else return ((c >= '0' && c <= '9') || (c >= 'A' && c <= 'Z') || (c >= 'a' && c <= 'z')); #endif #else switch (c) { case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': case 'A': case 'B': case 'C': case 'D': case 'E': case 'F': case 'G': case 'H': case 'I': case 'J': case 'K': case 'L': case 'M': case 'N': case 'O': case 'P': case 'Q': case 'R': case 'S': case 'T': case 'U': case 'V': case 'W': case 'X': case 'Y': case 'Z': case 'a': case 'b': case 'c': case 'd': case 'e': case 'f': case 'g': case 'h': case 'i': case 'j': case 'k': case 'l': case 'm': case 'n': case 'o': case 'p': case 'q': case 'r': case 's': case 't': case 'u': case 'v': case 'w': case 'x': case 'y': case 'z': return 1; default: return 0; } #endif } bool c_isalpha (int c) { #if C_CTYPE_CONSECUTIVE_UPPERCASE && C_CTYPE_CONSECUTIVE_LOWERCASE #if C_CTYPE_ASCII return ((c & ~0x20) >= 'A' && (c & ~0x20) <= 'Z'); #else return ((c >= 'A' && c <= 'Z') || (c >= 'a' && c <= 'z')); #endif #else switch (c) { case 'A': case 'B': case 'C': case 'D': case 'E': case 'F': case 'G': case 'H': case 'I': case 'J': case 'K': case 'L': case 'M': case 'N': case 'O': case 'P': case 'Q': case 'R': case 'S': case 'T': case 'U': case 'V': case 'W': case 'X': case 'Y': case 'Z': case 'a': case 'b': case 'c': case 'd': case 'e': case 'f': case 'g': case 'h': case 'i': case 'j': case 'k': case 'l': case 'm': case 'n': case 'o': case 'p': case 'q': case 'r': case 's': case 't': case 'u': case 'v': case 'w': case 'x': case 'y': case 'z': return 1; default: return 0; } #endif } bool c_isblank (int c) { return (c == ' ' || c == '\t'); } bool c_iscntrl (int c) { #if C_CTYPE_ASCII return ((c & ~0x1f) == 0 || c == 0x7f); #else switch (c) { case ' ': case '!': case '"': case '#': case '$': case '%': case '&': case '\'': case '(': case ')': case '*': case '+': case ',': case '-': case '.': case '/': case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': case ':': case ';': case '<': case '=': case '>': case '?': case '@': case 'A': case 'B': case 'C': case 'D': case 'E': case 'F': case 'G': case 'H': case 'I': case 'J': case 'K': case 'L': case 'M': case 'N': case 'O': case 'P': case 'Q': case 'R': case 'S': case 'T': case 'U': case 'V': case 'W': case 'X': case 'Y': case 'Z': case '[': case '\\': case ']': case '^': case '_': case '`': case 'a': case 'b': case 'c': case 'd': case 'e': case 'f': case 'g': case 'h': case 'i': case 'j': case 'k': case 'l': case 'm': case 'n': case 'o': case 'p': case 'q': case 'r': case 's': case 't': case 'u': case 'v': case 'w': case 'x': case 'y': case 'z': case '{': case '|': case '}': case '~': return 0; default: return 1; } #endif } bool c_isdigit (int c) { #if C_CTYPE_CONSECUTIVE_DIGITS return (c >= '0' && c <= '9'); #else switch (c) { case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': return 1; default: return 0; } #endif } bool c_islower (int c) { #if C_CTYPE_CONSECUTIVE_LOWERCASE return (c >= 'a' && c <= 'z'); #else switch (c) { case 'a': case 'b': case 'c': case 'd': case 'e': case 'f': case 'g': case 'h': case 'i': case 'j': case 'k': case 'l': case 'm': case 'n': case 'o': case 'p': case 'q': case 'r': case 's': case 't': case 'u': case 'v': case 'w': case 'x': case 'y': case 'z': return 1; default: return 0; } #endif } bool c_isgraph (int c) { #if C_CTYPE_ASCII return (c >= '!' && c <= '~'); #else switch (c) { case '!': case '"': case '#': case '$': case '%': case '&': case '\'': case '(': case ')': case '*': case '+': case ',': case '-': case '.': case '/': case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': case ':': case ';': case '<': case '=': case '>': case '?': case '@': case 'A': case 'B': case 'C': case 'D': case 'E': case 'F': case 'G': case 'H': case 'I': case 'J': case 'K': case 'L': case 'M': case 'N': case 'O': case 'P': case 'Q': case 'R': case 'S': case 'T': case 'U': case 'V': case 'W': case 'X': case 'Y': case 'Z': case '[': case '\\': case ']': case '^': case '_': case '`': case 'a': case 'b': case 'c': case 'd': case 'e': case 'f': case 'g': case 'h': case 'i': case 'j': case 'k': case 'l': case 'm': case 'n': case 'o': case 'p': case 'q': case 'r': case 's': case 't': case 'u': case 'v': case 'w': case 'x': case 'y': case 'z': case '{': case '|': case '}': case '~': return 1; default: return 0; } #endif } bool c_isprint (int c) { #if C_CTYPE_ASCII return (c >= ' ' && c <= '~'); #else switch (c) { case ' ': case '!': case '"': case '#': case '$': case '%': case '&': case '\'': case '(': case ')': case '*': case '+': case ',': case '-': case '.': case '/': case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': case ':': case ';': case '<': case '=': case '>': case '?': case '@': case 'A': case 'B': case 'C': case 'D': case 'E': case 'F': case 'G': case 'H': case 'I': case 'J': case 'K': case 'L': case 'M': case 'N': case 'O': case 'P': case 'Q': case 'R': case 'S': case 'T': case 'U': case 'V': case 'W': case 'X': case 'Y': case 'Z': case '[': case '\\': case ']': case '^': case '_': case '`': case 'a': case 'b': case 'c': case 'd': case 'e': case 'f': case 'g': case 'h': case 'i': case 'j': case 'k': case 'l': case 'm': case 'n': case 'o': case 'p': case 'q': case 'r': case 's': case 't': case 'u': case 'v': case 'w': case 'x': case 'y': case 'z': case '{': case '|': case '}': case '~': return 1; default: return 0; } #endif } bool c_ispunct (int c) { #if C_CTYPE_ASCII return ((c >= '!' && c <= '~') && !((c >= '0' && c <= '9') || ((c & ~0x20) >= 'A' && (c & ~0x20) <= 'Z'))); #else switch (c) { case '!': case '"': case '#': case '$': case '%': case '&': case '\'': case '(': case ')': case '*': case '+': case ',': case '-': case '.': case '/': case ':': case ';': case '<': case '=': case '>': case '?': case '@': case '[': case '\\': case ']': case '^': case '_': case '`': case '{': case '|': case '}': case '~': return 1; default: return 0; } #endif } bool c_isspace (int c) { return (c == ' ' || c == '\t' || c == '\n' || c == '\v' || c == '\f' || c == '\r'); } bool c_isupper (int c) { #if C_CTYPE_CONSECUTIVE_UPPERCASE return (c >= 'A' && c <= 'Z'); #else switch (c) { case 'A': case 'B': case 'C': case 'D': case 'E': case 'F': case 'G': case 'H': case 'I': case 'J': case 'K': case 'L': case 'M': case 'N': case 'O': case 'P': case 'Q': case 'R': case 'S': case 'T': case 'U': case 'V': case 'W': case 'X': case 'Y': case 'Z': return 1; default: return 0; } #endif } bool c_isxdigit (int c) { #if C_CTYPE_CONSECUTIVE_DIGITS \ && C_CTYPE_CONSECUTIVE_UPPERCASE && C_CTYPE_CONSECUTIVE_LOWERCASE #if C_CTYPE_ASCII return ((c >= '0' && c <= '9') || ((c & ~0x20) >= 'A' && (c & ~0x20) <= 'F')); #else return ((c >= '0' && c <= '9') || (c >= 'A' && c <= 'F') || (c >= 'a' && c <= 'f')); #endif #else switch (c) { case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': case 'A': case 'B': case 'C': case 'D': case 'E': case 'F': case 'a': case 'b': case 'c': case 'd': case 'e': case 'f': return 1; default: return 0; } #endif } int c_tolower (int c) { #if C_CTYPE_CONSECUTIVE_UPPERCASE && C_CTYPE_CONSECUTIVE_LOWERCASE return (c >= 'A' && c <= 'Z' ? c - 'A' + 'a' : c); #else switch (c) { case 'A': return 'a'; case 'B': return 'b'; case 'C': return 'c'; case 'D': return 'd'; case 'E': return 'e'; case 'F': return 'f'; case 'G': return 'g'; case 'H': return 'h'; case 'I': return 'i'; case 'J': return 'j'; case 'K': return 'k'; case 'L': return 'l'; case 'M': return 'm'; case 'N': return 'n'; case 'O': return 'o'; case 'P': return 'p'; case 'Q': return 'q'; case 'R': return 'r'; case 'S': return 's'; case 'T': return 't'; case 'U': return 'u'; case 'V': return 'v'; case 'W': return 'w'; case 'X': return 'x'; case 'Y': return 'y'; case 'Z': return 'z'; default: return c; } #endif } int c_toupper (int c) { #if C_CTYPE_CONSECUTIVE_UPPERCASE && C_CTYPE_CONSECUTIVE_LOWERCASE return (c >= 'a' && c <= 'z' ? c - 'a' + 'A' : c); #else switch (c) { case 'a': return 'A'; case 'b': return 'B'; case 'c': return 'C'; case 'd': return 'D'; case 'e': return 'E'; case 'f': return 'F'; case 'g': return 'G'; case 'h': return 'H'; case 'i': return 'I'; case 'j': return 'J'; case 'k': return 'K'; case 'l': return 'L'; case 'm': return 'M'; case 'n': return 'N'; case 'o': return 'O'; case 'p': return 'P'; case 'q': return 'Q'; case 'r': return 'R'; case 's': return 'S'; case 't': return 'T'; case 'u': return 'U'; case 'v': return 'V'; case 'w': return 'W'; case 'x': return 'X'; case 'y': return 'Y'; case 'z': return 'Z'; default: return c; } #endif } gcal-3.6.3/lib/getdtablesize.c0000644000175000017500000000476312076511424013126 00000000000000/* getdtablesize() function for platforms that don't have it. Copyright (C) 2008-2013 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. */ 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; } #endif gcal-3.6.3/lib/gnulib.mk0000644000175000017500000034604612125375410011746 00000000000000## DO NOT EDIT! GENERATED AUTOMATICALLY! ## Process this file with automake to produce Makefile.in. # Copyright (C) 2002-2013 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 --dir=. --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 git-version-gen ioctl langinfo link list locale log log10 malloc mkostemp nl_langinfo open perror pipe putenv realloc regex signal sin sqrt stat strcspn string strings strstr strtol tan time tmpdir unistdio/u8-sprintf unistr/u8-strlen unlink write AUTOMAKE_OPTIONS = 1.5 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 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 c-ctype libgnu_a_SOURCES += c-ctype.h c-ctype.c ## end gnulib module c-ctype ## begin gnulib module c-strcase libgnu_a_SOURCES += c-strcase.h c-strcasecmp.c c-strncasecmp.c ## end gnulib module c-strcase ## begin gnulib module c-strcaseeq EXTRA_DIST += c-strcaseeq.h ## end gnulib module c-strcaseeq ## 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+. # 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 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 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 fpucw EXTRA_DIST += fpucw.h ## end gnulib module fpucw ## 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 frexp-nolibm EXTRA_DIST += frexp.c EXTRA_libgnu_a_SOURCES += frexp.c ## end gnulib module frexp-nolibm ## begin gnulib module frexpl-nolibm EXTRA_DIST += frexp.c frexpl.c EXTRA_libgnu_a_SOURCES += frexp.c frexpl.c ## end gnulib module frexpl-nolibm ## 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 gettext # This is for those projects which use "gettextize --intl" to put a source-code # copy of libintl into their package. In such projects, every Makefile.am needs # -I$(top_builddir)/intl, so that can be found in this directory. # For the Makefile.ams in other directories it is the maintainer's # responsibility; for the one from gnulib we do it here. # This option has no effect when the user disables NLS (because then the intl # directory contains no libintl.h file) or when the project does not use # "gettextize --intl". #AM_CPPFLAGS += -I$(top_builddir)/intl EXTRA_DIST += $(top_srcdir)/build-aux/config.rpath ## end gnulib module gettext ## 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 gperf GPERF = gperf ## end gnulib module gperf ## 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 iconv_open iconv_open-aix.h: iconv_open-aix.gperf $(GPERF) -m 10 $(srcdir)/iconv_open-aix.gperf > $(srcdir)/iconv_open-aix.h-t mv $(srcdir)/iconv_open-aix.h-t $(srcdir)/iconv_open-aix.h iconv_open-hpux.h: iconv_open-hpux.gperf $(GPERF) -m 10 $(srcdir)/iconv_open-hpux.gperf > $(srcdir)/iconv_open-hpux.h-t mv $(srcdir)/iconv_open-hpux.h-t $(srcdir)/iconv_open-hpux.h iconv_open-irix.h: iconv_open-irix.gperf $(GPERF) -m 10 $(srcdir)/iconv_open-irix.gperf > $(srcdir)/iconv_open-irix.h-t mv $(srcdir)/iconv_open-irix.h-t $(srcdir)/iconv_open-irix.h iconv_open-osf.h: iconv_open-osf.gperf $(GPERF) -m 10 $(srcdir)/iconv_open-osf.gperf > $(srcdir)/iconv_open-osf.h-t mv $(srcdir)/iconv_open-osf.h-t $(srcdir)/iconv_open-osf.h iconv_open-solaris.h: iconv_open-solaris.gperf $(GPERF) -m 10 $(srcdir)/iconv_open-solaris.gperf > $(srcdir)/iconv_open-solaris.h-t mv $(srcdir)/iconv_open-solaris.h-t $(srcdir)/iconv_open-solaris.h BUILT_SOURCES += iconv_open-aix.h iconv_open-hpux.h iconv_open-irix.h iconv_open-osf.h iconv_open-solaris.h MOSTLYCLEANFILES += iconv_open-aix.h-t iconv_open-hpux.h-t iconv_open-irix.h-t iconv_open-osf.h-t iconv_open-solaris.h-t MAINTAINERCLEANFILES += iconv_open-aix.h iconv_open-hpux.h iconv_open-irix.h iconv_open-osf.h iconv_open-solaris.h EXTRA_DIST += iconv_open-aix.h iconv_open-hpux.h iconv_open-irix.h iconv_open-osf.h iconv_open-solaris.h EXTRA_DIST += iconv.c iconv_close.c iconv_open-aix.gperf iconv_open-hpux.gperf iconv_open-irix.gperf iconv_open-osf.gperf iconv_open-solaris.gperf iconv_open.c EXTRA_libgnu_a_SOURCES += iconv.c iconv_close.c iconv_open.c ## end gnulib module iconv_open ## 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 isnand-nolibm EXTRA_DIST += float+.h isnan.c isnand-nolibm.h isnand.c EXTRA_libgnu_a_SOURCES += isnan.c isnand.c ## end gnulib module isnand-nolibm ## begin gnulib module isnanf-nolibm EXTRA_DIST += float+.h isnan.c isnanf-nolibm.h isnanf.c EXTRA_libgnu_a_SOURCES += isnan.c isnanf.c ## end gnulib module isnanf-nolibm ## begin gnulib module isnanl-nolibm EXTRA_DIST += float+.h isnan.c isnanl-nolibm.h isnanl.c EXTRA_libgnu_a_SOURCES += isnan.c isnanl.c ## end gnulib module isnanl-nolibm ## 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 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 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 malloca libgnu_a_SOURCES += malloca.c EXTRA_DIST += malloca.h malloca.valgrind ## end gnulib module malloca ## 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_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_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_SQRTL''@|$(REPLACE_SQRTL)|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 printf-frexp libgnu_a_SOURCES += printf-frexp.c EXTRA_DIST += printf-frexp.h ## end gnulib module printf-frexp ## begin gnulib module printf-frexpl libgnu_a_SOURCES += printf-frexpl.c EXTRA_DIST += printf-frexp.c printf-frexpl.h EXTRA_libgnu_a_SOURCES += printf-frexp.c ## end gnulib module printf-frexpl ## 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|@''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 signbit EXTRA_DIST += float+.h signbitd.c signbitf.c signbitl.c EXTRA_libgnu_a_SOURCES += signbitd.c signbitf.c signbitl.c ## end gnulib module signbit ## begin gnulib module sigprocmask EXTRA_DIST += sigprocmask.c EXTRA_libgnu_a_SOURCES += sigprocmask.c ## end gnulib module sigprocmask ## begin gnulib module size_max libgnu_a_SOURCES += size_max.h ## end gnulib module size_max ## 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_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_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' \ < $(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_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_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_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 striconveh libgnu_a_SOURCES += striconveh.h striconveh.c if GL_COND_LIBTOOL endif EXTRA_DIST += iconveh.h ## end gnulib module striconveh ## begin gnulib module striconveha libgnu_a_SOURCES += striconveha.h striconveha.c ## end gnulib module striconveha ## 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_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|@''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|@''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 '/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 uniconv/base BUILT_SOURCES += $(LIBUNISTRING_UNICONV_H) uniconv.h: uniconv.in.h $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ cat $(srcdir)/uniconv.in.h; \ } > $@-t && \ mv -f $@-t $@ MOSTLYCLEANFILES += uniconv.h uniconv.h-t EXTRA_DIST += iconveh.h localcharset.h striconveha.h uniconv.in.h ## end gnulib module uniconv/base ## begin gnulib module uniconv/u8-conv-from-enc if LIBUNISTRING_COMPILE_UNICONV_U8_CONV_FROM_ENC libgnu_a_SOURCES += uniconv/u8-conv-from-enc.c endif ## end gnulib module uniconv/u8-conv-from-enc ## 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_GETLOGIN''@|$(HAVE_GETLOGIN)|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_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_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_RMDIR''@|$(REPLACE_RMDIR)|g' \ -e 's|@''REPLACE_SLEEP''@|$(REPLACE_SLEEP)|g' \ -e 's|@''REPLACE_SYMLINK''@|$(REPLACE_SYMLINK)|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 unistdio/base BUILT_SOURCES += $(LIBUNISTRING_UNISTDIO_H) unistdio.h: unistdio.in.h $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ cat $(srcdir)/unistdio.in.h; \ } > $@-t && \ mv -f $@-t $@ MOSTLYCLEANFILES += unistdio.h unistdio.h-t EXTRA_DIST += unistdio.in.h ## end gnulib module unistdio/base ## begin gnulib module unistdio/u-printf-args libgnu_a_SOURCES += unistdio/u-printf-args.c EXTRA_DIST += printf-args.c printf-args.h unistdio/u-printf-args.h EXTRA_libgnu_a_SOURCES += printf-args.c ## end gnulib module unistdio/u-printf-args ## begin gnulib module unistdio/u8-sprintf if LIBUNISTRING_COMPILE_UNISTDIO_U8_SPRINTF libgnu_a_SOURCES += unistdio/u8-sprintf.c endif EXTRA_DIST += unistdio/u-sprintf.h ## end gnulib module unistdio/u8-sprintf ## begin gnulib module unistdio/u8-vasnprintf if LIBUNISTRING_COMPILE_UNISTDIO_U8_VASNPRINTF libgnu_a_SOURCES += unistdio/u8-vasnprintf.c endif EXTRA_DIST += vasnprintf.c EXTRA_libgnu_a_SOURCES += vasnprintf.c ## end gnulib module unistdio/u8-vasnprintf ## begin gnulib module unistdio/u8-vsprintf if LIBUNISTRING_COMPILE_UNISTDIO_U8_VSPRINTF libgnu_a_SOURCES += unistdio/u8-vsprintf.c endif EXTRA_DIST += unistdio/u-vsprintf.h ## end gnulib module unistdio/u8-vsprintf ## begin gnulib module unistdio/ulc-printf-parse libgnu_a_SOURCES += unistdio/ulc-printf-parse.c EXTRA_DIST += printf-parse.c printf-parse.h unistdio/u-printf-parse.h EXTRA_libgnu_a_SOURCES += printf-parse.c ## end gnulib module unistdio/ulc-printf-parse ## begin gnulib module unistr/base BUILT_SOURCES += $(LIBUNISTRING_UNISTR_H) unistr.h: unistr.in.h $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ cat $(srcdir)/unistr.in.h; \ } > $@-t && \ mv -f $@-t $@ MOSTLYCLEANFILES += unistr.h unistr.h-t EXTRA_DIST += unistr.in.h ## end gnulib module unistr/base ## begin gnulib module unistr/u16-mbtoucr if LIBUNISTRING_COMPILE_UNISTR_U16_MBTOUCR libgnu_a_SOURCES += unistr/u16-mbtoucr.c endif ## end gnulib module unistr/u16-mbtoucr ## begin gnulib module unistr/u16-strlen if LIBUNISTRING_COMPILE_UNISTR_U16_STRLEN libgnu_a_SOURCES += unistr/u16-strlen.c endif EXTRA_DIST += unistr/u-strlen.h ## end gnulib module unistr/u16-strlen ## begin gnulib module unistr/u16-strmblen if LIBUNISTRING_COMPILE_UNISTR_U16_STRMBLEN libgnu_a_SOURCES += unistr/u16-strmblen.c endif ## end gnulib module unistr/u16-strmblen ## begin gnulib module unistr/u16-to-u8 if LIBUNISTRING_COMPILE_UNISTR_U16_TO_U8 libgnu_a_SOURCES += unistr/u16-to-u8.c endif ## end gnulib module unistr/u16-to-u8 ## begin gnulib module unistr/u32-strlen if LIBUNISTRING_COMPILE_UNISTR_U32_STRLEN libgnu_a_SOURCES += unistr/u32-strlen.c endif EXTRA_DIST += unistr/u-strlen.h ## end gnulib module unistr/u32-strlen ## begin gnulib module unistr/u32-strmblen if LIBUNISTRING_COMPILE_UNISTR_U32_STRMBLEN libgnu_a_SOURCES += unistr/u32-strmblen.c endif ## end gnulib module unistr/u32-strmblen ## begin gnulib module unistr/u32-to-u8 if LIBUNISTRING_COMPILE_UNISTR_U32_TO_U8 libgnu_a_SOURCES += unistr/u32-to-u8.c endif ## end gnulib module unistr/u32-to-u8 ## begin gnulib module unistr/u8-check if LIBUNISTRING_COMPILE_UNISTR_U8_CHECK libgnu_a_SOURCES += unistr/u8-check.c endif ## end gnulib module unistr/u8-check ## begin gnulib module unistr/u8-cpy if LIBUNISTRING_COMPILE_UNISTR_U8_CPY libgnu_a_SOURCES += unistr/u8-cpy.c endif EXTRA_DIST += unistr/u-cpy.h ## end gnulib module unistr/u8-cpy ## begin gnulib module unistr/u8-mblen if LIBUNISTRING_COMPILE_UNISTR_U8_MBLEN libgnu_a_SOURCES += unistr/u8-mblen.c endif ## end gnulib module unistr/u8-mblen ## begin gnulib module unistr/u8-mbsnlen if LIBUNISTRING_COMPILE_UNISTR_U8_MBSNLEN libgnu_a_SOURCES += unistr/u8-mbsnlen.c endif ## end gnulib module unistr/u8-mbsnlen ## begin gnulib module unistr/u8-mbtouc if LIBUNISTRING_COMPILE_UNISTR_U8_MBTOUC libgnu_a_SOURCES += unistr/u8-mbtouc.c unistr/u8-mbtouc-aux.c endif ## end gnulib module unistr/u8-mbtouc ## begin gnulib module unistr/u8-mbtouc-unsafe if LIBUNISTRING_COMPILE_UNISTR_U8_MBTOUC_UNSAFE libgnu_a_SOURCES += unistr/u8-mbtouc-unsafe.c unistr/u8-mbtouc-unsafe-aux.c endif ## end gnulib module unistr/u8-mbtouc-unsafe ## begin gnulib module unistr/u8-mbtoucr if LIBUNISTRING_COMPILE_UNISTR_U8_MBTOUCR libgnu_a_SOURCES += unistr/u8-mbtoucr.c endif ## end gnulib module unistr/u8-mbtoucr ## begin gnulib module unistr/u8-prev if LIBUNISTRING_COMPILE_UNISTR_U8_PREV libgnu_a_SOURCES += unistr/u8-prev.c endif ## end gnulib module unistr/u8-prev ## begin gnulib module unistr/u8-set if LIBUNISTRING_COMPILE_UNISTR_U8_SET libgnu_a_SOURCES += unistr/u8-set.c endif ## end gnulib module unistr/u8-set ## begin gnulib module unistr/u8-strlen if LIBUNISTRING_COMPILE_UNISTR_U8_STRLEN libgnu_a_SOURCES += unistr/u8-strlen.c endif ## end gnulib module unistr/u8-strlen ## begin gnulib module unistr/u8-strmblen if LIBUNISTRING_COMPILE_UNISTR_U8_STRMBLEN libgnu_a_SOURCES += unistr/u8-strmblen.c endif ## end gnulib module unistr/u8-strmblen ## begin gnulib module unistr/u8-uctomb if LIBUNISTRING_COMPILE_UNISTR_U8_UCTOMB libgnu_a_SOURCES += unistr/u8-uctomb.c unistr/u8-uctomb-aux.c endif ## end gnulib module unistr/u8-uctomb ## begin gnulib module unitypes BUILT_SOURCES += $(LIBUNISTRING_UNITYPES_H) unitypes.h: unitypes.in.h $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ cat $(srcdir)/unitypes.in.h; \ } > $@-t && \ mv -f $@-t $@ MOSTLYCLEANFILES += unitypes.h unitypes.h-t EXTRA_DIST += unitypes.in.h ## end gnulib module unitypes ## begin gnulib module unlink EXTRA_DIST += unlink.c EXTRA_libgnu_a_SOURCES += unlink.c ## end gnulib module unlink ## 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_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_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 ## begin gnulib module xsize libgnu_a_SOURCES += xsize.h xsize.c ## end gnulib module xsize 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-3.6.3/lib/malloc.c0000644000175000017500000000306412125375410011536 00000000000000/* -*- buffer-read-only: t -*- vi: set ro: */ /* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* malloc() function that is glibc compatible. Copyright (C) 1997-1998, 2006-2007, 2009-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, 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-3.6.3/lib/itold.c0000644000175000017500000000201012076511424011372 00000000000000/* Replacement for 'int' to 'long double' conversion routine. Copyright (C) 2011-2013 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-3.6.3/lib/ref-del.sin0000644000175000017500000000167512125375411012163 00000000000000# Remove this package from a list of references stored in a text file. # # Copyright (C) 2000, 2009-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, see . # # Written by Bruno Haible . # /^# Packages using this file: / { s/# Packages using this file:// s/ @PACKAGE@ / / s/^/# Packages using this file:/ } gcal-3.6.3/lib/math.c0000644000175000017500000000012012057472163011215 00000000000000#include #define _GL_MATH_INLINE _GL_EXTERN_INLINE #include "math.h" gcal-3.6.3/lib/fseek.c0000644000175000017500000000203512076511424011363 00000000000000/* An fseek() function that, together with fflush(), is POSIX compliant. Copyright (C) 2007, 2009-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 . */ #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-3.6.3/lib/iconveh.h0000644000175000017500000000231012076511424011722 00000000000000/* Character set conversion handler type. Copyright (C) 2001-2007, 2009-2013 Free Software Foundation, Inc. Written by Bruno Haible. This program is free software: you can redistribute 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 _ICONVEH_H #define _ICONVEH_H #ifdef __cplusplus extern "C" { #endif /* Handling of unconvertible characters. */ enum iconv_ilseq_handler { iconveh_error, /* return and set errno = EILSEQ */ iconveh_question_mark, /* use one '?' per unconvertible character */ iconveh_escape_sequence /* use escape sequence \uxxxx or \Uxxxxxxxx */ }; #ifdef __cplusplus } #endif #endif /* _ICONVEH_H */ gcal-3.6.3/lib/tmpdir.c0000644000175000017500000001011312116431050011550 00000000000000/* Copyright (C) 1999, 2001-2002, 2006, 2009-2013 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 __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; 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 (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); while (dlen >= 1 && ISSLASH (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; } gcal-3.6.3/lib/wctype.in.h0000644000175000017500000003155312125375412012222 00000000000000/* -*- buffer-read-only: t -*- vi: set ro: */ /* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* A substitute for ISO C99 , for platforms that lack it. Copyright (C) 2006-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, 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. */ #ifndef _@GUARD_PREFIX@_WCTYPE_H #if __GNUC__ >= 3 @PRAGMA_SYSTEM_HEADER@ #endif @PRAGMA_COLUMNS@ #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 /* 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 _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 /* MSVC defines 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 defined _MSC_VER # 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 */ gcal-3.6.3/lib/dup-safer-flag.c0000644000175000017500000000244312076511423013065 00000000000000/* Duplicate a file descriptor result, avoiding clobbering STD{IN,OUT,ERR}_FILENO, with specific flags. Copyright (C) 2001, 2004-2006, 2009-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 . */ /* 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-3.6.3/lib/unistdio.in.h0000644000175000017500000002246112125375411012542 00000000000000/* -*- buffer-read-only: t -*- vi: set ro: */ /* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* Elementary Unicode string functions. Copyright (C) 2002, 2005-2007, 2009-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 . */ #ifndef _UNISTDIO_H #define _UNISTDIO_H #include "unitypes.h" /* Get size_t. */ #include /* Get FILE. */ #include /* Get va_list. */ #include #ifdef __cplusplus extern "C" { #endif /* These work like the printf function family. In the format string: The format directive 'U' takes an UTF-8 string (const uint8_t *). The format directive 'lU' takes an UTF-16 string (const uint16_t *). The format directive 'llU' takes an UTF-32 string (const uint32_t *). The prefix (ulc_, u8_, u16_, u16_) indicates the type of the resulting string. The prefix 'ulc' stands for "locale encoded". An infix 'v' indicates that a va_list is passed instead of multiple arguments. The functions *sprintf have a 'buf' argument that is assumed to be large enough. (DANGEROUS! Overflowing the buffer will crash the program.) The functions *snprintf have a 'buf' argument that is assumed to be 'size' units large. (DANGEROUS! The resulting string might be truncated in the middle of a multibyte character.) The functions *asprintf have a 'resultp' argument. The result will be freshly allocated and stored in *resultp. The functions *asnprintf have a (resultbuf, lengthp) argument pair. If resultbuf is not NULL and the result fits into *lengthp units, it is put in resultbuf, and resultbuf is returned. Otherwise, a freshly allocated string is returned. In both cases, *lengthp is set to the length (number of units) of the returned string. In case of error, NULL is returned and errno is set. */ /* ASCII format string, result in locale dependent encoded 'char *'. */ extern int ulc_sprintf (char *buf, const char *format, ...); extern int ulc_snprintf (char *buf, size_t size, const char *format, ...); extern int ulc_asprintf (char **resultp, const char *format, ...); extern char * ulc_asnprintf (char *resultbuf, size_t *lengthp, const char *format, ...); extern int ulc_vsprintf (char *buf, const char *format, va_list ap); extern int ulc_vsnprintf (char *buf, size_t size, const char *format, va_list ap); extern int ulc_vasprintf (char **resultp, const char *format, va_list ap); extern char * ulc_vasnprintf (char *resultbuf, size_t *lengthp, const char *format, va_list ap); /* ASCII format string, result in UTF-8 format. */ extern int u8_sprintf (uint8_t *buf, const char *format, ...); extern int u8_snprintf (uint8_t *buf, size_t size, const char *format, ...); extern int u8_asprintf (uint8_t **resultp, const char *format, ...); extern uint8_t * u8_asnprintf (uint8_t *resultbuf, size_t *lengthp, const char *format, ...); extern int u8_vsprintf (uint8_t *buf, const char *format, va_list ap); extern int u8_vsnprintf (uint8_t *buf, size_t size, const char *format, va_list ap); extern int u8_vasprintf (uint8_t **resultp, const char *format, va_list ap); extern uint8_t * u8_vasnprintf (uint8_t *resultbuf, size_t *lengthp, const char *format, va_list ap); /* UTF-8 format string, result in UTF-8 format. */ extern int u8_u8_sprintf (uint8_t *buf, const uint8_t *format, ...); extern int u8_u8_snprintf (uint8_t *buf, size_t size, const uint8_t *format, ...); extern int u8_u8_asprintf (uint8_t **resultp, const uint8_t *format, ...); extern uint8_t * u8_u8_asnprintf (uint8_t *resultbuf, size_t *lengthp, const uint8_t *format, ...); extern int u8_u8_vsprintf (uint8_t *buf, const uint8_t *format, va_list ap); extern int u8_u8_vsnprintf (uint8_t *buf, size_t size, const uint8_t *format, va_list ap); extern int u8_u8_vasprintf (uint8_t **resultp, const uint8_t *format, va_list ap); extern uint8_t * u8_u8_vasnprintf (uint8_t *resultbuf, size_t *lengthp, const uint8_t *format, va_list ap); /* ASCII format string, result in UTF-16 format. */ extern int u16_sprintf (uint16_t *buf, const char *format, ...); extern int u16_snprintf (uint16_t *buf, size_t size, const char *format, ...); extern int u16_asprintf (uint16_t **resultp, const char *format, ...); extern uint16_t * u16_asnprintf (uint16_t *resultbuf, size_t *lengthp, const char *format, ...); extern int u16_vsprintf (uint16_t *buf, const char *format, va_list ap); extern int u16_vsnprintf (uint16_t *buf, size_t size, const char *format, va_list ap); extern int u16_vasprintf (uint16_t **resultp, const char *format, va_list ap); extern uint16_t * u16_vasnprintf (uint16_t *resultbuf, size_t *lengthp, const char *format, va_list ap); /* UTF-16 format string, result in UTF-16 format. */ extern int u16_u16_sprintf (uint16_t *buf, const uint16_t *format, ...); extern int u16_u16_snprintf (uint16_t *buf, size_t size, const uint16_t *format, ...); extern int u16_u16_asprintf (uint16_t **resultp, const uint16_t *format, ...); extern uint16_t * u16_u16_asnprintf (uint16_t *resultbuf, size_t *lengthp, const uint16_t *format, ...); extern int u16_u16_vsprintf (uint16_t *buf, const uint16_t *format, va_list ap); extern int u16_u16_vsnprintf (uint16_t *buf, size_t size, const uint16_t *format, va_list ap); extern int u16_u16_vasprintf (uint16_t **resultp, const uint16_t *format, va_list ap); extern uint16_t * u16_u16_vasnprintf (uint16_t *resultbuf, size_t *lengthp, const uint16_t *format, va_list ap); /* ASCII format string, result in UTF-32 format. */ extern int u32_sprintf (uint32_t *buf, const char *format, ...); extern int u32_snprintf (uint32_t *buf, size_t size, const char *format, ...); extern int u32_asprintf (uint32_t **resultp, const char *format, ...); extern uint32_t * u32_asnprintf (uint32_t *resultbuf, size_t *lengthp, const char *format, ...); extern int u32_vsprintf (uint32_t *buf, const char *format, va_list ap); extern int u32_vsnprintf (uint32_t *buf, size_t size, const char *format, va_list ap); extern int u32_vasprintf (uint32_t **resultp, const char *format, va_list ap); extern uint32_t * u32_vasnprintf (uint32_t *resultbuf, size_t *lengthp, const char *format, va_list ap); /* UTF-32 format string, result in UTF-32 format. */ extern int u32_u32_sprintf (uint32_t *buf, const uint32_t *format, ...); extern int u32_u32_snprintf (uint32_t *buf, size_t size, const uint32_t *format, ...); extern int u32_u32_asprintf (uint32_t **resultp, const uint32_t *format, ...); extern uint32_t * u32_u32_asnprintf (uint32_t *resultbuf, size_t *lengthp, const uint32_t *format, ...); extern int u32_u32_vsprintf (uint32_t *buf, const uint32_t *format, va_list ap); extern int u32_u32_vsnprintf (uint32_t *buf, size_t size, const uint32_t *format, va_list ap); extern int u32_u32_vasprintf (uint32_t **resultp, const uint32_t *format, va_list ap); extern uint32_t * u32_u32_vasnprintf (uint32_t *resultbuf, size_t *lengthp, const uint32_t *format, va_list ap); /* ASCII format string, output to FILE in locale dependent encoding. */ extern int ulc_fprintf (FILE *stream, const char *format, ...); extern int ulc_vfprintf (FILE *stream, const char *format, va_list ap); #ifdef __cplusplus } #endif #endif /* _UNISTDIO_H */ gcal-3.6.3/lib/strtol.c0000644000175000017500000002566612076511424011634 00000000000000/* Convert string representation of a number into an integer value. Copyright (C) 1991-1992, 1994-1999, 2003, 2005-2007, 2009-2013 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 negative values of the signed integer type T use two's complement, ones' complement, or signed magnitude representation, respectively. Much GNU code assumes two's complement, but some people like to be portable to all possible C hosts. */ # define TYPE_TWOS_COMPLEMENT(t) ((t) ~ (t) 0 == (t) -1) # define TYPE_ONES_COMPLEMENT(t) ((t) ~ (t) 0 == 0) # define TYPE_SIGNED_MAGNITUDE(t) ((t) ~ (t) 0 < (t) -1) /* True if the arithmetic type T is signed. */ # define TYPE_SIGNED(t) (! ((t) 0 < (t) -1)) /* The maximum and minimum values for the integer type T. These macros have undefined behavior if T is signed and has padding bits. If this is a problem for you, please let us know how to fix it for your host. */ # define TYPE_MINIMUM(t) \ ((t) (! TYPE_SIGNED (t) \ ? (t) 0 \ : TYPE_SIGNED_MAGNITUDE (t) \ ? ~ (t) 0 \ : ~ 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-3.6.3/lib/putenv.c0000644000175000017500000001176312121155160011607 00000000000000/* Copyright (C) 1991, 1994, 1997-1998, 2000, 2003-2013 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-3.6.3/lib/isnanf-nolibm.h0000644000175000017500000000270112076511424013027 00000000000000/* Test for NaN that does not need libm. Copyright (C) 2007-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 . */ #if HAVE_ISNANF_IN_LIBC /* Get declaration of isnan macro or (older) isnanf function. */ # include # 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)) # else /* Get declaration of isnanf(), if not declared in . */ # if defined __sgi /* We can't include , because it conflicts with our definition of isnand. Therefore declare isnanf separately. */ extern int isnanf (float x); # endif # endif #else /* Test whether X is a NaN. */ # undef isnanf # define isnanf rpl_isnanf extern int isnanf (float x); #endif gcal-3.6.3/lib/fatal-signal.h0000644000175000017500000000640312076511424012640 00000000000000/* Emergency actions in case of a fatal signal. Copyright (C) 2003-2004, 2009-2013 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-3.6.3/lib/config.charset0000644000175000017500000005512312125375410012746 00000000000000#! /bin/sh # Output a system dependent table of character encoding aliases. # # Copyright (C) 2000-2004, 2006-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, 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* | os2*) # FreeBSD 4.2 doesn't have nl_langinfo(CODESET); therefore # localcharset.c falls back to using the full locale name # from the environment variables. # Likewise for OS/2. OS/2 has XFree86 just like FreeBSD. Just # reuse FreeBSD's locale data for OS/2. 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-3.6.3/lib/iconv_open-irix.h0000644000175000017500000001727612125376132013420 00000000000000/* ANSI-C code produced by gperf version 3.0.3 */ /* Command-line: gperf -m 10 ./iconv_open-irix.gperf */ /* Computed positions: -k'1,$' */ #if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \ && ('%' == 37) && ('&' == 38) && ('\'' == 39) && ('(' == 40) \ && (')' == 41) && ('*' == 42) && ('+' == 43) && (',' == 44) \ && ('-' == 45) && ('.' == 46) && ('/' == 47) && ('0' == 48) \ && ('1' == 49) && ('2' == 50) && ('3' == 51) && ('4' == 52) \ && ('5' == 53) && ('6' == 54) && ('7' == 55) && ('8' == 56) \ && ('9' == 57) && (':' == 58) && (';' == 59) && ('<' == 60) \ && ('=' == 61) && ('>' == 62) && ('?' == 63) && ('A' == 65) \ && ('B' == 66) && ('C' == 67) && ('D' == 68) && ('E' == 69) \ && ('F' == 70) && ('G' == 71) && ('H' == 72) && ('I' == 73) \ && ('J' == 74) && ('K' == 75) && ('L' == 76) && ('M' == 77) \ && ('N' == 78) && ('O' == 79) && ('P' == 80) && ('Q' == 81) \ && ('R' == 82) && ('S' == 83) && ('T' == 84) && ('U' == 85) \ && ('V' == 86) && ('W' == 87) && ('X' == 88) && ('Y' == 89) \ && ('Z' == 90) && ('[' == 91) && ('\\' == 92) && (']' == 93) \ && ('^' == 94) && ('_' == 95) && ('a' == 97) && ('b' == 98) \ && ('c' == 99) && ('d' == 100) && ('e' == 101) && ('f' == 102) \ && ('g' == 103) && ('h' == 104) && ('i' == 105) && ('j' == 106) \ && ('k' == 107) && ('l' == 108) && ('m' == 109) && ('n' == 110) \ && ('o' == 111) && ('p' == 112) && ('q' == 113) && ('r' == 114) \ && ('s' == 115) && ('t' == 116) && ('u' == 117) && ('v' == 118) \ && ('w' == 119) && ('x' == 120) && ('y' == 121) && ('z' == 122) \ && ('{' == 123) && ('|' == 124) && ('}' == 125) && ('~' == 126)) /* The character set is not based on ISO-646. */ #error "gperf generated tables don't work with this execution character set. Please report a bug to ." #endif #line 1 "./iconv_open-irix.gperf" struct mapping { int standard_name; const char vendor_name[10 + 1]; }; #define TOTAL_KEYWORDS 19 #define MIN_WORD_LENGTH 5 #define MAX_WORD_LENGTH 11 #define MIN_HASH_VALUE 5 #define MAX_HASH_VALUE 23 /* maximum key range = 19, duplicates = 0 */ #ifdef __GNUC__ __inline #else #ifdef __cplusplus inline #endif #endif static unsigned int mapping_hash (register const char *str, register unsigned int len) { static const unsigned char asso_values[] = { 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 8, 2, 5, 12, 11, 0, 10, 9, 8, 7, 24, 24, 24, 24, 24, 24, 24, 24, 24, 0, 24, 0, 24, 5, 24, 0, 24, 7, 24, 24, 24, 24, 7, 24, 1, 0, 8, 24, 24, 0, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24 }; return len + asso_values[(unsigned char)str[len - 1]] + asso_values[(unsigned char)str[0]]; } struct stringpool_t { char stringpool_str5[sizeof("CP855")]; char stringpool_str6[sizeof("EUC-TW")]; char stringpool_str7[sizeof("EUC-KR")]; char stringpool_str8[sizeof("CP1251")]; char stringpool_str9[sizeof("SHIFT_JIS")]; char stringpool_str10[sizeof("ISO-8859-5")]; char stringpool_str11[sizeof("ISO-8859-15")]; char stringpool_str12[sizeof("ISO-8859-1")]; char stringpool_str13[sizeof("EUC-JP")]; char stringpool_str14[sizeof("KOI8-R")]; char stringpool_str15[sizeof("ISO-8859-2")]; char stringpool_str16[sizeof("GB2312")]; char stringpool_str17[sizeof("ISO-8859-9")]; char stringpool_str18[sizeof("ISO-8859-8")]; char stringpool_str19[sizeof("ISO-8859-7")]; char stringpool_str20[sizeof("ISO-8859-6")]; char stringpool_str21[sizeof("ISO-8859-4")]; char stringpool_str22[sizeof("ISO-8859-3")]; char stringpool_str23[sizeof("TIS-620")]; }; static const struct stringpool_t stringpool_contents = { "CP855", "EUC-TW", "EUC-KR", "CP1251", "SHIFT_JIS", "ISO-8859-5", "ISO-8859-15", "ISO-8859-1", "EUC-JP", "KOI8-R", "ISO-8859-2", "GB2312", "ISO-8859-9", "ISO-8859-8", "ISO-8859-7", "ISO-8859-6", "ISO-8859-4", "ISO-8859-3", "TIS-620" }; #define stringpool ((const char *) &stringpool_contents) static const struct mapping mappings[] = { {-1}, {-1}, {-1}, {-1}, {-1}, #line 24 "./iconv_open-irix.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str5, "DOS855"}, #line 29 "./iconv_open-irix.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str6, "eucTW"}, #line 28 "./iconv_open-irix.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str7, "eucKR"}, #line 25 "./iconv_open-irix.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str8, "WIN1251"}, #line 30 "./iconv_open-irix.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str9, "sjis"}, #line 17 "./iconv_open-irix.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str10, "ISO8859-5"}, #line 22 "./iconv_open-irix.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str11, "ISO8859-15"}, #line 13 "./iconv_open-irix.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str12, "ISO8859-1"}, #line 27 "./iconv_open-irix.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str13, "eucJP"}, #line 23 "./iconv_open-irix.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str14, "KOI8"}, #line 14 "./iconv_open-irix.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str15, "ISO8859-2"}, #line 26 "./iconv_open-irix.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str16, "eucCN"}, #line 21 "./iconv_open-irix.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str17, "ISO8859-9"}, #line 20 "./iconv_open-irix.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str18, "ISO8859-8"}, #line 19 "./iconv_open-irix.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str19, "ISO8859-7"}, #line 18 "./iconv_open-irix.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str20, "ISO8859-6"}, #line 16 "./iconv_open-irix.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str21, "ISO8859-4"}, #line 15 "./iconv_open-irix.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str22, "ISO8859-3"}, #line 31 "./iconv_open-irix.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str23, "TIS620"} }; #ifdef __GNUC__ __inline #ifdef __GNUC_STDC_INLINE__ __attribute__ ((__gnu_inline__)) #endif #endif const struct mapping * mapping_lookup (register const char *str, register unsigned int len) { if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH) { register int key = mapping_hash (str, len); if (key <= MAX_HASH_VALUE && key >= 0) { register int o = mappings[key].standard_name; if (o >= 0) { register const char *s = o + stringpool; if (*str == *s && !strcmp (str + 1, s + 1)) return &mappings[key]; } } } return 0; } gcal-3.6.3/lib/stddef.in.h0000644000175000017500000000536412125375411012160 00000000000000/* -*- buffer-read-only: t -*- vi: set ro: */ /* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* A substitute for POSIX 2008 , for platforms that have issues. Copyright (C) 2009-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, 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 # undef _@GUARD_PREFIX@_STDDEF_H # 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@ # ifndef _@GUARD_PREFIX@_STDDEF_H # define _@GUARD_PREFIX@_STDDEF_H /* On NetBSD 5.0, the definition of NULL lacks proper parentheses. */ #if @REPLACE_NULL@ # 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 /* Some platforms lack wchar_t. */ #if !@HAVE_WCHAR_T@ # define wchar_t int #endif # endif /* _@GUARD_PREFIX@_STDDEF_H */ # endif /* _@GUARD_PREFIX@_STDDEF_H */ #endif /* __need_XXX */ gcal-3.6.3/lib/spawn-pipe.c0000644000175000017500000003474512076511424012366 00000000000000/* Creation of subprocesses, communicating via pipes. Copyright (C) 2001-2004, 2006-2013 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__ /* Native Windows API. */ # include # include "w32spawn.h" #else /* Unix API. */ # include #endif /* The results of open() in this file are not used with fchdir, therefore save some unnecessary work in fchdir.c. */ #undef open #undef close #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__ /* 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-3.6.3/lib/spawni.c0000644000175000017500000002510612076511424011573 00000000000000/* Guts of POSIX spawn interface. Generic POSIX.1 version. Copyright (C) 2000-2006, 2008-2013 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-3.6.3/lib/pathmax.h0000644000175000017500000000571012125375411011737 00000000000000/* -*- buffer-read-only: t -*- vi: set ro: */ /* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* Define PATH_MAX somehow. Requires sys/types.h. Copyright (C) 1992, 1999, 2001, 2003, 2005, 2009-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, 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-3.6.3/lib/tmpdir.h0000644000175000017500000000235712076511424011601 00000000000000/* Determine a temporary directory. Copyright (C) 2001-2002, 2009-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 . */ #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-3.6.3/lib/fpucw.h0000644000175000017500000001113312076511424011416 00000000000000/* Manipulating the FPU control word. Copyright (C) 2007-2013 Free Software Foundation, Inc. Written by Bruno Haible , 2007. This program is free software: you can redistribute 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 _FPUCW_H #define _FPUCW_H /* The i386 floating point hardware (the 387 compatible FPU, not the modern SSE/SSE2 hardware) has a controllable rounding precision. It is specified through the 'PC' bits in the FPU control word ('fctrl' register). (See the GNU libc i386 header for details.) On some platforms, such as Linux or Solaris, the default precision setting is set to "extended precision". This means that 'long double' instructions operate correctly, but 'double' computations often produce slightly different results as on strictly IEEE 754 conforming systems. On some platforms, such as NetBSD, the default precision is set to "double precision". This means that 'long double' instructions will operate only as 'double', i.e. lead to wrong results. Similarly on FreeBSD 6.4, at least for the division of 'long double' numbers. The FPU control word is under control of the application, i.e. it is not required to be set either way by the ABI. (In fact, the i386 ABI http://refspecs.freestandards.org/elf/abi386-4.pdf page 3-12 = page 38 is not clear about it. But in any case, gcc treats the control word like a "preserved" register: it emits code that assumes that the control word is preserved across calls, and it restores the control word at the end of functions that modify it.) See Vincent Lefèvre's page http://www.vinc17.org/research/extended.en.html for a good explanation. See http://www.uwsg.iu.edu/hypermail/linux/kernel/0103.0/0453.html for some argumentation which setting should be the default. */ /* This header file provides the following facilities: fpucw_t integral type holding the value of 'fctrl' FPU_PC_MASK bit mask denoting the precision control FPU_PC_DOUBLE precision control for 53 bits mantissa FPU_PC_EXTENDED precision control for 64 bits mantissa GET_FPUCW () yields the current FPU control word SET_FPUCW (word) sets the FPU control word DECL_LONG_DOUBLE_ROUNDING variable declaration for BEGIN/END_LONG_DOUBLE_ROUNDING BEGIN_LONG_DOUBLE_ROUNDING () starts a sequence of instructions with 'long double' safe operation precision END_LONG_DOUBLE_ROUNDING () ends a sequence of instructions with 'long double' safe operation precision */ /* Inline assembler like this works only with GNU C. */ #if (defined __i386__ || defined __x86_64__) && defined __GNUC__ typedef unsigned short fpucw_t; /* glibc calls this fpu_control_t */ # define FPU_PC_MASK 0x0300 # define FPU_PC_DOUBLE 0x200 /* glibc calls this _FPU_DOUBLE */ # define FPU_PC_EXTENDED 0x300 /* glibc calls this _FPU_EXTENDED */ # define GET_FPUCW() \ ({ fpucw_t _cw; \ __asm__ __volatile__ ("fnstcw %0" : "=m" (*&_cw)); \ _cw; \ }) # define SET_FPUCW(word) \ (void)({ fpucw_t _ncw = (word); \ __asm__ __volatile__ ("fldcw %0" : : "m" (*&_ncw)); \ }) # define DECL_LONG_DOUBLE_ROUNDING \ fpucw_t oldcw; # define BEGIN_LONG_DOUBLE_ROUNDING() \ (void)(oldcw = GET_FPUCW (), \ SET_FPUCW ((oldcw & ~FPU_PC_MASK) | FPU_PC_EXTENDED)) # define END_LONG_DOUBLE_ROUNDING() \ SET_FPUCW (oldcw) #else typedef unsigned int fpucw_t; # define FPU_PC_MASK 0 # define FPU_PC_DOUBLE 0 # define FPU_PC_EXTENDED 0 # define GET_FPUCW() 0 # define SET_FPUCW(word) (void)(word) # define DECL_LONG_DOUBLE_ROUNDING # define BEGIN_LONG_DOUBLE_ROUNDING() # define END_LONG_DOUBLE_ROUNDING() #endif #endif /* _FPUCW_H */ gcal-3.6.3/lib/xsize.c0000644000175000017500000000011612032051700011412 00000000000000#include #define XSIZE_INLINE _GL_EXTERN_INLINE #include "xsize.h" gcal-3.6.3/lib/raise.c0000644000175000017500000000317312076511424011375 00000000000000/* Provide a non-threads replacement for the POSIX raise function. Copyright (C) 2002-2003, 2005-2006, 2009-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 . */ /* 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-3.6.3/lib/iconv_close.c0000644000175000017500000000266312125375410012576 00000000000000/* -*- buffer-read-only: t -*- vi: set ro: */ /* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* Character set conversion. Copyright (C) 2007, 2009-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, see . */ #include /* Specification. */ #include #include #ifndef uintptr_t # define uintptr_t unsigned long #endif int rpl_iconv_close (iconv_t cd) #undef iconv_close { #if REPLACE_ICONV_UTF switch ((uintptr_t) cd) { case (uintptr_t) _ICONV_UTF8_UTF16BE: case (uintptr_t) _ICONV_UTF8_UTF16LE: case (uintptr_t) _ICONV_UTF8_UTF32BE: case (uintptr_t) _ICONV_UTF8_UTF32LE: case (uintptr_t) _ICONV_UTF16BE_UTF8: case (uintptr_t) _ICONV_UTF16LE_UTF8: case (uintptr_t) _ICONV_UTF32BE_UTF8: case (uintptr_t) _ICONV_UTF32LE_UTF8: return 0; } #endif return iconv_close (cd); } gcal-3.6.3/lib/stdlib.in.h0000644000175000017500000010045612116431050012156 00000000000000/* A GNU-like . Copyright (C) 1995, 2001-2004, 2006-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 . */ #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_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-3.6.3/lib/ioctl.c0000644000175000017500000000425712076511424011410 00000000000000/* ioctl.c --- wrappers for Windows ioctl function Copyright (C) 2008-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 . */ /* 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-3.6.3/lib/iconv_open-hpux.gperf0000644000175000017500000000214211534672763014303 00000000000000struct mapping { int standard_name; const char vendor_name[9 + 1]; }; %struct-type %language=ANSI-C %define slot-name standard_name %define hash-function-name mapping_hash %define lookup-function-name mapping_lookup %readonly-tables %global-table %define word-array-name mappings %pic %% # On HP-UX 11.11, look in /usr/lib/nls/iconv. ISO-8859-1, "iso88591" ISO-8859-2, "iso88592" ISO-8859-5, "iso88595" ISO-8859-6, "iso88596" ISO-8859-7, "iso88597" ISO-8859-8, "iso88598" ISO-8859-9, "iso88599" ISO-8859-15, "iso885915" CP437, "cp437" CP775, "cp775" CP850, "cp850" CP852, "cp852" CP855, "cp855" CP857, "cp857" CP861, "cp861" CP862, "cp862" CP864, "cp864" CP865, "cp865" CP866, "cp866" CP869, "cp869" CP874, "cp874" CP1250, "cp1250" CP1251, "cp1251" CP1252, "cp1252" CP1253, "cp1253" CP1254, "cp1254" CP1255, "cp1255" CP1256, "cp1256" CP1257, "cp1257" CP1258, "cp1258" HP-ROMAN8, "roman8" HP-ARABIC8, "arabic8" HP-GREEK8, "greek8" HP-HEBREW8, "hebrew8" HP-TURKISH8, "turkish8" HP-KANA8, "kana8" TIS-620, "tis620" GB2312, "hp15CN" EUC-JP, "eucJP" EUC-KR, "eucKR" EUC-TW, "eucTW" BIG5, "big5" SHIFT_JIS, "sjis" UTF-8, "utf8" gcal-3.6.3/lib/strerror_r.c0000644000175000017500000002257512076511424012504 00000000000000/* strerror_r.c --- POSIX compatible system error routine Copyright (C) 2010-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 . */ /* 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 int __xpg_strerror_r (int errnum, char *buf, size_t buflen); #elif HAVE_DECL_STRERROR_R && !(__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 /* 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 # 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-3.6.3/lib/regex.h0000644000175000017500000006073112125375411011413 00000000000000/* -*- buffer-read-only: t -*- vi: set ro: */ /* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* Definitions for data structures and routines for the regular expression library. Copyright (C) 1985, 1989-1993, 1995-1998, 2000-2003, 2005-2013 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 nonnegative object indexes. Traditionally, GNU regex uses 'int' for these. Code that uses __re_idx_t should work regardless of whether the type is signed. */ typedef size_t __re_idx_t; /* 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 int __re_idx_t; 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_BK_PLUS_QM | RE_CHAR_CLASSES \ | RE_HAT_LISTS_NOT_NEWLINE | RE_INTERVALS \ | RE_NEWLINE_ALT) # define RE_SYNTAX_EGREP \ (RE_CHAR_CLASSES | RE_CONTEXT_INDEP_ANCHORS \ | RE_CONTEXT_INDEP_OPS | RE_HAT_LISTS_NOT_NEWLINE \ | RE_NEWLINE_ALT | RE_NO_BK_PARENS \ | RE_NO_BK_VBAR) # define RE_SYNTAX_POSIX_EGREP \ (RE_SYNTAX_EGREP | RE_INTERVALS | RE_NO_BK_BRACES \ | RE_INVALID_INTERVAL_ORD) /* 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. */ 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 initialised 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, __re_idx_t __length, __re_idx_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, __re_idx_t __length1, const char *__string2, __re_idx_t __length2, __re_idx_t __start, regoff_t __range, struct re_registers *__regs, __re_idx_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, __re_idx_t __length, __re_idx_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, __re_idx_t __length1, const char *__string2, __re_idx_t __length2, __re_idx_t __start, struct re_registers *__regs, __re_idx_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_BSD) # 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-3.6.3/lib/msvc-nothrow.c0000644000175000017500000000256612125375410012743 00000000000000/* -*- buffer-read-only: t -*- vi: set ro: */ /* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* Wrappers that don't throw invalid parameter notifications with MSVC runtime libraries. Copyright (C) 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, 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-3.6.3/lib/iconv_open-aix.h0000644000175000017500000002360512125376132013217 00000000000000/* ANSI-C code produced by gperf version 3.0.3 */ /* Command-line: gperf -m 10 ./iconv_open-aix.gperf */ /* Computed positions: -k'4,$' */ #if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \ && ('%' == 37) && ('&' == 38) && ('\'' == 39) && ('(' == 40) \ && (')' == 41) && ('*' == 42) && ('+' == 43) && (',' == 44) \ && ('-' == 45) && ('.' == 46) && ('/' == 47) && ('0' == 48) \ && ('1' == 49) && ('2' == 50) && ('3' == 51) && ('4' == 52) \ && ('5' == 53) && ('6' == 54) && ('7' == 55) && ('8' == 56) \ && ('9' == 57) && (':' == 58) && (';' == 59) && ('<' == 60) \ && ('=' == 61) && ('>' == 62) && ('?' == 63) && ('A' == 65) \ && ('B' == 66) && ('C' == 67) && ('D' == 68) && ('E' == 69) \ && ('F' == 70) && ('G' == 71) && ('H' == 72) && ('I' == 73) \ && ('J' == 74) && ('K' == 75) && ('L' == 76) && ('M' == 77) \ && ('N' == 78) && ('O' == 79) && ('P' == 80) && ('Q' == 81) \ && ('R' == 82) && ('S' == 83) && ('T' == 84) && ('U' == 85) \ && ('V' == 86) && ('W' == 87) && ('X' == 88) && ('Y' == 89) \ && ('Z' == 90) && ('[' == 91) && ('\\' == 92) && (']' == 93) \ && ('^' == 94) && ('_' == 95) && ('a' == 97) && ('b' == 98) \ && ('c' == 99) && ('d' == 100) && ('e' == 101) && ('f' == 102) \ && ('g' == 103) && ('h' == 104) && ('i' == 105) && ('j' == 106) \ && ('k' == 107) && ('l' == 108) && ('m' == 109) && ('n' == 110) \ && ('o' == 111) && ('p' == 112) && ('q' == 113) && ('r' == 114) \ && ('s' == 115) && ('t' == 116) && ('u' == 117) && ('v' == 118) \ && ('w' == 119) && ('x' == 120) && ('y' == 121) && ('z' == 122) \ && ('{' == 123) && ('|' == 124) && ('}' == 125) && ('~' == 126)) /* The character set is not based on ISO-646. */ #error "gperf generated tables don't work with this execution character set. Please report a bug to ." #endif #line 1 "./iconv_open-aix.gperf" struct mapping { int standard_name; const char vendor_name[10 + 1]; }; #define TOTAL_KEYWORDS 32 #define MIN_WORD_LENGTH 4 #define MAX_WORD_LENGTH 11 #define MIN_HASH_VALUE 6 #define MAX_HASH_VALUE 44 /* maximum key range = 39, duplicates = 0 */ #ifdef __GNUC__ __inline #else #ifdef __cplusplus inline #endif #endif static unsigned int mapping_hash (register const char *str, register unsigned int len) { static const unsigned char asso_values[] = { 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 0, 4, 25, 0, 11, 24, 9, 17, 3, 14, 21, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 3, 45, 1, 45, 45, 45, 45, 0, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45 }; return len + asso_values[(unsigned char)str[3]+2] + asso_values[(unsigned char)str[len - 1]]; } struct stringpool_t { char stringpool_str6[sizeof("EUC-TW")]; char stringpool_str7[sizeof("EUC-KR")]; char stringpool_str8[sizeof("CP852")]; char stringpool_str9[sizeof("EUC-JP")]; char stringpool_str10[sizeof("ISO-8859-2")]; char stringpool_str11[sizeof("CP857")]; char stringpool_str12[sizeof("CP850")]; char stringpool_str13[sizeof("ISO-8859-7")]; char stringpool_str14[sizeof("CP932")]; char stringpool_str15[sizeof("GB2312")]; char stringpool_str16[sizeof("BIG5")]; char stringpool_str17[sizeof("CP437")]; char stringpool_str19[sizeof("ISO-8859-5")]; char stringpool_str20[sizeof("ISO-8859-15")]; char stringpool_str21[sizeof("ISO-8859-3")]; char stringpool_str22[sizeof("ISO-8859-13")]; char stringpool_str23[sizeof("CP1046")]; char stringpool_str24[sizeof("ISO-8859-8")]; char stringpool_str25[sizeof("CP856")]; char stringpool_str26[sizeof("CP1125")]; char stringpool_str27[sizeof("ISO-8859-6")]; char stringpool_str28[sizeof("CP865")]; char stringpool_str29[sizeof("CP922")]; char stringpool_str30[sizeof("CP1252")]; char stringpool_str31[sizeof("ISO-8859-9")]; char stringpool_str33[sizeof("CP943")]; char stringpool_str34[sizeof("ISO-8859-4")]; char stringpool_str35[sizeof("ISO-8859-1")]; char stringpool_str38[sizeof("CP1129")]; char stringpool_str40[sizeof("CP869")]; char stringpool_str41[sizeof("CP1124")]; char stringpool_str44[sizeof("CP861")]; }; static const struct stringpool_t stringpool_contents = { "EUC-TW", "EUC-KR", "CP852", "EUC-JP", "ISO-8859-2", "CP857", "CP850", "ISO-8859-7", "CP932", "GB2312", "BIG5", "CP437", "ISO-8859-5", "ISO-8859-15", "ISO-8859-3", "ISO-8859-13", "CP1046", "ISO-8859-8", "CP856", "CP1125", "ISO-8859-6", "CP865", "CP922", "CP1252", "ISO-8859-9", "CP943", "ISO-8859-4", "ISO-8859-1", "CP1129", "CP869", "CP1124", "CP861" }; #define stringpool ((const char *) &stringpool_contents) static const struct mapping mappings[] = { {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, #line 43 "./iconv_open-aix.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str6, "IBM-eucTW"}, #line 42 "./iconv_open-aix.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str7, "IBM-eucKR"}, #line 25 "./iconv_open-aix.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str8, "IBM-852"}, #line 41 "./iconv_open-aix.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str9, "IBM-eucJP"}, #line 14 "./iconv_open-aix.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str10, "ISO8859-2"}, #line 27 "./iconv_open-aix.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str11, "IBM-857"}, #line 24 "./iconv_open-aix.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str12, "IBM-850"}, #line 19 "./iconv_open-aix.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str13, "ISO8859-7"}, #line 33 "./iconv_open-aix.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str14, "IBM-932"}, #line 40 "./iconv_open-aix.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str15, "IBM-eucCN"}, #line 44 "./iconv_open-aix.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str16, "big5"}, #line 23 "./iconv_open-aix.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str17, "IBM-437"}, {-1}, #line 17 "./iconv_open-aix.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str19, "ISO8859-5"}, #line 22 "./iconv_open-aix.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str20, "ISO8859-15"}, #line 15 "./iconv_open-aix.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str21, "ISO8859-3"}, #line 31 "./iconv_open-aix.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str22, "IBM-921"}, #line 35 "./iconv_open-aix.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str23, "IBM-1046"}, #line 20 "./iconv_open-aix.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str24, "ISO8859-8"}, #line 26 "./iconv_open-aix.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str25, "IBM-856"}, #line 37 "./iconv_open-aix.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str26, "IBM-1125"}, #line 18 "./iconv_open-aix.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str27, "ISO8859-6"}, #line 29 "./iconv_open-aix.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str28, "IBM-865"}, #line 32 "./iconv_open-aix.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str29, "IBM-922"}, #line 39 "./iconv_open-aix.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str30, "IBM-1252"}, #line 21 "./iconv_open-aix.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str31, "ISO8859-9"}, {-1}, #line 34 "./iconv_open-aix.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str33, "IBM-943"}, #line 16 "./iconv_open-aix.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str34, "ISO8859-4"}, #line 13 "./iconv_open-aix.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str35, "ISO8859-1"}, {-1}, {-1}, #line 38 "./iconv_open-aix.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str38, "IBM-1129"}, {-1}, #line 30 "./iconv_open-aix.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str40, "IBM-869"}, #line 36 "./iconv_open-aix.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str41, "IBM-1124"}, {-1}, {-1}, #line 28 "./iconv_open-aix.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str44, "IBM-861"} }; #ifdef __GNUC__ __inline #ifdef __GNUC_STDC_INLINE__ __attribute__ ((__gnu_inline__)) #endif #endif const struct mapping * mapping_lookup (register const char *str, register unsigned int len) { if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH) { register int key = mapping_hash (str, len); if (key <= MAX_HASH_VALUE && key >= 0) { register int o = mappings[key].standard_name; if (o >= 0) { register const char *s = o + stringpool; if (*str == *s && !strcmp (str + 1, s + 1)) return &mappings[key]; } } } return 0; } gcal-3.6.3/lib/iconv_open-irix.gperf0000644000175000017500000000136411534672763014277 00000000000000struct mapping { int standard_name; const char vendor_name[10 + 1]; }; %struct-type %language=ANSI-C %define slot-name standard_name %define hash-function-name mapping_hash %define lookup-function-name mapping_lookup %readonly-tables %global-table %define word-array-name mappings %pic %% # On IRIX 6.5, look in /usr/lib/iconv and /usr/lib/international/encodings. ISO-8859-1, "ISO8859-1" ISO-8859-2, "ISO8859-2" ISO-8859-3, "ISO8859-3" ISO-8859-4, "ISO8859-4" ISO-8859-5, "ISO8859-5" ISO-8859-6, "ISO8859-6" ISO-8859-7, "ISO8859-7" ISO-8859-8, "ISO8859-8" ISO-8859-9, "ISO8859-9" ISO-8859-15, "ISO8859-15" KOI8-R, "KOI8" CP855, "DOS855" CP1251, "WIN1251" GB2312, "eucCN" EUC-JP, "eucJP" EUC-KR, "eucKR" EUC-TW, "eucTW" SHIFT_JIS, "sjis" TIS-620, "TIS620" gcal-3.6.3/lib/w32spawn.h0000644000175000017500000001635212076511424011766 00000000000000/* Auxiliary functions for the creation of subprocesses. Native Windows API. Copyright (C) 2001, 2003-2013 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 . */ /* Get declarations of the native Windows API functions. */ #define WIN32_LEAN_AND_MEAN #include /* 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. */ #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" 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-3.6.3/lib/langinfo.in.h0000644000175000017500000001222712125375410012477 00000000000000/* -*- buffer-read-only: t -*- vi: set ro: */ /* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* Substitute for and wrapper around . Copyright (C) 2009-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, 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 THOUSEP 10002 /* 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 /* 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-3.6.3/lib/unistd.in.h0000644000175000017500000014550212125375411012214 00000000000000/* -*- buffer-read-only: t -*- vi: set ro: */ /* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* Substitute for and wrapper around . Copyright (C) 2003-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, see . */ #ifndef _@GUARD_PREFIX@_UNISTD_H #if __GNUC__ >= 3 @PRAGMA_SYSTEM_HEADER@ #endif @PRAGMA_COLUMNS@ /* The include_next requires a split double-inclusion guard. */ #if @HAVE_UNISTD_H@ # @INCLUDE_NEXT@ @NEXT_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 . */ /* 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_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 _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 # 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 !@HAVE_GETDTABLESIZE@ _GL_FUNCDECL_SYS (getdtablesize, int, (void)); # endif _GL_CXXALIAS_SYS (getdtablesize, int, (void)); _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_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 !@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)); _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 !@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)); _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 /* _@GUARD_PREFIX@_UNISTD_H */ gcal-3.6.3/lib/gl_list.h0000644000175000017500000010602712076511424011736 00000000000000/* Abstract sequential list data type. Copyright (C) 2006-2013 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 _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-3.6.3/lib/filename.h0000644000175000017500000000365212076511424012061 00000000000000/* Basic filename support macros. Copyright (C) 2001-2004, 2007-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 . */ #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-3.6.3/lib/streq.h0000644000175000017500000000777012125375411011443 00000000000000/* -*- buffer-read-only: t -*- vi: set ro: */ /* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* Optimized string comparison. Copyright (C) 2001-2002, 2007, 2009-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 . */ /* 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-3.6.3/lib/mbsinit.c0000644000175000017500000000370312076511424011736 00000000000000/* Test for initial conversion state. Copyright (C) 2008-2013 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-3.6.3/lib/dup-safer.c0000644000175000017500000000202612076511423012153 00000000000000/* Invoke dup, but avoid some glitches. Copyright (C) 2001, 2004-2006, 2009-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 . */ /* 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-3.6.3/lib/exitfail.h0000644000175000017500000000140212076511423012074 00000000000000/* Failure exit status Copyright (C) 2002, 2009-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 . */ extern int volatile exit_failure; gcal-3.6.3/lib/floor.c0000644000175000017500000000644712076511424011422 00000000000000/* Round towards negative infinity. Copyright (C) 2007, 2010-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 . */ /* 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-3.6.3/lib/log10.c0000644000175000017500000000220512076511424011207 00000000000000/* Base 10 logarithmic function. Copyright (C) 2012-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 . */ #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-3.6.3/lib/waitpid.c0000644000175000017500000000210612125375412011726 00000000000000/* -*- buffer-read-only: t -*- vi: set ro: */ /* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* Wait for process state change. Copyright (C) 2001-2003, 2005-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, 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-3.6.3/lib/sys_socket.in.h0000644000175000017500000005452412125375411013077 00000000000000/* -*- buffer-read-only: t -*- vi: set ro: */ /* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* Provide a sys/socket header file for systems lacking it (read: MinGW) and for systems where it is incomplete. Copyright (C) 2005-2013 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 _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 typedef unsigned short sa_family_t; # 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-3.6.3/lib/msvc-nothrow.h0000644000175000017500000000314212125375410012737 00000000000000/* -*- buffer-read-only: t -*- vi: set ro: */ /* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* Wrappers that don't throw invalid parameter notifications with MSVC runtime libraries. Copyright (C) 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, 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-3.6.3/lib/fopen.c0000644000175000017500000000664512076511424011410 00000000000000/* Open a stream to a file. Copyright (C) 2007-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 . */ /* 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-3.6.3/lib/c-strcaseeq.h0000644000175000017500000001112612125375410012504 00000000000000/* -*- buffer-read-only: t -*- vi: set ro: */ /* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* Optimized case-insensitive string comparison in C locale. Copyright (C) 2001-2002, 2007, 2009-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 . */ /* Written by Bruno Haible . */ #include "c-strcase.h" #include "c-ctype.h" /* STRCASEEQ allows to optimize string comparison with a small literal string. STRCASEEQ (s, "UTF-8", 'U','T','F','-','8',0,0,0,0) is semantically equivalent to c_strcasecmp (s, "UTF-8") == 0 just faster. */ /* Help GCC to generate good code for string comparisons with immediate strings. */ #if defined (__GNUC__) && defined (__OPTIMIZE__) /* Case insensitive comparison of ASCII characters. */ # if C_CTYPE_ASCII # define CASEEQ(other,upper) \ (c_isupper (upper) ? ((other) & ~0x20) == (upper) : (other) == (upper)) # elif C_CTYPE_CONSECUTIVE_UPPERCASE && C_CTYPE_CONSECUTIVE_LOWERCASE # define CASEEQ(other,upper) \ (c_isupper (upper) ? (other) == (upper) || (other) == (upper) - 'A' + 'a' : (other) == (upper)) # else # define CASEEQ(other,upper) \ (c_toupper (other) == (upper)) # endif static inline int strcaseeq9 (const char *s1, const char *s2) { return c_strcasecmp (s1 + 9, s2 + 9) == 0; } static inline int strcaseeq8 (const char *s1, const char *s2, char s28) { if (CASEEQ (s1[8], s28)) { if (s28 == 0) return 1; else return strcaseeq9 (s1, s2); } else return 0; } static inline int strcaseeq7 (const char *s1, const char *s2, char s27, char s28) { if (CASEEQ (s1[7], s27)) { if (s27 == 0) return 1; else return strcaseeq8 (s1, s2, s28); } else return 0; } static inline int strcaseeq6 (const char *s1, const char *s2, char s26, char s27, char s28) { if (CASEEQ (s1[6], s26)) { if (s26 == 0) return 1; else return strcaseeq7 (s1, s2, s27, s28); } else return 0; } static inline int strcaseeq5 (const char *s1, const char *s2, char s25, char s26, char s27, char s28) { if (CASEEQ (s1[5], s25)) { if (s25 == 0) return 1; else return strcaseeq6 (s1, s2, s26, s27, s28); } else return 0; } static inline int strcaseeq4 (const char *s1, const char *s2, char s24, char s25, char s26, char s27, char s28) { if (CASEEQ (s1[4], s24)) { if (s24 == 0) return 1; else return strcaseeq5 (s1, s2, s25, s26, s27, s28); } else return 0; } static inline int strcaseeq3 (const char *s1, const char *s2, char s23, char s24, char s25, char s26, char s27, char s28) { if (CASEEQ (s1[3], s23)) { if (s23 == 0) return 1; else return strcaseeq4 (s1, s2, s24, s25, s26, s27, s28); } else return 0; } static inline int strcaseeq2 (const char *s1, const char *s2, char s22, char s23, char s24, char s25, char s26, char s27, char s28) { if (CASEEQ (s1[2], s22)) { if (s22 == 0) return 1; else return strcaseeq3 (s1, s2, s23, s24, s25, s26, s27, s28); } else return 0; } static inline int strcaseeq1 (const char *s1, const char *s2, char s21, char s22, char s23, char s24, char s25, char s26, char s27, char s28) { if (CASEEQ (s1[1], s21)) { if (s21 == 0) return 1; else return strcaseeq2 (s1, s2, s22, s23, s24, s25, s26, s27, s28); } else return 0; } static inline int strcaseeq0 (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 (CASEEQ (s1[0], s20)) { if (s20 == 0) return 1; else return strcaseeq1 (s1, s2, s21, s22, s23, s24, s25, s26, s27, s28); } else return 0; } #define STRCASEEQ(s1,s2,s20,s21,s22,s23,s24,s25,s26,s27,s28) \ strcaseeq0 (s1, s2, s20, s21, s22, s23, s24, s25, s26, s27, s28) #else #define STRCASEEQ(s1,s2,s20,s21,s22,s23,s24,s25,s26,s27,s28) \ (c_strcasecmp (s1, s2) == 0) #endif gcal-3.6.3/lib/unistdio/0000755000175000017500000000000012125376242012042 500000000000000gcal-3.6.3/lib/unistdio/u8-sprintf.c0000644000175000017500000000205112125375412014141 00000000000000/* -*- buffer-read-only: t -*- vi: set ro: */ /* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* Formatted output to strings. Copyright (C) 1999, 2002, 2005-2007, 2009-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 . */ #include /* Specification. */ #include "unistdio.h" #include #define SPRINTF u8_sprintf #define VSPRINTF u8_vsprintf #define FCHAR_T char #define DCHAR_T uint8_t #include "u-sprintf.h" gcal-3.6.3/lib/unistdio/u-vsprintf.h0000644000175000017500000000400712125375412014247 00000000000000/* -*- buffer-read-only: t -*- vi: set ro: */ /* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* Formatted output to strings. Copyright (C) 1999, 2002, 2006-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 . */ #ifndef SIZE_MAX # define SIZE_MAX ((size_t) -1) #endif int VSPRINTF (DCHAR_T *buf, const FCHAR_T *format, va_list args) { /* Pass an infinite length. But note that *vasnprintf may fail if the buffer argument is larger than INT_MAX (if that fits into a 'size_t' at all). Also note that glibc's iconv fails with E2BIG when we pass a length that is so large that buf + length wraps around, i.e. (uintptr_t) (buf + length) < (uintptr_t) buf. */ size_t length; DCHAR_T *result; /* Set length = min (SIZE_MAX, INT_MAX, - (uintptr_t) buf - 1). */ length = (SIZE_MAX < INT_MAX ? SIZE_MAX : INT_MAX); if (length > (~ (uintptr_t) buf) / sizeof (DCHAR_T)) length = (~ (uintptr_t) buf) / sizeof (DCHAR_T); result = VASNPRINTF (buf, &length, format, args); if (result == NULL) return -1; /* The infinite buffer size guarantees that the result is not malloc()ed. */ if (result != buf) { /* length is near SIZE_MAX. */ free (result); errno = EOVERFLOW; return -1; } if (length > INT_MAX) { errno = EOVERFLOW; return -1; } /* Return the number of resulting units, excluding the trailing NUL. */ return length; } gcal-3.6.3/lib/unistdio/u8-vsprintf.c0000644000175000017500000000217712125375412014340 00000000000000/* -*- buffer-read-only: t -*- vi: set ro: */ /* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* Formatted output to strings. Copyright (C) 1999, 2002, 2006-2007, 2009-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 . */ #include /* Specification. */ #include "unistdio.h" #include #include #include #include #include #define VSPRINTF u8_vsprintf #define VASNPRINTF u8_vasnprintf #define FCHAR_T char #define DCHAR_T uint8_t #include "u-vsprintf.h" gcal-3.6.3/lib/unistdio/ulc-printf-parse.c0000644000175000017500000000214012125375412015314 00000000000000/* -*- buffer-read-only: t -*- vi: set ro: */ /* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* Formatted output to strings. Copyright (C) 1999-2000, 2002, 2006-2007, 2009-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 . */ #include /* Specification. */ #include "unistdio/u-printf-parse.h" #define PRINTF_PARSE ulc_printf_parse #define CHAR_T char #define CHAR_T_ONLY_ASCII 1 #define DIRECTIVE char_directive #define DIRECTIVES char_directives #include "printf-parse.c" gcal-3.6.3/lib/unistdio/u-printf-parse.h0000644000175000017500000000210512125375412015003 00000000000000/* -*- buffer-read-only: t -*- vi: set ro: */ /* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* Parse printf format string. Copyright (C) 1999, 2002, 2005, 2007, 2009-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 . */ #ifndef _U_PRINTF_PARSE_H #define _U_PRINTF_PARSE_H #include "unistdio/u-printf-args.h" /* Parametrization of printf-parse.h. */ #undef ENABLE_UNISTDIO #define ENABLE_UNISTDIO 1 #include "printf-parse.h" #endif /* _U_PRINTF_PARSE_H */ gcal-3.6.3/lib/unistdio/u-sprintf.h0000644000175000017500000000202612125375412014060 00000000000000/* -*- buffer-read-only: t -*- vi: set ro: */ /* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* Formatted output to strings. Copyright (C) 1999, 2002, 2005-2007, 2009-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 . */ int SPRINTF (DCHAR_T *buf, const FCHAR_T *format, ...) { va_list args; int result; va_start (args, format); result = VSPRINTF (buf, format, args); va_end (args); return result; } gcal-3.6.3/lib/unistdio/u8-vasnprintf.c0000644000175000017500000000341212125375412014650 00000000000000/* -*- buffer-read-only: t -*- vi: set ro: */ /* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* Formatted output to UTF-8 strings. Copyright (C) 1999, 2002, 2006-2007, 2009-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 . */ /* Tell glibc's to provide a prototype for snprintf(). This must come before because may include , and once has been included, it's too late. */ #ifndef _GNU_SOURCE # define _GNU_SOURCE 1 #endif #include #include /* Specification. */ #include "unistdio.h" #include "uniconv.h" #include "unistr.h" #include "unistdio/u-printf-parse.h" #define VASNPRINTF u8_vasnprintf #define FCHAR_T char #define DIRECTIVE char_directive #define DIRECTIVES char_directives #define FCHAR_T_ONLY_ASCII 1 #define PRINTF_PARSE ulc_printf_parse #define DCHAR_T uint8_t #define DCHAR_T_IS_UINT8_T 1 #define DCHAR_CPY u8_cpy #define DCHAR_SET u8_set #define DCHAR_MBSNLEN u8_mbsnlen #define DCHAR_IS_UINT8_T 1 #define U16_TO_DCHAR u16_to_u8 #define U32_TO_DCHAR u32_to_u8 #define DCHAR_CONV_FROM_ENCODING u8_conv_from_encoding #define TCHAR_T char #include "vasnprintf.c" gcal-3.6.3/lib/unistdio/u-printf-args.h0000644000175000017500000000211312125375412014624 00000000000000/* -*- buffer-read-only: t -*- vi: set ro: */ /* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* Decomposed printf argument list. Copyright (C) 1999, 2002, 2005-2007, 2009-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 . */ #ifndef _U_PRINTF_ARGS_H #define _U_PRINTF_ARGS_H #include "unitypes.h" /* Parametrization of printf-args.h. */ #define ENABLE_UNISTDIO 1 #define PRINTF_FETCHARGS u_printf_fetchargs #include "printf-args.h" #endif /* _U_PRINTF_ARGS_H */ gcal-3.6.3/lib/unistdio/u-printf-args.c0000644000175000017500000000170312125375412014623 00000000000000/* -*- buffer-read-only: t -*- vi: set ro: */ /* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* Decomposed printf argument list. Copyright (C) 1999, 2002, 2006-2007, 2009-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 . */ #include /* Specification. */ #include "unistdio/u-printf-args.h" #include "printf-args.c" gcal-3.6.3/lib/sys_socket.c0000644000175000017500000000013412057472163012457 00000000000000#include #define _GL_SYS_SOCKET_INLINE _GL_EXTERN_INLINE #include "sys/socket.h" gcal-3.6.3/lib/binary-io.c0000644000175000017500000000012612032051700012142 00000000000000#include #define BINARY_IO_INLINE _GL_EXTERN_INLINE #include "binary-io.h" gcal-3.6.3/Makefile.am0000644000175000017500000000237112125364443011415 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-3.6.3/po/0000755000175000017500000000000012125376244010056 500000000000000gcal-3.6.3/po/da.po0000644000175000017500000040340612125376134010727 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: 2013-03-29 21:40+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" #: src/file-io.c:1561 #, 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:1564 src/file-io.c:1689 src/file-io.c:1702 msgid "failed" msgstr "mislykkedes" #: src/file-io.c:1564 src/file-io.c:1689 src/file-io.c:1702 msgid "success" msgstr "lykkedes" #: src/file-io.c:1684 #, 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:1685 msgid " `HERE' " msgstr " \"HER\" " #: src/file-io.c:1697 #, 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:352 src/gcal.c:523 src/gcal.c:2028 msgid "ARG" msgstr "ARG" #: src/gcal.c:1080 src/hd-data.c:69 msgid "Germany" msgstr "Tyskland" #: src/gcal.c:1081 msgid "U.S.A." msgstr "USA" #: src/gcal.c:1082 src/hd-data.c:72 msgid "Great Britain" msgstr "Storbritannien" #: src/gcal.c:1858 msgid "default" msgstr "standard" #: src/gcal.c:1957 msgid ":" msgstr ":" #: src/gcal.c:1967 msgid "Y" msgstr "Ã…" #: src/gcal.c:1972 msgid "M" msgstr "M" #: src/gcal.c:1977 msgid "W" msgstr "U" #: src/gcal.c:1982 msgid "D" msgstr "D" #: src/gcal.c:2073 msgid "Fixed date list:" msgstr "Fast datoliste:" #: src/gcal.c:2090 src/gcal.c:2105 msgid "environment variable" msgstr "miljøvariabel" #: src/gcal.c:2274 #, 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:2461 src/gcal.c:2489 src/gcal.c:6232 src/rc-use.c:1828 #: src/rc-use.c:1888 src/rc-use.c:1937 src/rc-use.c:2207 src/rc-utils.c:390 #: src/rc-utils.c:411 src/utils.c:342 src/utils.c:365 src/utils.c:384 #: src/utils.c:679 src/tcal.c:331 src/tcal.c:339 src/txt2gcal.c:270 #: src/txt2gcal.c:275 src/gcal2txt.c:270 src/gcal2txt.c:275 msgid "Internal" msgstr "Intern" #: src/gcal.c:2870 msgid "response file" msgstr "responsfil" #: src/gcal.c:2870 src/gcal.c:2878 msgid "Created" msgstr "Oprettet" #: src/gcal.c:2878 msgid "shell script" msgstr "skalprogram" #: src/gcal.c:3089 #, 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:3141 #, 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:4951 src/gcal.c:4984 msgid "command line" msgstr "kommandolinje" #: src/gcal.c:5901 #, c-format msgid "%s: option `%s' is ambiguous" msgstr "%s: flag \"%s\" er tvetydig" #: src/gcal.c:5906 src/tcal.c:895 src/txt2gcal.c:716 src/gcal2txt.c:715 #, c-format msgid "%s: unrecognized option `%s'" msgstr "%s: ukendt flag \"%s\"" #: src/gcal.c:5909 #, c-format msgid "%s: invalid option -- %s" msgstr "%s: ugyldigt flag -- %s" #: src/gcal.c:5916 #, c-format msgid "%s: option `--%s' doesn't allow an argument" msgstr "%s: flaget \"--%s\" tillader intet argument" #: src/gcal.c:5921 #, c-format msgid "%s: option `%s' doesn't allow an argument" msgstr "%s: flag \"%s\" tager intet argument" #: src/gcal.c:5927 #, c-format msgid "%s: option `%s' requires an argument" msgstr "%s: flag \"%s\" behøver et argument" #: src/gcal.c:5931 #, c-format msgid "%s: option requires an argument -- %s" msgstr "%s: flag behøver et argument -- %s" #: src/gcal.c:5936 src/tcal.c:941 #, c-format msgid "%s: option with invalid argument -- %s" msgstr "%s: flag med ugyldigt argument -- %s" #: src/gcal.c:5941 #, c-format msgid "%s: option with ambiguous argument -- %s" msgstr "%s: flag med tvetydigt argument -- %s" #: src/gcal.c:6001 #, 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:63 msgid "Australia" msgstr "Australien" #: src/hd-data.c:64 src/hd-data.c:112 msgid "Belgium" msgstr "Belgien" #: src/hd-data.c:65 src/hd-data.c:121 msgid "Brazil" msgstr "Brasilien" #: src/hd-data.c:66 msgid "Canada" msgstr "Canada" #: src/hd-data.c:67 msgid "Switzerland" msgstr "Schweiz" #: src/hd-data.c:68 src/hd-data.c:174 msgid "China" msgstr "Kina" #: src/hd-data.c:70 src/hd-data.c:208 msgid "Spain" msgstr "Spanien" #: src/hd-data.c:71 src/hd-data.c:215 msgid "France" msgstr "Frankrig" #: src/hd-data.c:73 src/hd-data.c:244 msgid "Israel" msgstr "Israel" #: src/hd-data.c:74 src/hd-data.c:249 msgid "Italy" msgstr "Italien" #: src/hd-data.c:75 src/hd-data.c:252 msgid "Japan" msgstr "Japan" #: src/hd-data.c:76 src/hd-data.c:260 msgid "Republic of Korea" msgstr "Republikken Korea" #: src/hd-data.c:77 src/hd-data.c:292 msgid "Mexico" msgstr "Mexico" #: src/hd-data.c:78 src/hd-data.c:301 msgid "Netherlands" msgstr "Holland" #: src/hd-data.c:79 src/hd-data.c:307 msgid "New Zealand" msgstr "New Zealand" #: src/hd-data.c:80 src/hd-data.c:319 msgid "Portugal" msgstr "Portugal" #: src/hd-data.c:81 src/hd-data.c:325 msgid "Russian Federation" msgstr "Den Russiske Føderation" #: src/hd-data.c:82 msgid "United States" msgstr "USA" #: src/hd-data.c:84 msgid "Andorra" msgstr "Andorra" #: src/hd-data.c:85 msgid "United Arab Emirates" msgstr "De Forenede Arabiske Emirater" #: src/hd-data.c:86 msgid "Afghanistan" msgstr "Afghanistan" #: src/hd-data.c:87 msgid "Antigua and Barbuda" msgstr "Antigua og Barbuda" #: src/hd-data.c:88 msgid "Anguilla" msgstr "Anguilla" #: src/hd-data.c:89 msgid "Albania" msgstr "Albanien" #: src/hd-data.c:90 msgid "Armenia" msgstr "Armenien" #: src/hd-data.c:91 msgid "Netherlands Antilles/Bonaire" msgstr "Nederlandske Antiller/Bonaire" #: src/hd-data.c:92 msgid "Netherlands Antilles/Curaçao" msgstr "Nederlandske Antiller/Curaçao" #: src/hd-data.c:93 msgid "Netherlands Antilles/St Maarten" msgstr "Nederlandske Antiller/St Maarten" #: src/hd-data.c:94 msgid "Netherlands Antilles/Saba and Statia" msgstr "Nederlandske Antiller/Saba og Statia" #: src/hd-data.c:95 msgid "Angola #" msgstr "Angola #" #: src/hd-data.c:96 msgid "Argentina" msgstr "Argentina" #: src/hd-data.c:97 msgid "American Samoa" msgstr "Amerikansk Samoa" #: src/hd-data.c:98 msgid "Austria" msgstr "Østrig" #: src/hd-data.c:99 msgid "Australia/Canberra" msgstr "Australien/Canberra" #: src/hd-data.c:100 msgid "Australia/Northern Territory" msgstr "Australien/Northern Territory" #: src/hd-data.c:101 msgid "Australia/Queensland" msgstr "Australien/Queensland" #: src/hd-data.c:102 msgid "Australia/Southern Australia" msgstr "Australien/Southern Australia" #: src/hd-data.c:103 msgid "Australia/New South Wales" msgstr "Australien/New South Wales" #: src/hd-data.c:104 msgid "Australia/Tasmania" msgstr "Australien/Tasmanien" #: src/hd-data.c:105 msgid "Australia/Victoria" msgstr "Australien/Victoria" #: src/hd-data.c:106 msgid "Australia/Western Australia" msgstr "Australien/Western Australia" #: src/hd-data.c:107 msgid "Aruba" msgstr "Aruba" #: src/hd-data.c:108 msgid "Azerbaijan" msgstr "Aserbajdsjan" #: src/hd-data.c:109 msgid "Bosnia-Herzegovina" msgstr "Bosnien-Hercegovina" #: src/hd-data.c:110 msgid "Barbados" msgstr "Barbados" #: src/hd-data.c:111 msgid "Bangladesh #" msgstr "Bangladesh #" #: src/hd-data.c:113 msgid "Burkina Faso" msgstr "Burkina Faso" #: src/hd-data.c:114 msgid "Bulgaria" msgstr "Bulgarien" #: src/hd-data.c:115 msgid "Bahrain" msgstr "Bahrain" #: src/hd-data.c:116 msgid "Burundi #" msgstr "Burundi #" #: src/hd-data.c:117 msgid "Benin #" msgstr "Benin #" #: src/hd-data.c:118 msgid "Bermuda" msgstr "Bermuda" #: src/hd-data.c:119 msgid "Brunei" msgstr "Brunei" #: src/hd-data.c:120 msgid "Bolivia" msgstr "Bolivia" #: src/hd-data.c:122 msgid "Bahamas" msgstr "Bahamas" #: src/hd-data.c:123 msgid "Bhutan #" msgstr "Bhutan #" #: src/hd-data.c:124 msgid "Bouvet Island" msgstr "Bouvetøen" #: src/hd-data.c:125 msgid "Botswana" msgstr "Botswana" #: src/hd-data.c:126 msgid "Belarus" msgstr "Hviderusland" #: src/hd-data.c:127 msgid "Belize" msgstr "Belize" #: src/hd-data.c:128 msgid "Canada/Alberta" msgstr "Canada/Alberta" #: src/hd-data.c:129 msgid "Canada/British Columbia" msgstr "Canada/British Columbia" #: src/hd-data.c:130 msgid "Canada/Manitoba" msgstr "Canada/Manitoba" #: src/hd-data.c:131 msgid "Canada/New Brunswick" msgstr "Canada/New Brunswick" #: src/hd-data.c:132 msgid "Canada/Newfoundland and Labrador" msgstr "Canada/Newfoundland og Labrador" #: src/hd-data.c:133 msgid "Canada/Nova Scotia" msgstr "Canada/Nova Scotia" #: src/hd-data.c:134 msgid "Canada/Nordwest Territories" msgstr "Canada/Nordwest Territories" #: src/hd-data.c:135 msgid "Canada/Ontario" msgstr "Canada/Ontario" #: src/hd-data.c:136 msgid "Canada/Prince Edward Island" msgstr "Canada/Prince Edward Island" #: src/hd-data.c:137 msgid "Canada/Québec" msgstr "Canada/Québec" #: src/hd-data.c:138 msgid "Canada/Saskatchewan" msgstr "Canada/Saskatchewan" #: src/hd-data.c:139 msgid "Canada/Yukon" msgstr "Canada/Yukon" #: src/hd-data.c:140 msgid "Cocos Islands (Keeling)" msgstr "Kokosøerne (Keeling)" #: src/hd-data.c:141 msgid "Democratic Republic of Congo #" msgstr "Den Demokratiske Republik Congo #" #: src/hd-data.c:142 msgid "Central African Republic #" msgstr "Den Centralafrikanske Republik #" #: src/hd-data.c:143 msgid "Republic of Congo #" msgstr "Republikken Congo #" #: src/hd-data.c:144 msgid "Switzerland/Aargau" msgstr "Schweiz/Aargau" #: src/hd-data.c:145 msgid "Switzerland/Appenzell Innerrhoden" msgstr "Schweiz/Appenzell Innerrhoden" #: src/hd-data.c:146 msgid "Switzerland/Appenzell Ausserrhoden" msgstr "Schweiz/Appenzell Ausserrhoden" #: src/hd-data.c:147 msgid "Switzerland/Bern" msgstr "Schweiz/Bern" #: src/hd-data.c:148 msgid "Switzerland/Basel-Land" msgstr "Schweiz/Basel-Land" #: src/hd-data.c:149 msgid "Switzerland/Basel-Stadt" msgstr "Schweiz/Basel-Stadt" #: src/hd-data.c:150 msgid "Switzerland/Fribourg" msgstr "Schweiz/Fribourg" #: src/hd-data.c:151 msgid "Switzerland/Genève" msgstr "Schweiz/Genève" #: src/hd-data.c:152 msgid "Switzerland/Glarus" msgstr "Schweiz/Glarus" #: src/hd-data.c:153 msgid "Switzerland/Graubünden" msgstr "Schweiz/Graubünden" #: src/hd-data.c:154 msgid "Switzerland/Jura" msgstr "Schweiz/Jura" #: src/hd-data.c:155 msgid "Switzerland/Luzern" msgstr "Schweiz/Luzern" #: src/hd-data.c:156 msgid "Switzerland/Neuchâtel" msgstr "Schweiz/Neuchâtel" #: src/hd-data.c:157 msgid "Switzerland/Nidwalden" msgstr "Schweiz/Nidwalden" #: src/hd-data.c:158 msgid "Switzerland/Obwalden" msgstr "Schweiz/Obwalden" #: src/hd-data.c:159 msgid "Switzerland/St Gallen" msgstr "Schweiz/St Gallen" #: src/hd-data.c:160 msgid "Switzerland/Schaffhausen" msgstr "Schweiz/Schaffhausen" #: src/hd-data.c:161 msgid "Switzerland/Solothurn" msgstr "Schweiz/Solothurn" #: src/hd-data.c:162 msgid "Switzerland/Schwyz" msgstr "Schweiz/Schwyz" #: src/hd-data.c:163 msgid "Switzerland/Thurgau" msgstr "Schweiz/Thurgau" #: src/hd-data.c:164 msgid "Switzerland/Ticino" msgstr "Schweiz/Ticino" #: src/hd-data.c:165 msgid "Switzerland/Uri" msgstr "Schweiz/Uri" #: src/hd-data.c:166 msgid "Switzerland/Vaud" msgstr "Schweiz/Vaud" #: src/hd-data.c:167 msgid "Switzerland/Valais" msgstr "Schweiz/Valais" #: src/hd-data.c:168 msgid "Switzerland/Zug" msgstr "Schweiz/Zug" #: src/hd-data.c:169 msgid "Switzerland/Zürich" msgstr "Schweiz/Zürich" #: src/hd-data.c:170 msgid "Côte d'Ivoire" msgstr "Elfenbenskysten" #: src/hd-data.c:171 msgid "Cook Islands" msgstr "Cookøerne" #: src/hd-data.c:172 msgid "Chile" msgstr "Chile" #: src/hd-data.c:173 msgid "Cameroon" msgstr "Cameroon" #: src/hd-data.c:175 msgid "Colombia" msgstr "Columbia" #: src/hd-data.c:176 msgid "Costa Rica" msgstr "Costa Rica" #: src/hd-data.c:177 msgid "Cuba" msgstr "Cuba" #: src/hd-data.c:178 msgid "Cape Verde" msgstr "Kap Verde" #: src/hd-data.c:179 msgid "Christmas Islands" msgstr "Juleøerne" #: src/hd-data.c:180 msgid "Cyprus" msgstr "Cypern" #: src/hd-data.c:181 msgid "Czech Republic" msgstr "Den Tjekkiske Republik" #: src/hd-data.c:182 msgid "Germany/Brandenburg" msgstr "Tyskland/Brandenburg" #: src/hd-data.c:183 msgid "Germany/Berlin" msgstr "Tyskland/Berlin" #: src/hd-data.c:184 msgid "Germany/Baden-Württemberg" msgstr "Tyskland/Baden-Württemberg" #: src/hd-data.c:185 msgid "Germany/Bavaria" msgstr "Tyskland/Bayern" #: src/hd-data.c:186 msgid "Germany/Bremen" msgstr "Tyskland/Bremen" #: src/hd-data.c:187 msgid "Germany/Hesse" msgstr "Tyskland/Hessen" #: src/hd-data.c:188 msgid "Germany/Hamburg" msgstr "Tyskland/Hamburg" #: src/hd-data.c:189 msgid "Germany/Mecklenburg-West Pomerania" msgstr "Tyskland/Mecklenburg-Vorpommern" #: src/hd-data.c:190 msgid "Germany/Lower Saxony" msgstr "Tyskland/Niedersachsen" #: src/hd-data.c:191 msgid "Germany/North Rhine-Westphalia" msgstr "Tyskland/Nordrhein-Westfalen" #: src/hd-data.c:192 msgid "Germany/Rhineland Palatinate" msgstr "Tyskland/Rheinland-Pfalz" #: src/hd-data.c:193 msgid "Germany/Schleswig-Holstein" msgstr "Tyskland/Schleswig-Holstein" #: src/hd-data.c:194 msgid "Germany/Saar" msgstr "Tyskland/Saarland" #: src/hd-data.c:195 msgid "Germany/Saxony" msgstr "Tyskland/Sachsen" #: src/hd-data.c:196 msgid "Germany/Saxony-Anhalt" msgstr "Tyskland/Sachsen-Anhalt" #: src/hd-data.c:197 msgid "Germany/Thuringia" msgstr "Tyskland/Thüringen" #: src/hd-data.c:198 msgid "Djibouti" msgstr "Djibouti" #: src/hd-data.c:199 msgid "Denmark" msgstr "Danmark" #: src/hd-data.c:200 msgid "Dominica" msgstr "Dominica" #: src/hd-data.c:201 msgid "Dominican Republic" msgstr "Dominikanske Republik" #: src/hd-data.c:202 msgid "Algeria" msgstr "Algeriet" #: src/hd-data.c:203 msgid "Ecuador" msgstr "Ecuador" #: src/hd-data.c:204 msgid "Estonia" msgstr "Estland" #: src/hd-data.c:205 msgid "Egypt" msgstr "Ægypten" #: src/hd-data.c:206 msgid "Western Sahara" msgstr "Vestsahara" #: src/hd-data.c:207 msgid "Eritrea" msgstr "Eritrea" #: src/hd-data.c:209 msgid "Ethiopia" msgstr "Etiopien" #: src/hd-data.c:210 msgid "Finland" msgstr "Finland" #: src/hd-data.c:211 msgid "Fiji #" msgstr "Fiji #" #: src/hd-data.c:212 msgid "Falkland Islands (Malvinas)" msgstr "Falklandsøerne (Malvinas)" #: src/hd-data.c:213 msgid "Federated States of Micronesia" msgstr "Føderale Statsforbund Mikronesien" #: src/hd-data.c:214 msgid "Faroes" msgstr "Færøerne" #: src/hd-data.c:216 msgid "Gabon #" msgstr "Gabon #" #: src/hd-data.c:217 msgid "Great Britain/England and Wales" msgstr "Storbritannien/England og Wales" #: src/hd-data.c:218 msgid "Great Britain/Northern Ireland" msgstr "Storbritannien/Nordirland" #: src/hd-data.c:219 msgid "Great Britain/Scotland" msgstr "Storbritannien/Skotland" #: src/hd-data.c:220 msgid "Grenada" msgstr "Grenada" #: src/hd-data.c:221 msgid "Georgia" msgstr "Georgien" #: src/hd-data.c:222 msgid "French Guiana" msgstr "Fransk Guyana" #: src/hd-data.c:223 msgid "Ghana" msgstr "Ghana" #: src/hd-data.c:224 msgid "Gibraltar" msgstr "Gibraltar" #: src/hd-data.c:225 msgid "Greenland" msgstr "Grønland" #: src/hd-data.c:226 msgid "Gambia" msgstr "Gambia" #: src/hd-data.c:227 msgid "Guinea" msgstr "Guinea" #: src/hd-data.c:228 msgid "Guadeloupe" msgstr "Guadeloupe" #: src/hd-data.c:229 msgid "Equatorial Guinea" msgstr "Ækvatorialguinea" #: src/hd-data.c:230 msgid "Greece" msgstr "Grækenland" #: src/hd-data.c:231 msgid "South Georgia and South Sandwich Islands" msgstr "Sydgeorgien og Sydsandwichøerne" #: src/hd-data.c:232 msgid "Guatemala" msgstr "Guatemala" #: src/hd-data.c:233 msgid "Guam" msgstr "Guam" #: src/hd-data.c:234 msgid "Guinea-Bissau #" msgstr "Guinea-Bissau #" #: src/hd-data.c:235 msgid "Guyana #" msgstr "Guyana #" #: src/hd-data.c:236 msgid "Hong Kong" msgstr "Hong Kong" #: src/hd-data.c:237 msgid "Heard and Mc Donald Islands" msgstr "Heard- og McDonaldøerne" #: src/hd-data.c:238 msgid "Honduras" msgstr "Honduras" #: src/hd-data.c:239 msgid "Croatia" msgstr "Kroatien" #: src/hd-data.c:240 msgid "Haiti" msgstr "Haiti" #: src/hd-data.c:241 msgid "Hungary" msgstr "Ungarn" #: src/hd-data.c:242 msgid "Indonesia #" msgstr "Indonesien #" #: src/hd-data.c:243 msgid "Ireland" msgstr "Irland" #: src/hd-data.c:245 msgid "India #" msgstr "Indien #" #: src/hd-data.c:246 msgid "Iraq" msgstr "Irak" #: src/hd-data.c:247 msgid "Islamic Republic of Iran" msgstr "Den Islamiske Republik Iran" #: src/hd-data.c:248 msgid "Iceland" msgstr "Island" #: src/hd-data.c:250 msgid "Jamaica" msgstr "Jamaica" #: src/hd-data.c:251 msgid "Jordan" msgstr "Jordan" #: src/hd-data.c:253 msgid "Kenya #" msgstr "Kenya #" #: src/hd-data.c:254 msgid "Kyrgyzstan" msgstr "Kirgisistan" #: src/hd-data.c:255 msgid "Cambodia #" msgstr "Cambodia #" #: src/hd-data.c:256 msgid "Kiribati #" msgstr "Kiribati #" #: src/hd-data.c:257 msgid "Comoros" msgstr "Comoros" #: src/hd-data.c:258 msgid "St Kitts and Nevis" msgstr "St Kitts og Nevis" #: src/hd-data.c:259 msgid "Democratic People's Republic of Korea" msgstr "Den Demokratiske Folkerepublik Korea" #: src/hd-data.c:261 msgid "Kuwait" msgstr "Kuwait" #: src/hd-data.c:262 msgid "Cayman Islands" msgstr "Caymanøerne" #: src/hd-data.c:263 msgid "Kazakhstan" msgstr "Kazakhstan" #: src/hd-data.c:264 msgid "Laos People's Democratic Republic #" msgstr "Den Demokratiske Folkerepublik Laos #" #: src/hd-data.c:265 msgid "Lebanon" msgstr "Libanon" #: src/hd-data.c:266 msgid "St Lucia" msgstr "St Lucia" #: src/hd-data.c:267 msgid "Liechtenstein" msgstr "Liechtenstein" #: src/hd-data.c:268 msgid "Sri Lanka #" msgstr "Sri Lanka #" #: src/hd-data.c:269 msgid "Liberia" msgstr "Liberia" #: src/hd-data.c:270 msgid "Lesotho" msgstr "Lesotho" #: src/hd-data.c:271 msgid "Lithuania" msgstr "Litauen" #: src/hd-data.c:272 msgid "Luxembourg" msgstr "Luxembourg" #: src/hd-data.c:273 msgid "Latvia" msgstr "Letland" #: src/hd-data.c:274 msgid "Libyan Arab Jamahiriya (Libya)" msgstr "Den Store Folkesocialistiske Libyske Arabiske Jamahiriya (Libyen)" #: src/hd-data.c:275 msgid "Morocco" msgstr "Marokko" #: src/hd-data.c:276 msgid "Monaco" msgstr "Monaco" #: src/hd-data.c:277 msgid "Republic of Moldova" msgstr "Republikken Moldova" #: src/hd-data.c:278 msgid "Madagascar #" msgstr "Madagaskar #" #: src/hd-data.c:279 msgid "Marshall Islands" msgstr "Marshalløerne" #: src/hd-data.c:280 msgid "Former Yugoslav Republic of Macedonia" msgstr "Tidligere Jugoslaviske Republik Makedonien" #: src/hd-data.c:281 msgid "Mali" msgstr "Mali" #: src/hd-data.c:282 msgid "Mongolia #" msgstr "Mongoliet #" #: src/hd-data.c:283 msgid "Macau" msgstr "Macau" #: src/hd-data.c:284 msgid "Northern Marian Islands (Saipan)" msgstr "De nordlige Marianerøer (Saipan)" #: src/hd-data.c:285 msgid "Martinique" msgstr "Martinique" #: src/hd-data.c:286 msgid "Mauritania" msgstr "Mauretanien" #: src/hd-data.c:287 msgid "Montserrat" msgstr "Montserrat" #: src/hd-data.c:288 msgid "Malta" msgstr "Malta" #: src/hd-data.c:289 msgid "Mauritius" msgstr "Mauritius" #: src/hd-data.c:290 msgid "Maldives" msgstr "Maldiverne" #: src/hd-data.c:291 msgid "Malawi" msgstr "Malawi" #: src/hd-data.c:293 msgid "Malaysia #" msgstr "Malaysia #" #: src/hd-data.c:294 msgid "Mozambique" msgstr "Mozambique" #: src/hd-data.c:295 msgid "Namibia" msgstr "Namibia" #: src/hd-data.c:296 msgid "New Caledonia" msgstr "Ny Kaledonien" #: src/hd-data.c:297 msgid "Niger" msgstr "Niger" #: src/hd-data.c:298 msgid "Norfolk Islands" msgstr "Norfolkøerne" #: src/hd-data.c:299 msgid "Nigeria" msgstr "Nigeria" #: src/hd-data.c:300 msgid "Nicaragua" msgstr "Nicaragua" #: src/hd-data.c:302 msgid "Myanmar (Burma) #" msgstr "Myanmar (Burma) #" #: src/hd-data.c:303 msgid "Norway" msgstr "Norge" #: src/hd-data.c:304 msgid "Nepal #" msgstr "Nepal #" #: src/hd-data.c:305 msgid "Nauru" msgstr "Nauru" #: src/hd-data.c:306 msgid "Niue" msgstr "Niue" #: src/hd-data.c:308 msgid "Oman" msgstr "Oman" #: src/hd-data.c:309 msgid "Panama" msgstr "Panama" #: src/hd-data.c:310 msgid "Peru" msgstr "Peru" #: src/hd-data.c:311 msgid "French Polynesia" msgstr "Fransk Polynesien" #: src/hd-data.c:312 msgid "Papua New Guinea" msgstr "Papua Ny Guinea" #: src/hd-data.c:313 msgid "Philippines" msgstr "Filippinerne" #: src/hd-data.c:314 msgid "Pakistan" msgstr "Pakistan" #: src/hd-data.c:315 msgid "Poland" msgstr "Polen" #: src/hd-data.c:316 msgid "Saint-Pierre and Miquelon" msgstr "Saint-Pierre og Miquelon" #: src/hd-data.c:317 msgid "Pitcairn" msgstr "Pitcairn" #: src/hd-data.c:318 msgid "Puerto Rico" msgstr "Puerto Rico" #: src/hd-data.c:320 msgid "Palau" msgstr "Palau" #: src/hd-data.c:321 msgid "Paraguay" msgstr "Paraguay" #: src/hd-data.c:322 msgid "Qatar" msgstr "Qatar" #: src/hd-data.c:323 msgid "Réunion" msgstr "Réunion" #: src/hd-data.c:324 msgid "Romania" msgstr "Rumænien" #: src/hd-data.c:326 msgid "Rwanda" msgstr "Rwanda" #: src/hd-data.c:327 msgid "Saudi Arabia" msgstr "Saudi-arabien" #: src/hd-data.c:328 msgid "Solomon Islands" msgstr "Salomonøerne" #: src/hd-data.c:329 msgid "Seychellen" msgstr "Seychellerne" #: src/hd-data.c:330 msgid "Sudan" msgstr "Sudan" #: src/hd-data.c:331 msgid "Sweden" msgstr "Sverige" #: src/hd-data.c:332 msgid "Singapore #" msgstr "Singapore #" #: src/hd-data.c:333 msgid "St Helena" msgstr "St Helena" #: src/hd-data.c:334 msgid "Slovenia" msgstr "Slovenien" #: src/hd-data.c:335 msgid "Svalbard and Jan Mayen Islands" msgstr "Svalbard og Jan Mayen-øerne" #: src/hd-data.c:336 msgid "Slovakia" msgstr "Slovakiet" #: src/hd-data.c:337 msgid "Sierra Leone" msgstr "Sierra Leone" #: src/hd-data.c:338 msgid "San Marino" msgstr "San Marino" #: src/hd-data.c:339 msgid "Senegal" msgstr "Senegal" #: src/hd-data.c:340 msgid "Somalia" msgstr "Somalia" #: src/hd-data.c:341 msgid "Suriname #" msgstr "Surinam #" #: src/hd-data.c:342 msgid "Sao Tomé and Principe" msgstr "Sao Tomé og Principe" #: src/hd-data.c:343 msgid "El Salvador" msgstr "El Salvador" #: src/hd-data.c:344 msgid "Syrian Arab Republic (Syria)" msgstr "Den Syriske Arabiske Republik (Syrien)" #: src/hd-data.c:345 msgid "Swaziland" msgstr "Swaziland" #: src/hd-data.c:346 msgid "Turks and Caicos Islands" msgstr "Turks- og Caicosøerne" #: src/hd-data.c:347 msgid "Chad" msgstr "Tchad" #: src/hd-data.c:348 msgid "Togo #" msgstr "Togo #" #: src/hd-data.c:349 msgid "Thailand #" msgstr "Thailand #" #: src/hd-data.c:350 msgid "Tajikistan" msgstr "Tajikistan" #: src/hd-data.c:351 msgid "Tokelau" msgstr "Tokelau" #: src/hd-data.c:352 msgid "Turkmenistan" msgstr "Turkmenistan" #: src/hd-data.c:353 msgid "Tunisia" msgstr "Tunesien" #: src/hd-data.c:354 msgid "Tonga" msgstr "Tonga" #: src/hd-data.c:355 msgid "Turkey" msgstr "Tyrkiet" #: src/hd-data.c:356 msgid "Trinidad and Tobago #" msgstr "Trinidad og Tobago #" #: src/hd-data.c:357 msgid "Tuvalu" msgstr "Tuvalu" #: src/hd-data.c:358 msgid "Taiwan" msgstr "Taiwan" #: src/hd-data.c:359 msgid "Tanzania" msgstr "Tanzania" #: src/hd-data.c:360 msgid "Ukraine" msgstr "Ukraine" #: src/hd-data.c:361 msgid "Uganda" msgstr "Uganda" #: src/hd-data.c:362 msgid "United States/Alaska" msgstr "USA/Alaska" #: src/hd-data.c:363 msgid "United States/Alabama" msgstr "USA/Alabama" #: src/hd-data.c:364 msgid "United States/Arkansas" msgstr "USA/Arkansas" #: src/hd-data.c:365 msgid "United States/Arizona" msgstr "USA/Arizona" #: src/hd-data.c:366 msgid "United States/California" msgstr "USA/Californien" #: src/hd-data.c:367 msgid "United States/Colorado" msgstr "USA/Colorado" #: src/hd-data.c:368 msgid "United States/Connecticut" msgstr "USA/Connecticut" #: src/hd-data.c:369 msgid "United States/District of Columbia" msgstr "USA/District of Columbia" #: src/hd-data.c:370 msgid "United States/Delaware" msgstr "USA/Delaware" #: src/hd-data.c:371 msgid "United States/Florida" msgstr "USA/Florida" #: src/hd-data.c:372 msgid "United States/Georgia" msgstr "USA/Georgia" #: src/hd-data.c:373 msgid "United States/Hawaii" msgstr "USA/Hawaii" #: src/hd-data.c:374 msgid "United States/Iowa" msgstr "USA/Iowa" #: src/hd-data.c:375 msgid "United States/Idaho" msgstr "USA/Idaho" #: src/hd-data.c:376 msgid "United States/Illinois" msgstr "USA/Illinois" #: src/hd-data.c:377 msgid "United States/Indiana" msgstr "USA/Indiana" #: src/hd-data.c:378 msgid "United States/Kansas" msgstr "USA/Kansas" #: src/hd-data.c:379 msgid "United States/Kentucky" msgstr "USA/Kentucky" #: src/hd-data.c:380 msgid "United States/Louisiana" msgstr "USA/Louisiana" #: src/hd-data.c:381 msgid "United States/Massachusetts" msgstr "USA/Massachusetts" #: src/hd-data.c:382 msgid "United States/Maryland" msgstr "USA/Maryland" #: src/hd-data.c:383 msgid "United States/Maine" msgstr "USA/Maine" #: src/hd-data.c:384 msgid "United States/Michigan" msgstr "USA/Michigan" #: src/hd-data.c:385 msgid "United States/Minnesota" msgstr "USA/Minnesota" #: src/hd-data.c:386 msgid "United States/Missouri" msgstr "USA/Missouri" #: src/hd-data.c:387 msgid "United States/Mississippi" msgstr "USA/Mississippi" #: src/hd-data.c:388 msgid "United States/Montana" msgstr "USA/Montana" #: src/hd-data.c:389 msgid "United States/North Carolina" msgstr "USA/North Carolina" #: src/hd-data.c:390 msgid "United States/North Dakota" msgstr "USA/North Dakota" #: src/hd-data.c:391 msgid "United States/Nebraska" msgstr "USA/Nebraska" #: src/hd-data.c:392 msgid "United States/New Hampshire" msgstr "USA/New Hampshire" #: src/hd-data.c:393 msgid "United States/New Jersey" msgstr "USA/New Jersey" #: src/hd-data.c:394 msgid "United States/New Mexico" msgstr "USA/New Mexico" #: src/hd-data.c:395 msgid "United States/Nevada" msgstr "USA/Nevada" #: src/hd-data.c:396 msgid "United States/New York" msgstr "USA/New York" #: src/hd-data.c:397 msgid "United States/Ohio" msgstr "USA/Ohio" #: src/hd-data.c:398 msgid "United States/Oklahoma" msgstr "USA/Oklahoma" #: src/hd-data.c:399 msgid "United States/Oregon" msgstr "USA/Oregon" #: src/hd-data.c:400 msgid "United States/Pennsylvania" msgstr "USA/Pennsylvania" #: src/hd-data.c:401 msgid "United States/Rhode Island" msgstr "USA/Rhode Island" #: src/hd-data.c:402 msgid "United States/South Carolina" msgstr "USA/South Carolina" #: src/hd-data.c:403 msgid "United States/South Dakota" msgstr "USA/South Dakota" #: src/hd-data.c:404 msgid "United States/Tennessee" msgstr "USA/Tennessee" #: src/hd-data.c:405 msgid "United States/Texas" msgstr "USA/Texas" #: src/hd-data.c:406 msgid "United States/Utah" msgstr "USA/Utah" #: src/hd-data.c:407 msgid "United States/Virginia" msgstr "USA/Virginia" #: src/hd-data.c:408 msgid "United States/Vermont" msgstr "USA/Vermont" #: src/hd-data.c:409 msgid "United States/Washington" msgstr "USA/Washington" #: src/hd-data.c:410 msgid "United States/Wisconsin" msgstr "USA/Wisconsin" #: src/hd-data.c:411 msgid "United States/West Virginia" msgstr "USA/West Virginia" #: src/hd-data.c:412 msgid "United States/Wyoming" msgstr "USA/Wyoming" #: src/hd-data.c:413 msgid "Uruguay" msgstr "Uruguay" #: src/hd-data.c:414 msgid "Uzbekistan" msgstr "Uzbekistan" #: src/hd-data.c:415 msgid "St Vincent and Grenadines" msgstr "Saint Vincent og Grenadinerne" #: src/hd-data.c:416 msgid "Venezuela" msgstr "Venezuela" #: src/hd-data.c:417 msgid "British Virgin Islands" msgstr "De Britiske Jomfruøer" #: src/hd-data.c:418 msgid "U.S. Virgin Islands" msgstr "De Amerikanske Jomfruøer" #: src/hd-data.c:419 msgid "Viet Nam" msgstr "Vietnam" #: src/hd-data.c:420 msgid "Vanuatu" msgstr "Vanuatu" #: src/hd-data.c:421 msgid "Wallis and Futuna Islands" msgstr "Wallis og Futuna-øerne" #: src/hd-data.c:422 msgid "Samoa" msgstr "Samoa" #: src/hd-data.c:423 msgid "Yemen" msgstr "Yemen" #: src/hd-data.c:424 msgid "Mayotte" msgstr "Mayotte" #: src/hd-data.c:425 msgid "Serbia and Montenegro" msgstr "Serbien og Montenegro" #: src/hd-data.c:426 msgid "South Africa" msgstr "Sydafrika" #: src/hd-data.c:427 msgid "Zambia" msgstr "Zambia" #: src/hd-data.c:428 msgid "Zimbabwe" msgstr "Zimbabwe" #: src/hd-data.c:458 msgid "1st Advent" msgstr "1. søndag i advent" #: src/hd-data.c:459 msgid "1st Sunday in Lent" msgstr "Første fastesøndag" #: src/hd-data.c:460 msgid "2nd Advent" msgstr "2. søndag i advent" #: src/hd-data.c:461 msgid "2nd Sunday in Lent" msgstr "Anden fastesøndag" #: src/hd-data.c:462 msgid "3rd Advent" msgstr "3. søndag i advent" #: src/hd-data.c:463 msgid "3rd Sunday in Lent" msgstr "Tredje fastesøndag" #: src/hd-data.c:464 msgid "4th Advent" msgstr "4. søndag i advent" #: src/hd-data.c:465 msgid "4th Sunday in Lent" msgstr "Fjerde fastesøndag" #: src/hd-data.c:466 msgid "7-5-3 Festival" msgstr "7-5-3-festivalen" #: src/hd-data.c:467 msgid "Aborigines Day" msgstr "Aboriginerdagen" #: src/hd-data.c:468 msgid "All Fool's Day" msgstr "Første april" #: src/hd-data.c:469 msgid "All Saints' Day" msgstr "Allehelgensdag" #: src/hd-data.c:470 msgid "All Souls' Day" msgstr "Alle sjæles dag" #: src/hd-data.c:471 msgid "Alphabet Day" msgstr "Alfabet-dagen" #: src/hd-data.c:472 msgid "Anniversary of Auckland" msgstr "Aucklands Ã¥rsdag" #: src/hd-data.c:473 msgid "Anniversary of Canterbury North" msgstr "Canterbury Norths Ã¥rsdag" #: src/hd-data.c:474 msgid "Anniversary of Canterbury South" msgstr "Canterbury Souths Ã¥rsdag" #: src/hd-data.c:475 msgid "Anniversary of Chatham Islands" msgstr "Chathamøernes Ã¥rsdag" #: src/hd-data.c:476 msgid "Anniversary of Hawkes' Bay" msgstr "Hawkes' Bays Ã¥rsdag" #: src/hd-data.c:477 msgid "Anniversary of Marlborough" msgstr "Marlboroughs Ã¥rsdag" #: src/hd-data.c:478 msgid "Anniversary of Nelson" msgstr "Nelsons Ã¥rsdag" #: src/hd-data.c:479 msgid "Anniversary of Otago" msgstr "Otagos Ã¥rsdag" #: src/hd-data.c:480 msgid "Anniversary of Southland" msgstr "Southlands Ã¥rsdag" #: src/hd-data.c:481 msgid "Anniversary of Taranaki" msgstr "Taranakis Ã¥rsdag" #: src/hd-data.c:482 msgid "Anniversary of Wellington" msgstr "Wellingtons Ã¥rsdag" #: src/hd-data.c:483 msgid "Anniversary of Westland" msgstr "Westlands Ã¥rsdag" #: src/hd-data.c:484 msgid "Anzac Day" msgstr "Anzacdagen" #: src/hd-data.c:485 msgid "Arbor Day" msgstr "Plant et træ" #: src/hd-data.c:486 msgid "Armed Forces Day" msgstr "Militærets dag" #: src/hd-data.c:487 msgid "Armistice Day" msgstr "VÃ¥benstilstandsdagen" #: src/hd-data.c:488 msgid "Ash Monday" msgstr "" #: src/hd-data.c:489 msgid "Ash Wednesday" msgstr "Askeonsdag" #: src/hd-data.c:490 msgid "Ascension of Abdu'l-Baha" msgstr "" #: src/hd-data.c:491 msgid "Ascension of Baha'u'llah" msgstr "" #: src/hd-data.c:492 msgid "Birth of Baha'u'llah" msgstr "Baha'u'llahs fødsel" #: src/hd-data.c:493 msgid "Birth of the Bab" msgstr "" #: src/hd-data.c:494 msgid "Day of the Covenant" msgstr "" #: src/hd-data.c:495 msgid "Declaration of the Bab" msgstr "" #: src/hd-data.c:496 msgid "First Day of Ridvan" msgstr "" #: src/hd-data.c:497 msgid "Martyrdom of the Bab" msgstr "" #: src/hd-data.c:498 msgid "Bahá'i New Year's Day" msgstr "Bahá'i nytÃ¥rsdag" #: src/hd-data.c:499 msgid "Ninth Day of Ridvan" msgstr "Ridvans niende dag" #: src/hd-data.c:500 msgid "Twelfth Day of Ridvan" msgstr "Ridvans tolvte dag" #: src/hd-data.c:501 msgid "Bank Holiday" msgstr "Bankfridag" #: src/hd-data.c:502 msgid "Basque National Day" msgstr "Den baskiske nationaldag" #: src/hd-data.c:503 msgid "Battle of Boyne" msgstr "Slaget ved Boyne" #: src/hd-data.c:504 msgid "Battle of Puebla" msgstr "Slaget ved Puebla" #: src/hd-data.c:505 msgid "Beginning of Financial Year" msgstr "FinansÃ¥rets begyndelse" #: src/hd-data.c:506 msgid "Benito Juárez Day" msgstr "Benito Juárez-dag" #: src/hd-data.c:507 msgid "Bodhidharma's Birthday" msgstr "Bodhidharmas fødselsdag" #: src/hd-data.c:508 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:509 #, fuzzy msgid "Boxing Day" msgstr "Anden juledag" #: src/hd-data.c:510 msgid "Bringing Home the Herds Day" msgstr "" #: src/hd-data.c:511 msgid "Bringing in the Harvest Day" msgstr "" #: src/hd-data.c:512 msgid "Buddha's Birthday" msgstr "Buddhas fødselsdag" #: src/hd-data.c:513 msgid "Burns Night" msgstr "Burns nat" #: src/hd-data.c:514 msgid "Camoes Day" msgstr "Camoes dag" #: src/hd-data.c:515 msgid "Carnival" msgstr "Karneval" #: src/hd-data.c:516 msgid "Beltane" msgstr "Beltane" #: src/hd-data.c:517 msgid "Imbolg" msgstr "Imbolg" #: src/hd-data.c:518 msgid "Lughnasa" msgstr "Lughnasa" #: src/hd-data.c:519 msgid "Samhain/Celtic New Year's Day" msgstr "Samhain/keltisk nytÃ¥rsdag" #: src/hd-data.c:520 msgid "Children's Day" msgstr "Børnenes dag" #: src/hd-data.c:521 msgid "Cycle" msgstr "" #: src/hd-data.c:522 msgid "Chinese New Year's Day" msgstr "Kinesisk nytÃ¥rsdag" #: src/hd-data.c:523 msgid "Chinese New Year's Eve" msgstr "Kinesisk nytÃ¥rsaften" #: src/hd-data.c:524 msgid "Christmas Day" msgstr "Juledag" #: src/hd-data.c:525 msgid "Christmas Eve" msgstr "Juleaften" #: src/hd-data.c:526 msgid "Christ's Ascension Day" msgstr "Kristi himmelsfartsdag" #: src/hd-data.c:527 msgid "Chrysanthenum Day" msgstr "Chrysanthemumsdag" #: src/hd-data.c:528 msgid "Citizenship Day" msgstr "Borgerskabsdag" #: src/hd-data.c:529 msgid "Civic Holiday" msgstr "" #: src/hd-data.c:530 msgid "Columbus Day" msgstr "Columbus dag" #: src/hd-data.c:531 msgid "Coming of Age Day" msgstr "" #: src/hd-data.c:532 msgid "Confucius' Birthday" msgstr "Confusius' fødselsdag" #: src/hd-data.c:533 msgid "Constitution Anniversary" msgstr "" #: src/hd-data.c:534 msgid "Coptic New Year's Day" msgstr "Koptisk nytÃ¥rsdag" #: src/hd-data.c:535 msgid "Cosmonauts' Day" msgstr "Kosmonautdag" #: src/hd-data.c:536 msgid "Cross Raising Day" msgstr "" #: src/hd-data.c:537 msgid "Culture Day" msgstr "Kulturdagen" #: src/hd-data.c:538 msgid "Day after Mid-Autumn Festival" msgstr "" #: src/hd-data.c:539 msgid "Day after Tomb-Sweeping Day" msgstr "" #: src/hd-data.c:540 msgid "Day of Andalucia" msgstr "Andalusiens dag" #: src/hd-data.c:541 msgid "Day of Catalonia" msgstr "Kataloniens dag" #: src/hd-data.c:542 msgid "Day of Galicia" msgstr "Galiciens dag" #: src/hd-data.c:543 msgid "Day of Prayer and Repentance" msgstr "Bøne- og Ã¥ngerdagen" #: src/hd-data.c:544 msgid "Day of Reconciliation" msgstr "" #: src/hd-data.c:545 msgid "Defenders of Motherland Day" msgstr "" #: src/hd-data.c:546 #, fuzzy msgid "Double-9 Day" msgstr "Nobeldagen" #: src/hd-data.c:547 msgid "Dragon Boat Festival" msgstr "DragebÃ¥dsfestivalen" #: src/hd-data.c:548 msgid "Dynasty Day" msgstr "Dynastidagen" #: src/hd-data.c:549 msgid "Easter Monday" msgstr "Anden pÃ¥skedag" #: src/hd-data.c:550 msgid "Easter Sunday" msgstr "PÃ¥skedag" #: src/hd-data.c:551 msgid "Lunar Eclipse" msgstr "MÃ¥neformørkelse" #: src/hd-data.c:552 msgid "Solar Eclipse" msgstr "Solformørkelse" #: src/hd-data.c:553 msgid "Annular" msgstr "Ringformet" #: src/hd-data.c:554 msgid "Partial" msgstr "Delvis" #: src/hd-data.c:555 msgid "Penumbral" msgstr "Halvskygge" #: src/hd-data.c:556 msgid "Total" msgstr "Total" #: src/hd-data.c:557 msgid "Eindhoven's Liberation" msgstr "Eindhovens befrielse" #: src/hd-data.c:558 msgid "Election Day" msgstr "Valgdagen" #: src/hd-data.c:559 msgid "Emperor's Birthday" msgstr "Kejserens fødselsdag" #: src/hd-data.c:560 #, fuzzy msgid "Equinox Day" msgstr "Valdagen" #: src/hd-data.c:561 msgid "Ethiopic New Year's Day" msgstr "Etiopisk nytÃ¥rsdag" #: src/hd-data.c:562 msgid "Father's Day" msgstr "Fars dag" #: src/hd-data.c:563 msgid "Feast of Corpus Christi" msgstr "" #: src/hd-data.c:564 #, fuzzy msgid "Feast of Fortune" msgstr "Kristi kropps og blods høgtid" #: src/hd-data.c:565 #, fuzzy msgid "Feast of Heart Jesus" msgstr "Theotokos høgtid" #: src/hd-data.c:566 msgid "Festival of Lanterns" msgstr "" #: src/hd-data.c:567 msgid "Festival of Sadeh" msgstr "Sadehfestivalen" #: src/hd-data.c:568 msgid "Flag Day" msgstr "Flagets dag" #: src/hd-data.c:569 msgid "Flemish Culture Day" msgstr "Flamske kulturdag" #: src/hd-data.c:570 msgid "Founding of the Communist Party" msgstr "Kommunistpartiets grundlæggelse" #: src/hd-data.c:571 msgid "French Culture Day" msgstr "Franske kulturdag" #: src/hd-data.c:572 #, fuzzy msgid "French Revolutionary" msgstr "Revolutionsdagen" #: src/hd-data.c:573 #, fuzzy msgid "Friendship Day" msgstr "Presidentens dag" #: src/hd-data.c:574 msgid "German Unity Day" msgstr "Dagen for Tysklands forening" #: src/hd-data.c:575 msgid "Good Friday" msgstr "Langfredag" #: src/hd-data.c:576 msgid "Good Saturday/Easter Eve" msgstr "PÃ¥skeaften" #: src/hd-data.c:577 msgid "Grandparents' Day" msgstr "Bedsteforælderdagen" #: src/hd-data.c:578 #, fuzzy msgid "Greenery Day" msgstr "Bønedagen" #: src/hd-data.c:579 msgid "Grotto Day" msgstr "Grottodagen" #: src/hd-data.c:580 msgid "Groundhog Day" msgstr "Jordsvinedagen" #: src/hd-data.c:581 msgid "Guadalupe Virgin's Day" msgstr "Guadalupe Virgins dag" #: src/hd-data.c:582 msgid "Guy Fawke's Day" msgstr "Guy Fawkes dag" #: src/hd-data.c:583 msgid "Halloween" msgstr "Allehelligensaften" #: src/hd-data.c:584 msgid "Health and Sport's Day" msgstr "Sundheds- og idrætsdag" #: src/hd-data.c:585 msgid "Hannukah/Festival of Lights" msgstr "Hannukah/lysets festival" #: src/hd-data.c:586 msgid "Lag B'Omer" msgstr "Lag B'Omer" #: src/hd-data.c:587 msgid "Pesach/Passover" msgstr "" #: src/hd-data.c:588 msgid "Purim/Feast of Lots" msgstr "" #: src/hd-data.c:589 msgid "Rosh Hashana/New Year's Day" msgstr "Rosh Hashana/nytÃ¥rsdag" #: src/hd-data.c:590 msgid "Shavuot/Giving of the Torah" msgstr "" #: src/hd-data.c:591 msgid "Shushan Purim" msgstr "Shushan Purim" #: src/hd-data.c:592 msgid "Simchat Torah" msgstr "Simchat Torah" #: src/hd-data.c:593 msgid "Sukkot/Feast of Tabernacles" msgstr "" #: src/hd-data.c:594 msgid "Tisha B'Av/Fasting Day" msgstr "" #: src/hd-data.c:595 msgid "Tu B'Shevat/New Year of Trees" msgstr "Tu B'Shevat/Træernes nytÃ¥r" #: src/hd-data.c:596 #, fuzzy msgid "Yom Hashoah/Holocaust Memorial" msgstr "Yom Hashoah/holocaust-mindedagen" #: src/hd-data.c:597 msgid "Yom Hazikaron/Soldiers Memorial" msgstr "" #: src/hd-data.c:598 msgid "Yom Ha Azmaut/Independence Day" msgstr "Yom Ha Azmaut/uafhængighedsdagen" #: src/hd-data.c:599 msgid "Yom Kippur/Atonement Day" msgstr "" #: src/hd-data.c:600 msgid "Yom Yerushalayim/Jerusalem Day" msgstr "Yom Yerushalayim/Jerusalemdag" #: src/hd-data.c:601 msgid "Holy Innocent's Day" msgstr "" #: src/hd-data.c:602 msgid "Holy Trinity" msgstr "" #: src/hd-data.c:603 #, fuzzy msgid "Huravee Day" msgstr "Bønedagen" #: src/hd-data.c:604 msgid "Independence Day" msgstr "Uafhængighedsdagen" #: src/hd-data.c:605 #, fuzzy msgid "Independence Movement Day" msgstr "Oavhængighedsdagen" #: src/hd-data.c:606 msgid "Independence Proclamation" msgstr "Uafhængighedserklæringen" #: src/hd-data.c:607 msgid "Indian New Year's Day" msgstr "Indisk nytÃ¥rsdag" #: src/hd-data.c:608 msgid "Aga Khan's Birthday" msgstr "Aga Khans fødselsdag" #: src/hd-data.c:609 msgid "Ashura'" msgstr "Ashura'" #: src/hd-data.c:610 msgid "Eid-al-Adha" msgstr "Eid-al-Adha" #: src/hd-data.c:611 msgid "Eid-al-Fitr" msgstr "Eid-al-Fitr" #: src/hd-data.c:612 msgid "Eid-i-Milad-un-Nabi" msgstr "Eid-i-Milad-un-Nabi" #: src/hd-data.c:613 msgid "Ghadir" msgstr "Ghadir" #: src/hd-data.c:614 msgid "Imamat Day" msgstr "Imamat-dagen" #: src/hd-data.c:615 msgid "Islamic New Year's Day" msgstr "Islamisk nytÃ¥rsdag" #: src/hd-data.c:616 msgid "Nuzul-al-Qur'an" msgstr "Nuzul-al-Qur'an" #: src/hd-data.c:617 msgid "Quds Day" msgstr "Quds dag" #: src/hd-data.c:618 msgid "Ramadan" msgstr "Ramadanen" #: src/hd-data.c:619 msgid "Shab-e-Bara't" msgstr "Shab-e-Bara't" #: src/hd-data.c:620 msgid "Shab-e-Mi'raj" msgstr "Shab-e-Mi'raj" #: src/hd-data.c:621 msgid "Shab-e Qadr" msgstr "Shab-e Qadr" #: src/hd-data.c:622 msgid "Waqf-al-Arafat" msgstr "Waqf-al-Arafat" #: src/hd-data.c:623 msgid "Japanese New Year's Day" msgstr "Japansk nytÃ¥rsdag" #: src/hd-data.c:624 msgid "Japanese New Year's Eve" msgstr "Japansk nytÃ¥rsaften" #: src/hd-data.c:625 msgid "Jesus' Circumcision" msgstr "" #: src/hd-data.c:626 msgid "Kwanzaa" msgstr "Kwanzaa" #: src/hd-data.c:627 msgid "Labour Day" msgstr "Første maj" #: src/hd-data.c:628 #, fuzzy msgid "Labour Thanksgiving Day" msgstr "Tacksægelsedagen" #: src/hd-data.c:629 msgid "Lao Tze's Birthday" msgstr "Lao Tzes fødselsdag" #: src/hd-data.c:630 msgid "Liberation Day" msgstr "Befrielsedagen" #: src/hd-data.c:631 #, fuzzy msgid "Marine Day" msgstr "Majdagen" #: src/hd-data.c:632 msgid "Martinimas" msgstr "Martinimas" #: src/hd-data.c:633 msgid "Martin L. King's Day" msgstr "Martin L. Kings dag" #: src/hd-data.c:634 msgid "Martyrs' Day" msgstr "Martyrernes dag" #: src/hd-data.c:635 msgid "Mary's Annunciation Day" msgstr "Marie bebudelsedag" #: src/hd-data.c:636 msgid "Mary's Ascension Day" msgstr "Marie himmelsfarts dag" #: src/hd-data.c:637 msgid "Mary's Candlemas" msgstr "" #: src/hd-data.c:638 #, fuzzy msgid "Mary's Expectation" msgstr "Marie bebÃ¥delsedag" #: src/hd-data.c:639 msgid "Mary's Immaculate Conception" msgstr "" #: src/hd-data.c:640 #, fuzzy msgid "Mary's Maternity" msgstr "Marie himmelsfærds dag" #: src/hd-data.c:641 msgid "Mary's Name" msgstr "" #: src/hd-data.c:642 msgid "Mary's Nativity" msgstr "" #: src/hd-data.c:643 msgid "Mary's Sacrifice" msgstr "" #: src/hd-data.c:644 #, fuzzy msgid "Mary's Visitation" msgstr "Marie bebÃ¥delsedag" #: src/hd-data.c:645 msgid "Mary - Blessed Virgin" msgstr "" #: src/hd-data.c:646 msgid "Maundy Thursday" msgstr "Skærtorsdagen" #: src/hd-data.c:647 msgid "May Day" msgstr "Majdagen" #: src/hd-data.c:648 msgid "St John's/Midsummer Day" msgstr "" #: src/hd-data.c:649 msgid "Mid-Autumn Festival" msgstr "Midt-efterÃ¥rsfestival" #: src/hd-data.c:650 msgid "Mid-Spring Festival" msgstr "Midt-forÃ¥rsfestival" #: src/hd-data.c:651 msgid "Mid-Year Festival" msgstr "Midt-Ã¥rsfestival" #: src/hd-data.c:652 msgid "Waxing Half Moon" msgstr "Tiltagende halvmÃ¥ne" #: src/hd-data.c:653 msgid "Full Moon" msgstr "FuldmÃ¥ne" #: src/hd-data.c:654 msgid "Waning Half Moon" msgstr "Aftagende halvmÃ¥ne" #: src/hd-data.c:655 msgid "New Moon" msgstr "NymÃ¥ne" #: src/hd-data.c:656 msgid "Mother's Day" msgstr "Mors dag" #: src/hd-data.c:657 msgid "Mother in Law's Day" msgstr "Svigermordag" #: src/hd-data.c:658 msgid "Music Water Banquet" msgstr "" #: src/hd-data.c:659 msgid "National Foundation Day" msgstr "Den nationale grundlæggelsesdag" #: src/hd-data.c:660 msgid "National Holiday" msgstr "National helligdag" #: src/hd-data.c:661 msgid "National Mourning Day" msgstr "National sørgedag" #: src/hd-data.c:662 msgid "New Year's Day" msgstr "NyÃ¥rsdag" #: src/hd-data.c:663 msgid "Nurses' Day" msgstr "" #: src/hd-data.c:664 msgid "Old-Armenic New Year" msgstr "Oldarmensk nytÃ¥r" #: src/hd-data.c:665 msgid "Old-Egyptic New Year" msgstr "Oldægyptisk nytÃ¥r" #: src/hd-data.c:666 msgid "Orthodox New Year's Day" msgstr "Ortodoks nytÃ¥rsdag" #: src/hd-data.c:667 msgid "Our Lady Aparecida Day" msgstr "" #: src/hd-data.c:668 msgid "Palm Sunday" msgstr "Palmesøndag" #: src/hd-data.c:669 #, fuzzy msgid "Parent's Day" msgstr "Presidentens dag" #: src/hd-data.c:670 #, fuzzy msgid "Passion Sunday" msgstr "Palmsøndagen" #: src/hd-data.c:671 msgid "Peace Festival" msgstr "Fredsfestival" #: src/hd-data.c:672 msgid "Peach Festival" msgstr "Ferskenfestival" #: src/hd-data.c:673 msgid "Whitsunday/Pentecost" msgstr "Pinsedag" #: src/hd-data.c:674 msgid "Noruz/Persian New Year's Day" msgstr "Noruz/persisk nytÃ¥rsdag" #: src/hd-data.c:675 msgid "Prayer Day" msgstr "Bededag" #: src/hd-data.c:676 #, fuzzy msgid "Presidential Inauguration" msgstr "Presidentens tal" #: src/hd-data.c:677 msgid "Presidents' Day" msgstr "Præsidentdag" #: src/hd-data.c:678 #, fuzzy msgid "Presidents' Inform" msgstr "Presidentens tal" #: src/hd-data.c:679 #, fuzzy msgid "President Lincoln's Birthday" msgstr "Præsident Lincolns fødselsdag" #: src/hd-data.c:680 msgid "Princess' Day" msgstr "Prinsessans dag" #: src/hd-data.c:681 msgid "Quinquagesima Sunday" msgstr "Quinquagesima-søndag" #: src/hd-data.c:682 msgid "Reformation Day" msgstr "Reformationsdagen" #: src/hd-data.c:683 msgid "Remembrance/Memorial Day" msgstr "" #: src/hd-data.c:684 msgid "Republic Day" msgstr "Republikens dag" #: src/hd-data.c:685 msgid "Respect for the Aged Day" msgstr "Respekt for de ældre-dagen" #: src/hd-data.c:686 msgid "Revolution Day" msgstr "Revolutionsdagen" #: src/hd-data.c:687 msgid "Rio de Janeiro Anniversary" msgstr "Rio de Janeiros Ã¥rsdag" #: src/hd-data.c:688 #, fuzzy msgid "Rogation Sunday" msgstr "Domsøndagen" #: src/hd-data.c:689 msgid "Sao Paulo Anniversary" msgstr "Sao Paulos Ã¥rsdag" #: src/hd-data.c:690 msgid "Sapporo Snow Festival" msgstr "Sapporos snefestival" #: src/hd-data.c:691 msgid "Season Change/Bean-Festival" msgstr "Ã…rstidsændring/bønnefestival" #: src/hd-data.c:692 #, fuzzy msgid "Septuagesima Sunday" msgstr "Palmsøndagen" #: src/hd-data.c:693 #, fuzzy msgid "Seven Sleepers Day" msgstr "S:t Stefans dag" #: src/hd-data.c:694 #, fuzzy msgid "Sexagesima Sunday" msgstr "Palmsøndagen" #: src/hd-data.c:695 msgid "Shrove Tuesday/Mardi Gras" msgstr "Hvidetirsdag" #: src/hd-data.c:696 #, fuzzy msgid "Solstice Day" msgstr "VapenstillestÃ¥ndsdagen" #: src/hd-data.c:697 msgid "Soot-Sweeping Day" msgstr "Skorstensfejerdag" #: src/hd-data.c:698 msgid "Spring Festival" msgstr "ForÃ¥rsfestival" #: src/hd-data.c:699 msgid "Start of common month" msgstr "Start pÃ¥ almindelig mÃ¥ned" #: src/hd-data.c:700 msgid "Start of leap month" msgstr "Start pÃ¥ skudmÃ¥ned" #: src/hd-data.c:701 msgid "Star Festival" msgstr "Stjernefestival" #: src/hd-data.c:702 #, fuzzy msgid "St Andrew's Day" msgstr "S:t Gørans dag" #: src/hd-data.c:703 #, fuzzy msgid "St Bartholomew Day" msgstr "S:t Berchtolds dag" #: src/hd-data.c:704 #, fuzzy msgid "St Berchtold's Day" msgstr "S:t Berchtolds dag" #: src/hd-data.c:705 #, fuzzy msgid "St David's Day" msgstr "S:t Davids dag" #: src/hd-data.c:706 #, fuzzy msgid "St Edward's Day" msgstr "S:t Edwards dag" #: src/hd-data.c:707 #, fuzzy msgid "St George's Day" msgstr "S:t Gørans dag" #: src/hd-data.c:708 #, fuzzy msgid "St James' Day" msgstr "S:t James dag" #: src/hd-data.c:709 #, fuzzy msgid "St Joseph's Day" msgstr "S:t Josefs dag" #: src/hd-data.c:710 #, fuzzy msgid "St Laurentius Day" msgstr "Alla hjærtans dag" #: src/hd-data.c:711 #, fuzzy msgid "St Nicholas' Day" msgstr "S:t Nikolaus dag" #: src/hd-data.c:712 #, fuzzy msgid "St Nicholas' Eve" msgstr "S:t Nikolaus aften" #: src/hd-data.c:713 #, fuzzy msgid "St Patrick's Day" msgstr "S:t Patricks dag" #: src/hd-data.c:714 msgid "St Peter and St Paul" msgstr "" #: src/hd-data.c:715 #, fuzzy msgid "St Stephen's Day" msgstr "S:t Stefans dag" #: src/hd-data.c:716 #, fuzzy msgid "St Valentine's Day" msgstr "Alla hjærtans dag" #: src/hd-data.c:717 msgid "Sunday of the Dead" msgstr "" #: src/hd-data.c:718 msgid "Swallow Day" msgstr "" #: src/hd-data.c:719 #, fuzzy msgid "Sweetest Day" msgstr "Veteranernas dag" #: src/hd-data.c:720 msgid "Sylvester/New Year's Eve" msgstr "" #: src/hd-data.c:721 msgid "Teacher's Day" msgstr "Lærerens dag" #: src/hd-data.c:722 #, fuzzy msgid "Thai New Year's Day" msgstr "NyÃ¥rsdagen" #: src/hd-data.c:723 #, fuzzy msgid "Thanksgiving Day" msgstr "Tacksægelsedagen" #: src/hd-data.c:724 msgid "The King's Birthday" msgstr "Kongens fødselsdag" #: src/hd-data.c:725 msgid "The Queen's Birthday" msgstr "Dronningens fødselsdag" #: src/hd-data.c:726 msgid "Epiphany/Three King's Day" msgstr "Hellig tre kongers dag" #: src/hd-data.c:727 #, fuzzy msgid "Tiradentes Day" msgstr "Presidentens dag" #: src/hd-data.c:728 msgid "Tomb-Sweeping Day" msgstr "" #: src/hd-data.c:729 #, fuzzy msgid "Transfiguration Day" msgstr "Krøningsdagen" #: src/hd-data.c:730 #, fuzzy msgid "Tynwald Day" msgstr "Dynastidagen" #: src/hd-data.c:731 msgid "Valborg's Eve" msgstr "" #: src/hd-data.c:732 msgid "Venice Carnival" msgstr "" #: src/hd-data.c:733 msgid "Veteran's Day" msgstr "Veteranernes dag" #: src/hd-data.c:734 msgid "Victoria Day" msgstr "Viktoriadagen" #: src/hd-data.c:735 msgid "Victory Day" msgstr "Sejersdagen" #: src/hd-data.c:736 msgid "Whit Monday" msgstr "Anden pinsedag" #: src/hd-data.c:737 #, fuzzy msgid "Women's Day" msgstr "Mors dag" #: src/hd-data.c:738 #, fuzzy msgid "Women's Shrove Day" msgstr "Kvinnans fastedag" #: src/hd-data.c:739 msgid "World Animal Day" msgstr "" #: src/hd-data.c:740 #, fuzzy msgid "Youth Day" msgstr "Mors dag" #: src/hd-data.c:746 msgid "Adelaide Cup Day" msgstr "" #: src/hd-data.c:747 #, fuzzy msgid "Admission Day" msgstr "VapenstillestÃ¥ndsdagen" #: src/hd-data.c:748 #, fuzzy msgid "Alaska Day" msgstr "Flaggans dag" #: src/hd-data.c:749 msgid "Aleksis Kivi Day" msgstr "" #: src/hd-data.c:750 msgid "Alice-Springs Show Day" msgstr "" #: src/hd-data.c:751 #, fuzzy msgid "All Saints' Eve" msgstr "Allhelligonadagen" #: src/hd-data.c:752 #, fuzzy msgid "Americas Day" msgstr "Militærens dag" #: src/hd-data.c:753 #, fuzzy msgid "Angam Day" msgstr "Anzacdagen" #: src/hd-data.c:755 msgid "Anniversary of Amir's Succession" msgstr "" #: src/hd-data.c:756 msgid "Anniversary of Armed Struggle" msgstr "" #: src/hd-data.c:757 msgid "Anniversary of Green March" msgstr "" #: src/hd-data.c:758 #, fuzzy msgid "Antillian Day" msgstr "Allhelligonadagen" #: src/hd-data.c:759 msgid "Arab League Day" msgstr "" #: src/hd-data.c:761 msgid "Archbishop Makarios' Memorial Day" msgstr "" #: src/hd-data.c:762 msgid "Archbishop Makarios' Name-Day" msgstr "" #: src/hd-data.c:763 #, fuzzy msgid "Arengo Anniversary" msgstr "Førfattningsdagen" #: src/hd-data.c:764 #, fuzzy msgid "Army Coup Day" msgstr "Militærens dag" #: src/hd-data.c:765 msgid "Arrival of the Swiss" msgstr "" #: src/hd-data.c:766 #, fuzzy msgid "Artigas' Birthday" msgstr "Konungens fødselsdag" #: src/hd-data.c:767 #, fuzzy msgid "Asuncion Day" msgstr "Anzacdagen" #: src/hd-data.c:768 msgid "Ataturk Memorial Day" msgstr "" #: src/hd-data.c:769 msgid "Authority's Power Day" msgstr "" #: src/hd-data.c:770 #, fuzzy msgid "Ba'ath Revolution Day" msgstr "Revolutionsdagen" #: src/hd-data.c:771 msgid "Baron Bliss Day" msgstr "" #: src/hd-data.c:772 #, fuzzy msgid "Bataan Day" msgstr "Veteranernas dag" #: src/hd-data.c:773 #, fuzzy msgid "Battle of Angamos" msgstr "Slaget vid Boyne" #: src/hd-data.c:774 #, fuzzy msgid "Battle of Boyacá" msgstr "Slaget vid Boyne" #: src/hd-data.c:775 #, fuzzy msgid "Battle of Carabobo" msgstr "Slaget vid Boyne" #: src/hd-data.c:776 #, fuzzy msgid "Battle of Iquique" msgstr "Slaget vid Boyne" #: src/hd-data.c:777 #, fuzzy msgid "Battle of Las Piedras" msgstr "Slaget vid Boyne" #: src/hd-data.c:778 msgid "Battle of Näfels" msgstr "Slaget ved Näfels" #: src/hd-data.c:779 msgid "Beginning of Summer" msgstr "Start pÃ¥ sommeren" #: src/hd-data.c:780 msgid "Belgrade's Day" msgstr "Beograds dag" #: src/hd-data.c:781 #, fuzzy msgid "Bennington Battle Day" msgstr "Benito Juarez dag" #: src/hd-data.c:782 msgid "Blessing of the Water" msgstr "" #: src/hd-data.c:783 msgid "Bloomsday" msgstr "" #: src/hd-data.c:784 #, fuzzy msgid "Boganda Day" msgstr "Annandag jul" #: src/hd-data.c:785 #, fuzzy msgid "Bonaire Day" msgstr "Annandag jul" #: src/hd-data.c:786 #, fuzzy msgid "Boqueron Battle Day" msgstr "Krøningsdagen" #: src/hd-data.c:787 #, fuzzy msgid "Botswana Day" msgstr "Annandag jul" #: src/hd-data.c:788 #, fuzzy msgid "Bounty Day" msgstr "Annandag jul" #: src/hd-data.c:789 msgid "Bunker Hill Day" msgstr "" #: src/hd-data.c:790 msgid "Burning of Jan Hus" msgstr "Jan Hus eldbegængelse" #: src/hd-data.c:791 #, fuzzy msgid "Canberra Day" msgstr "Bønedagen" #: src/hd-data.c:792 #, fuzzy msgid "Caricom Day" msgstr "Juldagen" #: src/hd-data.c:793 msgid "Casimir Pulaski's Birthday" msgstr "" #: src/hd-data.c:794 #, fuzzy msgid "Cassinga Day" msgstr "Annandag jul" #: src/hd-data.c:795 msgid "Cayenne Festival" msgstr "Cayennefestivalen" #: src/hd-data.c:796 msgid "Cesar Chavez Day" msgstr "" #: src/hd-data.c:797 #, fuzzy msgid "Charter Day" msgstr "Fars dag" #: src/hd-data.c:798 #, fuzzy msgid "Chiang Kai-shek's Birthday" msgstr "Konungens fødselsdag" #: src/hd-data.c:799 #, fuzzy msgid "Children's White Sunday" msgstr "Barnens dag" #: src/hd-data.c:800 #, fuzzy msgid "Colon Day" msgstr "Revolutionsdagen" #: src/hd-data.c:801 #, fuzzy msgid "Colorado Day" msgstr "Krøningsdagen" #: src/hd-data.c:802 #, fuzzy msgid "Commonwealth Day" msgstr "Krøningsdagen" #: src/hd-data.c:803 #, fuzzy msgid "Compact Day" msgstr "Krøningsdagen" #: src/hd-data.c:804 msgid "Confederal Agreement Day" msgstr "" #: src/hd-data.c:805 msgid "Coronation Day" msgstr "Krøningsdagen" #: src/hd-data.c:806 #, fuzzy msgid "Cup Match Day" msgstr "Majdagen" #: src/hd-data.c:807 #, fuzzy msgid "Custom Chief's Day" msgstr "Barnens dag" #: src/hd-data.c:808 msgid "C. Mapinduzi Day" msgstr "" #: src/hd-data.c:809 msgid "Darwin Show Day" msgstr "" #: src/hd-data.c:810 msgid "Day of Goodwill" msgstr "" #: src/hd-data.c:811 msgid "Day of Students Revolt" msgstr "Studentrevoltens dag" #: src/hd-data.c:812 msgid "Day of the Free Laos" msgstr "" #: src/hd-data.c:813 msgid "Death of H. Christophe" msgstr "H. Christophes død" #: src/hd-data.c:814 msgid "Death of J. Dessalines" msgstr "J. Dessalines' død" #: src/hd-data.c:815 msgid "Death of President Abdallah" msgstr "Præsident Abdallahs død" #: src/hd-data.c:816 msgid "Death of President Cheikh" msgstr "Præsident Cheikhs død" #: src/hd-data.c:817 msgid "Death of President Soilih" msgstr "Præsident Soilihs død" #: src/hd-data.c:818 msgid "Death of Qaid-i-Azam" msgstr "Qaid-i-Azams død" #: src/hd-data.c:819 msgid "Death of T. Louverture" msgstr "T. Louvertures død" #: src/hd-data.c:820 #, fuzzy msgid "Defenders Day" msgstr "Oavhængighedsdagen" #: src/hd-data.c:821 msgid "Dia del Padre" msgstr "" #: src/hd-data.c:822 msgid "Dia de los Maestros" msgstr "" #: src/hd-data.c:823 #, fuzzy msgid "Discovery Day" msgstr "Segerdagen" #: src/hd-data.c:824 msgid "Downfall of the Dergue" msgstr "" #: src/hd-data.c:825 msgid "Dry Season Celebration" msgstr "" #: src/hd-data.c:826 #, fuzzy msgid "Dr. Sun Yat-sen's Birthday" msgstr "Drottningens fødselsdag" #: src/hd-data.c:827 #, fuzzy msgid "Duarte's Birthday" msgstr "Drottningens fødselsdag" #: src/hd-data.c:828 #, fuzzy msgid "Easter Tuesday" msgstr "PÃ¥skdagen" #: src/hd-data.c:829 #, fuzzy msgid "Economic Liberation Day" msgstr "Befrielsedagen" #: src/hd-data.c:830 #, fuzzy msgid "Eight Hours Day" msgstr "Segerdagen" #: src/hd-data.c:831 msgid "Elections for National Assembly" msgstr "" #: src/hd-data.c:832 msgid "Errol Barrow Day" msgstr "" #: src/hd-data.c:833 #, fuzzy msgid "Evacuation Day" msgstr "Valdagen" #: src/hd-data.c:834 msgid "Eve of Epiphany" msgstr "" #: src/hd-data.c:835 msgid "Expedition of the 33" msgstr "" #: src/hd-data.c:836 msgid "E. Hostos' Birthday" msgstr "" #: src/hd-data.c:837 #, fuzzy msgid "Family Day" msgstr "Majdagen" #: src/hd-data.c:838 #, fuzzy msgid "FAO Day" msgstr "Flaggans dag" #: src/hd-data.c:839 #, fuzzy msgid "Farmers' Day" msgstr "Fars dag" #: src/hd-data.c:840 #, fuzzy msgid "Father Leval Day" msgstr "Fars dag" #: src/hd-data.c:841 msgid "Feast of Our Theotokos" msgstr "Theotokos højtid" #: src/hd-data.c:842 #, fuzzy msgid "Fisherman's Day" msgstr "Fars dag" #: src/hd-data.c:843 #, fuzzy msgid "Foundation of NPLA Day" msgstr "Krøningsdagen" #: src/hd-data.c:844 msgid "Founding of People's Party" msgstr "" #: src/hd-data.c:845 msgid "Garifuna Day" msgstr "" #: src/hd-data.c:847 msgid "General San Martin's Anniversary" msgstr "" #: src/hd-data.c:848 #, fuzzy msgid "Gospel Day" msgstr "Nobeldagen" #: src/hd-data.c:849 #, fuzzy msgid "Guacanaste Day" msgstr "Dynastidagen" #: src/hd-data.c:850 msgid "Gustavus Adolphus' Day" msgstr "Gustav Adolfsdagen" #: src/hd-data.c:851 #, fuzzy msgid "Heritage Day" msgstr "VapenstillestÃ¥ndsdagen" #: src/hd-data.c:852 #, fuzzy msgid "Heroes Day" msgstr "Fars dag" #: src/hd-data.c:853 msgid "Hobart Show Day" msgstr "" #: src/hd-data.c:854 #, fuzzy msgid "Holy Wednesday" msgstr "onsdag" #: src/hd-data.c:855 #, fuzzy msgid "Ho Chi Minh's Birthday" msgstr "Konungens fødselsdag" #: src/hd-data.c:856 #, fuzzy msgid "Human Rights Day" msgstr "Dagen for Tysklands enande" #: src/hd-data.c:857 msgid "Hurricane Supplication Day" msgstr "" #: src/hd-data.c:858 #, fuzzy msgid "Hurricane Thanksgiving Day" msgstr "Tacksægelsedagen" #: src/hd-data.c:859 #, fuzzy msgid "Independence of Cartagena" msgstr "Oavhængighedsdagen" #: src/hd-data.c:860 #, fuzzy msgid "Independence of Cuenca" msgstr "Oavhængighedsdagen" #: src/hd-data.c:861 #, fuzzy msgid "Independence of Guayaquil" msgstr "Oavhængighedsdagen" #: src/hd-data.c:862 msgid "Independence of Quito" msgstr "" #: src/hd-data.c:863 msgid "Indian Arrival Day" msgstr "" #: src/hd-data.c:864 #, fuzzy msgid "Internal Autonomy Day" msgstr "Internationella kvinnodagen" #: src/hd-data.c:865 #, fuzzy msgid "Jefferson Davis' Birthday" msgstr "Kronprinsessans fødselsdag" #: src/hd-data.c:866 #, fuzzy msgid "June Holiday" msgstr "Bankfridag" #: src/hd-data.c:867 #, fuzzy msgid "J. Barbosa's Birthday" msgstr "Konungens fødselsdag" #: src/hd-data.c:868 #, fuzzy msgid "J. Chilembwe Day" msgstr "Barnens dag" #: src/hd-data.c:869 #, fuzzy msgid "J. Diego's Birthday" msgstr "Konungens fødselsdag" #: src/hd-data.c:870 #, fuzzy msgid "J. Robert's Birthday" msgstr "Drottningens fødselsdag" #: src/hd-data.c:871 msgid "Kamarampaka Day" msgstr "Kamarampaka-dag" #: src/hd-data.c:872 #, fuzzy msgid "Kartini Day" msgstr "MÃ¥rtensmæssa" #: src/hd-data.c:873 #, fuzzy msgid "Catherine Show Day" msgstr "Fars dag" #: src/hd-data.c:874 msgid "Kiev Day" msgstr "" #: src/hd-data.c:875 #, fuzzy msgid "Kim Il-Sung's Birthday" msgstr "Konungens fødselsdag" #: src/hd-data.c:876 #, fuzzy msgid "Kim Jong-Il's Birthday" msgstr "Konungens fødselsdag" #: src/hd-data.c:877 msgid "King Kamehameha Day" msgstr "" #: src/hd-data.c:878 msgid "King Rama I Memorial Day/Chakri" msgstr "" #: src/hd-data.c:879 #, fuzzy msgid "King Rama V Memorial Day" msgstr "Minnesdagen" #: src/hd-data.c:880 msgid "Knabenschiessen" msgstr "Knabenschiessen" #: src/hd-data.c:881 msgid "Konstantin and Methodius" msgstr "" #: src/hd-data.c:882 msgid "Lapp National Holiday" msgstr "Samernas nationaldag" #: src/hd-data.c:883 msgid "Launceston Cup Day" msgstr "" #: src/hd-data.c:884 #, fuzzy msgid "Liberty Day" msgstr "Befrielsedagen" #: src/hd-data.c:885 msgid "Loss of Muslim Nation" msgstr "" #: src/hd-data.c:886 msgid "Luxembourg City Kermis" msgstr "" #: src/hd-data.c:887 #, fuzzy msgid "Lyndon B. Johnson Day" msgstr "S:t Johns dag" #: src/hd-data.c:888 #, fuzzy msgid "L. Rivera's Birthday" msgstr "Konungens fødselsdag" #: src/hd-data.c:889 #, fuzzy msgid "Madaraka Day" msgstr "Majdagen" #: src/hd-data.c:890 #, fuzzy msgid "Mahatma Gandhi's Birthday" msgstr "Konungens fødselsdag" #: src/hd-data.c:891 #, fuzzy msgid "Malvinas Day" msgstr "Majdagen" #: src/hd-data.c:892 #, fuzzy msgid "Manila Day" msgstr "Majdagen" #: src/hd-data.c:893 #, fuzzy msgid "Maputo City Day" msgstr "Majdagen" #: src/hd-data.c:894 msgid "Marien Ngouabi Day" msgstr "" #: src/hd-data.c:895 #, fuzzy msgid "Maryland Day" msgstr "Majdagen" #: src/hd-data.c:896 msgid "Melbourne Cup Day" msgstr "" #: src/hd-data.c:897 #, fuzzy msgid "Merchant Day" msgstr "Dagen for Tysklands enande" #: src/hd-data.c:898 #, fuzzy msgid "St John's/Midsummers Eve" msgstr "Midsommaraften" #: src/hd-data.c:899 #, fuzzy msgid "Missionary Day" msgstr "Majdagen" #: src/hd-data.c:900 #, fuzzy msgid "Mi-Carême Day" msgstr "Majdagen" #: src/hd-data.c:901 #, fuzzy msgid "Morazan Day" msgstr "Majdagen" #: src/hd-data.c:902 #, fuzzy msgid "Mosheshoe's Day" msgstr "Mors dag" #: src/hd-data.c:903 msgid "Motherhood and Beauty Day" msgstr "" #: src/hd-data.c:904 #, fuzzy msgid "Naming Day" msgstr "Annandag jul" #: src/hd-data.c:905 #, fuzzy msgid "National Bun Day" msgstr "Nationell sorgedag" #: src/hd-data.c:906 #, fuzzy msgid "National Heroes Day" msgstr "Nationell helligdag" #: src/hd-data.c:907 #, fuzzy msgid "National Redemption Day" msgstr "Nationell sorgedag" #: src/hd-data.c:908 msgid "National Resistance Day" msgstr "" #: src/hd-data.c:909 #, fuzzy msgid "National Revival Day" msgstr "Nationella motstÃ¥ndsrørelsens dag" #: src/hd-data.c:910 #, fuzzy msgid "National Unity Day" msgstr "Nationell sorgedag" #: src/hd-data.c:911 #, fuzzy msgid "Ndadaye Day" msgstr "Bønedagen" #: src/hd-data.c:912 #, fuzzy msgid "Neutrality Day" msgstr "Dagen for Tysklands enande" #: src/hd-data.c:913 #, fuzzy msgid "Nevada Day" msgstr "Nobeldagen" #: src/hd-data.c:914 msgid "New Regime Anniversary" msgstr "" #: src/hd-data.c:915 msgid "Nobel Day" msgstr "Nobeldagen" #: src/hd-data.c:916 #, fuzzy msgid "Noi Day" msgstr "Nobeldagen" #: src/hd-data.c:917 #, fuzzy msgid "OAU Day" msgstr "Anzacdagen" #: src/hd-data.c:918 #, fuzzy msgid "October Holiday" msgstr "Nationell helligdag" #: src/hd-data.c:919 msgid "Oil Industry Day" msgstr "" #: src/hd-data.c:920 msgid "Our Lady of Altagracia Day" msgstr "" #: src/hd-data.c:921 msgid "Our Lady of Camarin Day" msgstr "" #: src/hd-data.c:922 msgid "Our Lady of Las Mercedes Day" msgstr "" #: src/hd-data.c:923 msgid "Our Lady of Los Angeles Day" msgstr "" #: src/hd-data.c:924 msgid "Our Lady of Seven Sorrows" msgstr "" #: src/hd-data.c:925 msgid "Our Lady of Victories Day" msgstr "" #: src/hd-data.c:926 #, fuzzy msgid "Panama City Day" msgstr "Dagen for Tysklands enande" #: src/hd-data.c:927 #, fuzzy msgid "Panamerica Day" msgstr "Bønedagen" #: src/hd-data.c:928 msgid "Paris Peace Agreement Day" msgstr "" #: src/hd-data.c:929 #, fuzzy msgid "Patriot's Day" msgstr "S:t Patricks dag" #: src/hd-data.c:930 #, fuzzy msgid "People's Uprising Day" msgstr "Tjeckiska folkets majuppror" #: src/hd-data.c:931 msgid "People Power Day" msgstr "" #: src/hd-data.c:932 msgid "Philippine-American Friendship" msgstr "" #: src/hd-data.c:933 #, fuzzy msgid "Pichincha Day" msgstr "Viktoriadagen" #: src/hd-data.c:934 #, fuzzy msgid "Picnic Day" msgstr "Prinsessans dag" #: src/hd-data.c:935 #, fuzzy msgid "Pioneer Day" msgstr "Bønedagen" #: src/hd-data.c:936 #, fuzzy msgid "Poya Day" msgstr "Bønedagen" #: src/hd-data.c:937 msgid "Prince Kalanianaole Day" msgstr "" #: src/hd-data.c:938 #, fuzzy msgid "Prince of Wales' Birthday" msgstr "Kronprinsessans fødselsdag" #: src/hd-data.c:939 #, fuzzy msgid "Proclamation Day" msgstr "Krøningsdagen" #: src/hd-data.c:940 msgid "Qaid-i-Azam's Birthday" msgstr "" #: src/hd-data.c:941 msgid "Ratu Sukuma Day" msgstr "" #: src/hd-data.c:942 #, fuzzy msgid "Recreation Day" msgstr "Reformationsdagen" #: src/hd-data.c:943 #, fuzzy msgid "Referendum Day" msgstr "Reformationsdagen" #: src/hd-data.c:944 #, fuzzy msgid "Regatta Day" msgstr "Reformationsdagen" #: src/hd-data.c:945 msgid "Regency Exchange" msgstr "" #: src/hd-data.c:946 #, fuzzy msgid "Restoration Day" msgstr "Reformationsdagen" #: src/hd-data.c:947 #, fuzzy msgid "Return Day" msgstr "Veteranernas dag" #: src/hd-data.c:948 #, fuzzy msgid "Reunification Day" msgstr "Reformationsdagen" #: src/hd-data.c:949 #, fuzzy msgid "Rizal Day" msgstr "Anzacdagen" #: src/hd-data.c:950 #, fuzzy msgid "Rwagasore Day" msgstr "Førsta maj" #: src/hd-data.c:951 #, fuzzy msgid "Saba Day" msgstr "Førsta maj" #: src/hd-data.c:952 #, fuzzy msgid "San Jacinto Day" msgstr "S:t Jean Baptistes dag" #: src/hd-data.c:953 #, fuzzy msgid "San José Day" msgstr "S:t Johns dag" #: src/hd-data.c:954 msgid "SAR Establishment Day" msgstr "" #: src/hd-data.c:955 #, fuzzy msgid "School Holiday" msgstr "Nationell helligdag" #: src/hd-data.c:956 msgid "Sechseläuten" msgstr "Sechseläuten" #: src/hd-data.c:957 #, fuzzy msgid "Separation Day" msgstr "Befrielsedagen" #: src/hd-data.c:958 msgid "Seretse Khama Day" msgstr "" #: src/hd-data.c:959 #, fuzzy msgid "Settlers Day" msgstr "Veteranernas dag" #: src/hd-data.c:960 #, fuzzy msgid "Seward's Day" msgstr "S:t Edwards dag" #: src/hd-data.c:961 #, fuzzy msgid "Shaheed Day" msgstr "Fars dag" #: src/hd-data.c:962 msgid "Sheep Festival" msgstr "" #: src/hd-data.c:963 #, fuzzy msgid "Sheikh Zayed's Ascension Day" msgstr "Marie himmelsfærds dag" #: src/hd-data.c:964 msgid "Simon Bolivar's Day" msgstr "Simon Bolivars dag" #: src/hd-data.c:965 msgid "Sinai-Liberation Day" msgstr "Sinais befrielsesdag" #: src/hd-data.c:966 msgid "Slave-Liberation Day" msgstr "Slavernes befrielsesdag" #: src/hd-data.c:967 msgid "Sniff the Breeze Day" msgstr "" #: src/hd-data.c:968 msgid "Solidarity Day" msgstr "" #: src/hd-data.c:969 #, fuzzy msgid "Somers Day" msgstr "Mors dag" #: src/hd-data.c:970 #, fuzzy msgid "Statia-American Day" msgstr "S:t Patricks dag" #: src/hd-data.c:971 #, fuzzy msgid "Student's Day" msgstr "Presidentens dag" #: src/hd-data.c:972 #, fuzzy msgid "St Agata Day" msgstr "Tjugondag Knut" #: src/hd-data.c:973 #, fuzzy msgid "St Canute's Day" msgstr "Tjugondag Knut" #: src/hd-data.c:974 #, fuzzy msgid "St Cedilia's Day" msgstr "Luciadagen" #: src/hd-data.c:975 #, fuzzy msgid "St Charles' Day" msgstr "S:t James dag" #: src/hd-data.c:976 #, fuzzy msgid "St Demetrius' Day" msgstr "S:t James dag" #: src/hd-data.c:977 #, fuzzy msgid "St Dévote Day" msgstr "S:t Josefs dag" #: src/hd-data.c:978 #, fuzzy msgid "St Eliah's Day" msgstr "Luciadagen" #: src/hd-data.c:979 #, fuzzy msgid "St Jean Baptiste Day" msgstr "S:t Jean Baptistes dag" #: src/hd-data.c:980 #, fuzzy msgid "St Lucia's Day" msgstr "Luciadagen" #: src/hd-data.c:981 #, fuzzy msgid "St Marguerite's Day" msgstr "Tjugondag Knut" #: src/hd-data.c:982 #, fuzzy msgid "St Maroon's Day" msgstr "S:t Johns dag" #: src/hd-data.c:983 #, fuzzy msgid "St Michael's Day" msgstr "S:t Nikolaus dag" #: src/hd-data.c:984 #, fuzzy msgid "St Olav's Day" msgstr "S:t Davids dag" #: src/hd-data.c:985 #, fuzzy msgid "St Olav's Eve" msgstr "S:t Nikolaus aften" #: src/hd-data.c:986 msgid "St Paul's Shipswreck" msgstr "" #: src/hd-data.c:987 #, fuzzy msgid "St Rose of Lima" msgstr "S:t Josefs dag" #: src/hd-data.c:988 #, fuzzy msgid "St Ursula's Day" msgstr "Luciadagen" #: src/hd-data.c:989 #, fuzzy msgid "St Vincent de Paul's Day" msgstr "Alla hjærtans dag" #: src/hd-data.c:990 #, fuzzy msgid "Suez Victory Day" msgstr "Segerdagen" #: src/hd-data.c:991 msgid "Sultan Qaboos' Birthday" msgstr "Sultan Qaboos' fødselsdag" #: src/hd-data.c:992 msgid "Svetitskhovloba" msgstr "Svetitskhovloba" #: src/hd-data.c:993 #, fuzzy msgid "Sweden Day" msgstr "Presidentens dag" #: src/hd-data.c:994 #, fuzzy msgid "S. Doe's Birthday" msgstr "Drottningens fødselsdag" #: src/hd-data.c:995 msgid "Tennant-Creek Show Day" msgstr "" #: src/hd-data.c:996 #, fuzzy msgid "Territory Day" msgstr "Segerdagen" #: src/hd-data.c:997 msgid "The Crown Princesse's Birthday" msgstr "Kronprinsessans fødselsdag" #: src/hd-data.c:998 msgid "The Crown Princesse's Name-Day" msgstr "Kronprinsessans navnsdag" #: src/hd-data.c:999 #, fuzzy msgid "The Crown Prince's Birthday" msgstr "Kronprinsessans fødselsdag" #: src/hd-data.c:1000 msgid "The King's Name-Day" msgstr "Konungens navnsdag" #: src/hd-data.c:1001 msgid "The Queen's Name-Day" msgstr "Drottningens navnsdag" #: src/hd-data.c:1002 msgid "Topou I Day" msgstr "" #: src/hd-data.c:1003 #, fuzzy msgid "Town Meeting Day" msgstr "Annandag jul" #: src/hd-data.c:1004 #, fuzzy msgid "Traditional Day" msgstr "Krøningsdagen" #: src/hd-data.c:1005 #, fuzzy msgid "Transfer Day" msgstr "Bønedagen" #: src/hd-data.c:1006 #, fuzzy msgid "Truman Day" msgstr "Reformationsdagen" #: src/hd-data.c:1007 #, fuzzy msgid "Union Day" msgstr "Krøningsdagen" #: src/hd-data.c:1008 msgid "Union with Sweden dissolved" msgstr "Unionsopløsningen med Sverige" #: src/hd-data.c:1009 msgid "United Nations Day" msgstr "FN-dagen" #: src/hd-data.c:1010 #, fuzzy msgid "Unity Factory Day" msgstr "Segerdagen" #: src/hd-data.c:1011 #, fuzzy msgid "Victor-Schoelcher Day" msgstr "Segerdagen" #: src/hd-data.c:1012 msgid "Vidovdan" msgstr "" #: src/hd-data.c:1013 #, fuzzy msgid "West Virginia Day" msgstr "Viktoriadagen" #: src/hd-data.c:1014 msgid "Whitsun Eve" msgstr "Pinseaften" #: src/hd-data.c:1015 #, fuzzy msgid "W. Tubman's Birthday" msgstr "Drottningens fødselsdag" #: src/hd-data.c:1016 #, fuzzy msgid "Yap Day" msgstr "Majdagen" #: src/hd-data.c:1017 msgid "Day of Czech Statehood" msgstr "" #: src/hd-data.c:1082 msgid "Zi/Rat" msgstr "Zi/rotte" #: src/hd-data.c:1082 msgid "Chou/Ox" msgstr "Chou/okse" #: src/hd-data.c:1083 msgid "Yin/Tiger" msgstr "Yin/tiger" #: src/hd-data.c:1083 msgid "Mao/Rabbit" msgstr "Mao/kanin" #: src/hd-data.c:1084 msgid "Chen/Dragon" msgstr "Chen/drage" #: src/hd-data.c:1084 msgid "Si/Snake" msgstr "Si/slange" #: src/hd-data.c:1085 msgid "Wu/Horse" msgstr "Wu/hest" #: src/hd-data.c:1085 msgid "Wei/Sheep" msgstr "Wei/fÃ¥r" #: src/hd-data.c:1086 msgid "Shen/Monkey" msgstr "Shen/abe" #: src/hd-data.c:1086 msgid "You/Rooster" msgstr "You/hane" #: src/hd-data.c:1087 msgid "Xu/Dog" msgstr "Xu/hund" #: src/hd-data.c:1087 msgid "Hai/Pig" msgstr "Hai/gris" #: src/hd-data.c:1284 msgid "Ast" msgstr "Ast" #: src/hd-data.c:1397 src/hd-data.c:1480 msgid "Bah" msgstr "Bah" #: src/hd-data.c:1547 msgid "Cel" msgstr "Cel" #: src/hd-data.c:1689 src/hd-data.c:2222 msgid "Chi" msgstr "Chi" #: src/hd-data.c:1803 src/hd-data.c:2322 src/hd-data.c:3839 #, c-format msgid "Cannot calculate lunisolar calendar for %d correctly" msgstr "" #: src/hd-data.c:2224 src/hd-data.c:3727 #, fuzzy msgid "Jap" msgstr "jan" #: src/hd-data.c:2420 msgid "Chr" msgstr "Kr" #: src/hd-data.c:2654 src/hd-data.c:4171 msgid "FRR" msgstr "" #: src/hd-data.c:2775 src/hd-data.c:2957 #, fuzzy msgid "Heb" msgstr "feb" #: src/hd-data.c:3187 src/hd-data.c:3616 msgid "Isl" msgstr "" #: src/hd-data.c:4241 src/hd-data.c:4336 msgid "AMO" msgstr "" #: src/hd-data.c:4262 src/hd-data.c:4334 msgid "EGO" msgstr "" #: src/hd-data.c:4444 msgid "OxN" msgstr "" #: src/hd-data.c:4446 msgid "OxO" msgstr "" #: src/hd-data.c:4647 src/hd-data.c:4776 msgid "Per" msgstr "" #: src/hd-data.c:4844 msgid "Zod" msgstr "" #: src/hd-use.c:928 msgid " day" msgstr " dag" #: src/hd-use.c:1973 src/hd-use.c:1978 src/hd-use.c:1982 src/hd-use.c:1989 #: src/hd-use.c:1993 src/hd-use.c:2089 src/hd-use.c:2273 msgid "Eternal holiday list" msgstr "Evighedskalender for helligdage" #: src/hd-use.c:1977 #, c-format msgid "%s:%*sThe year %0*d is A leap year" msgstr "%s:%*sÃ…r %0*d ER et skudÃ¥r" #: src/hd-use.c:1981 #, c-format msgid "%s:%*sThe year %0*d is NO leap year" msgstr "%s:%*sÃ…r %0*d ER IKKE et skudÃ¥r" #: src/hd-use.c:1988 #, c-format msgid "%s:%*sThe year %d is A leap year" msgstr "%s:%*sÃ…r %d ER et skudÃ¥r" #: src/hd-use.c:1992 #, c-format msgid "%s:%*sThe year %d is NO leap year" msgstr "%s:%*sÃ…r %d ER IKKE et skudÃ¥r" #: src/hd-use.c:2242 #, c-format msgid " = %+4d day" msgstr " = %+4d dag" #: src/hd-use.c:2244 #, c-format msgid " = %+4d days" msgstr " = %+4d dage" #: src/hd-use.c:2271 #, c-format msgid "%s%s contains %d maximum entries now!%s" msgstr "%s%s indeholder nu %d maxposter!%s" #: src/help.c:64 #, 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:74 #, fuzzy msgid "# Day number (must be defined)" msgstr "Daggruppe (exakt en medlem mÃ¥ste definieras):" #: src/help.c:75 #, fuzzy msgid "# Year number (must be defined)" msgstr "Ã…rsgruppe (exakt en medlem mÃ¥ste definieras):" #: src/help.c:76 #, fuzzy msgid "# Weekday name (may be defined)" msgstr "Namngruppe med ugedage (en medlem kan definieras):" #: src/help.c:77 msgid "Month group (exactly one member must be defined):" msgstr "MÃ¥nedsgruppe (exakt en medlem mÃ¥ste definieras):" #: src/help.c:78 msgid "# Month number" msgstr "# MÃ¥nedsnummer" #: src/help.c:79 msgid "# Month name" msgstr "# MÃ¥nedsnavn" #: src/help.c:80 msgid "Highlighting group (all members must be defined):" msgstr "Fremhæver gruppe (alle medlemmer skal være defineret):" #: src/help.c:81 msgid "Start of highlighting sequence/marking character" msgstr "Start pÃ¥ fremhævningssekvens/markeringstegn" #: src/help.c:83 msgid "End of highlighting sequence/marking character" msgstr "Slut pÃ¥ fremhævningssekvens/markeringstegn" #: src/help.c:85 msgid "Character replacement:" msgstr "Erstatningstegn:" #: src/help.c:86 #, c-format msgid "Space/blank ('%c') character" msgstr "Mellemrumstegn (\"%c\")" #: src/help.c:87 #, c-format msgid "Underscore ('%c') character" msgstr "Bundstregstegn (\"%c\")" #: src/help.c:88 #, c-format msgid "Percent ('%c') character" msgstr "Procenttegn (\"%c\")" #: src/help.c:89 #, c-format msgid "Backslash ('%c') character" msgstr "Omvendt skrÃ¥streg (\"%c\")" #: src/help.c:90 msgid "All format elements marked by # may optionally" msgstr "Alle formatelementer, der er markeret med #, kan valgfrit" #: src/help.c:91 msgid "contain a format instruction, which template is like:" msgstr "indeholde en formateringsinstruktion, hvis skabelon ligner:" #: src/help.c:92 msgid "[ALIGNMENT [SIGN] [ZERO] WIDTH [STYLE] [SUFFIX] FORMAT]" msgstr "[JUSTERING [FORTEGN] [NUL] BREDDE [STIL] [SUFFIKS] FORMAT]" #: src/help.c:93 #, fuzzy msgid "ALIGNMENT group (exactly one member must be defined):" msgstr "MÃ¥nedsgruppe (exakt en medlem mÃ¥ste definieras):" #: src/help.c:94 msgid "Field contents placed at the left margin using width WIDTH" msgstr "Feltindhold placeres ved venstre margen med bredden BREDDE" #: src/help.c:96 msgid "Field contents placed in centered manner using width WIDTH" msgstr "Feltindhold placeres centreret med bredden BREDDE" #: src/help.c:98 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:100 msgid "SIGN (may be defined):" msgstr "FORTEGN (kan defineres):" #: src/help.c:101 msgid "Numerical value is provided with leading sign" msgstr "Numerisk værdi udstyres med foranstillet fortegn" #: src/help.c:102 msgid "ZERO (may be defined):" msgstr "NUL (kan defineres):" #: src/help.c:103 #, fuzzy msgid "Numerical value is filled with leading zero(es)" msgstr "Dagnummer med inledende nollor" #: src/help.c:104 msgid "WIDTH (must be defined):" msgstr "BREDDE (skal defineres):" #: src/help.c:105 #, c-format msgid "Field has the width N (%d...%d)" msgstr "Felt har bredden N (%d...%d)" #: src/help.c:106 #, fuzzy msgid "STYLE group (exactly one member may be defined):" msgstr "Ã…rsgruppe (exakt en medlem mÃ¥ste definieras):" #: src/help.c:107 msgid "Field contents is converted to upper-case letters" msgstr "Feltindhold omdannes til store bogstaver" #: src/help.c:108 msgid "Field contents is converted to lower-case letters" msgstr "Feltindhold omdannes til smÃ¥ bogstaver" #: src/help.c:109 msgid "Field contents is converted to capitalized words" msgstr "Feltindhold omdannes til ord med stort begyndelsesbogstav" #: src/help.c:110 msgid "SUFFIX (may be defined):" msgstr "SUFFIKS (kan defineres):" #: src/help.c:111 msgid "Numerical value is provided with an ordinal number suffix" msgstr "" #: src/help.c:113 #, fuzzy msgid "FORMAT group (exactly one member must be defined):" msgstr "MÃ¥nedsgruppe (exakt en medlem mÃ¥ste definieras):" #: src/help.c:114 msgid "Field contents is not cut after position WIDTH" msgstr "" #: src/help.c:115 msgid "Field contents is cut after position WIDTH" msgstr "" #: src/help.c:129 msgid "legal holidays" msgstr "offentlige helligdage" #: src/help.c:130 msgid "holidays" msgstr "helligdage" #: src/help.c:131 msgid "Mondays" msgstr "mandage" #: src/help.c:132 msgid "Tuesdays" msgstr "tirsdage" #: src/help.c:133 msgid "Wednesdays" msgstr "onsdage" #: src/help.c:134 msgid "Thursdays" msgstr "torsdage" #: src/help.c:135 msgid "Fridays" msgstr "fredage" #: src/help.c:136 msgid "Saturdays" msgstr "lørdage" #: src/help.c:137 msgid "Sundays" msgstr "søndage" #: src/help.c:138 msgid "Mondays...Thursdays" msgstr "mandage - torsdage" #: src/help.c:139 msgid "Mondays...Fridays" msgstr "mandage - fredage" #: src/help.c:169 #, 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:242 msgid "OPTION" msgstr "FLAG" #: src/help.c:255 msgid " Display help text and quit program" msgstr " Vis hjælpetekst og afslut" #: src/help.c:272 msgid " Display extended help text and quit program" msgstr " Visa udvidet hjælpetekst og afslut" #: src/help.c:290 msgid " Display software license and quit program" msgstr " Visa programlicens og afslut" #: src/help.c:301 #, fuzzy msgid " Display version information and quit program" msgstr " Visa versionsnummer og afslut" #: src/help.c:312 #, 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:325 #, c-format msgid " Create response file for the `%cFILE' option" msgstr " Opret responsfil for \"%cFIL-flaget\"" #: src/help.c:329 #, c-format msgid " %-3s = Store arguments of command line in file %s" msgstr " %-3s = Gem argumenter fra kommandolinjen i filen %s" #: src/help.c:343 #, 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:345 #, c-format msgid " %-3s = File name of the shell script" msgstr " %-3s = Skalprogrammets filnavn" #: src/help.c:359 #, 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:363 #, 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:368 #, 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:380 msgid " Export local date variables from file to file" msgstr " Exportera lokala datovariabler fra fil til fil" #: src/help.c:392 #, fuzzy, c-format msgid " Define global text variable(s) \"TVAR->%ca...%cz\"" msgstr " Definiera globala textvariabler \"tvar->%ca...%cz\"" #: src/help.c:397 #, 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:402 #, 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:408 #, fuzzy, c-format msgid "" " = \"TVAR[%s|%c%s]COMMAND\" definitions separated by `%s' characters" msgstr " uttryck skilda Ã¥t med \"%s\"-tegn" #: src/help.c:413 #, 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:425 msgid " Export local text variables from file to file" msgstr " Exportera lokala textvariabler fra fil til fil" #: src/help.c:437 src/help.c:467 #, 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:442 #, 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:447 #, fuzzy msgid " is a LOWER-CASE-LETTER, it means a non-exclusion!" msgstr " er en GEMEN, betyder det \"icke uteslutning\"!" #: src/help.c:451 #, c-format msgid " %c = Exclusion of all %s" msgstr " %c = Uteslutning af %s" #: src/help.c:472 #, 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:476 #, c-format msgid " expressions separated by `%s' characters" msgstr " uttryck skilda Ã¥t med \"%s\"-tegn" #: src/help.c:489 #, 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:494 #, c-format msgid " %-3s = Any text respectively \"regular expression\" you like" msgstr " %-3s = Vilken text eller \"reguljært uttryck\" som helst" #: src/help.c:507 #, 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:519 #, fuzzy, c-format msgid " Revert the sense of matching of the `%s' option" msgstr " Skapa responsfil for \"%cFIL-flaggan\"" #: src/help.c:530 #, fuzzy msgid " Display some debug information" msgstr " Visa lite fejlsøkningsinformation" #: src/help.c:538 #, fuzzy, c-format msgid "" " [%-3s] = internal Information if program internal maximums are reached" msgstr "" " [%-3s] = internal Information ifall programmets interne maxima opnÃ¥s" #: src/help.c:547 msgid "" " = handled Like `internal' and file names which are handled" msgstr " = handled Som \"internal\" plus filnavn som hanteras" #: src/help.c:555 msgid "" " = unhandled Like `internal' and file names which are unhandled" msgstr "" " = unhandled Som \"internal\" plus filnavn som ikke hanteras" #: src/help.c:563 msgid " = all Like `handled' and `unhandled' together" msgstr " = all Som \"handled\" og \"unhandled\" tillsammans" #: src/help.c:571 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:581 msgid " Use special format for calendar sheet" msgstr " Anvænd speciellt format for kalenderblad" #: src/help.c:584 msgid " [MOD] = - Use standard format for calendar sheet" msgstr " [MOD] = - Anvænd standardformat for kalenderblad" #: src/help.c:595 #, fuzzy msgid " Use leap year rule of Eastern Orthodox churches" msgstr " Anvænd regeln for skudÃ¥r i ortodoxa kyrkan" #: src/help.c:605 #, fuzzy msgid " Provide calendar sheet with week numbers" msgstr " TillhandahÃ¥ll kalenderblad med ugenummer" #: src/help.c:616 #, fuzzy, c-format msgid " Determine type of week numbers (actual: %s)" msgstr " Bestem typen af ugenumre (nuværende: %s)" #: src/help.c:617 msgid "Standard" msgstr "Standard" #: src/help.c:623 #, c-format msgid " %-3s = yes ISO-8601:1988 week numbers" msgstr "" #: src/help.c:630 #, fuzzy msgid " = no Standard week numbers" msgstr " TillhandahÃ¥ll kalenderblad med ugenummer" #: src/help.c:641 msgid " Suppress output of calendar sheet explicitly" msgstr " Undertryck utmatning af kalenderblad explicit" #: src/help.c:654 #, c-format msgid " Direct output through external `%s' pager" msgstr " Skicka utdata genom en extern \"%s\"-sidvisare" #: src/help.c:660 src/help.c:662 msgid " Direct output through simple internal pager" msgstr " Skicka utdata genom en enkel intern sidvisare" #: src/help.c:679 msgid " Disable highlighting of text, holiday resp., actual day" msgstr " Stæng af framhævning af text, helligdage resp. aktuell dag" #: src/help.c:694 msgid " Forces highlighting sequences if output is redirected/piped" msgstr " Framtvinga framhævningssekvens om utdata styrs om" #: src/help.c:706 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:710 #, c-format msgid " %-3s = Highlighting sequence pairs separated by `%s' characters" msgstr " %-3s = Framhævningssekvenspar skilda Ã¥t med \"%s\"-tegn" #: src/help.c:715 #, 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:720 #, 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:731 msgid " Modify format of year calendar" msgstr " Ändra format pÃ¥ Ã¥rskalender" #: src/help.c:735 #, 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:747 msgid " Use consecutive day of year in calendar sheet" msgstr " Anvænd fortløbende dage pÃ¥ Ã¥ret pÃ¥ kalenderbladet" #: src/help.c:751 msgid " [MOD] = b Use both date notations (day of month+year)" msgstr "" " [MOD] = b Anvænd bÃ¥da datobeteckningarna (dag i mÃ¥neden+dag pÃ¥ Ã¥ret)" #: src/help.c:763 msgid " Use consecutive day of year in eternal holiday list" msgstr " Anvænd fortløbende dage pÃ¥ Ã¥ret i evighedskalendern" #: src/help.c:767 src/help.c:783 msgid " [MOD] = b Use both date notations (day of month+year)" msgstr "" " [MOD] = b Anvænd bÃ¥da datobeteckningarna (dag i mÃ¥neden+dag pÃ¥ Ã¥ret)" #: src/help.c:779 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:794 #, fuzzy, c-format msgid " Set starting day of week (actual: %s)" msgstr " Sætt dag som veckan begynder med" #: src/help.c:827 #, c-format msgid " Send output via `%s' program to user" msgstr " Skicka utdata via programmet \"%s\" til anvændare" #: src/help.c:856 msgid "UNKNOWN" msgstr "" #: src/help.c:859 #, c-format msgid " [%-3s] = Email address, otherwise eMail is send to user `%s'" msgstr "" #: src/help.c:877 #, 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:880 msgid " n = Legal days and memorial days" msgstr " n = Allmænna helligdage og minnesdage" #: src/help.c:882 msgid " N = Legal days only" msgstr " N = Enbart allmænna helligdage" #: src/help.c:884 src/help.c:1630 #, c-format msgid " [MOD] = %s Descending sort order" msgstr " [MOD] = %s Fallende sorteringsordning" #: src/help.c:896 #, fuzzy msgid " Suppress leading blank line of eternal holiday list" msgstr " Evighedskalender for helligdage uden titel" #: src/help.c:906 msgid " Exclude title of eternal holiday list" msgstr " Evighedskalender for helligdage uden titel" #: src/help.c:918 #, fuzzy msgid " Provide eternal holiday list with astronomical data" msgstr " TillhandahÃ¥ll en evighedskalender med kristna helligdage" #: src/help.c:930 #, fuzzy msgid " Provide eternal holiday list with Bahá'i calendar holidays" msgstr " TillhandahÃ¥ll en evighedskalender uden standardhelligdage" #: src/help.c:942 #, fuzzy msgid " Provide eternal holiday list with Bahá'i calendar months" msgstr " TillhandahÃ¥ll en evighedskalender uden standardhelligdage" #: src/help.c:954 #, fuzzy msgid " Provide eternal holiday list with Celtic calendar holidays" msgstr " TillhandahÃ¥ll en evighedskalender uden standardhelligdage" #: src/help.c:966 #, fuzzy msgid "" " Provide eternal holiday list with Chinese flexible calendar " "holidays" msgstr " TillhandahÃ¥ll en evighedskalender med kristna helligdage" #: src/help.c:978 #, fuzzy msgid "" " Provide eternal holiday list with Chinese flexible calendar months" msgstr " TillhandahÃ¥ll en evighedskalender med kristna helligdage" #: src/help.c:990 #, fuzzy msgid " Provide eternal holiday list with Chinese calendar holidays" msgstr " TillhandahÃ¥ll en evighedskalender med kristna helligdage" #: src/help.c:1002 #, fuzzy msgid " Provide eternal holiday list with Chinese calendar months" msgstr " TillhandahÃ¥ll en evighedskalender med kristna helligdage" #: src/help.c:1014 #, fuzzy msgid "" " Provide eternal holiday list with Christian Western calendar " "holidays" msgstr " TillhandahÃ¥ll en evighedskalender med kristna helligdage" #: src/help.c:1026 #, fuzzy msgid " Provide eternal holiday list with Coptic calendar months" msgstr " TillhandahÃ¥ll en evighedskalender uden standardhelligdage" #: src/help.c:1038 #, fuzzy msgid " Provide eternal holiday list with Ethiopic calendar months" msgstr " TillhandahÃ¥ll en evighedskalender uden standardhelligdage" #: src/help.c:1050 #, fuzzy msgid "" " Provide eternal holiday list with French Revolutionary calendar " "months" msgstr " TillhandahÃ¥ll en evighedskalender uden standardhelligdage" #: src/help.c:1062 #, fuzzy msgid " Provide eternal holiday list with Hebrew calendar holidays" msgstr " TillhandahÃ¥ll en evighedskalender uden standardhelligdage" #: src/help.c:1074 #, fuzzy msgid " Provide eternal holiday list with Hebrew calendar months" msgstr " TillhandahÃ¥ll en evighedskalender uden standardhelligdage" #: src/help.c:1086 #, fuzzy msgid "" " Provide eternal holiday list with Indian civil-calendar months" msgstr " TillhandahÃ¥ll en evighedskalender med kristna helligdage" #: src/help.c:1098 #, fuzzy msgid "" " Provide eternal holiday list with Islamic civil-calendar holidays" msgstr " TillhandahÃ¥ll en evighedskalender uden standardhelligdage" #: src/help.c:1110 #, fuzzy msgid "" " Provide eternal holiday list with Islamic civil-calendar months" msgstr " TillhandahÃ¥ll en evighedskalender uden standardhelligdage" #: src/help.c:1122 #, fuzzy msgid "" " Provide eternal holiday list with Japanese flexible calendar " "holidays" msgstr " TillhandahÃ¥ll en evighedskalender uden standardhelligdage" #: src/help.c:1134 #, fuzzy msgid "" " Provide eternal holiday list with Japanese flexible calendar months" msgstr " TillhandahÃ¥ll en evighedskalender uden standardhelligdage" #: src/help.c:1146 #, fuzzy msgid " Provide eternal holiday list with Japanese calendar holidays" msgstr " TillhandahÃ¥ll en evighedskalender uden standardhelligdage" #: src/help.c:1158 #, fuzzy msgid " Provide eternal holiday list with Japanese calendar months" msgstr " TillhandahÃ¥ll en evighedskalender uden standardhelligdage" #: src/help.c:1171 #, fuzzy msgid "" " Provide eternal holiday list with multicultural New Year holidays" msgstr " TillhandahÃ¥ll en evighedskalender uden standardhelligdage" #: src/help.c:1183 #, fuzzy msgid " Provide eternal holiday list with Old-Armenic calendar months" msgstr " TillhandahÃ¥ll en evighedskalender uden standardhelligdage" #: src/help.c:1195 #, fuzzy msgid " Provide eternal holiday list with Old-Egyptic calendar months" msgstr " TillhandahÃ¥ll en evighedskalender uden standardhelligdage" #: src/help.c:1207 #, fuzzy msgid "" " Provide eternal holiday list with Orthodox new-calendar holidays" msgstr " TillhandahÃ¥ll en evighedskalender uden standardhelligdage" #: src/help.c:1219 #, fuzzy msgid "" " Provide eternal holiday list with Orthodox old-calendar holidays" msgstr " TillhandahÃ¥ll en evighedskalender uden standardhelligdage" #: src/help.c:1231 #, fuzzy msgid "" " Provide eternal holiday list with Persian Jalaali-calendar holidays" msgstr " TillhandahÃ¥ll en evighedskalender uden standardhelligdage" #: src/help.c:1243 #, fuzzy msgid "" " Provide eternal holiday list with Persian Jalaali-calendar months" msgstr " TillhandahÃ¥ll en evighedskalender med kristna helligdage" #: src/help.c:1255 #, fuzzy msgid " Provide eternal holiday list with zodiacal marker data" msgstr " TillhandahÃ¥ll en evighedskalender uden standardhelligdage" #: src/help.c:1267 msgid " Provide eternal holiday list with country specific holidays" msgstr "" " TillhandahÃ¥ll en evighedskalender med landsspecifika helligdage" #: src/help.c:1271 #, 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:1276 #, fuzzy, c-format msgid "" " which are connected by `%s' characters. Countries/territories," msgstr " som er sammanbundna med \"%s\"-tegn" #: src/help.c:1281 msgid " marked by # have an incomplete recording of holidays" msgstr "" #: src/help.c:1285 #, fuzzy, c-format msgid " %-*s = Holidays in %s" msgstr " %s = %s helligdage" #: src/help.c:1306 msgid "" " Set reference value for rise/set time respectively shadow length" msgstr "" #: src/help.c:1310 #, c-format msgid " %-3s = Angular value respectively factor in range: %+.1f...%+.1f" msgstr "" #: src/help.c:1321 #, fuzzy msgid " Set base data of Earth's atmosphere" msgstr " Sætt dag som veckan begynder med" #: src/help.c:1325 #, 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:1328 #, c-format msgid " Air pressure in Millibar (actual: %.3f)" msgstr "" #: src/help.c:1333 #, c-format msgid " Air temperature in degrees Celsius (actual: %+.3f)" msgstr "" #: src/help.c:1343 #, fuzzy msgid " Limit rise/set times of Sun to the day" msgstr " 1. Representation af text" #: src/help.c:1355 msgid " Represent astronomical times and data with utmost precision" msgstr "" #: src/help.c:1365 #, fuzzy, c-format msgid " Execute `%c%c[%s]' shell commands" msgstr " # B = Utfør ikke skalkommandona \"%c%c[%s]\"" #: src/help.c:1368 #, fuzzy, c-format msgid " and \"TVAR[%s|%c%s]COMMAND\" assignments" msgstr " uttryck skilda Ã¥t med \"%s\"-tegn" #: src/help.c:1380 msgid " Change base time of astronomical functions" msgstr "" #: src/help.c:1383 msgid " respectively, change cycle-starting time" msgstr "" #: src/help.c:1393 #, 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:1401 #, 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:1417 msgid " Change cycle-ending time" msgstr "" #: src/help.c:1421 #, 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:1435 msgid " Change cycle-timestep" msgstr "" #: src/help.c:1439 #, c-format msgid " %-3s = MMMM|HH%s[MM] Timestep value (actual: %02d%s%02d)" msgstr "" #: src/help.c:1452 #, fuzzy msgid " Change base year of calendar" msgstr " Ändra format pÃ¥ Ã¥rskalender" #: src/help.c:1456 #, c-format msgid " %-3s = [%s|%s]YYYY Year offset value (actual: %d)" msgstr "" #: src/help.c:1468 msgid " Set period of Gregorian Reformation" msgstr " Stæll in perioden for gregorianska reformationen" #: src/help.c:1470 #, c-format msgid " Actual respected period: %02d-%02d %s %0*d" msgstr " Aktuell tidsperiod: %02d-%02d %s %0*d" #: src/help.c:1476 #, 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:1484 #, 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:1498 #, 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:1501 #, fuzzy, c-format msgid " Actual: (%s) `%s' (%s)" msgstr " Aktuellt format: (%s) \"%s\" (%s)" #: src/help.c:1503 msgid "self-defined" msgstr "eget" #: src/help.c:1508 #, fuzzy, c-format msgid " %-6s = Format is: `%s' (%s)" msgstr " %-6s = Sætt formatet till: \"%s\" (%s)" #: src/help.c:1516 #, 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:1559 msgid " Define translatable country specific special character pairs" msgstr "" #: src/help.c:1563 #, c-format msgid " %-3s = UPPER-CASE-LETTER\"\"LOWER-CASE-LETTER... definitions" msgstr "" #: src/help.c:1568 #, c-format msgid "" " E.g. a `%s%s%s%s%s%s%s%s' %-3s causes the correct conversion of" msgstr "" #: src/help.c:1573 msgid "" " the preceding special characters in an individual date format," msgstr "" #: src/help.c:1577 msgid "" " which has a STYLE format instruction component, and that, how" msgstr "" #: src/help.c:1581 #, fuzzy msgid " they are used by the character set used in Germany" msgstr " som er sammanbundna med \"%s\"-tegn" #: src/help.c:1590 #, c-format msgid "+++ FIXED DATES +++" msgstr "+++ FASTA DATUM +++" #: src/help.c:1611 #, 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:1616 #, 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:1620 src/help.c:2160 msgid " Implies period: Today" msgstr " Medfør tidsperioden: idag" #: src/help.c:1624 msgid " c = Display only those dates, for which fixed dates exists" msgstr " c = Visa bara de dage, som har fasta dato" #: src/help.c:1628 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:1640 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:1653 #, fuzzy, c-format msgid " %-3s = Heading/Title text used for fixed date list" msgstr " # x = Lista med fasta dato uden titel" #: src/help.c:1656 #, fuzzy, c-format msgid " Actual: `%s'" msgstr " = %s BakÃ¥t" #: src/help.c:1669 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:1681 msgid " 1. Representation of text" msgstr " 1. Representation af text" #: src/help.c:1693 msgid " = Set width of the biorhythm text graphics" msgstr " = Sætt bredden pÃ¥ biorytmens textgrafik" #: src/help.c:1697 #, c-format msgid " %-3s = %d...%d Length of a single axis" msgstr " %-3s = %d - %d Længden pÃ¥ en axel" #: src/help.c:1710 #, fuzzy msgid " = Set height of the Moon phase text graphics" msgstr " = Sætt højden pÃ¥ mÃ¥nfasens textgrafik" #: src/help.c:1714 #, c-format msgid " %-3s = %d...%d Total number of lines" msgstr " %-3s = %d...%d Totala antalet linjer" #: src/help.c:1726 msgid " # a = Display origin of fixed date" msgstr " # a = Visa ursprunget til fast dato" #: src/help.c:1738 msgid " # A = Display using alternative list format" msgstr "" " # A = Visa genom at anvænda et alternativt listformat" #: src/help.c:1750 msgid " # e = Include legal days and memorial days" msgstr " # e = Tag med allmænna helligdage og minnesdage" #: src/help.c:1752 msgid " # E = Include legal days only" msgstr " # E = Tag bara med allmænna helligdage" #: src/help.c:1762 #, fuzzy msgid " # k = Display week number" msgstr " # k = Visa ugenummer" #: src/help.c:1774 msgid " # o = Omit repeating date part of fixed dates" msgstr " # o = Utelæmna del af datoet som oprepas" #: src/help.c:1786 #, fuzzy msgid "" " # Q = Suppress leading blank line of fixed dates list" msgstr " # U = Utelæmna datodelen af fasta dato" #: src/help.c:1798 msgid " # U = Suppress date part of fixed dates" msgstr " # U = Utelæmna datodelen af fasta dato" #: src/help.c:1810 #, fuzzy msgid " # J = Suppress text part of fixed dates" msgstr " # U = Utelæmna datodelen af fasta dato" #: src/help.c:1822 msgid " # x = Exclude title of fixed date list" msgstr " # x = Lista med fasta dato uden titel" #: src/help.c:1834 msgid " # z = Display consecutive number of fixed date" msgstr " # z = Visa fortløbende fasta dato" #: src/help.c:1846 msgid "" " # Z = Display dates, for which fixed dates doesn't exist" msgstr " # Z = Visa dage, som mangler fasta dato" #: src/help.c:1854 msgid " 2. Respected period" msgstr " 2. Aktuell tidsperiod" #: src/help.c:1866 msgid " = Manage `29-FEBRUARY' in non-leap years" msgstr " = Hantera 29 FEBRUARI under icke skudÃ¥r" #: src/help.c:1874 #, c-format msgid " %-3s = february Respect at `28-FEBRUARY'" msgstr " %-3s = february Beakta den 28 FEBRUARI" #: src/help.c:1883 #, c-format msgid " %-3s = march Respect at `01-MARCH'" msgstr " %-3s = march Beakta den 1 MARS" #: src/help.c:1896 msgid "" " # d = Include actual date if list of periods is " "generated" msgstr " # d = Tag med aktuellt dato om periodlista skapas" #: src/help.c:1908 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:1924 msgid " # Nd = Single absolute day N" msgstr " # Nd = Enstaka dag N" #: src/help.c:1926 #, c-format msgid " # %cdN = Single absolute day N" msgstr " # %cdN = Enstaka dag N" #: src/help.c:1931 msgid " # NMOD = Single day N relative to today" msgstr " # NMOD = Enstaka dag N relativt idag" #: src/help.c:1933 #, c-format msgid " MOD = %s Forwards" msgstr " MOD = %s FramÃ¥t" #: src/help.c:1935 #, c-format msgid " = %s Backwards" msgstr " = %s BakÃ¥t" #: src/help.c:1938 msgid " # Nw = Complete week N" msgstr " # Nw = Hel vecka N" #: src/help.c:1942 msgid "" " N = 0 1st week / last week of previous year" msgstr "" " N = 0 1:a veckan / sista veckan foregÃ¥ende " "Ã¥r" #: src/help.c:1946 msgid " N = 1...52 1st...52nd week (always)" msgstr " N = 1 - 52 1:a - 52:a veckan (alltid)" #: src/help.c:1950 msgid " N = 53 53rd week (sometimes)" msgstr " N = 53 53:e veckan (ibland)" #: src/help.c:1952 msgid " N = 99 Last week" msgstr " N = 99 Sista veckan" #: src/help.c:1955 #, fuzzy, c-format msgid " # %s%s = Single day %s of month %s" msgstr " # \"%s%s\" = Enstaka dag \"%s\" i mÃ¥neden \"%s\"" #: src/help.c:1961 #, fuzzy, c-format msgid " # %s%sN = Single N'th weekday %s of month %s" msgstr " # \"%s%s\"N = Enstaka N:e ugedag \"%s\" i mÃ¥neden \"%s\"" #: src/help.c:1966 #, 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:1971 #, fuzzy, c-format msgid " N = 5 5th weekday %s (sometimes)" msgstr " N = 5 5:e ugedagen \"%s\" (ibland)" #: src/help.c:1975 #, fuzzy, c-format msgid " N = 9 Last weekday %s" msgstr " N = 9 Sista ugedagen \"%s\"" #: src/help.c:1979 #, fuzzy, c-format msgid " # %cdN%s = Single N'th weekday %s" msgstr " # %cdN\"%s\" = Enstaka N:e ugedag \"%s\"" #: src/help.c:1984 #, 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:1989 #, 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:1993 #, fuzzy, c-format msgid " N = 99 Last weekday %s" msgstr " N = 99 Sista ugedagen \"%s\"" #: src/help.c:1998 #, 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:2003 #, 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:2008 #, 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:2013 #, 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:2017 #, fuzzy, c-format msgid " N = 99 %s of last week" msgstr " N = 99 \"%s\" i sista veckan" #: src/help.c:2023 #, 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 pÃ¥skdagen" #: src/help.c:2029 #, 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 pÃ¥skdagen" #: src/help.c:2035 #, 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:2041 #, 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:2047 #, 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:2053 #, 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:2061 msgid " # t|T = List tomorrow" msgstr " # t|T = Lista imorgon" #: src/help.c:2078 msgid " # w|W[MOD] = List complete week" msgstr " # w|W[MOD] = Lista hela veckan" #: src/help.c:2082 #, 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:2087 #, c-format msgid "" " = %s List yesterday until starting day of week" msgstr "" " = %s Lista fra igÃ¥r til begyndelsen pÃ¥ veckan" #: src/help.c:2107 msgid " # m|M[MOD] = List complete month" msgstr " # m|M[MOD] = Lista hela mÃ¥neden" #: src/help.c:2111 #, c-format msgid "" " [MOD] = %s List tomorrow until ending day of month" msgstr "" " [MOD] = %s Lista fra imorgon til slutet pÃ¥ mÃ¥neden" #: src/help.c:2116 #, c-format msgid "" " = %s List yesterday until starting day of month" msgstr "" " = %s Lista fra igÃ¥r til begyndelsen pÃ¥ mÃ¥neden" #: src/help.c:2136 msgid " # y|Y[MOD] = List complete year" msgstr " # y|Y[MOD] = Lista hela Ã¥ret" #: src/help.c:2140 #, 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:2145 #, c-format msgid "" " = %s List yesterday until starting day of year" msgstr "" " = %s Lista fra igÃ¥r til begyndelsen pÃ¥ Ã¥ret" #: src/help.c:2158 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:2164 msgid " f = Display only those dates, for which fixed dates exists" msgstr " f = Visa bara de dage, som har fasta dato" #: src/help.c:2168 #, 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:2172 #, 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:2183 #, fuzzy msgid " Define additional resource file line" msgstr " Definiera ytterligare linjer i resursfilen" #: src/help.c:2185 #, fuzzy, c-format msgid " %-3s = Any possible resource file line" msgstr " %-3s = Vilken resursfillinje som helst" #: src/help.c:2195 #, c-format msgid "%cDATE" msgstr "%cDATO" #: src/help.c:2197 msgid "Use given `DATE' instead of today's date" msgstr "Anvend angivet \"DATO\" i stedet for dagens dato" #: src/help.c:2201 #, 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:2208 #, c-format msgid " %s%cwN[%s], month name[%s], weekday name[N] or %s" msgstr "" " %s%cwN[%s], navn pÃ¥ mÃ¥ned[%s], navn pÃ¥ ugedag[N] eller %s" #: src/help.c:2217 #, c-format msgid "%cFILE" msgstr "%cFIL" #: src/help.c:2219 msgid "Preload options and commands from `FILE'" msgstr "Læs flag og kommandon fra \"FIL\"" #: src/help.c:2223 msgid "COMMAND" msgstr "KOMMANDO" #: src/help.c:2225 #, c-format msgid "%s = Month in range: %d...%d" msgstr "%s = MÃ¥ned i intervallet: %d - %d" #: src/help.c:2230 #, c-format msgid " or: month name | %s | %s%s | %s%s | %s%s" msgstr " eller: navn pÃ¥ mÃ¥ned | %s | %s%s | %s%s | %s%s" #: src/help.c:2235 #, 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:2241 #, 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:2247 #, c-format msgid "%s%*s = Year in range: %d...%d" msgstr "%s%*s = Ã…r i intervallet: %d - %d" #: src/help.c:2251 #, 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:2256 #, 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:2282 #, fuzzy, c-format msgid " %sh, %s Display this help text and quit program" msgstr " Visa hjælptext og afslutte" #: src/help.c:2285 #, fuzzy, c-format msgid " %shh, %s Display extended help text and quit program" msgstr " Visa utvidgad hjælptext og afslutte" #: src/help.c:2289 #, fuzzy, c-format msgid " %sL, %s Display software license and quit program" msgstr " Visa programlicens og afslutte" #: src/help.c:2293 #, fuzzy, c-format msgid " %sV, %s Display version information and quit program" msgstr " Visa versionsnummer og afslutte" #: src/help.c:2301 #, fuzzy, c-format msgid " %sp, %s Direct output through external `%s' pager" msgstr " Skicka utdata genom en extern \"%s\"-sidvisare" #: src/help.c:2308 src/help.c:2313 #, fuzzy, c-format msgid " %sp, %s Direct output through simple internal pager" msgstr " Skicka utdata genom en enkel intern sidvisare" #: src/help.c:2338 #, fuzzy msgid "This software doesn't claim completeness, correctness or usability." msgstr "Dette program gør ikke ansprÃ¥k pÃ¥ fullstændighet, korrekthet eller" #: src/help.c:2342 #, 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:2346 #, 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:2350 #, 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:2352 #, fuzzy msgid "agreement, which binds you LEGALLY !!" msgstr "accepterar du uden undantag detta aftal!!" #: src/help.c:2357 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:2361 msgid "it under the terms of the `GNU General Public License' as published by" msgstr "det under vilkÃ¥rene i \"GNU General Public License\" udgivet af" #: src/help.c:2365 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:2367 msgid "any later version." msgstr "enhver senere version." #: src/help.c:2372 #, fuzzy msgid "You should have received a copy of the `GNU General Public License'" msgstr "Du skall ha fÃ¥tt en kopia af \"GNU General Public License\"" #: src/help.c:2374 #, fuzzy msgid "along with this program; if not, write to the:" msgstr "tillsammans med detta program; om inte, skriv till:" #: src/help.c:2423 #, 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:2451 #, c-format msgid "Use `%s %s|[%s?]" msgstr "Brug '%s %s|[%s?]" #: src/help.c:2460 msgid "for more information." msgstr "for at fÃ¥ mere information." #: src/help.c:2564 src/tcal.c:197 src/txt2gcal.c:136 src/gcal2txt.c:136 #, c-format msgid "Email bug reports to <%s>" msgstr "Rapportér fejl til <%s>" #: src/help.c:2566 #, c-format msgid "GNU gcal home page: <%s>" msgstr "" #: src/help.c:2568 #, c-format msgid "General help using GNU software: <%s>" msgstr "" #: src/help.c:2594 src/tcal.c:219 src/txt2gcal.c:158 src/gcal2txt.c:158 #, 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:2598 src/tcal.c:222 src/txt2gcal.c:161 src/gcal2txt.c:161 #, c-format msgid "There is NO warranty, without even the implied warranty of" msgstr "Det finns INGEN garanti, ej heller nÃ¥gon underforstÃ¥dd garanti om" #: src/help.c:2600 src/tcal.c:224 src/txt2gcal.c:163 src/gcal2txt.c:163 #, 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:2616 #, c-format msgid "%s: The Gregorian calendar program (GNU cal) %s" msgstr "%s: Det gregorianske kalenderprogram (GNU cal) %s" #: src/help.c:2624 #, c-format msgid "Usage: %s [[OPTION...] [%cDATE] [%cFILE...]] [COMMAND]" msgstr "Brug: %s [[FLAG...] [%cDATUM] [%cFIL...]] [KOMMANDO]" #: src/help.c:2627 #, c-format msgid "Usage: %s [[OPTION...] [%cFILE...]] [COMMAND]" msgstr "Brug: %s [[FLAG...] [%cFIL...]] [KOMMANDO]" #: src/help.c:2703 src/help.c:2849 msgid " 4.0 or 4.02" msgstr " 4.0 eller 4.02" #: src/help.c:2711 src/help.c:2857 msgid " later than 5.0" msgstr " senere end 5.0" #: src/help.c:2722 src/help.c:2864 msgid "++ 3.0 or later" msgstr "++ 3.0 eller senere" #: src/help.c:2749 src/help.c:2970 msgid "5.1 or earlier" msgstr "5.1 eller tidigare" #: src/help.c:2752 src/help.c:2973 src/help.c:3128 src/help.c:3198 msgid "unknown compiler" msgstr "ukendt oversætter" #: src/help.c:2787 src/help.c:2876 src/help.c:3010 src/help.c:3032 #: src/help.c:3101 src/help.c:3138 src/help.c:3156 src/help.c:3213 #: src/help.c:3428 msgid " on " msgstr " pÃ¥ " #: src/help.c:2826 msgid "(bad version)" msgstr "(dÃ¥lig version)" #: src/help.c:2873 msgid "unknown compiler (SDK?)" msgstr "ukendt oversætter (SDK?)" #: src/help.c:2941 msgid " later than 4.5" msgstr " senere end 4.5" #: src/help.c:2951 msgid "++ 1.0 or later" msgstr "++ 1.0 eller senere" #: src/help.c:2959 msgid " 1.0 or 1.5?" msgstr " 1.0 eller 1.5?" #: src/help.c:3074 msgid "unknown " msgstr "ukendt " #: src/help.c:3086 #, c-format msgid "version %d.%d" msgstr "version %d.%d" #: src/help.c:3089 src/help.c:3122 src/help.c:3248 #, c-format msgid "version %d" msgstr "version %d" #: src/help.c:3091 #, c-format msgid "unknown version" msgstr "ukendt version" #: src/help.c:3205 #, c-format msgid " (%.4s for Alpha)" msgstr " (%.4s for Alpha)" #: src/help.c:3208 #, c-format msgid " (%.4s for VAX)" msgstr " (%.4s for VAX)" #: src/help.c:3359 msgid " (NetBSD before 0.9)" msgstr " (NetBSD før 0.9)" #: src/help.c:3359 msgid " (NetBSD 1.2 or later)" msgstr " (NetBSD 1.2 eller senere)" #: src/help.c:3366 msgid " (FreeBSD 2.0 or later)" msgstr " (FreeBSD 2.0 eller senere)" #: src/help.c:3369 msgid " (BSD/386 1.1 or later)" msgstr " (BSD/386 1.1 eller senere)" #: src/print.c:544 src/print.c:978 src/print.c:1033 msgid "CW" msgstr "VE" #: src/print.c:565 msgid "Week" msgstr "Vecka" #: src/rc-insert.c:1706 src/rc-insert.c:2824 msgid "pm" msgstr "em" #: src/rc-insert.c:1715 src/rc-insert.c:2833 msgid "am" msgstr "fm" #: src/rc-insert.c:2018 src/rc-insert.c:2028 #, fuzzy msgid "d'\"" msgstr "d'\"" #: src/rc-insert.c:2038 #, fuzzy msgid "h'\"" msgstr "t'\"" #: src/rc-insert.c:3728 src/rc-utils.c:2585 #, 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:3750 src/rc-utils.c:2609 #, 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:513 msgid "Emo" msgstr "Emo" #: src/rc-use.c:518 msgid "Int" msgstr "Int" #: src/rc-use.c:523 msgid "Phy" msgstr "Fys" #: src/rc-use.c:1086 src/rc-use.c:1177 msgid "`Eternal holiday list'" msgstr "\"Evighedskalender for helligdage\"" #: src/rc-use.c:1877 src/rc-use.c:1926 src/rc-use.c:2015 src/rc-use.c:2107 msgid "`Internal'" msgstr "\"Intern\"" #: src/rc-use.c:2339 #, c-format msgid " ; Week %s" msgstr " ; uge %s" #: src/rc-use.c:2348 #, c-format msgid "Week %s" msgstr "Uge %s" #: src/rc-utils.c:397 src/rc-utils.c:414 #, 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:3269 #, 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:3272 src/rc-utils.c:3686 #, c-format msgid "Line %ld: %s" msgstr "Linje %ld: %s" #: src/rc-utils.c:3633 src/utils.c:274 #, c-format msgid "%s: abort, " msgstr "%s: afbryd, " #: src/rc-utils.c:3641 #, c-format msgid "illegal variable definition in file `%s'" msgstr "ugyldig variabeldefinition i filen \"%s\"" #: src/rc-utils.c:3643 #, c-format msgid "illegal definition of variable `%c'" msgstr "ugyldig variabeldefinition \"%c\"" #: src/rc-utils.c:3650 #, c-format msgid "illegal variable operation in file `%s'" msgstr "ugyldig variabeloperation i filen \"%s\"" #: src/rc-utils.c:3652 #, c-format msgid "illegal operation on variable `%c'" msgstr "ugyldig operation pÃ¥ variabel \"%c\"" #: src/rc-utils.c:3658 #, c-format msgid "variable `%c' undefined in file `%s'" msgstr "variabel \"%c\" udefineret i filen \"%s\"" #: src/rc-utils.c:3662 #, 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:3683 #, c-format msgid "Invalid argument in command line given -- %s" msgstr "Ugyldigt argument givet i kommandolinje -- %s" #: src/rc-utils.c:3695 #, c-format msgid "Argument `%s' of command line ignored." msgstr "Argumentet \"%s\" pÃ¥ kommandolinjen ignoreres." #: src/rc-utils.c:3698 #, c-format msgid "Line %ld ignored: %s" msgstr "Linje %ld ignoreret: %s" #: src/tty.c:424 #, c-format msgid "%s: for more, <%s> to quit..." msgstr "%s: for mere, <%s> for at afslutte..." #: src/tty.c:1019 #, c-format msgid "environment variable `%s' not found" msgstr "Miljøvariablen \"%s\" blev ikke fundet" #: src/tty.c:1026 #, c-format msgid "environment variable `%s' not set" msgstr "miljøvariablen \"%s\" er ikke sat" #: src/tty.c:1066 msgid "`termcap' file not found" msgstr "\"termcap\"-fil blev ikke fundet" #: src/tty.c:1071 #, c-format msgid "unknown terminal type defined in `%s'" msgstr "ukendt terminaltype defineret i \"%s\"" #: src/tty.c:1080 #, c-format msgid "" "\n" "%s: warning, %s.\n" "\n" msgstr "" "\n" "%s: advarsel, %s.\n" "\n" #: src/utils.c:280 #, 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 pÃ¥skedag\n" "Ã…ret skal vare i intervallet (%d - %d)" #: src/utils.c:284 src/tcal.c:324 src/txt2gcal.c:263 src/gcal2txt.c:263 #, c-format msgid "`%s' line %ld: virtual memory exhausted (%s=%d)" msgstr "\"%s\" linje %ld: virtuel hukommelse slut (%s=%d)" #: src/utils.c:289 #, 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:294 #, c-format msgid "" "invalid month field(%02d) in file `%s'\n" "Line %ld: %s" msgstr "" "ugyldigt mÃ¥nedsfelt(%02d) i filen \"%s\"\n" "Linje %ld: %s" #: src/utils.c:299 #, 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:303 #, 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:308 #, 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:312 #, c-format msgid "file `%s' not found" msgstr "filen \"%s\" ej fundet" #: src/utils.c:316 #, 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:322 #, 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:327 #, 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:332 #, c-format msgid "sending eMail to <%s> failed" msgstr "forsendelse af e-post til <%s> mislykkedes" #: src/utils.c:334 src/utils.c:352 #, c-format msgid "" "\n" "`%s' line %ld: " msgstr "" "\n" "\"%s\" linje %ld: " #: src/utils.c:341 #, c-format msgid "`%s' line %ld: (`%s') `%s%d' failed" msgstr "\"%s\" linje %ld: (\"%s\") \"%s%d\" mislykkedes" #: src/utils.c:350 #, c-format msgid "read error in file `%s'" msgstr "læsefejl i filen \"%s\"" #: src/utils.c:358 #, 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:364 src/tcal.c:330 src/txt2gcal.c:269 src/gcal2txt.c:269 #, 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:369 #, c-format msgid "(`%s') date format `%s' is invalid" msgstr "(\"%s\") datoformatet \"%s\" er ugyldigt" #: src/utils.c:375 #, c-format msgid "%s in search pattern `%s'" msgstr "%s i søgemønstret \"%s\"" #: src/utils.c:378 #, c-format msgid "invalid search pattern `%s' specified" msgstr "ugyldigt søgemønster \"%s\" specificeret" #: src/utils.c:383 src/tcal.c:338 src/txt2gcal.c:274 src/gcal2txt.c:274 #, c-format msgid "`%s' line %ld: (`%s') unmanaged error (%d)" msgstr "\"%s\" linje %ld: (\"%s\") ikke-behandlet fejl (%d)" #: src/utils.c:403 src/tcal.c:358 src/txt2gcal.c:294 src/gcal2txt.c:294 #, c-format msgid "" "\n" "%s: program aborted by signal %d\n" msgstr "" "\n" "%s: programmet afbrudt af signalet %d\n" #: src/utils.c:1080 msgid "th" msgstr "." #: src/utils.c:1084 msgid "st" msgstr "." #: src/utils.c:1088 msgid "nd" msgstr "." #: src/utils.c:1092 msgid "rd" msgstr "." #: src/utils.c:1123 src/utils.c:1174 src/utils.c:1225 msgid "invalid day" msgstr "ugyldig dag" #: src/utils.c:1128 msgid "Mon" msgstr "man" #: src/utils.c:1133 msgid "Tue" msgstr "tir" #: src/utils.c:1138 msgid "Wed" msgstr "ons" #: src/utils.c:1143 msgid "Thu" msgstr "tor" #: src/utils.c:1148 msgid "Fri" msgstr "fre" #: src/utils.c:1153 msgid "Sat" msgstr "lør" #: src/utils.c:1158 msgid "Sun" msgstr "søn" #: src/utils.c:1179 msgid "Mo" msgstr "ma" #: src/utils.c:1184 msgid "Tu" msgstr "ti" #: src/utils.c:1189 msgid "We" msgstr "on" #: src/utils.c:1194 msgid "Th" msgstr "to" #: src/utils.c:1199 msgid "Fr" msgstr "fr" #: src/utils.c:1204 msgid "Sa" msgstr "lø" #: src/utils.c:1209 msgid "Su" msgstr "sø" #: src/utils.c:1226 msgid "Monday" msgstr "mandag" #: src/utils.c:1226 msgid "Tuesday" msgstr "tirsdag" #: src/utils.c:1226 msgid "Wednesday" msgstr "onsdag" #: src/utils.c:1226 msgid "Thursday" msgstr "torsdag" #: src/utils.c:1227 msgid "Friday" msgstr "fredag" #: src/utils.c:1227 msgid "Saturday" msgstr "lørdag" #: src/utils.c:1227 msgid "Sunday" msgstr "søndag" #: src/utils.c:1243 src/utils.c:1320 msgid "invalid month" msgstr "ugyldig mÃ¥ned" #: src/utils.c:1248 msgid "Jan" msgstr "jan" #: src/utils.c:1253 msgid "Feb" msgstr "feb" #: src/utils.c:1258 msgid "Mar" msgstr "mar" #: src/utils.c:1263 msgid "Apr" msgstr "apr" #: src/utils.c:1268 msgid "May" msgstr "maj" #: src/utils.c:1273 msgid "Jun" msgstr "jun" #: src/utils.c:1278 msgid "Jul" msgstr "jul" #: src/utils.c:1283 msgid "Aug" msgstr "aug" #: src/utils.c:1288 msgid "Sep" msgstr "sep" #: src/utils.c:1293 msgid "Oct" msgstr "okt" #: src/utils.c:1298 msgid "Nov" msgstr "nov" #: src/utils.c:1303 msgid "Dec" msgstr "dec" #: src/utils.c:1321 msgid "January" msgstr "januar" #: src/utils.c:1321 msgid "February" msgstr "februar" #: src/utils.c:1322 msgid "March" msgstr "marts" #: src/utils.c:1322 msgid "April" msgstr "april" #: src/utils.c:1332 msgid "May " msgstr "maj" #: src/utils.c:1333 msgid "June" msgstr "juni" #: src/utils.c:1333 msgid "July" msgstr "juli" #: src/utils.c:1334 msgid "August" msgstr "august" #: src/utils.c:1334 msgid "September" msgstr "september" #: src/utils.c:1335 msgid "October" msgstr "oktober" #: src/utils.c:1335 msgid "November" msgstr "november" #: src/utils.c:1335 msgid "December" msgstr "december" #: src/tcal.c:191 #, c-format msgid "Usage: %s [--%s | --%s] | [--%s=[+|-]NUMBER] [ARGUMENT...]\n" msgstr "Brug: %s [--%s | --%s] | [--%s=[+|-]TAL] [ARGUMENT...]\n" #: src/tcal.c:320 src/txt2gcal.c:259 src/gcal2txt.c:259 #, c-format msgid "" "\n" "%s: abort, " msgstr "" "\n" "%s: abrudt, " #: src/tcal.c:335 #, c-format msgid "shift value `%s' is invalid" msgstr "skifteværdien \"%s\" er ugyldigt" #: src/tcal.c:907 #, c-format msgid "%s: option `--%s' requires an argument" msgstr "%s: flaget \"--%s\" behøver et argument" #: src/tcal.c:1071 #, c-format msgid "%s: error during program execution of `%s'\n" msgstr "%s: fejl da programmet \"%s\" kørtes\n" #: src/txt2gcal.c:131 #, c-format msgid "Usage: %s [--%s | --%s] | [TEXT-FILE | -] [DATE-PART]\n" msgstr "Brug: %s [--%s | --%s] | [TEKSTFIL | -] [DATO-DEL]\n" #: src/txt2gcal.c:755 src/gcal2txt.c:754 #, c-format msgid "%s: no regular file\n" msgstr "%s: ingen normal fil\n" #: src/txt2gcal.c:760 src/gcal2txt.c:759 #, c-format msgid "%s: file not found\n" msgstr "%s: filen ikke fundet\n" #: src/gcal2txt.c:131 #, 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-3.6.3/po/pl.gmo0000644000175000017500000007347212125376136011132 00000000000000Þ•gT ߌ +'LSK KìM8@†=Ç1 A7 Ay I» H!HN!?—!*×!$"+'"+S"?"4¿"Eô"D:#D#1Ä#@ö#27$9j$0¤$*Õ$M%7N%N†%?Õ%B&NX&.§&BÖ&('-B';p'-¬'CÚ'#(B(J`(?«(Hë(J4)5)6µ)Jì)A7*?y*5¹*,ï*3+/P+7€+7¸+Eð+ 6,(W,E€,.Æ,Jõ,-@-6n-C¥-7é-=!.8_./˜.?È.@/&I/Hp/.¹/Iè/I20|0;˜06Ô0; 1G1Y1i11™1°1 Å1 Ò1 ß1 ê1 ö1B2F2BK2Ž2ž2(®2×2Ü2ã2$ê23#)3'M3+u3+¡3Í3á3ú3)494$V4%{4(¡4&Ê4ñ4"5#15 U5!v5"˜5 »5É5Ù5é5 ý5 6 6 6)686:6I6Y6 h6r6v6 |6 Š6 •6£6§6 ®6»6 Ë6Ö6 é6õ6ý60717H7W7[7 r7 €7 Ž79›7Õ7õ788 %818N8e8i8 r8 ~8 Œ8š8 ±8.¾8í89 9)9A9X9\9e9n9‚9…9˜9œ9£9«9¼9 Ä9Ð9 é9 ÷9::0: @:1J:|:A:Ò:ã:ì:ð:ø:ü:;; ;;'+;S;b; w;4„;.¹;è;ì;ò; <<*<?<\<l<p<x<{<<†<Ž< <1´< æ<ó<== +=5=9=B=I=M=EU= ›= §=(²= Û=é=ù= >>.>1>5> >>H> L>V>0p>¡>¤>¨>¯> ·> Ã>Ñ>Ô>ó>?&?:?O?:d?=Ÿ?DÝ?C"@f@j@ s@5}@³@Ò@Õ@Ù@á@ê@ñ@ A7 A.XA(‡A °A ¾A ËA×AÚA ÞA èAóA øA BB%BC6BAzB*¼B/çBC .C%9C._CŽC‘C ¤C±C¹CÎC.ÕCDD4!D8VD+D »D1ÇD ùD3E5;E%qEN—EFæE-F&¯FîFñFôF G G 'G4GPGSG[G^GgGxGG  G «Gd¹GI.I*@INkIMºIIJXRJA«J>íJ8,KMeKG³KIûKHELHŽLL×L+$M*PM-{M-©M@×M3NVLNP£NLôN7AOLyO=ÆOCP6HP6PK¶P=Q_@QF QSçQY;R0•RXÆR'S0GS@xS+¹SAåS"'TJTNhT=·THõTO>U<ŽU4ËUIVLJVF—VAÞV3 W9TW4ŽW;ÃW=ÿWX=X#–X&ºXNáX=0YLnY0»Y+ìYIZ5bZB˜Z;ÛZ9[LQ[Mž[/ì[N\/k\L›\Gè\%0]=V]=”]=Ò]^"^2^L^f^^ “^ ¡^¯^¾^ Í^GÙ^!_F)_p_‡_.ž_Í_Ñ_Ø_)ß_ `$#`0H`-y`,§`Ô`ï`a/"a#Ra'va(ža-Ça&õab&9b*`b$‹b(°b Ùb úbcc,cBc Rc _cmc|c’c ”c¢c¿c ÈcÖc Úc äcòcûcd dd+d;d[d xd„dŒd7dÇdØdçd#ëde e(e?7e we˜e­e ¾eÈe×eïe f ff4f NfXfof4ƒf¸fÏf éf õfggg"g3gPgSgngsg{gƒgŸg¦gµgÓg ãgîghh .hH8hhH•hÞh øhiiiii i)i8i7Ni†i—i ±i$¿i,äijjj 4j?jWjtj‘j¡j¥j¬j¯j ³j ÁjÏjçjIk JkWkhk†k kœk k©k¯k ´kIÁk ll)-lWlll~l™lªl»l¾lÂlÉlÐl ÔlÞl7ïl'm*m .m 8m BmNmam"dm ‡m¨m ¸mÆmÙm4êmBnEbnG¨nðnônýnBo#Iomopoto{o‚o†ožo:¼o/÷o&'pNp^pnpp…pŠp‘p˜p¡p¼pÏpápDüpCAq0…q5¶qìq r.r2Cr vrƒrŸr ®r¸rÎr?ár!s e„Ò µÃúz|à¥md5ß…ëõ(çuI‡§Xbiý\%ƒÀ Ó ³#²Q*hCZˆŽ!@Ø nø =½ŠŒ _†j[š÷Hv"PÞíY8*¤ÍÛ6y‘¶´+q—^c“1)öGÅw}l" 9»3ÌA7‚`•Ýœ'ì·XeJgU\O3J¹> %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' DayGuy Fawke's 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: 2013-03-29 21:40+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 %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 AdolfaDzieÅ„ Guy Fawke'aHalloweenGrupa 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-3.6.3/po/rw.po0000644000175000017500000036270112125376135010776 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: 2013-03-29 21:40+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" #: src/file-io.c:1561 #, fuzzy, c-format msgid "Try to write %s `%s'... %s%s%s" msgstr "Kuri Kwandika" #: src/file-io.c:1564 src/file-io.c:1689 src/file-io.c:1702 #, fuzzy msgid "failed" msgstr "Byanze" #: src/file-io.c:1564 src/file-io.c:1689 src/file-io.c:1702 #, fuzzy msgid "success" msgstr "Ibyatunganye" #: src/file-io.c:1684 #, fuzzy, c-format msgid "Try to open%sresource file `%s'... %s%s%s" msgstr "Kuri Gufungura IDOSIYE" #: src/file-io.c:1685 msgid " `HERE' " msgstr "" #: src/file-io.c:1697 #, fuzzy, c-format msgid "Try to open (level: %02d) include file `%s'... %s%s%s" msgstr "Kuri Gufungura urwego Gushyiramo IDOSIYE" #: src/gcal.c:352 src/gcal.c:523 src/gcal.c:2028 msgid "ARG" msgstr "" #: src/gcal.c:1080 src/hd-data.c:69 msgid "Germany" msgstr "Ubudage" #: src/gcal.c:1081 #, fuzzy msgid "U.S.A." msgstr "U. A." #: src/gcal.c:1082 src/hd-data.c:72 msgid "Great Britain" msgstr "" # Lock column values #: src/gcal.c:1858 msgid "default" msgstr "mburabuzi" # setup2/source\ui\pages\pcfgserver.src:RESID_PAGE_PAGECONFIGSERVER.FT_INFO3.text #: src/gcal.c:1957 msgid ":" msgstr ":" #: src/gcal.c:1967 msgid "Y" msgstr "" #: src/gcal.c:1972 #, fuzzy msgid "M" msgstr "ukwezi" #: src/gcal.c:1977 #, fuzzy msgid "W" msgstr "Twebwe" #: src/gcal.c:1982 msgid "D" msgstr "" #: src/gcal.c:2073 #, fuzzy msgid "Fixed date list:" msgstr "Itariki Urutonde" #: src/gcal.c:2090 src/gcal.c:2105 #, fuzzy msgid "environment variable" msgstr "IMPINDURAGACIRO" #: src/gcal.c:2274 #, 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:2461 src/gcal.c:2489 src/gcal.c:6232 src/rc-use.c:1828 #: src/rc-use.c:1888 src/rc-use.c:1937 src/rc-use.c:2207 src/rc-utils.c:390 #: src/rc-utils.c:411 src/utils.c:342 src/utils.c:365 src/utils.c:384 #: src/utils.c:679 src/tcal.c:331 src/tcal.c:339 src/txt2gcal.c:270 #: src/txt2gcal.c:275 src/gcal2txt.c:270 src/gcal2txt.c:275 msgid "Internal" msgstr "By'imbere" # setup2/source\ui\pages\pipath.src:RESID_PAGE_PAGEINSTPATH.FT_INFO3.text #: src/gcal.c:2870 #, fuzzy msgid "response file" msgstr "Idosiye y'igisubizo" #: src/gcal.c:2870 src/gcal.c:2878 msgid "Created" msgstr "kiremye" #: src/gcal.c:2878 #, fuzzy msgid "shell script" msgstr "Igikonoshwa IYANDIKA" #: src/gcal.c:3089 #, fuzzy, c-format msgid "Mail from \\`%s' (%02d-%s-%04d %02d%s%02d%s%02d" msgstr "Bivuye" #: src/gcal.c:3141 #, c-format msgid "%s: warning, eMail with empty message body not sent to <%s>.\n" msgstr "" #: src/gcal.c:4951 src/gcal.c:4984 #, fuzzy msgid "command line" msgstr "Komandi: Umurongo" #: src/gcal.c:5901 #, fuzzy, c-format msgid "%s: option `%s' is ambiguous" msgstr "%s:Ihitamo ni" #: src/gcal.c:5906 src/tcal.c:895 src/txt2gcal.c:716 src/gcal2txt.c:715 #, fuzzy, c-format msgid "%s: unrecognized option `%s'" msgstr "%s:Ihitamo" #: src/gcal.c:5909 #, fuzzy, c-format msgid "%s: invalid option -- %s" msgstr "%s:Sibyo Ihitamo" #: src/gcal.c:5916 #, 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' doesn't allow an argument" msgstr "%s:Ihitamo Kwemerera" #: src/gcal.c:5927 #, fuzzy, c-format msgid "%s: option `%s' requires an argument" msgstr "%s:Ihitamo" #: src/gcal.c:5931 #, fuzzy, c-format msgid "%s: option requires an argument -- %s" msgstr "%s:Ihitamo" #: src/gcal.c:5936 src/tcal.c:941 #, fuzzy, c-format msgid "%s: option with invalid argument -- %s" msgstr "%s:Ihitamo Na: Sibyo" #: src/gcal.c:5941 #, fuzzy, c-format msgid "%s: option with ambiguous argument -- %s" msgstr "%s:Ihitamo Na:" #: src/gcal.c:6001 #, fuzzy, c-format msgid "" "%s: invalid date given -- %c%s\n" "%s\n" "%s\n" msgstr "%s:Sibyo Itariki" #: src/hd-data.c:63 #, fuzzy msgid "Australia" msgstr "Igitariyani" #: src/hd-data.c:64 src/hd-data.c:112 msgid "Belgium" msgstr "" #: src/hd-data.c:65 src/hd-data.c:121 msgid "Brazil" msgstr "" #: src/hd-data.c:66 msgid "Canada" msgstr "" #: src/hd-data.c:67 msgid "Switzerland" msgstr "" #: src/hd-data.c:68 src/hd-data.c:174 msgid "China" msgstr "" #: src/hd-data.c:70 src/hd-data.c:208 msgid "Spain" msgstr "" #: src/hd-data.c:71 src/hd-data.c:215 msgid "France" msgstr "" #: src/hd-data.c:73 src/hd-data.c:244 msgid "Israel" msgstr "" #: src/hd-data.c:74 src/hd-data.c:249 #, fuzzy msgid "Italy" msgstr "Igitariyani" #: src/hd-data.c:75 src/hd-data.c:252 msgid "Japan" msgstr "" #: src/hd-data.c:76 src/hd-data.c:260 msgid "Republic of Korea" msgstr "" #: src/hd-data.c:77 src/hd-data.c:292 msgid "Mexico" msgstr "" #: src/hd-data.c:78 src/hd-data.c:301 msgid "Netherlands" msgstr "" #: src/hd-data.c:79 src/hd-data.c:307 msgid "New Zealand" msgstr "" #: src/hd-data.c:80 src/hd-data.c:319 #, fuzzy msgid "Portugal" msgstr "Igiporutugari" #: src/hd-data.c:81 src/hd-data.c:325 msgid "Russian Federation" msgstr "" #: src/hd-data.c:82 msgid "United States" msgstr "" #: src/hd-data.c:84 msgid "Andorra" msgstr "" #: src/hd-data.c:85 msgid "United Arab Emirates" msgstr "" #: src/hd-data.c:86 msgid "Afghanistan" msgstr "" #: src/hd-data.c:87 msgid "Antigua and Barbuda" msgstr "" #: src/hd-data.c:88 msgid "Anguilla" msgstr "" #: src/hd-data.c:89 msgid "Albania" msgstr "" #: src/hd-data.c:90 msgid "Armenia" msgstr "" #: src/hd-data.c:91 msgid "Netherlands Antilles/Bonaire" msgstr "" #: src/hd-data.c:92 msgid "Netherlands Antilles/Curaçao" msgstr "" #: src/hd-data.c:93 msgid "Netherlands Antilles/St Maarten" msgstr "" #: src/hd-data.c:94 msgid "Netherlands Antilles/Saba and Statia" msgstr "" #: src/hd-data.c:95 msgid "Angola #" msgstr "" #: src/hd-data.c:96 msgid "Argentina" msgstr "" #: src/hd-data.c:97 msgid "American Samoa" msgstr "" #: src/hd-data.c:98 msgid "Austria" msgstr "" #: src/hd-data.c:99 msgid "Australia/Canberra" msgstr "" #: src/hd-data.c:100 msgid "Australia/Northern Territory" msgstr "" #: src/hd-data.c:101 msgid "Australia/Queensland" msgstr "" #: src/hd-data.c:102 msgid "Australia/Southern Australia" msgstr "" #: src/hd-data.c:103 msgid "Australia/New South Wales" msgstr "" #: src/hd-data.c:104 msgid "Australia/Tasmania" msgstr "" #: src/hd-data.c:105 msgid "Australia/Victoria" msgstr "" #: src/hd-data.c:106 msgid "Australia/Western Australia" msgstr "" #: src/hd-data.c:107 msgid "Aruba" msgstr "" #: src/hd-data.c:108 msgid "Azerbaijan" msgstr "" #: src/hd-data.c:109 msgid "Bosnia-Herzegovina" msgstr "" #: src/hd-data.c:110 msgid "Barbados" msgstr "" #: src/hd-data.c:111 msgid "Bangladesh #" msgstr "" #: src/hd-data.c:113 msgid "Burkina Faso" msgstr "" #: src/hd-data.c:114 #, fuzzy msgid "Bulgaria" msgstr "Nyahongiriya" #: src/hd-data.c:115 msgid "Bahrain" msgstr "" #: src/hd-data.c:116 msgid "Burundi #" msgstr "" #: src/hd-data.c:117 msgid "Benin #" msgstr "" #: src/hd-data.c:118 msgid "Bermuda" msgstr "" #: src/hd-data.c:119 msgid "Brunei" msgstr "" #: src/hd-data.c:120 msgid "Bolivia" msgstr "" #: src/hd-data.c:122 msgid "Bahamas" msgstr "" #: src/hd-data.c:123 msgid "Bhutan #" msgstr "" #: src/hd-data.c:124 msgid "Bouvet Island" msgstr "" #: src/hd-data.c:125 msgid "Botswana" msgstr "" #: src/hd-data.c:126 msgid "Belarus" msgstr "" #: src/hd-data.c:127 msgid "Belize" msgstr "" #: src/hd-data.c:128 msgid "Canada/Alberta" msgstr "" #: src/hd-data.c:129 msgid "Canada/British Columbia" msgstr "" #: src/hd-data.c:130 msgid "Canada/Manitoba" msgstr "" #: src/hd-data.c:131 msgid "Canada/New Brunswick" msgstr "" #: src/hd-data.c:132 msgid "Canada/Newfoundland and Labrador" msgstr "" #: src/hd-data.c:133 msgid "Canada/Nova Scotia" msgstr "" #: src/hd-data.c:134 msgid "Canada/Nordwest Territories" msgstr "" #: src/hd-data.c:135 msgid "Canada/Ontario" msgstr "" #: src/hd-data.c:136 msgid "Canada/Prince Edward Island" msgstr "" #: src/hd-data.c:137 msgid "Canada/Québec" msgstr "" #: src/hd-data.c:138 msgid "Canada/Saskatchewan" msgstr "" #: src/hd-data.c:139 msgid "Canada/Yukon" msgstr "" #: src/hd-data.c:140 msgid "Cocos Islands (Keeling)" msgstr "" #: src/hd-data.c:141 msgid "Democratic Republic of Congo #" msgstr "" #: src/hd-data.c:142 msgid "Central African Republic #" msgstr "" #: src/hd-data.c:143 msgid "Republic of Congo #" msgstr "" #: src/hd-data.c:144 msgid "Switzerland/Aargau" msgstr "" #: src/hd-data.c:145 msgid "Switzerland/Appenzell Innerrhoden" msgstr "" #: src/hd-data.c:146 msgid "Switzerland/Appenzell Ausserrhoden" msgstr "" #: src/hd-data.c:147 msgid "Switzerland/Bern" msgstr "" #: src/hd-data.c:148 msgid "Switzerland/Basel-Land" msgstr "" #: src/hd-data.c:149 msgid "Switzerland/Basel-Stadt" msgstr "" #: src/hd-data.c:150 msgid "Switzerland/Fribourg" msgstr "" #: src/hd-data.c:151 msgid "Switzerland/Genève" msgstr "" #: src/hd-data.c:152 msgid "Switzerland/Glarus" msgstr "" #: src/hd-data.c:153 msgid "Switzerland/Graubünden" msgstr "" #: src/hd-data.c:154 msgid "Switzerland/Jura" msgstr "" #: src/hd-data.c:155 msgid "Switzerland/Luzern" msgstr "" #: src/hd-data.c:156 msgid "Switzerland/Neuchâtel" msgstr "" #: src/hd-data.c:157 msgid "Switzerland/Nidwalden" msgstr "" #: src/hd-data.c:158 msgid "Switzerland/Obwalden" msgstr "" #: src/hd-data.c:159 msgid "Switzerland/St Gallen" msgstr "" #: src/hd-data.c:160 msgid "Switzerland/Schaffhausen" msgstr "" #: src/hd-data.c:161 msgid "Switzerland/Solothurn" msgstr "" #: src/hd-data.c:162 msgid "Switzerland/Schwyz" msgstr "" #: src/hd-data.c:163 msgid "Switzerland/Thurgau" msgstr "" #: src/hd-data.c:164 msgid "Switzerland/Ticino" msgstr "" #: src/hd-data.c:165 msgid "Switzerland/Uri" msgstr "" #: src/hd-data.c:166 msgid "Switzerland/Vaud" msgstr "" #: src/hd-data.c:167 msgid "Switzerland/Valais" msgstr "" #: src/hd-data.c:168 msgid "Switzerland/Zug" msgstr "" #: src/hd-data.c:169 msgid "Switzerland/Zürich" msgstr "" #: src/hd-data.c:170 msgid "Côte d'Ivoire" msgstr "" #: src/hd-data.c:171 msgid "Cook Islands" msgstr "" #: src/hd-data.c:172 msgid "Chile" msgstr "" #: src/hd-data.c:173 msgid "Cameroon" msgstr "" #: src/hd-data.c:175 msgid "Colombia" msgstr "" #: src/hd-data.c:176 msgid "Costa Rica" msgstr "" #: src/hd-data.c:177 msgid "Cuba" msgstr "" #: src/hd-data.c:178 msgid "Cape Verde" msgstr "" #: src/hd-data.c:179 msgid "Christmas Islands" msgstr "" #: src/hd-data.c:180 msgid "Cyprus" msgstr "" #: src/hd-data.c:181 msgid "Czech Republic" msgstr "" #: src/hd-data.c:182 msgid "Germany/Brandenburg" msgstr "" #: src/hd-data.c:183 #, fuzzy msgid "Germany/Berlin" msgstr "Ubudage" #: src/hd-data.c:184 msgid "Germany/Baden-Württemberg" msgstr "" #: src/hd-data.c:185 #, fuzzy msgid "Germany/Bavaria" msgstr "Ubudage" #: src/hd-data.c:186 #, fuzzy msgid "Germany/Bremen" msgstr "Ubudage" #: src/hd-data.c:187 #, fuzzy msgid "Germany/Hesse" msgstr "Ubudage" #: src/hd-data.c:188 #, fuzzy msgid "Germany/Hamburg" msgstr "Ubudage" #: src/hd-data.c:189 msgid "Germany/Mecklenburg-West Pomerania" msgstr "" #: src/hd-data.c:190 msgid "Germany/Lower Saxony" msgstr "" #: src/hd-data.c:191 msgid "Germany/North Rhine-Westphalia" msgstr "" #: src/hd-data.c:192 msgid "Germany/Rhineland Palatinate" msgstr "" #: src/hd-data.c:193 msgid "Germany/Schleswig-Holstein" msgstr "" #: src/hd-data.c:194 #, fuzzy msgid "Germany/Saar" msgstr "Ubudage" #: src/hd-data.c:195 #, fuzzy msgid "Germany/Saxony" msgstr "Ubudage" #: src/hd-data.c:196 msgid "Germany/Saxony-Anhalt" msgstr "" #: src/hd-data.c:197 msgid "Germany/Thuringia" msgstr "" #: src/hd-data.c:198 msgid "Djibouti" msgstr "" #: src/hd-data.c:199 msgid "Denmark" msgstr "" #: src/hd-data.c:200 msgid "Dominica" msgstr "" #: src/hd-data.c:201 msgid "Dominican Republic" msgstr "" #: src/hd-data.c:202 msgid "Algeria" msgstr "" #: src/hd-data.c:203 msgid "Ecuador" msgstr "" #: src/hd-data.c:204 msgid "Estonia" msgstr "" #: src/hd-data.c:205 msgid "Egypt" msgstr "" #: src/hd-data.c:206 msgid "Western Sahara" msgstr "" #: src/hd-data.c:207 msgid "Eritrea" msgstr "" #: src/hd-data.c:209 msgid "Ethiopia" msgstr "" #: src/hd-data.c:210 msgid "Finland" msgstr "" #: src/hd-data.c:211 msgid "Fiji #" msgstr "" #: src/hd-data.c:212 msgid "Falkland Islands (Malvinas)" msgstr "" #: src/hd-data.c:213 msgid "Federated States of Micronesia" msgstr "" #: src/hd-data.c:214 msgid "Faroes" msgstr "" #: src/hd-data.c:216 msgid "Gabon #" msgstr "" #: src/hd-data.c:217 msgid "Great Britain/England and Wales" msgstr "" #: src/hd-data.c:218 msgid "Great Britain/Northern Ireland" msgstr "" #: src/hd-data.c:219 msgid "Great Britain/Scotland" msgstr "" #: src/hd-data.c:220 msgid "Grenada" msgstr "" #: src/hd-data.c:221 msgid "Georgia" msgstr "" #: src/hd-data.c:222 #, fuzzy msgid "French Guiana" msgstr "Igifaransa" #: src/hd-data.c:223 msgid "Ghana" msgstr "" #: src/hd-data.c:224 msgid "Gibraltar" msgstr "" #: src/hd-data.c:225 msgid "Greenland" msgstr "" #: src/hd-data.c:226 msgid "Gambia" msgstr "" #: src/hd-data.c:227 msgid "Guinea" msgstr "" #: src/hd-data.c:228 msgid "Guadeloupe" msgstr "" #: src/hd-data.c:229 msgid "Equatorial Guinea" msgstr "" #: src/hd-data.c:230 #, fuzzy msgid "Greece" msgstr "Ikigereki" #: src/hd-data.c:231 msgid "South Georgia and South Sandwich Islands" msgstr "" #: src/hd-data.c:232 msgid "Guatemala" msgstr "" #: src/hd-data.c:233 msgid "Guam" msgstr "" #: src/hd-data.c:234 msgid "Guinea-Bissau #" msgstr "" #: src/hd-data.c:235 msgid "Guyana #" msgstr "" #: src/hd-data.c:236 msgid "Hong Kong" msgstr "" #: src/hd-data.c:237 msgid "Heard and Mc Donald Islands" msgstr "" #: src/hd-data.c:238 msgid "Honduras" msgstr "" #: src/hd-data.c:239 msgid "Croatia" msgstr "" #: src/hd-data.c:240 msgid "Haiti" msgstr "" #: src/hd-data.c:241 #, fuzzy msgid "Hungary" msgstr "Nyahongiriya" #: src/hd-data.c:242 msgid "Indonesia #" msgstr "" #: src/hd-data.c:243 msgid "Ireland" msgstr "" #: src/hd-data.c:245 msgid "India #" msgstr "" #: src/hd-data.c:246 msgid "Iraq" msgstr "" #: src/hd-data.c:247 msgid "Islamic Republic of Iran" msgstr "" #: src/hd-data.c:248 msgid "Iceland" msgstr "" #: src/hd-data.c:250 msgid "Jamaica" msgstr "" #: src/hd-data.c:251 msgid "Jordan" msgstr "" #: src/hd-data.c:253 msgid "Kenya #" msgstr "" #: src/hd-data.c:254 msgid "Kyrgyzstan" msgstr "" #: src/hd-data.c:255 msgid "Cambodia #" msgstr "" #: src/hd-data.c:256 msgid "Kiribati #" msgstr "" #: src/hd-data.c:257 msgid "Comoros" msgstr "" #: src/hd-data.c:258 msgid "St Kitts and Nevis" msgstr "" #: src/hd-data.c:259 msgid "Democratic People's Republic of Korea" msgstr "" #: src/hd-data.c:261 msgid "Kuwait" msgstr "" #: src/hd-data.c:262 msgid "Cayman Islands" msgstr "" #: src/hd-data.c:263 msgid "Kazakhstan" msgstr "" #: src/hd-data.c:264 msgid "Laos People's Democratic Republic #" msgstr "" #: src/hd-data.c:265 msgid "Lebanon" msgstr "" #: src/hd-data.c:266 msgid "St Lucia" msgstr "" #: src/hd-data.c:267 msgid "Liechtenstein" msgstr "" #: src/hd-data.c:268 msgid "Sri Lanka #" msgstr "" #: src/hd-data.c:269 msgid "Liberia" msgstr "" #: src/hd-data.c:270 msgid "Lesotho" msgstr "" #: src/hd-data.c:271 msgid "Lithuania" msgstr "" #: src/hd-data.c:272 msgid "Luxembourg" msgstr "" #: src/hd-data.c:273 msgid "Latvia" msgstr "" #: src/hd-data.c:274 msgid "Libyan Arab Jamahiriya (Libya)" msgstr "" #: src/hd-data.c:275 msgid "Morocco" msgstr "" #: src/hd-data.c:276 msgid "Monaco" msgstr "" #: src/hd-data.c:277 msgid "Republic of Moldova" msgstr "" #: src/hd-data.c:278 msgid "Madagascar #" msgstr "" #: src/hd-data.c:279 msgid "Marshall Islands" msgstr "" #: src/hd-data.c:280 msgid "Former Yugoslav Republic of Macedonia" msgstr "" #: src/hd-data.c:281 msgid "Mali" msgstr "" #: src/hd-data.c:282 msgid "Mongolia #" msgstr "" #: src/hd-data.c:283 msgid "Macau" msgstr "" #: src/hd-data.c:284 msgid "Northern Marian Islands (Saipan)" msgstr "" #: src/hd-data.c:285 msgid "Martinique" msgstr "" #: src/hd-data.c:286 msgid "Mauritania" msgstr "" #: src/hd-data.c:287 msgid "Montserrat" msgstr "" #: src/hd-data.c:288 msgid "Malta" msgstr "" #: src/hd-data.c:289 msgid "Mauritius" msgstr "" #: src/hd-data.c:290 msgid "Maldives" msgstr "" #: src/hd-data.c:291 msgid "Malawi" msgstr "" #: src/hd-data.c:293 msgid "Malaysia #" msgstr "" #: src/hd-data.c:294 msgid "Mozambique" msgstr "" #: src/hd-data.c:295 msgid "Namibia" msgstr "" #: src/hd-data.c:296 msgid "New Caledonia" msgstr "" #: src/hd-data.c:297 msgid "Niger" msgstr "" #: src/hd-data.c:298 msgid "Norfolk Islands" msgstr "" #: src/hd-data.c:299 msgid "Nigeria" msgstr "" #: src/hd-data.c:300 msgid "Nicaragua" msgstr "" #: src/hd-data.c:302 msgid "Myanmar (Burma) #" msgstr "" #: src/hd-data.c:303 #, fuzzy msgid "Norway" msgstr "Ikinyanoruveji" #: src/hd-data.c:304 msgid "Nepal #" msgstr "" #: src/hd-data.c:305 msgid "Nauru" msgstr "" #: src/hd-data.c:306 msgid "Niue" msgstr "" #: src/hd-data.c:308 msgid "Oman" msgstr "" #: src/hd-data.c:309 msgid "Panama" msgstr "" #: src/hd-data.c:310 msgid "Peru" msgstr "" #: src/hd-data.c:311 msgid "French Polynesia" msgstr "" #: src/hd-data.c:312 msgid "Papua New Guinea" msgstr "" #: src/hd-data.c:313 msgid "Philippines" msgstr "" #: src/hd-data.c:314 msgid "Pakistan" msgstr "" #: src/hd-data.c:315 msgid "Poland" msgstr "" #: src/hd-data.c:316 msgid "Saint-Pierre and Miquelon" msgstr "" #: src/hd-data.c:317 msgid "Pitcairn" msgstr "" #: src/hd-data.c:318 msgid "Puerto Rico" msgstr "" #: src/hd-data.c:320 msgid "Palau" msgstr "" #: src/hd-data.c:321 msgid "Paraguay" msgstr "" #: src/hd-data.c:322 msgid "Qatar" msgstr "" #: src/hd-data.c:323 msgid "Réunion" msgstr "" #: src/hd-data.c:324 msgid "Romania" msgstr "" #: src/hd-data.c:326 msgid "Rwanda" msgstr "" #: src/hd-data.c:327 msgid "Saudi Arabia" msgstr "" #: src/hd-data.c:328 msgid "Solomon Islands" msgstr "" #: src/hd-data.c:329 msgid "Seychellen" msgstr "" #: src/hd-data.c:330 msgid "Sudan" msgstr "" #: src/hd-data.c:331 #, fuzzy msgid "Sweden" msgstr "Igisuwedi" #: src/hd-data.c:332 msgid "Singapore #" msgstr "" #: src/hd-data.c:333 msgid "St Helena" msgstr "" #: src/hd-data.c:334 #, fuzzy msgid "Slovenia" msgstr "Ikinyasiloveniya" #: src/hd-data.c:335 msgid "Svalbard and Jan Mayen Islands" msgstr "" #: src/hd-data.c:336 #, fuzzy msgid "Slovakia" msgstr "Ikinyasiloveniya" #: src/hd-data.c:337 msgid "Sierra Leone" msgstr "" #: src/hd-data.c:338 msgid "San Marino" msgstr "" #: src/hd-data.c:339 msgid "Senegal" msgstr "" #: src/hd-data.c:340 msgid "Somalia" msgstr "" #: src/hd-data.c:341 msgid "Suriname #" msgstr "" #: src/hd-data.c:342 msgid "Sao Tomé and Principe" msgstr "" #: src/hd-data.c:343 msgid "El Salvador" msgstr "" #: src/hd-data.c:344 msgid "Syrian Arab Republic (Syria)" msgstr "" #: src/hd-data.c:345 msgid "Swaziland" msgstr "" #: src/hd-data.c:346 msgid "Turks and Caicos Islands" msgstr "" #: src/hd-data.c:347 msgid "Chad" msgstr "" #: src/hd-data.c:348 msgid "Togo #" msgstr "" #: src/hd-data.c:349 msgid "Thailand #" msgstr "" #: src/hd-data.c:350 msgid "Tajikistan" msgstr "" #: src/hd-data.c:351 msgid "Tokelau" msgstr "" #: src/hd-data.c:352 msgid "Turkmenistan" msgstr "" #: src/hd-data.c:353 msgid "Tunisia" msgstr "" #: src/hd-data.c:354 msgid "Tonga" msgstr "" #: src/hd-data.c:355 msgid "Turkey" msgstr "" #: src/hd-data.c:356 msgid "Trinidad and Tobago #" msgstr "" #: src/hd-data.c:357 msgid "Tuvalu" msgstr "" #: src/hd-data.c:358 msgid "Taiwan" msgstr "" #: src/hd-data.c:359 msgid "Tanzania" msgstr "" #: src/hd-data.c:360 msgid "Ukraine" msgstr "" #: src/hd-data.c:361 msgid "Uganda" msgstr "" #: src/hd-data.c:362 msgid "United States/Alaska" msgstr "" #: src/hd-data.c:363 msgid "United States/Alabama" msgstr "" #: src/hd-data.c:364 msgid "United States/Arkansas" msgstr "" #: src/hd-data.c:365 msgid "United States/Arizona" msgstr "" #: src/hd-data.c:366 msgid "United States/California" msgstr "" #: src/hd-data.c:367 msgid "United States/Colorado" msgstr "" #: src/hd-data.c:368 msgid "United States/Connecticut" msgstr "" #: src/hd-data.c:369 msgid "United States/District of Columbia" msgstr "" #: src/hd-data.c:370 msgid "United States/Delaware" msgstr "" #: src/hd-data.c:371 msgid "United States/Florida" msgstr "" #: src/hd-data.c:372 msgid "United States/Georgia" msgstr "" #: src/hd-data.c:373 msgid "United States/Hawaii" msgstr "" #: src/hd-data.c:374 msgid "United States/Iowa" msgstr "" #: src/hd-data.c:375 msgid "United States/Idaho" msgstr "" #: src/hd-data.c:376 msgid "United States/Illinois" msgstr "" #: src/hd-data.c:377 msgid "United States/Indiana" msgstr "" #: src/hd-data.c:378 msgid "United States/Kansas" msgstr "" #: src/hd-data.c:379 msgid "United States/Kentucky" msgstr "" #: src/hd-data.c:380 msgid "United States/Louisiana" msgstr "" #: src/hd-data.c:381 msgid "United States/Massachusetts" msgstr "" #: src/hd-data.c:382 msgid "United States/Maryland" msgstr "" #: src/hd-data.c:383 msgid "United States/Maine" msgstr "" #: src/hd-data.c:384 msgid "United States/Michigan" msgstr "" #: src/hd-data.c:385 msgid "United States/Minnesota" msgstr "" #: src/hd-data.c:386 msgid "United States/Missouri" msgstr "" #: src/hd-data.c:387 msgid "United States/Mississippi" msgstr "" #: src/hd-data.c:388 msgid "United States/Montana" msgstr "" #: src/hd-data.c:389 msgid "United States/North Carolina" msgstr "" #: src/hd-data.c:390 msgid "United States/North Dakota" msgstr "" #: src/hd-data.c:391 msgid "United States/Nebraska" msgstr "" #: src/hd-data.c:392 msgid "United States/New Hampshire" msgstr "" #: src/hd-data.c:393 msgid "United States/New Jersey" msgstr "" #: src/hd-data.c:394 msgid "United States/New Mexico" msgstr "" #: src/hd-data.c:395 msgid "United States/Nevada" msgstr "" #: src/hd-data.c:396 msgid "United States/New York" msgstr "" #: src/hd-data.c:397 msgid "United States/Ohio" msgstr "" #: src/hd-data.c:398 msgid "United States/Oklahoma" msgstr "" #: src/hd-data.c:399 msgid "United States/Oregon" msgstr "" #: src/hd-data.c:400 msgid "United States/Pennsylvania" msgstr "" #: src/hd-data.c:401 msgid "United States/Rhode Island" msgstr "" #: src/hd-data.c:402 msgid "United States/South Carolina" msgstr "" #: src/hd-data.c:403 msgid "United States/South Dakota" msgstr "" #: src/hd-data.c:404 msgid "United States/Tennessee" msgstr "" #: src/hd-data.c:405 msgid "United States/Texas" msgstr "" #: src/hd-data.c:406 msgid "United States/Utah" msgstr "" #: src/hd-data.c:407 msgid "United States/Virginia" msgstr "" #: src/hd-data.c:408 msgid "United States/Vermont" msgstr "" #: src/hd-data.c:409 msgid "United States/Washington" msgstr "" #: src/hd-data.c:410 msgid "United States/Wisconsin" msgstr "" #: src/hd-data.c:411 msgid "United States/West Virginia" msgstr "" #: src/hd-data.c:412 msgid "United States/Wyoming" msgstr "" #: src/hd-data.c:413 msgid "Uruguay" msgstr "" #: src/hd-data.c:414 msgid "Uzbekistan" msgstr "" #: src/hd-data.c:415 msgid "St Vincent and Grenadines" msgstr "" #: src/hd-data.c:416 msgid "Venezuela" msgstr "" #: src/hd-data.c:417 msgid "British Virgin Islands" msgstr "" #: src/hd-data.c:418 msgid "U.S. Virgin Islands" msgstr "" #: src/hd-data.c:419 msgid "Viet Nam" msgstr "" #: src/hd-data.c:420 msgid "Vanuatu" msgstr "" #: src/hd-data.c:421 msgid "Wallis and Futuna Islands" msgstr "" #: src/hd-data.c:422 msgid "Samoa" msgstr "" #: src/hd-data.c:423 msgid "Yemen" msgstr "" #: src/hd-data.c:424 msgid "Mayotte" msgstr "" #: src/hd-data.c:425 msgid "Serbia and Montenegro" msgstr "" #: src/hd-data.c:426 msgid "South Africa" msgstr "" #: src/hd-data.c:427 msgid "Zambia" msgstr "" #: src/hd-data.c:428 msgid "Zimbabwe" msgstr "" #: src/hd-data.c:458 msgid "1st Advent" msgstr "" #: src/hd-data.c:459 msgid "1st Sunday in Lent" msgstr "" #: src/hd-data.c:460 msgid "2nd Advent" msgstr "" #: src/hd-data.c:461 msgid "2nd Sunday in Lent" msgstr "" #: src/hd-data.c:462 msgid "3rd Advent" msgstr "" #: src/hd-data.c:463 msgid "3rd Sunday in Lent" msgstr "" #: src/hd-data.c:464 msgid "4th Advent" msgstr "" #: src/hd-data.c:465 msgid "4th Sunday in Lent" msgstr "" #: src/hd-data.c:466 msgid "7-5-3 Festival" msgstr "" #: src/hd-data.c:467 msgid "Aborigines Day" msgstr "" #: src/hd-data.c:468 msgid "All Fool's Day" msgstr "" #: src/hd-data.c:469 msgid "All Saints' Day" msgstr "" #: src/hd-data.c:470 msgid "All Souls' Day" msgstr "" #: src/hd-data.c:471 msgid "Alphabet Day" msgstr "" #: src/hd-data.c:472 msgid "Anniversary of Auckland" msgstr "" #: src/hd-data.c:473 msgid "Anniversary of Canterbury North" msgstr "" #: src/hd-data.c:474 msgid "Anniversary of Canterbury South" msgstr "" #: src/hd-data.c:475 msgid "Anniversary of Chatham Islands" msgstr "" #: src/hd-data.c:476 msgid "Anniversary of Hawkes' Bay" msgstr "" #: src/hd-data.c:477 msgid "Anniversary of Marlborough" msgstr "" #: src/hd-data.c:478 msgid "Anniversary of Nelson" msgstr "" #: src/hd-data.c:479 msgid "Anniversary of Otago" msgstr "" #: src/hd-data.c:480 msgid "Anniversary of Southland" msgstr "" #: src/hd-data.c:481 msgid "Anniversary of Taranaki" msgstr "" #: src/hd-data.c:482 msgid "Anniversary of Wellington" msgstr "" #: src/hd-data.c:483 msgid "Anniversary of Westland" msgstr "" #: src/hd-data.c:484 msgid "Anzac Day" msgstr "" #: src/hd-data.c:485 msgid "Arbor Day" msgstr "" #: src/hd-data.c:486 msgid "Armed Forces Day" msgstr "" #: src/hd-data.c:487 msgid "Armistice Day" msgstr "" #: src/hd-data.c:488 msgid "Ash Monday" msgstr "" #: src/hd-data.c:489 msgid "Ash Wednesday" msgstr "" #: src/hd-data.c:490 msgid "Ascension of Abdu'l-Baha" msgstr "" #: src/hd-data.c:491 msgid "Ascension of Baha'u'llah" msgstr "" #: src/hd-data.c:492 msgid "Birth of Baha'u'llah" msgstr "" #: src/hd-data.c:493 msgid "Birth of the Bab" msgstr "" #: src/hd-data.c:494 msgid "Day of the Covenant" msgstr "" #: src/hd-data.c:495 msgid "Declaration of the Bab" msgstr "" #: src/hd-data.c:496 msgid "First Day of Ridvan" msgstr "" #: src/hd-data.c:497 msgid "Martyrdom of the Bab" msgstr "" #: src/hd-data.c:498 msgid "Bahá'i New Year's Day" msgstr "" #: src/hd-data.c:499 msgid "Ninth Day of Ridvan" msgstr "" #: src/hd-data.c:500 msgid "Twelfth Day of Ridvan" msgstr "" #: src/hd-data.c:501 msgid "Bank Holiday" msgstr "" #: src/hd-data.c:502 msgid "Basque National Day" msgstr "" #: src/hd-data.c:503 #, fuzzy msgid "Battle of Boyne" msgstr "Bya" #: src/hd-data.c:504 #, fuzzy msgid "Battle of Puebla" msgstr "Bya" #: src/hd-data.c:505 msgid "Beginning of Financial Year" msgstr "" #: src/hd-data.c:506 msgid "Benito Juárez Day" msgstr "" #: src/hd-data.c:507 msgid "Bodhidharma's Birthday" msgstr "" #: src/hd-data.c:508 msgid "Bosses' Day" msgstr "" #: src/hd-data.c:509 msgid "Boxing Day" msgstr "" #: src/hd-data.c:510 msgid "Bringing Home the Herds Day" msgstr "" #: src/hd-data.c:511 msgid "Bringing in the Harvest Day" msgstr "" #: src/hd-data.c:512 msgid "Buddha's Birthday" msgstr "" #: src/hd-data.c:513 msgid "Burns Night" msgstr "" #: src/hd-data.c:514 msgid "Camoes Day" msgstr "" #: src/hd-data.c:515 msgid "Carnival" msgstr "" #: src/hd-data.c:516 msgid "Beltane" msgstr "" #: src/hd-data.c:517 msgid "Imbolg" msgstr "" #: src/hd-data.c:518 msgid "Lughnasa" msgstr "" #: src/hd-data.c:519 msgid "Samhain/Celtic New Year's Day" msgstr "" #: src/hd-data.c:520 msgid "Children's Day" msgstr "" #: src/hd-data.c:521 msgid "Cycle" msgstr "" #: src/hd-data.c:522 msgid "Chinese New Year's Day" msgstr "" #: src/hd-data.c:523 msgid "Chinese New Year's Eve" msgstr "" #: src/hd-data.c:524 msgid "Christmas Day" msgstr "" #: src/hd-data.c:525 msgid "Christmas Eve" msgstr "" #: src/hd-data.c:526 msgid "Christ's Ascension Day" msgstr "" #: src/hd-data.c:527 msgid "Chrysanthenum Day" msgstr "" #: src/hd-data.c:528 msgid "Citizenship Day" msgstr "" #: src/hd-data.c:529 msgid "Civic Holiday" msgstr "" #: src/hd-data.c:530 msgid "Columbus Day" msgstr "" #: src/hd-data.c:531 msgid "Coming of Age Day" msgstr "" #: src/hd-data.c:532 msgid "Confucius' Birthday" msgstr "" #: src/hd-data.c:533 msgid "Constitution Anniversary" msgstr "" #: src/hd-data.c:534 msgid "Coptic New Year's Day" msgstr "" #: src/hd-data.c:535 msgid "Cosmonauts' Day" msgstr "" #: src/hd-data.c:536 msgid "Cross Raising Day" msgstr "" #: src/hd-data.c:537 msgid "Culture Day" msgstr "" #: src/hd-data.c:538 msgid "Day after Mid-Autumn Festival" msgstr "" #: src/hd-data.c:539 msgid "Day after Tomb-Sweeping Day" msgstr "" #: src/hd-data.c:540 msgid "Day of Andalucia" msgstr "" #: src/hd-data.c:541 msgid "Day of Catalonia" msgstr "" #: src/hd-data.c:542 msgid "Day of Galicia" msgstr "" #: src/hd-data.c:543 #, fuzzy msgid "Day of Prayer and Repentance" msgstr "Bya Na" #: src/hd-data.c:544 msgid "Day of Reconciliation" msgstr "" #: src/hd-data.c:545 msgid "Defenders of Motherland Day" msgstr "" #: src/hd-data.c:546 msgid "Double-9 Day" msgstr "" #: src/hd-data.c:547 msgid "Dragon Boat Festival" msgstr "" #: src/hd-data.c:548 msgid "Dynasty Day" msgstr "" #: src/hd-data.c:549 msgid "Easter Monday" msgstr "" #: src/hd-data.c:550 msgid "Easter Sunday" msgstr "" #: src/hd-data.c:551 msgid "Lunar Eclipse" msgstr "" #: src/hd-data.c:552 msgid "Solar Eclipse" msgstr "" #: src/hd-data.c:553 msgid "Annular" msgstr "" #: src/hd-data.c:554 msgid "Partial" msgstr "" #: src/hd-data.c:555 msgid "Penumbral" msgstr "" #: src/hd-data.c:556 msgid "Total" msgstr "" #: src/hd-data.c:557 msgid "Eindhoven's Liberation" msgstr "" #: src/hd-data.c:558 msgid "Election Day" msgstr "" #: src/hd-data.c:559 msgid "Emperor's Birthday" msgstr "" #: src/hd-data.c:560 msgid "Equinox Day" msgstr "" #: src/hd-data.c:561 msgid "Ethiopic New Year's Day" msgstr "" #: src/hd-data.c:562 msgid "Father's Day" msgstr "" #: src/hd-data.c:563 #, fuzzy msgid "Feast of Corpus Christi" msgstr "Bya" #: src/hd-data.c:564 #, fuzzy msgid "Feast of Fortune" msgstr "Bya" #: src/hd-data.c:565 #, fuzzy msgid "Feast of Heart Jesus" msgstr "Bya" #: src/hd-data.c:566 msgid "Festival of Lanterns" msgstr "" #: src/hd-data.c:567 msgid "Festival of Sadeh" msgstr "" #: src/hd-data.c:568 msgid "Flag Day" msgstr "" #: src/hd-data.c:569 msgid "Flemish Culture Day" msgstr "" #: src/hd-data.c:570 msgid "Founding of the Communist Party" msgstr "" #: src/hd-data.c:571 msgid "French Culture Day" msgstr "" #: src/hd-data.c:572 msgid "French Revolutionary" msgstr "" #: src/hd-data.c:573 msgid "Friendship Day" msgstr "" #: src/hd-data.c:574 msgid "German Unity Day" msgstr "" #: src/hd-data.c:575 msgid "Good Friday" msgstr "" #: src/hd-data.c:576 msgid "Good Saturday/Easter Eve" msgstr "" #: src/hd-data.c:577 msgid "Grandparents' Day" msgstr "" #: src/hd-data.c:578 msgid "Greenery Day" msgstr "" #: src/hd-data.c:579 msgid "Grotto Day" msgstr "" #: src/hd-data.c:580 msgid "Groundhog Day" msgstr "" #: src/hd-data.c:581 msgid "Guadalupe Virgin's Day" msgstr "" #: src/hd-data.c:582 msgid "Guy Fawke's Day" msgstr "" #: src/hd-data.c:583 msgid "Halloween" msgstr "" #: src/hd-data.c:584 msgid "Health and Sport's Day" msgstr "" #: src/hd-data.c:585 msgid "Hannukah/Festival of Lights" msgstr "" #: src/hd-data.c:586 msgid "Lag B'Omer" msgstr "" #: src/hd-data.c:587 msgid "Pesach/Passover" msgstr "" #: src/hd-data.c:588 msgid "Purim/Feast of Lots" msgstr "" #: src/hd-data.c:589 msgid "Rosh Hashana/New Year's Day" msgstr "" #: src/hd-data.c:590 msgid "Shavuot/Giving of the Torah" msgstr "" #: src/hd-data.c:591 msgid "Shushan Purim" msgstr "" #: src/hd-data.c:592 msgid "Simchat Torah" msgstr "" #: src/hd-data.c:593 msgid "Sukkot/Feast of Tabernacles" msgstr "" #: src/hd-data.c:594 msgid "Tisha B'Av/Fasting Day" msgstr "" #: src/hd-data.c:595 msgid "Tu B'Shevat/New Year of Trees" msgstr "" #: src/hd-data.c:596 msgid "Yom Hashoah/Holocaust Memorial" msgstr "" #: src/hd-data.c:597 msgid "Yom Hazikaron/Soldiers Memorial" msgstr "" #: src/hd-data.c:598 msgid "Yom Ha Azmaut/Independence Day" msgstr "" #: src/hd-data.c:599 msgid "Yom Kippur/Atonement Day" msgstr "" #: src/hd-data.c:600 msgid "Yom Yerushalayim/Jerusalem Day" msgstr "" #: src/hd-data.c:601 msgid "Holy Innocent's Day" msgstr "" #: src/hd-data.c:602 msgid "Holy Trinity" msgstr "" #: src/hd-data.c:603 msgid "Huravee Day" msgstr "" #: src/hd-data.c:604 msgid "Independence Day" msgstr "" #: src/hd-data.c:605 msgid "Independence Movement Day" msgstr "" #: src/hd-data.c:606 msgid "Independence Proclamation" msgstr "" #: src/hd-data.c:607 msgid "Indian New Year's Day" msgstr "" #: src/hd-data.c:608 msgid "Aga Khan's Birthday" msgstr "" #: src/hd-data.c:609 msgid "Ashura'" msgstr "" #: src/hd-data.c:610 msgid "Eid-al-Adha" msgstr "" #: src/hd-data.c:611 msgid "Eid-al-Fitr" msgstr "" #: src/hd-data.c:612 msgid "Eid-i-Milad-un-Nabi" msgstr "" #: src/hd-data.c:613 msgid "Ghadir" msgstr "" #: src/hd-data.c:614 msgid "Imamat Day" msgstr "" #: src/hd-data.c:615 msgid "Islamic New Year's Day" msgstr "" #: src/hd-data.c:616 msgid "Nuzul-al-Qur'an" msgstr "" #: src/hd-data.c:617 msgid "Quds Day" msgstr "" #: src/hd-data.c:618 msgid "Ramadan" msgstr "" #: src/hd-data.c:619 msgid "Shab-e-Bara't" msgstr "" #: src/hd-data.c:620 msgid "Shab-e-Mi'raj" msgstr "" #: src/hd-data.c:621 msgid "Shab-e Qadr" msgstr "" #: src/hd-data.c:622 msgid "Waqf-al-Arafat" msgstr "" #: src/hd-data.c:623 msgid "Japanese New Year's Day" msgstr "" #: src/hd-data.c:624 msgid "Japanese New Year's Eve" msgstr "" #: src/hd-data.c:625 msgid "Jesus' Circumcision" msgstr "" #: src/hd-data.c:626 msgid "Kwanzaa" msgstr "" #: src/hd-data.c:627 msgid "Labour Day" msgstr "" #: src/hd-data.c:628 msgid "Labour Thanksgiving Day" msgstr "" #: src/hd-data.c:629 msgid "Lao Tze's Birthday" msgstr "" #: src/hd-data.c:630 msgid "Liberation Day" msgstr "" #: src/hd-data.c:631 msgid "Marine Day" msgstr "" #: src/hd-data.c:632 msgid "Martinimas" msgstr "" #: src/hd-data.c:633 msgid "Martin L. King's Day" msgstr "" #: src/hd-data.c:634 msgid "Martyrs' Day" msgstr "" #: src/hd-data.c:635 msgid "Mary's Annunciation Day" msgstr "" #: src/hd-data.c:636 msgid "Mary's Ascension Day" msgstr "" #: src/hd-data.c:637 msgid "Mary's Candlemas" msgstr "" #: src/hd-data.c:638 msgid "Mary's Expectation" msgstr "" #: src/hd-data.c:639 msgid "Mary's Immaculate Conception" msgstr "" #: src/hd-data.c:640 msgid "Mary's Maternity" msgstr "" #: src/hd-data.c:641 msgid "Mary's Name" msgstr "" #: src/hd-data.c:642 msgid "Mary's Nativity" msgstr "" #: src/hd-data.c:643 msgid "Mary's Sacrifice" msgstr "" #: src/hd-data.c:644 msgid "Mary's Visitation" msgstr "" #: src/hd-data.c:645 msgid "Mary - Blessed Virgin" msgstr "" #: src/hd-data.c:646 msgid "Maundy Thursday" msgstr "" #: src/hd-data.c:647 msgid "May Day" msgstr "" #: src/hd-data.c:648 msgid "St John's/Midsummer Day" msgstr "" #: src/hd-data.c:649 msgid "Mid-Autumn Festival" msgstr "" #: src/hd-data.c:650 msgid "Mid-Spring Festival" msgstr "" #: src/hd-data.c:651 msgid "Mid-Year Festival" msgstr "" #: src/hd-data.c:652 msgid "Waxing Half Moon" msgstr "" #: src/hd-data.c:653 msgid "Full Moon" msgstr "" #: src/hd-data.c:654 msgid "Waning Half Moon" msgstr "" #: src/hd-data.c:655 msgid "New Moon" msgstr "" #: src/hd-data.c:656 msgid "Mother's Day" msgstr "" #: src/hd-data.c:657 msgid "Mother in Law's Day" msgstr "" #: src/hd-data.c:658 msgid "Music Water Banquet" msgstr "" #: src/hd-data.c:659 msgid "National Foundation Day" msgstr "" #: src/hd-data.c:660 msgid "National Holiday" msgstr "" #: src/hd-data.c:661 msgid "National Mourning Day" msgstr "" #: src/hd-data.c:662 msgid "New Year's Day" msgstr "" #: src/hd-data.c:663 msgid "Nurses' Day" msgstr "" #: src/hd-data.c:664 msgid "Old-Armenic New Year" msgstr "" #: src/hd-data.c:665 msgid "Old-Egyptic New Year" msgstr "" #: src/hd-data.c:666 msgid "Orthodox New Year's Day" msgstr "" #: src/hd-data.c:667 msgid "Our Lady Aparecida Day" msgstr "" #: src/hd-data.c:668 msgid "Palm Sunday" msgstr "" #: src/hd-data.c:669 msgid "Parent's Day" msgstr "" #: src/hd-data.c:670 msgid "Passion Sunday" msgstr "" #: src/hd-data.c:671 msgid "Peace Festival" msgstr "" #: src/hd-data.c:672 msgid "Peach Festival" msgstr "" #: src/hd-data.c:673 msgid "Whitsunday/Pentecost" msgstr "" #: src/hd-data.c:674 msgid "Noruz/Persian New Year's Day" msgstr "" #: src/hd-data.c:675 msgid "Prayer Day" msgstr "" #: src/hd-data.c:676 msgid "Presidential Inauguration" msgstr "" #: src/hd-data.c:677 msgid "Presidents' Day" msgstr "" #: src/hd-data.c:678 msgid "Presidents' Inform" msgstr "" #: src/hd-data.c:679 msgid "President Lincoln's Birthday" msgstr "" #: src/hd-data.c:680 msgid "Princess' Day" msgstr "" #: src/hd-data.c:681 msgid "Quinquagesima Sunday" msgstr "" #: src/hd-data.c:682 msgid "Reformation Day" msgstr "" #: src/hd-data.c:683 msgid "Remembrance/Memorial Day" msgstr "" #: src/hd-data.c:684 msgid "Republic Day" msgstr "" #: src/hd-data.c:685 msgid "Respect for the Aged Day" msgstr "" #: src/hd-data.c:686 msgid "Revolution Day" msgstr "" #: src/hd-data.c:687 msgid "Rio de Janeiro Anniversary" msgstr "" #: src/hd-data.c:688 msgid "Rogation Sunday" msgstr "" #: src/hd-data.c:689 msgid "Sao Paulo Anniversary" msgstr "" #: src/hd-data.c:690 msgid "Sapporo Snow Festival" msgstr "" #: src/hd-data.c:691 msgid "Season Change/Bean-Festival" msgstr "" #: src/hd-data.c:692 msgid "Septuagesima Sunday" msgstr "" #: src/hd-data.c:693 msgid "Seven Sleepers Day" msgstr "" #: src/hd-data.c:694 msgid "Sexagesima Sunday" msgstr "" #: src/hd-data.c:695 msgid "Shrove Tuesday/Mardi Gras" msgstr "" #: src/hd-data.c:696 msgid "Solstice Day" msgstr "" #: src/hd-data.c:697 msgid "Soot-Sweeping Day" msgstr "" #: src/hd-data.c:698 msgid "Spring Festival" msgstr "" #: src/hd-data.c:699 msgid "Start of common month" msgstr "" #: src/hd-data.c:700 msgid "Start of leap month" msgstr "" #: src/hd-data.c:701 msgid "Star Festival" msgstr "" #: src/hd-data.c:702 msgid "St Andrew's Day" msgstr "" #: src/hd-data.c:703 msgid "St Bartholomew Day" msgstr "" #: src/hd-data.c:704 msgid "St Berchtold's Day" msgstr "" #: src/hd-data.c:705 msgid "St David's Day" msgstr "" #: src/hd-data.c:706 msgid "St Edward's Day" msgstr "" #: src/hd-data.c:707 msgid "St George's Day" msgstr "" #: src/hd-data.c:708 msgid "St James' Day" msgstr "" #: src/hd-data.c:709 msgid "St Joseph's Day" msgstr "" #: src/hd-data.c:710 msgid "St Laurentius Day" msgstr "" #: src/hd-data.c:711 msgid "St Nicholas' Day" msgstr "" #: src/hd-data.c:712 msgid "St Nicholas' Eve" msgstr "" #: src/hd-data.c:713 msgid "St Patrick's Day" msgstr "" #: src/hd-data.c:714 msgid "St Peter and St Paul" msgstr "" #: src/hd-data.c:715 msgid "St Stephen's Day" msgstr "" #: src/hd-data.c:716 msgid "St Valentine's Day" msgstr "" #: src/hd-data.c:717 msgid "Sunday of the Dead" msgstr "" #: src/hd-data.c:718 msgid "Swallow Day" msgstr "" #: src/hd-data.c:719 msgid "Sweetest Day" msgstr "" #: src/hd-data.c:720 msgid "Sylvester/New Year's Eve" msgstr "" #: src/hd-data.c:721 msgid "Teacher's Day" msgstr "" #: src/hd-data.c:722 msgid "Thai New Year's Day" msgstr "" #: src/hd-data.c:723 msgid "Thanksgiving Day" msgstr "" #: src/hd-data.c:724 msgid "The King's Birthday" msgstr "" #: src/hd-data.c:725 msgid "The Queen's Birthday" msgstr "" #: src/hd-data.c:726 msgid "Epiphany/Three King's Day" msgstr "" #: src/hd-data.c:727 msgid "Tiradentes Day" msgstr "" #: src/hd-data.c:728 msgid "Tomb-Sweeping Day" msgstr "" #: src/hd-data.c:729 msgid "Transfiguration Day" msgstr "" #: src/hd-data.c:730 msgid "Tynwald Day" msgstr "" #: src/hd-data.c:731 msgid "Valborg's Eve" msgstr "" #: src/hd-data.c:732 msgid "Venice Carnival" msgstr "" #: src/hd-data.c:733 msgid "Veteran's Day" msgstr "" #: src/hd-data.c:734 msgid "Victoria Day" msgstr "" #: src/hd-data.c:735 msgid "Victory Day" msgstr "" #: src/hd-data.c:736 msgid "Whit Monday" msgstr "" #: src/hd-data.c:737 #, fuzzy msgid "Women's Day" msgstr "UMUNSI" #: src/hd-data.c:738 #, fuzzy msgid "Women's Shrove Day" msgstr "UMUNSI" #: src/hd-data.c:739 msgid "World Animal Day" msgstr "" #: src/hd-data.c:740 msgid "Youth Day" msgstr "" #: src/hd-data.c:746 msgid "Adelaide Cup Day" msgstr "" #: src/hd-data.c:747 msgid "Admission Day" msgstr "" #: src/hd-data.c:748 msgid "Alaska Day" msgstr "" #: src/hd-data.c:749 msgid "Aleksis Kivi Day" msgstr "" #: src/hd-data.c:750 msgid "Alice-Springs Show Day" msgstr "" #: src/hd-data.c:751 msgid "All Saints' Eve" msgstr "" #: src/hd-data.c:752 msgid "Americas Day" msgstr "" #: src/hd-data.c:753 msgid "Angam Day" msgstr "" #: src/hd-data.c:755 msgid "Anniversary of Amir's Succession" msgstr "" #: src/hd-data.c:756 msgid "Anniversary of Armed Struggle" msgstr "" #: src/hd-data.c:757 msgid "Anniversary of Green March" msgstr "" #: src/hd-data.c:758 msgid "Antillian Day" msgstr "" #: src/hd-data.c:759 msgid "Arab League Day" msgstr "" #: src/hd-data.c:761 msgid "Archbishop Makarios' Memorial Day" msgstr "" #: src/hd-data.c:762 msgid "Archbishop Makarios' Name-Day" msgstr "" #: src/hd-data.c:763 msgid "Arengo Anniversary" msgstr "" #: src/hd-data.c:764 msgid "Army Coup Day" msgstr "" #: src/hd-data.c:765 msgid "Arrival of the Swiss" msgstr "" #: src/hd-data.c:766 msgid "Artigas' Birthday" msgstr "" #: src/hd-data.c:767 msgid "Asuncion Day" msgstr "" #: src/hd-data.c:768 msgid "Ataturk Memorial Day" msgstr "" #: src/hd-data.c:769 msgid "Authority's Power Day" msgstr "" #: src/hd-data.c:770 msgid "Ba'ath Revolution Day" msgstr "" #: src/hd-data.c:771 msgid "Baron Bliss Day" msgstr "" #: src/hd-data.c:772 msgid "Bataan Day" msgstr "" #: src/hd-data.c:773 #, fuzzy msgid "Battle of Angamos" msgstr "Bya" #: src/hd-data.c:774 #, fuzzy msgid "Battle of Boyacá" msgstr "Bya" #: src/hd-data.c:775 #, fuzzy msgid "Battle of Carabobo" msgstr "Bya" #: src/hd-data.c:776 #, fuzzy msgid "Battle of Iquique" msgstr "Bya" #: src/hd-data.c:777 #, fuzzy msgid "Battle of Las Piedras" msgstr "Bya" #: src/hd-data.c:778 #, fuzzy msgid "Battle of Näfels" msgstr "Bya" #: src/hd-data.c:779 msgid "Beginning of Summer" msgstr "" #: src/hd-data.c:780 msgid "Belgrade's Day" msgstr "" #: src/hd-data.c:781 msgid "Bennington Battle Day" msgstr "" #: src/hd-data.c:782 msgid "Blessing of the Water" msgstr "" #: src/hd-data.c:783 msgid "Bloomsday" msgstr "" #: src/hd-data.c:784 msgid "Boganda Day" msgstr "" #: src/hd-data.c:785 msgid "Bonaire Day" msgstr "" #: src/hd-data.c:786 msgid "Boqueron Battle Day" msgstr "" #: src/hd-data.c:787 msgid "Botswana Day" msgstr "" #: src/hd-data.c:788 msgid "Bounty Day" msgstr "" #: src/hd-data.c:789 msgid "Bunker Hill Day" msgstr "" #: src/hd-data.c:790 #, fuzzy msgid "Burning of Jan Hus" msgstr "Bya" #: src/hd-data.c:791 msgid "Canberra Day" msgstr "" #: src/hd-data.c:792 msgid "Caricom Day" msgstr "" #: src/hd-data.c:793 msgid "Casimir Pulaski's Birthday" msgstr "" #: src/hd-data.c:794 msgid "Cassinga Day" msgstr "" #: src/hd-data.c:795 msgid "Cayenne Festival" msgstr "" #: src/hd-data.c:796 msgid "Cesar Chavez Day" msgstr "" #: src/hd-data.c:797 msgid "Charter Day" msgstr "" #: src/hd-data.c:798 msgid "Chiang Kai-shek's Birthday" msgstr "" #: src/hd-data.c:799 msgid "Children's White Sunday" msgstr "" #: src/hd-data.c:800 msgid "Colon Day" msgstr "" #: src/hd-data.c:801 msgid "Colorado Day" msgstr "" #: src/hd-data.c:802 msgid "Commonwealth Day" msgstr "" #: src/hd-data.c:803 msgid "Compact Day" msgstr "" #: src/hd-data.c:804 msgid "Confederal Agreement Day" msgstr "" #: src/hd-data.c:805 msgid "Coronation Day" msgstr "" #: src/hd-data.c:806 msgid "Cup Match Day" msgstr "" #: src/hd-data.c:807 msgid "Custom Chief's Day" msgstr "" #: src/hd-data.c:808 msgid "C. Mapinduzi Day" msgstr "" #: src/hd-data.c:809 msgid "Darwin Show Day" msgstr "" #: src/hd-data.c:810 msgid "Day of Goodwill" msgstr "" #: src/hd-data.c:811 #, fuzzy msgid "Day of Students Revolt" msgstr "Bya" #: src/hd-data.c:812 msgid "Day of the Free Laos" msgstr "" #: src/hd-data.c:813 #, fuzzy msgid "Death of H. Christophe" msgstr "Bya" #: src/hd-data.c:814 msgid "Death of J. Dessalines" msgstr "" #: src/hd-data.c:815 msgid "Death of President Abdallah" msgstr "" #: src/hd-data.c:816 msgid "Death of President Cheikh" msgstr "" #: src/hd-data.c:817 msgid "Death of President Soilih" msgstr "" #: src/hd-data.c:818 msgid "Death of Qaid-i-Azam" msgstr "" #: src/hd-data.c:819 msgid "Death of T. Louverture" msgstr "" #: src/hd-data.c:820 msgid "Defenders Day" msgstr "" #: src/hd-data.c:821 msgid "Dia del Padre" msgstr "" #: src/hd-data.c:822 msgid "Dia de los Maestros" msgstr "" #: src/hd-data.c:823 msgid "Discovery Day" msgstr "" #: src/hd-data.c:824 msgid "Downfall of the Dergue" msgstr "" #: src/hd-data.c:825 msgid "Dry Season Celebration" msgstr "" #: src/hd-data.c:826 msgid "Dr. Sun Yat-sen's Birthday" msgstr "" #: src/hd-data.c:827 msgid "Duarte's Birthday" msgstr "" #: src/hd-data.c:828 #, fuzzy msgid "Easter Tuesday" msgstr "kwa kabiri" #: src/hd-data.c:829 msgid "Economic Liberation Day" msgstr "" #: src/hd-data.c:830 msgid "Eight Hours Day" msgstr "" #: src/hd-data.c:831 msgid "Elections for National Assembly" msgstr "" #: src/hd-data.c:832 msgid "Errol Barrow Day" msgstr "" #: src/hd-data.c:833 msgid "Evacuation Day" msgstr "" #: src/hd-data.c:834 msgid "Eve of Epiphany" msgstr "" #: src/hd-data.c:835 msgid "Expedition of the 33" msgstr "" #: src/hd-data.c:836 msgid "E. Hostos' Birthday" msgstr "" #: src/hd-data.c:837 msgid "Family Day" msgstr "" #: src/hd-data.c:838 msgid "FAO Day" msgstr "" #: src/hd-data.c:839 msgid "Farmers' Day" msgstr "" #: src/hd-data.c:840 msgid "Father Leval Day" msgstr "" #: src/hd-data.c:841 #, fuzzy msgid "Feast of Our Theotokos" msgstr "Bya" #: src/hd-data.c:842 msgid "Fisherman's Day" msgstr "" #: src/hd-data.c:843 msgid "Foundation of NPLA Day" msgstr "" #: src/hd-data.c:844 msgid "Founding of People's Party" msgstr "" #: src/hd-data.c:845 msgid "Garifuna Day" msgstr "" #: src/hd-data.c:847 msgid "General San Martin's Anniversary" msgstr "" #: src/hd-data.c:848 msgid "Gospel Day" msgstr "" #: src/hd-data.c:849 msgid "Guacanaste Day" msgstr "" #: src/hd-data.c:850 msgid "Gustavus Adolphus' Day" msgstr "" #: src/hd-data.c:851 msgid "Heritage Day" msgstr "" #: src/hd-data.c:852 msgid "Heroes Day" msgstr "" #: src/hd-data.c:853 msgid "Hobart Show Day" msgstr "" #: src/hd-data.c:854 #, fuzzy msgid "Holy Wednesday" msgstr "kwa gatatu" #: src/hd-data.c:855 msgid "Ho Chi Minh's Birthday" msgstr "" #: src/hd-data.c:856 msgid "Human Rights Day" msgstr "" #: src/hd-data.c:857 msgid "Hurricane Supplication Day" msgstr "" #: src/hd-data.c:858 msgid "Hurricane Thanksgiving Day" msgstr "" #: src/hd-data.c:859 msgid "Independence of Cartagena" msgstr "" #: src/hd-data.c:860 msgid "Independence of Cuenca" msgstr "" #: src/hd-data.c:861 msgid "Independence of Guayaquil" msgstr "" #: src/hd-data.c:862 msgid "Independence of Quito" msgstr "" #: src/hd-data.c:863 msgid "Indian Arrival Day" msgstr "" #: src/hd-data.c:864 msgid "Internal Autonomy Day" msgstr "" #: src/hd-data.c:865 msgid "Jefferson Davis' Birthday" msgstr "" #: src/hd-data.c:866 #, fuzzy msgid "June Holiday" msgstr "By'amategeko Konji" #: src/hd-data.c:867 msgid "J. Barbosa's Birthday" msgstr "" #: src/hd-data.c:868 msgid "J. Chilembwe Day" msgstr "" #: src/hd-data.c:869 msgid "J. Diego's Birthday" msgstr "" #: src/hd-data.c:870 msgid "J. Robert's Birthday" msgstr "" #: src/hd-data.c:871 msgid "Kamarampaka Day" msgstr "" #: src/hd-data.c:872 msgid "Kartini Day" msgstr "" #: src/hd-data.c:873 msgid "Catherine Show Day" msgstr "" #: src/hd-data.c:874 msgid "Kiev Day" msgstr "" #: src/hd-data.c:875 msgid "Kim Il-Sung's Birthday" msgstr "" #: src/hd-data.c:876 msgid "Kim Jong-Il's Birthday" msgstr "" #: src/hd-data.c:877 msgid "King Kamehameha Day" msgstr "" #: src/hd-data.c:878 msgid "King Rama I Memorial Day/Chakri" msgstr "" #: src/hd-data.c:879 msgid "King Rama V Memorial Day" msgstr "" #: src/hd-data.c:880 msgid "Knabenschiessen" msgstr "" #: src/hd-data.c:881 msgid "Konstantin and Methodius" msgstr "" #: src/hd-data.c:882 msgid "Lapp National Holiday" msgstr "" #: src/hd-data.c:883 msgid "Launceston Cup Day" msgstr "" #: src/hd-data.c:884 msgid "Liberty Day" msgstr "" #: src/hd-data.c:885 msgid "Loss of Muslim Nation" msgstr "" #: src/hd-data.c:886 msgid "Luxembourg City Kermis" msgstr "" #: src/hd-data.c:887 msgid "Lyndon B. Johnson Day" msgstr "" #: src/hd-data.c:888 msgid "L. Rivera's Birthday" msgstr "" #: src/hd-data.c:889 msgid "Madaraka Day" msgstr "" #: src/hd-data.c:890 msgid "Mahatma Gandhi's Birthday" msgstr "" #: src/hd-data.c:891 msgid "Malvinas Day" msgstr "" #: src/hd-data.c:892 msgid "Manila Day" msgstr "" #: src/hd-data.c:893 msgid "Maputo City Day" msgstr "" #: src/hd-data.c:894 msgid "Marien Ngouabi Day" msgstr "" #: src/hd-data.c:895 msgid "Maryland Day" msgstr "" #: src/hd-data.c:896 msgid "Melbourne Cup Day" msgstr "" #: src/hd-data.c:897 msgid "Merchant Day" msgstr "" #: src/hd-data.c:898 msgid "St John's/Midsummers Eve" msgstr "" #: src/hd-data.c:899 msgid "Missionary Day" msgstr "" #: src/hd-data.c:900 msgid "Mi-Carême Day" msgstr "" #: src/hd-data.c:901 msgid "Morazan Day" msgstr "" #: src/hd-data.c:902 msgid "Mosheshoe's Day" msgstr "" #: src/hd-data.c:903 msgid "Motherhood and Beauty Day" msgstr "" #: src/hd-data.c:904 msgid "Naming Day" msgstr "" #: src/hd-data.c:905 msgid "National Bun Day" msgstr "" #: src/hd-data.c:906 msgid "National Heroes Day" msgstr "" #: src/hd-data.c:907 msgid "National Redemption Day" msgstr "" #: src/hd-data.c:908 msgid "National Resistance Day" msgstr "" #: src/hd-data.c:909 msgid "National Revival Day" msgstr "" #: src/hd-data.c:910 msgid "National Unity Day" msgstr "" #: src/hd-data.c:911 msgid "Ndadaye Day" msgstr "" #: src/hd-data.c:912 msgid "Neutrality Day" msgstr "" #: src/hd-data.c:913 msgid "Nevada Day" msgstr "" #: src/hd-data.c:914 msgid "New Regime Anniversary" msgstr "" #: src/hd-data.c:915 msgid "Nobel Day" msgstr "" #: src/hd-data.c:916 msgid "Noi Day" msgstr "" #: src/hd-data.c:917 msgid "OAU Day" msgstr "" #: src/hd-data.c:918 #, fuzzy msgid "October Holiday" msgstr "Ukwakira" #: src/hd-data.c:919 msgid "Oil Industry Day" msgstr "" #: src/hd-data.c:920 msgid "Our Lady of Altagracia Day" msgstr "" #: src/hd-data.c:921 msgid "Our Lady of Camarin Day" msgstr "" #: src/hd-data.c:922 msgid "Our Lady of Las Mercedes Day" msgstr "" #: src/hd-data.c:923 msgid "Our Lady of Los Angeles Day" msgstr "" #: src/hd-data.c:924 msgid "Our Lady of Seven Sorrows" msgstr "" #: src/hd-data.c:925 msgid "Our Lady of Victories Day" msgstr "" #: src/hd-data.c:926 msgid "Panama City Day" msgstr "" #: src/hd-data.c:927 msgid "Panamerica Day" msgstr "" #: src/hd-data.c:928 msgid "Paris Peace Agreement Day" msgstr "" #: src/hd-data.c:929 msgid "Patriot's Day" msgstr "" #: src/hd-data.c:930 msgid "People's Uprising Day" msgstr "" #: src/hd-data.c:931 msgid "People Power Day" msgstr "" #: src/hd-data.c:932 msgid "Philippine-American Friendship" msgstr "" #: src/hd-data.c:933 msgid "Pichincha Day" msgstr "" #: src/hd-data.c:934 msgid "Picnic Day" msgstr "" #: src/hd-data.c:935 msgid "Pioneer Day" msgstr "" #: src/hd-data.c:936 msgid "Poya Day" msgstr "" #: src/hd-data.c:937 msgid "Prince Kalanianaole Day" msgstr "" #: src/hd-data.c:938 msgid "Prince of Wales' Birthday" msgstr "" #: src/hd-data.c:939 msgid "Proclamation Day" msgstr "" #: src/hd-data.c:940 msgid "Qaid-i-Azam's Birthday" msgstr "" #: src/hd-data.c:941 msgid "Ratu Sukuma Day" msgstr "" #: src/hd-data.c:942 msgid "Recreation Day" msgstr "" #: src/hd-data.c:943 msgid "Referendum Day" msgstr "" #: src/hd-data.c:944 msgid "Regatta Day" msgstr "" #: src/hd-data.c:945 msgid "Regency Exchange" msgstr "" #: src/hd-data.c:946 msgid "Restoration Day" msgstr "" #: src/hd-data.c:947 msgid "Return Day" msgstr "" #: src/hd-data.c:948 msgid "Reunification Day" msgstr "" #: src/hd-data.c:949 msgid "Rizal Day" msgstr "" #: src/hd-data.c:950 msgid "Rwagasore Day" msgstr "" #: src/hd-data.c:951 msgid "Saba Day" msgstr "" #: src/hd-data.c:952 msgid "San Jacinto Day" msgstr "" #: src/hd-data.c:953 msgid "San José Day" msgstr "" #: src/hd-data.c:954 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:955 #, fuzzy msgid "School Holiday" msgstr "Konji" #: src/hd-data.c:956 msgid "Sechseläuten" msgstr "" #: src/hd-data.c:957 msgid "Separation Day" msgstr "" #: src/hd-data.c:958 msgid "Seretse Khama Day" msgstr "" #: src/hd-data.c:959 msgid "Settlers Day" msgstr "" #: src/hd-data.c:960 msgid "Seward's Day" msgstr "" #: src/hd-data.c:961 msgid "Shaheed Day" msgstr "" #: src/hd-data.c:962 msgid "Sheep Festival" msgstr "" #: src/hd-data.c:963 msgid "Sheikh Zayed's Ascension Day" msgstr "" #: src/hd-data.c:964 msgid "Simon Bolivar's Day" msgstr "" #: src/hd-data.c:965 msgid "Sinai-Liberation Day" msgstr "" #: src/hd-data.c:966 msgid "Slave-Liberation Day" msgstr "" #: src/hd-data.c:967 msgid "Sniff the Breeze Day" msgstr "" #: src/hd-data.c:968 msgid "Solidarity Day" msgstr "" #: src/hd-data.c:969 msgid "Somers Day" msgstr "" #: src/hd-data.c:970 msgid "Statia-American Day" msgstr "" #: src/hd-data.c:971 msgid "Student's Day" msgstr "" #: src/hd-data.c:972 msgid "St Agata Day" msgstr "" #: src/hd-data.c:973 msgid "St Canute's Day" msgstr "" #: src/hd-data.c:974 msgid "St Cedilia's Day" msgstr "" #: src/hd-data.c:975 msgid "St Charles' Day" msgstr "" #: src/hd-data.c:976 msgid "St Demetrius' Day" msgstr "" #: src/hd-data.c:977 msgid "St Dévote Day" msgstr "" #: src/hd-data.c:978 msgid "St Eliah's Day" msgstr "" #: src/hd-data.c:979 msgid "St Jean Baptiste Day" msgstr "" #: src/hd-data.c:980 msgid "St Lucia's Day" msgstr "" #: src/hd-data.c:981 msgid "St Marguerite's Day" msgstr "" #: src/hd-data.c:982 msgid "St Maroon's Day" msgstr "" #: src/hd-data.c:983 msgid "St Michael's Day" msgstr "" #: src/hd-data.c:984 msgid "St Olav's Day" msgstr "" #: src/hd-data.c:985 msgid "St Olav's Eve" msgstr "" #: src/hd-data.c:986 msgid "St Paul's Shipswreck" msgstr "" #: src/hd-data.c:987 msgid "St Rose of Lima" msgstr "" #: src/hd-data.c:988 msgid "St Ursula's Day" msgstr "" #: src/hd-data.c:989 msgid "St Vincent de Paul's Day" msgstr "" #: src/hd-data.c:990 msgid "Suez Victory Day" msgstr "" #: src/hd-data.c:991 msgid "Sultan Qaboos' Birthday" msgstr "" #: src/hd-data.c:992 msgid "Svetitskhovloba" msgstr "" #: src/hd-data.c:993 msgid "Sweden Day" msgstr "" #: src/hd-data.c:994 msgid "S. Doe's Birthday" msgstr "" #: src/hd-data.c:995 msgid "Tennant-Creek Show Day" msgstr "" #: src/hd-data.c:996 msgid "Territory Day" msgstr "" #: src/hd-data.c:997 msgid "The Crown Princesse's Birthday" msgstr "" #: src/hd-data.c:998 msgid "The Crown Princesse's Name-Day" msgstr "" #: src/hd-data.c:999 msgid "The Crown Prince's Birthday" msgstr "" #: src/hd-data.c:1000 msgid "The King's Name-Day" msgstr "" #: src/hd-data.c:1001 msgid "The Queen's Name-Day" msgstr "" #: src/hd-data.c:1002 msgid "Topou I Day" msgstr "" #: src/hd-data.c:1003 msgid "Town Meeting Day" msgstr "" #: src/hd-data.c:1004 msgid "Traditional Day" msgstr "" #: src/hd-data.c:1005 msgid "Transfer Day" msgstr "" #: src/hd-data.c:1006 msgid "Truman Day" msgstr "" #: src/hd-data.c:1007 msgid "Union Day" msgstr "" #: src/hd-data.c:1008 #, fuzzy msgid "Union with Sweden dissolved" msgstr "Na:" #: src/hd-data.c:1009 msgid "United Nations Day" msgstr "" #: src/hd-data.c:1010 msgid "Unity Factory Day" msgstr "" #: src/hd-data.c:1011 msgid "Victor-Schoelcher Day" msgstr "" #: src/hd-data.c:1012 msgid "Vidovdan" msgstr "" #: src/hd-data.c:1013 msgid "West Virginia Day" msgstr "" #: src/hd-data.c:1014 msgid "Whitsun Eve" msgstr "" #: src/hd-data.c:1015 msgid "W. Tubman's Birthday" msgstr "" #: src/hd-data.c:1016 msgid "Yap Day" msgstr "" #: src/hd-data.c:1017 msgid "Day of Czech Statehood" msgstr "" #: src/hd-data.c:1082 msgid "Zi/Rat" msgstr "" #: src/hd-data.c:1082 msgid "Chou/Ox" msgstr "" #: src/hd-data.c:1083 msgid "Yin/Tiger" msgstr "" #: src/hd-data.c:1083 msgid "Mao/Rabbit" msgstr "" #: src/hd-data.c:1084 msgid "Chen/Dragon" msgstr "" #: src/hd-data.c:1084 msgid "Si/Snake" msgstr "" #: src/hd-data.c:1085 msgid "Wu/Horse" msgstr "" #: src/hd-data.c:1085 msgid "Wei/Sheep" msgstr "" #: src/hd-data.c:1086 msgid "Shen/Monkey" msgstr "" #: src/hd-data.c:1086 msgid "You/Rooster" msgstr "" #: src/hd-data.c:1087 msgid "Xu/Dog" msgstr "" #: src/hd-data.c:1087 msgid "Hai/Pig" msgstr "" #: src/hd-data.c:1284 #, fuzzy msgid "Ast" msgstr "ST" #: src/hd-data.c:1397 src/hd-data.c:1480 msgid "Bah" msgstr "" #: src/hd-data.c:1547 msgid "Cel" msgstr "" #: src/hd-data.c:1689 src/hd-data.c:2222 msgid "Chi" msgstr "" #: src/hd-data.c:1803 src/hd-data.c:2322 src/hd-data.c:3839 #, c-format msgid "Cannot calculate lunisolar calendar for %d correctly" msgstr "" #: src/hd-data.c:2224 src/hd-data.c:3727 #, fuzzy msgid "Jap" msgstr "Mutarama" #: src/hd-data.c:2420 msgid "Chr" msgstr "" #: src/hd-data.c:2654 src/hd-data.c:4171 msgid "FRR" msgstr "" #: src/hd-data.c:2775 src/hd-data.c:2957 #, fuzzy msgid "Heb" msgstr "Gashyantare" #: src/hd-data.c:3187 src/hd-data.c:3616 msgid "Isl" msgstr "" #: src/hd-data.c:4241 src/hd-data.c:4336 msgid "AMO" msgstr "" #: src/hd-data.c:4262 src/hd-data.c:4334 msgid "EGO" msgstr "" #: src/hd-data.c:4444 msgid "OxN" msgstr "" #: src/hd-data.c:4446 msgid "OxO" msgstr "" #: src/hd-data.c:4647 src/hd-data.c:4776 msgid "Per" msgstr "" #: src/hd-data.c:4844 msgid "Zod" msgstr "" # sc/source\core\src\compiler.src:RID_SC_FUNCTION_NAMES.SC_OPCODE_GET_DAY.text #: src/hd-use.c:928 #, fuzzy msgid " day" msgstr "UMUNSI" #: src/hd-use.c:1973 src/hd-use.c:1978 src/hd-use.c:1982 src/hd-use.c:1989 #: src/hd-use.c:1993 src/hd-use.c:2089 src/hd-use.c:2273 #, fuzzy msgid "Eternal holiday list" msgstr "ikiruhuko Urutonde" #: src/hd-use.c:1977 #, fuzzy, c-format msgid "%s:%*sThe year %0*d is A leap year" msgstr "%s:%*sTheUmwaka ni A Umwaka" #: src/hd-use.c:1981 #, fuzzy, c-format msgid "%s:%*sThe year %0*d is NO leap year" msgstr "%s:%*sTheUmwaka ni Umwaka" #: src/hd-use.c:1988 #, fuzzy, c-format msgid "%s:%*sThe year %d is A leap year" msgstr "%s:%*sTheUmwaka ni A Umwaka" #: src/hd-use.c:1992 #, fuzzy, c-format msgid "%s:%*sThe year %d is NO leap year" msgstr "%s:%*sTheUmwaka ni Umwaka" #: src/hd-use.c:2242 #, fuzzy, c-format msgid " = %+4d day" msgstr "=%+4dUMUNSI" #: src/hd-use.c:2244 #, fuzzy, c-format msgid " = %+4d days" msgstr "=%+4dIminsi" #: src/hd-use.c:2271 #, fuzzy, c-format msgid "%s%s contains %d maximum entries now!%s" msgstr "%s%sKirimo Kinini Ibyinjijwe NONEAHA" #: src/help.c:64 #, fuzzy, c-format msgid "Compiled with %s%s for %s%s%s%s" msgstr "Na: kugirango" #: src/help.c:74 #, fuzzy msgid "# Day number (must be defined)" msgstr "Itsinda" #: src/help.c:75 #, fuzzy msgid "# Year number (must be defined)" msgstr "Itsinda" #: src/help.c:76 #, fuzzy msgid "# Weekday name (may be defined)" msgstr "Izina: Itsinda Gicurasi" #: src/help.c:77 #, fuzzy msgid "Month group (exactly one member must be defined):" msgstr "Itsinda" #: src/help.c:78 msgid "# Month number" msgstr "" #: src/help.c:79 #, fuzzy msgid "# Month name" msgstr "Ukwezi Izina:" #: src/help.c:80 #, fuzzy msgid "Highlighting group (all members must be defined):" msgstr "Itsinda Byose" #: src/help.c:81 #, fuzzy msgid "Start of highlighting sequence/marking character" msgstr "Gutangira Bya Igaragaza cyane Inyuguti" #: src/help.c:83 #, fuzzy msgid "End of highlighting sequence/marking character" msgstr "Impera Bya Igaragaza cyane Inyuguti" #: src/help.c:85 msgid "Character replacement:" msgstr "" #: src/help.c:86 #, fuzzy, c-format msgid "Space/blank ('%c') character" msgstr "Ahatanditseho Inyuguti" #: src/help.c:87 #, fuzzy, c-format msgid "Underscore ('%c') character" msgstr "Inyuguti" #: src/help.c:88 #, fuzzy, c-format msgid "Percent ('%c') character" msgstr "Inyuguti" #: src/help.c:89 #, fuzzy, c-format msgid "Backslash ('%c') character" msgstr "Ahatanditseho Inyuguti" #: src/help.c:90 msgid "All format elements marked by # may optionally" msgstr "" #: src/help.c:91 msgid "contain a format instruction, which template is like:" msgstr "" #: src/help.c:92 msgid "[ALIGNMENT [SIGN] [ZERO] WIDTH [STYLE] [SUFFIX] FORMAT]" msgstr "" #: src/help.c:93 #, fuzzy msgid "ALIGNMENT group (exactly one member must be defined):" msgstr "Itsinda" #: src/help.c:94 msgid "Field contents placed at the left margin using width WIDTH" msgstr "" #: src/help.c:96 msgid "Field contents placed in centered manner using width WIDTH" msgstr "" #: src/help.c:98 msgid "Field contents placed at the right margin using width WIDTH" msgstr "" #: src/help.c:100 msgid "SIGN (may be defined):" msgstr "" #: src/help.c:101 msgid "Numerical value is provided with leading sign" msgstr "" #: src/help.c:102 msgid "ZERO (may be defined):" msgstr "" #: src/help.c:103 #, fuzzy msgid "Numerical value is filled with leading zero(es)" msgstr "Umubare Na: Nyobora" #: src/help.c:104 msgid "WIDTH (must be defined):" msgstr "" #: src/help.c:105 #, c-format msgid "Field has the width N (%d...%d)" msgstr "" #: src/help.c:106 #, fuzzy msgid "STYLE group (exactly one member may be defined):" msgstr "Itsinda" #: src/help.c:107 msgid "Field contents is converted to upper-case letters" msgstr "" #: src/help.c:108 msgid "Field contents is converted to lower-case letters" msgstr "" #: src/help.c:109 msgid "Field contents is converted to capitalized words" msgstr "" #: src/help.c:110 msgid "SUFFIX (may be defined):" msgstr "" #: src/help.c:111 msgid "Numerical value is provided with an ordinal number suffix" msgstr "" #: src/help.c:113 #, fuzzy msgid "FORMAT group (exactly one member must be defined):" msgstr "Itsinda" #: src/help.c:114 msgid "Field contents is not cut after position WIDTH" msgstr "" #: src/help.c:115 msgid "Field contents is cut after position WIDTH" msgstr "" #: src/help.c:129 #, 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:130 #, fuzzy msgid "holidays" msgstr "Konji" #: src/help.c:131 msgid "Mondays" msgstr "kwa mbere" #: src/help.c:132 msgid "Tuesdays" msgstr "kwa kabiri" #: src/help.c:133 msgid "Wednesdays" msgstr "kwa gatatu" #: src/help.c:134 msgid "Thursdays" msgstr "kwa kane" #: src/help.c:135 msgid "Fridays" msgstr "kwa gatanu" #: src/help.c:136 msgid "Saturdays" msgstr "kwa gatandatu" #: src/help.c:137 msgid "Sundays" msgstr "Ku kyumweru" #: src/help.c:138 msgid "Mondays...Thursdays" msgstr "" #: src/help.c:139 msgid "Mondays...Fridays" msgstr "" #: src/help.c:169 #, 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:242 #, fuzzy msgid "OPTION" msgstr "Ihitamo" #: src/help.c:255 #, fuzzy msgid " Display help text and quit program" msgstr "Ifashayobora Umwandiko Na Kuvamo Porogaramu" #: src/help.c:272 #, fuzzy msgid " Display extended help text and quit program" msgstr "Byongerewe... Ifashayobora Umwandiko Na Kuvamo Porogaramu" #: src/help.c:290 #, fuzzy msgid " Display software license and quit program" msgstr "Na Kuvamo Porogaramu" #: src/help.c:301 #, fuzzy msgid " Display version information and quit program" msgstr "Verisiyo Umubare Na Kuvamo Porogaramu" #: src/help.c:312 #, 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:325 #, fuzzy, c-format msgid " Create response file for the `%cFILE' option" msgstr "IDOSIYE kugirango i Ihitamo" #: src/help.c:329 #, fuzzy, c-format msgid " %-3s = Store arguments of command line in file %s" msgstr "%-3s=ingingo Bya Komandi: Umurongo in IDOSIYE" #: src/help.c:343 #, 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:345 #, fuzzy, c-format msgid " %-3s = File name of the shell script" msgstr "%-3s=Idosiye Izina: Bya i Igikonoshwa IYANDIKA" #: src/help.c:359 #, 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:363 #, fuzzy, c-format msgid " %-3s = \"DVAR%s%s%s\" definitions separated by `%s' characters" msgstr "%-3s=Bya DVAR ku Inyuguti" #: src/help.c:368 #, 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:380 #, fuzzy msgid " Export local date variables from file to file" msgstr "Itariki Ibihinduka Bivuye IDOSIYE Kuri IDOSIYE" #: src/help.c:392 #, fuzzy, c-format msgid " Define global text variable(s) \"TVAR->%ca...%cz\"" msgstr "Umwandiko IMPINDURAGACIRO S" #: src/help.c:397 #, fuzzy, c-format msgid " %-3s = \"TVAR%sTEXT\" definitions separated by `%s' characters" msgstr "%-3s=Bya DVAR ku Inyuguti" #: src/help.c:402 #, 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:408 #, fuzzy, c-format msgid "" " = \"TVAR[%s|%c%s]COMMAND\" definitions separated by `%s' characters" msgstr "ku Inyuguti" #: src/help.c:413 #, fuzzy, c-format msgid "" " E.g. %sr %ca%sfoo Assign output of command `foo' to `%ca'" msgstr "E. g." #: src/help.c:425 #, fuzzy msgid " Export local text variables from file to file" msgstr "Umwandiko Ibihinduka Bivuye IDOSIYE Kuri IDOSIYE" #: src/help.c:437 src/help.c:467 #, 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:442 #, 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:447 #, fuzzy msgid " is a LOWER-CASE-LETTER, it means a non-exclusion!" msgstr "ni a a" #: src/help.c:451 #, fuzzy, c-format msgid " %c = Exclusion of all %s" msgstr "%c=Bya Byose" #: src/help.c:472 #, 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:476 #, fuzzy, c-format msgid " expressions separated by `%s' characters" msgstr "ku Inyuguti" #: src/help.c:489 #, 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:494 #, fuzzy, c-format msgid " %-3s = Any text respectively \"regular expression\" you like" msgstr "%-3s=Umwandiko Ibisanzwe imvugo nka" #: src/help.c:507 #, c-format msgid " Ignore case distinctions if `%s' option is given" msgstr "" #: src/help.c:519 #, fuzzy, c-format msgid " Revert the sense of matching of the `%s' option" msgstr "IDOSIYE kugirango i Ihitamo" #: src/help.c:530 #, fuzzy msgid " Display some debug information" msgstr "Kosora amakosa" #: src/help.c:538 #, fuzzy, c-format msgid "" " [%-3s] = internal Information if program internal maximums are reached" msgstr "[%-3s]=By'imbere NIBA Porogaramu By'imbere" #: src/help.c:547 #, fuzzy msgid "" " = handled Like `internal' and file names which are handled" msgstr "=Na IDOSIYE Amazina" #: src/help.c:555 #, fuzzy msgid "" " = unhandled Like `internal' and file names which are unhandled" msgstr "=Na IDOSIYE Amazina" #: src/help.c:563 #, fuzzy msgid " = all Like `handled' and `unhandled' together" msgstr "=Byose Na" #: src/help.c:571 #, fuzzy msgid "" " = abort Like `all' and abort if file name can't be handled" msgstr "=Kureka Na Kureka NIBA IDOSIYE Izina:" #: src/help.c:581 #, fuzzy msgid " Use special format for calendar sheet" msgstr "Bidasanzwe Imiterere kugirango Kalindari URUPAPURO" #: src/help.c:584 #, fuzzy msgid " [MOD] = - Use standard format for calendar sheet" msgstr "[Bisanzwe Imiterere kugirango Kalindari URUPAPURO" #: src/help.c:595 #, fuzzy msgid " Use leap year rule of Eastern Orthodox churches" msgstr "Umwaka Bya" #: src/help.c:605 #, fuzzy msgid " Provide calendar sheet with week numbers" msgstr "Kalindari URUPAPURO Na: Icyumweru Imibare" #: src/help.c:616 #, c-format msgid " Determine type of week numbers (actual: %s)" msgstr "" #: src/help.c:617 msgid "Standard" msgstr "" #: src/help.c:623 #, c-format msgid " %-3s = yes ISO-8601:1988 week numbers" msgstr "" #: src/help.c:630 #, fuzzy msgid " = no Standard week numbers" msgstr "Kalindari URUPAPURO Na: Icyumweru Imibare" #: src/help.c:641 #, fuzzy msgid " Suppress output of calendar sheet explicitly" msgstr "Ibisohoka Bya Kalindari URUPAPURO" #: src/help.c:654 #, fuzzy, c-format msgid " Direct output through external `%s' pager" msgstr "Ibisohoka Gihinguranya external Peja" #: src/help.c:660 src/help.c:662 #, fuzzy msgid " Direct output through simple internal pager" msgstr "Ibisohoka Gihinguranya Byoroheje By'imbere Peja" #: src/help.c:679 #, fuzzy msgid " Disable highlighting of text, holiday resp., actual day" msgstr "Igaragaza cyane Bya Umwandiko ikiruhuko UMUNSI" #: src/help.c:694 #, fuzzy msgid " Forces highlighting sequences if output is redirected/piped" msgstr "Igaragaza cyane NIBA Ibisohoka ni" #: src/help.c:706 #, fuzzy msgid "" " Set highlighting sequence pairs 1 (=actual day) and 2 (=holiday)" msgstr "Igaragaza cyane 1. UMUNSI Na 2. ikiruhuko" #: src/help.c:710 #, fuzzy, c-format msgid " %-3s = Highlighting sequence pairs separated by `%s' characters" msgstr "%-3s=ku Inyuguti" #: src/help.c:715 #, 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:720 #, fuzzy, c-format msgid "" " E.g. %sH %s%s*%s* Use characters `*' and `*' for sequence 2" msgstr "E. g." #: src/help.c:731 #, fuzzy msgid " Modify format of year calendar" msgstr "Imiterere Bya Umwaka Kalindari" #: src/help.c:735 #, 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:747 #, fuzzy msgid " Use consecutive day of year in calendar sheet" msgstr "UMUNSI Bya Umwaka in Kalindari URUPAPURO" #: src/help.c:751 #, fuzzy msgid " [MOD] = b Use both date notations (day of month+year)" msgstr "[B Byombi Itariki UMUNSI Bya Ukwezi Umwaka" #: src/help.c:763 #, fuzzy msgid " Use consecutive day of year in eternal holiday list" msgstr "UMUNSI Bya Umwaka in ikiruhuko Urutonde" #: src/help.c:767 src/help.c:783 #, fuzzy msgid " [MOD] = b Use both date notations (day of month+year)" msgstr "[B Byombi Itariki UMUNSI Bya Ukwezi Umwaka" #: src/help.c:779 #, fuzzy msgid " Use consecutive day of year in fixed date list" msgstr "UMUNSI Bya Umwaka in BIHAMYE Itariki Urutonde" #: src/help.c:794 #, fuzzy, c-format msgid " Set starting day of week (actual: %s)" msgstr "UMUNSI Bya Icyumweru" #: src/help.c:827 #, fuzzy, c-format msgid " Send output via `%s' program to user" msgstr "Ibisohoka Biturutse Porogaramu Kuri Ukoresha:" #: src/help.c:856 msgid "UNKNOWN" msgstr "" #: src/help.c:859 #, c-format msgid " [%-3s] = Email address, otherwise eMail is send to user `%s'" msgstr "" #: src/help.c:877 #, fuzzy, c-format msgid " Display eternal holiday list (Year in range: %d...%d)" msgstr "ikiruhuko Urutonde in Urutonde" #: src/help.c:880 #, fuzzy msgid " n = Legal days and memorial days" msgstr "N Iminsi Na Iminsi" #: src/help.c:882 #, fuzzy msgid " N = Legal days only" msgstr "Iminsi" #: src/help.c:884 src/help.c:1630 #, fuzzy, c-format msgid " [MOD] = %s Descending sort order" msgstr "[Ishungura Itondekanya" #: src/help.c:896 #, fuzzy msgid " Suppress leading blank line of eternal holiday list" msgstr "Umutwe Bya ikiruhuko Urutonde" #: src/help.c:906 #, fuzzy msgid " Exclude title of eternal holiday list" msgstr "Umutwe Bya ikiruhuko Urutonde" #: src/help.c:918 #, fuzzy msgid " Provide eternal holiday list with astronomical data" msgstr "ikiruhuko Urutonde Na: Konji" #: src/help.c:930 #, fuzzy msgid " Provide eternal holiday list with Bahá'i calendar holidays" msgstr "ikiruhuko Urutonde Bisanzwe Konji" #: src/help.c:942 #, fuzzy msgid " Provide eternal holiday list with Bahá'i calendar months" msgstr "ikiruhuko Urutonde Bisanzwe Konji" #: src/help.c:954 #, fuzzy msgid " Provide eternal holiday list with Celtic calendar holidays" msgstr "ikiruhuko Urutonde Bisanzwe Konji" #: src/help.c:966 #, fuzzy msgid "" " Provide eternal holiday list with Chinese flexible calendar " "holidays" msgstr "ikiruhuko Urutonde Na: Konji" #: src/help.c:978 #, fuzzy msgid "" " Provide eternal holiday list with Chinese flexible calendar months" msgstr "ikiruhuko Urutonde Na: Konji" #: src/help.c:990 #, fuzzy msgid " Provide eternal holiday list with Chinese calendar holidays" msgstr "ikiruhuko Urutonde Na: Konji" #: src/help.c:1002 #, fuzzy msgid " Provide eternal holiday list with Chinese calendar months" msgstr "ikiruhuko Urutonde Na: Konji" #: src/help.c:1014 #, fuzzy msgid "" " Provide eternal holiday list with Christian Western calendar " "holidays" msgstr "ikiruhuko Urutonde Na: Konji" #: src/help.c:1026 #, fuzzy msgid " Provide eternal holiday list with Coptic calendar months" msgstr "ikiruhuko Urutonde Bisanzwe Konji" #: src/help.c:1038 #, fuzzy msgid " Provide eternal holiday list with Ethiopic calendar months" msgstr "ikiruhuko Urutonde Bisanzwe Konji" #: src/help.c:1050 #, fuzzy msgid "" " Provide eternal holiday list with French Revolutionary calendar " "months" msgstr "ikiruhuko Urutonde Bisanzwe Konji" #: src/help.c:1062 #, fuzzy msgid " Provide eternal holiday list with Hebrew calendar holidays" msgstr "ikiruhuko Urutonde Bisanzwe Konji" #: src/help.c:1074 #, fuzzy msgid " Provide eternal holiday list with Hebrew calendar months" msgstr "ikiruhuko Urutonde Bisanzwe Konji" #: src/help.c:1086 #, fuzzy msgid "" " Provide eternal holiday list with Indian civil-calendar months" msgstr "ikiruhuko Urutonde Na: Konji" #: src/help.c:1098 #, fuzzy msgid "" " Provide eternal holiday list with Islamic civil-calendar holidays" msgstr "ikiruhuko Urutonde Bisanzwe Konji" #: src/help.c:1110 #, fuzzy msgid "" " Provide eternal holiday list with Islamic civil-calendar months" msgstr "ikiruhuko Urutonde Bisanzwe Konji" #: src/help.c:1122 #, fuzzy msgid "" " Provide eternal holiday list with Japanese flexible calendar " "holidays" msgstr "ikiruhuko Urutonde Bisanzwe Konji" #: src/help.c:1134 #, fuzzy msgid "" " Provide eternal holiday list with Japanese flexible calendar months" msgstr "ikiruhuko Urutonde Bisanzwe Konji" #: src/help.c:1146 #, fuzzy msgid " Provide eternal holiday list with Japanese calendar holidays" msgstr "ikiruhuko Urutonde Bisanzwe Konji" #: src/help.c:1158 #, fuzzy msgid " Provide eternal holiday list with Japanese calendar months" msgstr "ikiruhuko Urutonde Bisanzwe Konji" #: src/help.c:1171 #, fuzzy msgid "" " Provide eternal holiday list with multicultural New Year holidays" msgstr "ikiruhuko Urutonde Bisanzwe Konji" #: src/help.c:1183 #, fuzzy msgid " Provide eternal holiday list with Old-Armenic calendar months" msgstr "ikiruhuko Urutonde Bisanzwe Konji" #: src/help.c:1195 #, fuzzy msgid " Provide eternal holiday list with Old-Egyptic calendar months" msgstr "ikiruhuko Urutonde Bisanzwe Konji" #: src/help.c:1207 #, fuzzy msgid "" " Provide eternal holiday list with Orthodox new-calendar holidays" msgstr "ikiruhuko Urutonde Bisanzwe Konji" #: src/help.c:1219 #, fuzzy msgid "" " Provide eternal holiday list with Orthodox old-calendar holidays" msgstr "ikiruhuko Urutonde Bisanzwe Konji" #: src/help.c:1231 #, fuzzy msgid "" " Provide eternal holiday list with Persian Jalaali-calendar holidays" msgstr "ikiruhuko Urutonde Bisanzwe Konji" #: src/help.c:1243 #, fuzzy msgid "" " Provide eternal holiday list with Persian Jalaali-calendar months" msgstr "ikiruhuko Urutonde Na: Konji" #: src/help.c:1255 #, fuzzy msgid " Provide eternal holiday list with zodiacal marker data" msgstr "ikiruhuko Urutonde Bisanzwe Konji" #: src/help.c:1267 #, fuzzy msgid " Provide eternal holiday list with country specific holidays" msgstr "ikiruhuko Urutonde Na: Igihugu Konji" #: src/help.c:1271 #, 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:1276 #, fuzzy, c-format msgid "" " which are connected by `%s' characters. Countries/territories," msgstr "ku Inyuguti" #: src/help.c:1281 msgid " marked by # have an incomplete recording of holidays" msgstr "" #: src/help.c:1285 #, fuzzy, c-format msgid " %-*s = Holidays in %s" msgstr "%s=%sKonji" #: src/help.c:1306 msgid "" " Set reference value for rise/set time respectively shadow length" msgstr "" #: src/help.c:1310 #, c-format msgid " %-3s = Angular value respectively factor in range: %+.1f...%+.1f" msgstr "" #: src/help.c:1321 #, fuzzy msgid " Set base data of Earth's atmosphere" msgstr "UMUNSI Bya Icyumweru" #: src/help.c:1325 #, fuzzy, c-format msgid " %-3s = Air pressure and temperature separated by `%s' character" msgstr "%-3s=ku Inyuguti" #: src/help.c:1328 #, c-format msgid " Air pressure in Millibar (actual: %.3f)" msgstr "" #: src/help.c:1333 #, c-format msgid " Air temperature in degrees Celsius (actual: %+.3f)" msgstr "" #: src/help.c:1343 #, fuzzy msgid " Limit rise/set times of Sun to the day" msgstr "1.." #: src/help.c:1355 msgid " Represent astronomical times and data with utmost precision" msgstr "" #: src/help.c:1365 #, fuzzy, c-format msgid " Execute `%c%c[%s]' shell commands" msgstr "#Gukora Igikonoshwa Amabwiriza" #: src/help.c:1368 #, c-format msgid " and \"TVAR[%s|%c%s]COMMAND\" assignments" msgstr "" #: src/help.c:1380 msgid " Change base time of astronomical functions" msgstr "" #: src/help.c:1383 msgid " respectively, change cycle-starting time" msgstr "" #: src/help.c:1393 #, 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:1401 #, 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:1417 msgid " Change cycle-ending time" msgstr "" #: src/help.c:1421 #, 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:1435 msgid " Change cycle-timestep" msgstr "" #: src/help.c:1439 #, c-format msgid " %-3s = MMMM|HH%s[MM] Timestep value (actual: %02d%s%02d)" msgstr "" #: src/help.c:1452 #, fuzzy msgid " Change base year of calendar" msgstr "Imiterere Bya Umwaka Kalindari" #: src/help.c:1456 #, c-format msgid " %-3s = [%s|%s]YYYY Year offset value (actual: %d)" msgstr "" #: src/help.c:1468 #, fuzzy msgid " Set period of Gregorian Reformation" msgstr "Igihe Bya" #: src/help.c:1470 #, fuzzy, c-format msgid " Actual respected period: %02d-%02d %s %0*d" msgstr "Igihe" #: src/help.c:1476 #, fuzzy, c-format msgid " %-*d%*s = Set period to: %02d-%02d %s %0*d" msgstr "%-*d%*s=Igihe Kuri" #: src/help.c:1484 #, 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:1498 #, 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:1501 #, fuzzy, c-format msgid " Actual: (%s) `%s' (%s)" msgstr "Imiterere" #: src/help.c:1503 msgid "self-defined" msgstr "" #: src/help.c:1508 #, fuzzy, c-format msgid " %-6s = Format is: `%s' (%s)" msgstr "%-6s=Imiterere Kuri" #: src/help.c:1516 #, fuzzy, c-format msgid " %-3s = Define individual format. Respected format elements are:" msgstr "%-3s=Bwite Imiterere Imiterere Ibintu" #: src/help.c:1559 msgid " Define translatable country specific special character pairs" msgstr "" #: src/help.c:1563 #, c-format msgid " %-3s = UPPER-CASE-LETTER\"\"LOWER-CASE-LETTER... definitions" msgstr "" #: src/help.c:1568 #, c-format msgid "" " E.g. a `%s%s%s%s%s%s%s%s' %-3s causes the correct conversion of" msgstr "" #: src/help.c:1573 msgid "" " the preceding special characters in an individual date format," msgstr "" #: src/help.c:1577 msgid "" " which has a STYLE format instruction component, and that, how" msgstr "" #: src/help.c:1581 #, fuzzy msgid " they are used by the character set used in Germany" msgstr "ku Inyuguti" #: src/help.c:1590 #, c-format msgid "+++ FIXED DATES +++" msgstr "" #: src/help.c:1611 #, fuzzy, c-format msgid " Use standard resource file `.%s%s' for fixed date list" msgstr "Bisanzwe IDOSIYE kugirango BIHAMYE Itariki Urutonde" #: src/help.c:1616 #, fuzzy, c-format msgid " Use standard resource file `%s%s' for fixed date list" msgstr "Bisanzwe IDOSIYE kugirango BIHAMYE Itariki Urutonde" #: src/help.c:1620 src/help.c:2160 #, fuzzy msgid " Implies period: Today" msgstr "Igihe" #: src/help.c:1624 #, fuzzy msgid " c = Display only those dates, for which fixed dates exists" msgstr "C Amatariki kugirango BIHAMYE Amatariki" #: src/help.c:1628 #, fuzzy msgid "" " C = Display those dates, for which fixed dates doesn't exist, too" msgstr "C Amatariki kugirango BIHAMYE Amatariki" #: src/help.c:1640 #, 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:1653 #, fuzzy, c-format msgid " %-3s = Heading/Title text used for fixed date list" msgstr "#X Umutwe Bya BIHAMYE Itariki Urutonde" #: src/help.c:1656 #, fuzzy, c-format msgid " Actual: `%s'" msgstr "9 UMUNSIICYUMWERU" #: src/help.c:1669 #, fuzzy msgid " # g[MOD] = Group fixed dates by day using text MOD" msgstr "#g BIHAMYE Amatariki ku UMUNSI ikoresha Umwandiko" #: src/help.c:1681 #, fuzzy msgid " 1. Representation of text" msgstr "1.." #: src/help.c:1693 #, fuzzy msgid " = Set width of the biorhythm text graphics" msgstr "=Ubugari Bya i Umwandiko Ibishushanyo" #: src/help.c:1697 #, fuzzy, c-format msgid " %-3s = %d...%d Length of a single axis" msgstr "%-3s=%d...%dBya a UMWE Umurongo fatizo" #: src/help.c:1710 #, fuzzy msgid " = Set height of the Moon phase text graphics" msgstr "=Ubuhagarike Bya i Umwandiko Ibishushanyo" #: src/help.c:1714 #, fuzzy, c-format msgid " %-3s = %d...%d Total number of lines" msgstr "%-3s=%d...%dUmubare Bya Imirongo" #: src/help.c:1726 #, fuzzy msgid " # a = Display origin of fixed date" msgstr "#a Inkomoko Bya BIHAMYE Itariki" #: src/help.c:1738 #, fuzzy msgid " # A = Display using alternative list format" msgstr "#A ikoresha Urutonde Imiterere" #: src/help.c:1750 #, fuzzy msgid " # e = Include legal days and memorial days" msgstr "#E By'amategeko Iminsi Na Iminsi" #: src/help.c:1752 #, fuzzy msgid " # E = Include legal days only" msgstr "#E By'amategeko Iminsi" #: src/help.c:1762 #, fuzzy msgid " # k = Display week number" msgstr "#K Icyumweru Umubare" #: src/help.c:1774 #, fuzzy msgid " # o = Omit repeating date part of fixed dates" msgstr "#o Itariki Bya BIHAMYE Amatariki" #: src/help.c:1786 #, fuzzy msgid "" " # Q = Suppress leading blank line of fixed dates list" msgstr "#U Itariki Bya BIHAMYE Amatariki" #: src/help.c:1798 #, fuzzy msgid " # U = Suppress date part of fixed dates" msgstr "#U Itariki Bya BIHAMYE Amatariki" #: src/help.c:1810 #, fuzzy msgid " # J = Suppress text part of fixed dates" msgstr "#U Itariki Bya BIHAMYE Amatariki" #: src/help.c:1822 #, fuzzy msgid " # x = Exclude title of fixed date list" msgstr "#X Umutwe Bya BIHAMYE Itariki Urutonde" #: src/help.c:1834 #, fuzzy msgid " # z = Display consecutive number of fixed date" msgstr "#Z Umubare Bya BIHAMYE Itariki" #: src/help.c:1846 #, fuzzy msgid "" " # Z = Display dates, for which fixed dates doesn't exist" msgstr "#Amatariki kugirango BIHAMYE Amatariki" #: src/help.c:1854 #, fuzzy msgid " 2. Respected period" msgstr "2.." #: src/help.c:1866 #, fuzzy msgid " = Manage `29-FEBRUARY' in non-leap years" msgstr "=in IMYAKA" #: src/help.c:1874 #, fuzzy, c-format msgid " %-3s = february Respect at `28-FEBRUARY'" msgstr "%-3s=Gashyantare ku" #: src/help.c:1883 #, fuzzy, c-format msgid " %-3s = march Respect at `01-MARCH'" msgstr "%-3s=Werurwe ku 01" #: src/help.c:1896 #, fuzzy msgid "" " # d = Include actual date if list of periods is " "generated" msgstr "#D Itariki NIBA Urutonde Bya ni" #: src/help.c:1908 #, fuzzy msgid "" " # l = Generate list of periods instead of a single " "period" msgstr "#L Urutonde Bya Bya a UMWE Igihe" #: src/help.c:1924 #, fuzzy msgid " # Nd = Single absolute day N" msgstr "#UMUNSI" #: src/help.c:1926 #, fuzzy, c-format msgid " # %cdN = Single absolute day N" msgstr "#%cdN=UMUNSI" #: src/help.c:1931 #, fuzzy msgid " # NMOD = Single day N relative to today" msgstr "#UMUNSI Bifitanye isano Kuri UYUMUNSI" #: src/help.c:1933 #, c-format msgid " MOD = %s Forwards" msgstr "" #: src/help.c:1935 #, c-format msgid " = %s Backwards" msgstr "" #: src/help.c:1938 #, fuzzy msgid " # Nw = Complete week N" msgstr "#Icyumweru" #: src/help.c:1942 #, fuzzy msgid "" " N = 0 1st week / last week of previous year" msgstr "0 Icyumweru Iheruka Icyumweru Bya Ibanjirije Umwaka" #: src/help.c:1946 #, fuzzy msgid " N = 1...52 1st...52nd week (always)" msgstr "1. Icyumweru Buri gihe" #: src/help.c:1950 #, fuzzy msgid " N = 53 53rd week (sometimes)" msgstr "Icyumweru" #: src/help.c:1952 #, fuzzy msgid " N = 99 Last week" msgstr "Icyumweru" #: src/help.c:1955 #, fuzzy, c-format msgid " # %s%s = Single day %s of month %s" msgstr "#`%s%s'=UMUNSI Bya Ukwezi" #: src/help.c:1961 #, fuzzy, c-format msgid " # %s%sN = Single N'th weekday %s of month %s" msgstr "#`%s%s'UMUNSIICYUMWERU Bya Ukwezi" #: src/help.c:1966 #, fuzzy, c-format msgid " N = 1...4 1st...4th weekday %s (always)" msgstr "1. 4. UMUNSIICYUMWERU Buri gihe" #: src/help.c:1971 #, fuzzy, c-format msgid " N = 5 5th weekday %s (sometimes)" msgstr "5 UMUNSIICYUMWERU" #: src/help.c:1975 #, fuzzy, c-format msgid " N = 9 Last weekday %s" msgstr "9 UMUNSIICYUMWERU" #: src/help.c:1979 #, fuzzy, c-format msgid " # %cdN%s = Single N'th weekday %s" msgstr "#%cdN`%s'=UMUNSIICYUMWERU" #: src/help.c:1984 #, fuzzy, c-format msgid " N = 1...51 1st...51st weekday %s (always)" msgstr "1. UMUNSIICYUMWERU Buri gihe" #: src/help.c:1989 #, fuzzy, c-format msgid " N = 52|53 52|53rd weekday %s (sometimes)" msgstr "UMUNSIICYUMWERU" #: src/help.c:1993 #, fuzzy, c-format msgid " N = 99 Last weekday %s" msgstr "UMUNSIICYUMWERU" #: src/help.c:1998 #, fuzzy, c-format msgid " # %cwN%s = Single weekday %s of N'th week" msgstr "#%cwN`%s'=UMUNSIICYUMWERU Bya Icyumweru" #: src/help.c:2003 #, fuzzy, c-format msgid "" " N = 0 %s which isn't located in 1st week" msgstr "0 si in Icyumweru" #: src/help.c:2008 #, fuzzy, c-format msgid " N = 1...51 %s of 1st...51st week (always)" msgstr "1. Bya Icyumweru Buri gihe" #: src/help.c:2013 #, fuzzy, c-format msgid " N = 52|53 %s of 52|53rd week (sometimes)" msgstr "Bya Icyumweru" #: src/help.c:2017 #, fuzzy, c-format msgid " N = 99 %s of last week" msgstr "Bya Iheruka Icyumweru" #: src/help.c:2023 #, 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:2029 #, 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:2035 #, 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:2041 #, 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:2047 #, 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:2053 #, 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:2061 #, fuzzy msgid " # t|T = List tomorrow" msgstr "#T" #: src/help.c:2078 #, fuzzy msgid " # w|W[MOD] = List complete week" msgstr "#W Byuzuye Icyumweru" #: src/help.c:2082 #, fuzzy, c-format msgid "" " [MOD] = %s List tomorrow until ending day of week" msgstr "[UMUNSI Bya Icyumweru" #: src/help.c:2087 #, fuzzy, c-format msgid "" " = %s List yesterday until starting day of week" msgstr "=%sEjo UMUNSI Bya Icyumweru" #: src/help.c:2107 #, fuzzy msgid " # m|M[MOD] = List complete month" msgstr "#M Byuzuye Ukwezi" #: src/help.c:2111 #, fuzzy, c-format msgid "" " [MOD] = %s List tomorrow until ending day of month" msgstr "[UMUNSI Bya Ukwezi" #: src/help.c:2116 #, fuzzy, c-format msgid "" " = %s List yesterday until starting day of month" msgstr "=%sEjo UMUNSI Bya Ukwezi" #: src/help.c:2136 #, fuzzy msgid " # y|Y[MOD] = List complete year" msgstr "#Y Byuzuye Umwaka" #: src/help.c:2140 #, fuzzy, c-format msgid "" " [MOD] = %s List tomorrow until ending day of year" msgstr "[UMUNSI Bya Umwaka" #: src/help.c:2145 #, fuzzy, c-format msgid "" " = %s List yesterday until starting day of year" msgstr "=%sEjo UMUNSI Bya Umwaka" #: src/help.c:2158 #, fuzzy msgid " Use alternative file(s) instead of standard resource file" msgstr "IDOSIYE S Bya Bisanzwe IDOSIYE" #: src/help.c:2164 #, fuzzy msgid " f = Display only those dates, for which fixed dates exists" msgstr "F Amatariki kugirango BIHAMYE Amatariki" #: src/help.c:2168 #, fuzzy msgid "" " F = Display those dates, for which fixed dates doesn't exist, too" msgstr "Amatariki kugirango BIHAMYE Amatariki" #: src/help.c:2172 #, 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:2183 #, fuzzy msgid " Define additional resource file line" msgstr "IDOSIYE Umurongo" #: src/help.c:2185 #, 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:2195 #, fuzzy, c-format msgid "%cDATE" msgstr "%cDATE" #: src/help.c:2197 #, fuzzy msgid "Use given `DATE' instead of today's date" msgstr "Bya Itariki" #: src/help.c:2201 #, 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:2208 #, 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:2217 #, fuzzy, c-format msgid "%cFILE" msgstr "%cFILE" #: src/help.c:2219 #, 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:2223 #, fuzzy msgid "COMMAND" msgstr "Icyo wifuza" #: src/help.c:2225 #, fuzzy, c-format msgid "%s = Month in range: %d...%d" msgstr "%s=in Urutonde" #: src/help.c:2230 #, 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:2235 #, 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:2241 #, 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:2247 #, 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:2251 #, 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:2256 #, fuzzy, c-format msgid " Range: [%s%s]%s%s[%s%s]%s | %s%s%s %s%s%s" msgstr "Urutonde" #: src/help.c:2282 #, fuzzy, c-format msgid " %sh, %s Display this help text and quit program" msgstr "Ifashayobora Umwandiko Na Kuvamo Porogaramu" #: src/help.c:2285 #, fuzzy, c-format msgid " %shh, %s Display extended help text and quit program" msgstr "Byongerewe... Ifashayobora Umwandiko Na Kuvamo Porogaramu" #: src/help.c:2289 #, fuzzy, c-format msgid " %sL, %s Display software license and quit program" msgstr "Na Kuvamo Porogaramu" #: src/help.c:2293 #, fuzzy, c-format msgid " %sV, %s Display version information and quit program" msgstr "Verisiyo Umubare Na Kuvamo Porogaramu" #: src/help.c:2301 #, fuzzy, c-format msgid " %sp, %s Direct output through external `%s' pager" msgstr "Ibisohoka Gihinguranya external Peja" #: src/help.c:2308 src/help.c:2313 #, fuzzy, c-format msgid " %sp, %s Direct output through simple internal pager" msgstr "Ibisohoka Gihinguranya Byoroheje By'imbere Peja" #: src/help.c:2338 #, fuzzy msgid "This software doesn't claim completeness, correctness or usability." msgstr "Cyangwa" #: src/help.c:2342 #, fuzzy msgid "On principle I will not be liable for ANY damages or losses (implicit" msgstr "OYA kugirango Cyangwa" #: src/help.c:2346 #, fuzzy msgid "or explicit), which result from using or handling my software." msgstr "Cyangwa Igisubizo Bivuye ikoresha Cyangwa" #: src/help.c:2350 #, fuzzy msgid "If you use this software, you agree without any exception to this" msgstr "Gukoresha iyi Irengayobora(-) Kuri iyi" #: src/help.c:2352 msgid "agreement, which binds you LEGALLY !!" msgstr "" #: src/help.c:2357 #, fuzzy msgid "This program is free software; you can redistribute it and/or modify" msgstr "Porogaramu ni Kigenga Na Cyangwa Guhindura" #: src/help.c:2361 #, fuzzy msgid "it under the terms of the `GNU General Public License' as published by" msgstr "i Bya i Nka ku" #: src/help.c:2365 #, fuzzy msgid "the `Free Software Foundation'; either version 3, or (at your option)" msgstr "i Verisiyo 2. Cyangwa ku Ihitamo" #: src/help.c:2367 #, fuzzy msgid "any later version." msgstr "Verisiyo" #: src/help.c:2372 #, fuzzy msgid "You should have received a copy of the `GNU General Public License'" msgstr "BYAKIRIWE a Gukoporora Bya i" #: src/help.c:2374 #, fuzzy msgid "along with this program; if not, write to the:" msgstr "Na: iyi Porogaramu NIBA OYA Kwandika Kuri i" #: src/help.c:2423 #, 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:2451 #, fuzzy, c-format msgid "Use `%s %s|[%s?]" msgstr "Cyangwa" #: src/help.c:2460 #, 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:2564 src/tcal.c:197 src/txt2gcal.c:136 src/gcal2txt.c:136 #, fuzzy, c-format msgid "Email bug reports to <%s>" msgstr "Raporo Kuri" #: src/help.c:2566 #, c-format msgid "GNU gcal home page: <%s>" msgstr "" #: src/help.c:2568 #, c-format msgid "General help using GNU software: <%s>" msgstr "" #: src/help.c:2594 src/tcal.c:219 src/txt2gcal.c:158 src/gcal2txt.c:158 #, fuzzy, c-format msgid "This is free software; see the source for copying conditions." msgstr "ni Kigenga i Inkomoko kugirango" #: src/help.c:2598 src/tcal.c:222 src/txt2gcal.c:161 src/gcal2txt.c:161 #, fuzzy, c-format msgid "There is NO warranty, without even the implied warranty of" msgstr "ni ATARIIGIHARWE i Bya" #: src/help.c:2600 src/tcal.c:224 src/txt2gcal.c:163 src/gcal2txt.c:163 #, fuzzy, c-format msgid "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." msgstr "Cyangwa A" #: src/help.c:2616 #, fuzzy, c-format msgid "%s: The Gregorian calendar program (GNU cal) %s" msgstr ":%*sKalindari Porogaramu" #: src/help.c:2624 #, c-format msgid "Usage: %s [[OPTION...] [%cDATE] [%cFILE...]] [COMMAND]" msgstr "" #: src/help.c:2627 #, c-format msgid "Usage: %s [[OPTION...] [%cFILE...]] [COMMAND]" msgstr "" #: src/help.c:2703 src/help.c:2849 #, fuzzy msgid " 4.0 or 4.02" msgstr "4.." #: src/help.c:2711 src/help.c:2857 #, fuzzy msgid " later than 5.0" msgstr "5 0" #: src/help.c:2722 src/help.c:2864 #, fuzzy msgid "++ 3.0 or later" msgstr "++3.." #: src/help.c:2749 src/help.c:2970 #, fuzzy msgid "5.1 or earlier" msgstr "5." #: src/help.c:2752 src/help.c:2973 src/help.c:3128 src/help.c:3198 #, 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:2787 src/help.c:2876 src/help.c:3010 src/help.c:3032 #: src/help.c:3101 src/help.c:3138 src/help.c:3156 src/help.c:3213 #: src/help.c:3428 #, fuzzy msgid " on " msgstr "ku" #: src/help.c:2826 #, fuzzy msgid "(bad version)" msgstr "(Verisiyo" #: src/help.c:2873 #, fuzzy msgid "unknown compiler (SDK?)" msgstr "Kitazwi" #: src/help.c:2941 #, fuzzy msgid " later than 4.5" msgstr "4. 5" #: src/help.c:2951 #, fuzzy msgid "++ 1.0 or later" msgstr "++1.." #: src/help.c:2959 #, fuzzy msgid " 1.0 or 1.5?" msgstr "1.. 5." # filter/source\xsltdialog\xmlfilterdialogstrings.src:STR_UNKNOWN_APPLICATION.text #: src/help.c:3074 #, fuzzy msgid "unknown " msgstr "Kitazwi" # goodies/source\filter.vcl\eps\dlgeps.src:DLG_EXPORT_EPS.GRP_VERSION.text #: src/help.c:3086 #, fuzzy, c-format msgid "version %d.%d" msgstr "Verisiyo" # sfx2/source\dialog\filedlghelper.src:STR_LB_VERSION.text #: src/help.c:3089 src/help.c:3122 src/help.c:3248 #, fuzzy, c-format msgid "version %d" msgstr "Uburyo:" #: src/help.c:3091 #, fuzzy, c-format msgid "unknown version" msgstr "Kitazwi Verisiyo" #: src/help.c:3205 #, 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:3208 #, 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:3359 #, fuzzy msgid " (NetBSD before 0.9)" msgstr "(Mbere 0 9" #: src/help.c:3359 #, fuzzy msgid " (NetBSD 1.2 or later)" msgstr "(1. 2. Cyangwa" #: src/help.c:3366 #, fuzzy msgid " (FreeBSD 2.0 or later)" msgstr "(2. 0 Cyangwa" #: src/help.c:3369 #, fuzzy msgid " (BSD/386 1.1 or later)" msgstr "(1. 1. Cyangwa" #: src/print.c:544 src/print.c:978 src/print.c:1033 msgid "CW" msgstr "" #: src/print.c:565 msgid "Week" msgstr "Icyumweru" #: src/rc-insert.c:1706 src/rc-insert.c:2824 msgid "pm" msgstr "" #: src/rc-insert.c:1715 src/rc-insert.c:2833 msgid "am" msgstr "" #: src/rc-insert.c:2018 src/rc-insert.c:2028 msgid "d'\"" msgstr "" #: src/rc-insert.c:2038 msgid "h'\"" msgstr "" #: src/rc-insert.c:3728 src/rc-utils.c:2585 #, fuzzy, c-format msgid "" "Cannot execute command in file `%s'\n" "Line: %ld %s" msgstr "Gukora Komandi: in IDOSIYE" #: src/rc-insert.c:3750 src/rc-utils.c:2609 #, 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:513 msgid "Emo" msgstr "" # sc/source\core\src\compiler.src:RID_SC_FUNCTION_NAMES.SC_OPCODE_INT.text #: src/rc-use.c:518 #, fuzzy msgid "Int" msgstr "INT" #: src/rc-use.c:523 msgid "Phy" msgstr "" #: src/rc-use.c:1086 src/rc-use.c:1177 #, fuzzy msgid "`Eternal holiday list'" msgstr "`ikiruhuko" #: src/rc-use.c:1877 src/rc-use.c:1926 src/rc-use.c:2015 src/rc-use.c:2107 msgid "`Internal'" msgstr "" #: src/rc-use.c:2339 #, c-format msgid " ; Week %s" msgstr "" # svtools/source\control\calendar.src:STR_SVT_CALENDAR_WEEK.text #: src/rc-use.c:2348 #, fuzzy, c-format msgid "Week %s" msgstr "Icyumweru" #: src/rc-utils.c:397 src/rc-utils.c:414 #, fuzzy, c-format msgid "" "%s: invalid date given -- %s\n" "%s\n" "%s\n" msgstr "%s:Sibyo Itariki" #: src/rc-utils.c:3269 #, 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:3272 src/rc-utils.c:3686 #, fuzzy, c-format msgid "Line %ld: %s" msgstr "Umurongo" #: src/rc-utils.c:3633 src/utils.c:274 #, fuzzy, c-format msgid "%s: abort, " msgstr "%s:Kureka" #: src/rc-utils.c:3641 #, fuzzy, c-format msgid "illegal variable definition in file `%s'" msgstr "Umwandiko IMPINDURAGACIRO Insobanuro in IDOSIYE" #: src/rc-utils.c:3643 #, c-format msgid "illegal definition of variable `%c'" msgstr "" #: src/rc-utils.c:3650 #, fuzzy, c-format msgid "illegal variable operation in file `%s'" msgstr "Itariki IMPINDURAGACIRO in IDOSIYE" #: src/rc-utils.c:3652 #, c-format msgid "illegal operation on variable `%c'" msgstr "" #: src/rc-utils.c:3658 #, fuzzy, c-format msgid "variable `%c' undefined in file `%s'" msgstr "IMPINDURAGACIRO kidasobanuye in IDOSIYE" #: src/rc-utils.c:3662 #, fuzzy, c-format msgid "invalid value assigned to variable `%c' in file `%s'" msgstr "Itariki Agaciro IMPINDURAGACIRO in IDOSIYE" #: src/rc-utils.c:3683 #, fuzzy, c-format msgid "Invalid argument in command line given -- %s" msgstr "%-3s=ingingo Bya Komandi: Umurongo in IDOSIYE" #: src/rc-utils.c:3695 #, fuzzy, c-format msgid "Argument `%s' of command line ignored." msgstr "Bya Komandi: Umurongo" #: src/rc-utils.c:3698 #, c-format msgid "Line %ld ignored: %s" msgstr "" #: src/tty.c:424 #, fuzzy, c-format msgid "%s: for more, <%s> to quit..." msgstr " failed" msgstr "Kuri Byanze" #: src/utils.c:334 src/utils.c:352 #, fuzzy, c-format msgid "" "\n" "`%s' line %ld: " msgstr "`%s'Umurongo" #: src/utils.c:341 #, fuzzy, c-format msgid "`%s' line %ld: (`%s') `%s%d' failed" msgstr "`%s'Umurongo Byanze" #: src/utils.c:350 #, fuzzy, c-format msgid "read error in file `%s'" msgstr "Gusoma Ikosa in IDOSIYE" #: src/utils.c:358 #, fuzzy, c-format msgid "" "illegal character in response file `%s'\n" "Line %ld: %s" msgstr "Inyuguti in IDOSIYE" #: src/utils.c:364 src/tcal.c:330 src/txt2gcal.c:269 src/gcal2txt.c:269 #, 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:369 #, fuzzy, c-format msgid "(`%s') date format `%s' is invalid" msgstr "(`%s')Itariki Imiterere ni Sibyo" #: src/utils.c:375 #, fuzzy, c-format msgid "%s in search pattern `%s'" msgstr "%sin Gushaka Ishusho" #: src/utils.c:378 #, fuzzy, c-format msgid "invalid search pattern `%s' specified" msgstr "Sibyo Gushaka Ishusho" #: src/utils.c:383 src/tcal.c:338 src/txt2gcal.c:274 src/gcal2txt.c:274 #, fuzzy, c-format msgid "`%s' line %ld: (`%s') unmanaged error (%d)" msgstr "`%s'Umurongo Ikosa" #: src/utils.c:403 src/tcal.c:358 src/txt2gcal.c:294 src/gcal2txt.c:294 #, fuzzy, c-format msgid "" "\n" "%s: program aborted by signal %d\n" msgstr "%s:Porogaramu ku" #: src/utils.c:1080 msgid "th" msgstr "" #: src/utils.c:1084 #, fuzzy msgid "st" msgstr "ST" #: src/utils.c:1088 msgid "nd" msgstr "" #: src/utils.c:1092 msgid "rd" msgstr "" #: src/utils.c:1123 src/utils.c:1174 src/utils.c:1225 #, fuzzy msgid "invalid day" msgstr "Sibyo UMUNSI" #: src/utils.c:1128 msgid "Mon" msgstr "" #: src/utils.c:1133 msgid "Tue" msgstr "" #: src/utils.c:1138 msgid "Wed" msgstr "" #: src/utils.c:1143 msgid "Thu" msgstr "" #: src/utils.c:1148 msgid "Fri" msgstr "" #: src/utils.c:1153 msgid "Sat" msgstr "" #: src/utils.c:1158 msgid "Sun" msgstr "Izuba" #: src/utils.c:1179 #, fuzzy msgid "Mo" msgstr "ukwezi" #: src/utils.c:1184 msgid "Tu" msgstr "" #: src/utils.c:1189 msgid "We" msgstr "Twebwe" #: src/utils.c:1194 msgid "Th" msgstr "" #: src/utils.c:1199 msgid "Fr" msgstr "" #: src/utils.c:1204 msgid "Sa" msgstr "" #: src/utils.c:1209 msgid "Su" msgstr "" #: src/utils.c:1226 msgid "Monday" msgstr "" #: src/utils.c:1226 msgid "Tuesday" msgstr "" #: src/utils.c:1226 msgid "Wednesday" msgstr "" #: src/utils.c:1226 msgid "Thursday" msgstr "" #: src/utils.c:1227 msgid "Friday" msgstr "" #: src/utils.c:1227 msgid "Saturday" msgstr "" #: src/utils.c:1227 msgid "Sunday" msgstr "" #: src/utils.c:1243 src/utils.c:1320 #, fuzzy msgid "invalid month" msgstr "Sibyo Ukwezi" #: src/utils.c:1248 msgid "Jan" msgstr "Mutarama" #: src/utils.c:1253 msgid "Feb" msgstr "Gashyantare" #: src/utils.c:1258 msgid "Mar" msgstr "Werurwe" #: src/utils.c:1263 msgid "Apr" msgstr "Mat" #: src/utils.c:1268 msgid "May" msgstr "Gicurasi" #: src/utils.c:1273 msgid "Jun" msgstr "Kam" #: src/utils.c:1278 msgid "Jul" msgstr "Nyak. (anga)" #: src/utils.c:1283 msgid "Aug" msgstr "kan." #: src/utils.c:1288 msgid "Sep" msgstr "Itandukanya" #: src/utils.c:1293 msgid "Oct" msgstr "ukw." #: src/utils.c:1298 msgid "Nov" msgstr "ugushyingo" #: src/utils.c:1303 msgid "Dec" msgstr "Ukub. (Ukuboza)" #: src/utils.c:1321 msgid "January" msgstr "Mutarama" #: src/utils.c:1321 msgid "February" msgstr "Gashyantare" #: src/utils.c:1322 msgid "March" msgstr "Werurwe" #: src/utils.c:1322 msgid "April" msgstr "Mata" #: src/utils.c:1332 msgid "May " msgstr "" #: src/utils.c:1333 msgid "June" msgstr "Kamena" #: src/utils.c:1333 msgid "July" msgstr "Nyakanga" #: src/utils.c:1334 msgid "August" msgstr "Kanama" #: src/utils.c:1334 msgid "September" msgstr "Nzeri" #: src/utils.c:1335 msgid "October" msgstr "Ukwakira" #: src/utils.c:1335 msgid "November" msgstr "Ugushyingo" #: src/utils.c:1335 msgid "December" msgstr "Ukuboza" #: src/tcal.c:191 #, fuzzy, c-format msgid "Usage: %s [--%s | --%s] | [--%s=[+|-]NUMBER] [ARGUMENT...]\n" msgstr "Ifashayobora Verisiyo Gusunika" #: src/tcal.c:320 src/txt2gcal.c:259 src/gcal2txt.c:259 #, fuzzy, c-format msgid "" "\n" "%s: abort, " msgstr "%s:Kureka" #: src/tcal.c:335 #, fuzzy, c-format msgid "shift value `%s' is invalid" msgstr "Gusunika Agaciro ni Sibyo" #: src/tcal.c:907 #, fuzzy, c-format msgid "%s: option `--%s' requires an argument" msgstr "%s:Ihitamo" #: src/tcal.c:1071 #, fuzzy, c-format msgid "%s: error during program execution of `%s'\n" msgstr "%s:Ikosa Porogaramu Bya" #: src/txt2gcal.c:131 #, fuzzy, c-format msgid "Usage: %s [--%s | --%s] | [TEXT-FILE | -] [DATE-PART]\n" msgstr "Ifashayobora Verisiyo" #: src/txt2gcal.c:755 src/gcal2txt.c:754 #, fuzzy, c-format msgid "%s: no regular file\n" msgstr "%s:Oya Ibisanzwe" #: src/txt2gcal.c:760 src/gcal2txt.c:759 #, fuzzy, c-format msgid "%s: file not found\n" msgstr "%s:IDOSIYE OYA" #: src/gcal2txt.c:131 #, 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" # #-#-#-#-# 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 #, fuzzy #~ msgid "invalid [] range" #~ msgstr "Igice kitaricyo" #, 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-3.6.3/po/en@quot.header0000644000175000017500000000226312125375415012565 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-3.6.3/po/gcal.pot0000644000175000017500000030017412125376133011432 00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR Free Software Foundation, Inc. # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # #, fuzzy msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: bug-gcal@gnu.org\n" "POT-Creation-Date: 2013-03-29 21:40+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" #: src/file-io.c:1561 #, c-format msgid "Try to write %s `%s'... %s%s%s" msgstr "" #: src/file-io.c:1564 src/file-io.c:1689 src/file-io.c:1702 msgid "failed" msgstr "" #: src/file-io.c:1564 src/file-io.c:1689 src/file-io.c:1702 msgid "success" msgstr "" #: src/file-io.c:1684 #, c-format msgid "Try to open%sresource file `%s'... %s%s%s" msgstr "" #: src/file-io.c:1685 msgid " `HERE' " msgstr "" #: src/file-io.c:1697 #, c-format msgid "Try to open (level: %02d) include file `%s'... %s%s%s" msgstr "" #: src/gcal.c:352 src/gcal.c:523 src/gcal.c:2028 msgid "ARG" msgstr "" #: src/gcal.c:1080 src/hd-data.c:69 msgid "Germany" msgstr "" #: src/gcal.c:1081 msgid "U.S.A." msgstr "" #: src/gcal.c:1082 src/hd-data.c:72 msgid "Great Britain" msgstr "" #: src/gcal.c:1858 msgid "default" msgstr "" #: src/gcal.c:1957 msgid ":" msgstr "" #: src/gcal.c:1967 msgid "Y" msgstr "" #: src/gcal.c:1972 msgid "M" msgstr "" #: src/gcal.c:1977 msgid "W" msgstr "" #: src/gcal.c:1982 msgid "D" msgstr "" #: src/gcal.c:2073 msgid "Fixed date list:" msgstr "" #: src/gcal.c:2090 src/gcal.c:2105 msgid "environment variable" msgstr "" #: src/gcal.c:2274 #, c-format msgid "" "%s: command in environment variable `%s' found -- %s\n" "%s\n" "%s\n" msgstr "" #: src/gcal.c:2461 src/gcal.c:2489 src/gcal.c:6232 src/rc-use.c:1828 #: src/rc-use.c:1888 src/rc-use.c:1937 src/rc-use.c:2207 src/rc-utils.c:390 #: src/rc-utils.c:411 src/utils.c:342 src/utils.c:365 src/utils.c:384 #: src/utils.c:679 src/tcal.c:331 src/tcal.c:339 src/txt2gcal.c:270 #: src/txt2gcal.c:275 src/gcal2txt.c:270 src/gcal2txt.c:275 msgid "Internal" msgstr "" #: src/gcal.c:2870 msgid "response file" msgstr "" #: src/gcal.c:2870 src/gcal.c:2878 msgid "Created" msgstr "" #: src/gcal.c:2878 msgid "shell script" msgstr "" #: src/gcal.c:3089 #, c-format msgid "Mail from \\`%s' (%02d-%s-%04d %02d%s%02d%s%02d" msgstr "" #: src/gcal.c:3141 #, c-format msgid "%s: warning, eMail with empty message body not sent to <%s>.\n" msgstr "" #: src/gcal.c:4951 src/gcal.c:4984 msgid "command line" msgstr "" #: src/gcal.c:5901 #, c-format msgid "%s: option `%s' is ambiguous" msgstr "" #: src/gcal.c:5906 src/tcal.c:895 src/txt2gcal.c:716 src/gcal2txt.c:715 #, c-format msgid "%s: unrecognized option `%s'" msgstr "" #: src/gcal.c:5909 #, c-format msgid "%s: invalid option -- %s" msgstr "" #: src/gcal.c:5916 #, c-format msgid "%s: option `--%s' doesn't allow an argument" msgstr "" #: src/gcal.c:5921 #, c-format msgid "%s: option `%s' doesn't allow an argument" msgstr "" #: src/gcal.c:5927 #, c-format msgid "%s: option `%s' requires an argument" msgstr "" #: src/gcal.c:5931 #, c-format msgid "%s: option requires an argument -- %s" msgstr "" #: src/gcal.c:5936 src/tcal.c:941 #, c-format msgid "%s: option with invalid argument -- %s" msgstr "" #: src/gcal.c:5941 #, c-format msgid "%s: option with ambiguous argument -- %s" msgstr "" #: src/gcal.c:6001 #, c-format msgid "" "%s: invalid date given -- %c%s\n" "%s\n" "%s\n" msgstr "" #: src/hd-data.c:63 msgid "Australia" msgstr "" #: src/hd-data.c:64 src/hd-data.c:112 msgid "Belgium" msgstr "" #: src/hd-data.c:65 src/hd-data.c:121 msgid "Brazil" msgstr "" #: src/hd-data.c:66 msgid "Canada" msgstr "" #: src/hd-data.c:67 msgid "Switzerland" msgstr "" #: src/hd-data.c:68 src/hd-data.c:174 msgid "China" msgstr "" #: src/hd-data.c:70 src/hd-data.c:208 msgid "Spain" msgstr "" #: src/hd-data.c:71 src/hd-data.c:215 msgid "France" msgstr "" #: src/hd-data.c:73 src/hd-data.c:244 msgid "Israel" msgstr "" #: src/hd-data.c:74 src/hd-data.c:249 msgid "Italy" msgstr "" #: src/hd-data.c:75 src/hd-data.c:252 msgid "Japan" msgstr "" #: src/hd-data.c:76 src/hd-data.c:260 msgid "Republic of Korea" msgstr "" #: src/hd-data.c:77 src/hd-data.c:292 msgid "Mexico" msgstr "" #: src/hd-data.c:78 src/hd-data.c:301 msgid "Netherlands" msgstr "" #: src/hd-data.c:79 src/hd-data.c:307 msgid "New Zealand" msgstr "" #: src/hd-data.c:80 src/hd-data.c:319 msgid "Portugal" msgstr "" #: src/hd-data.c:81 src/hd-data.c:325 msgid "Russian Federation" msgstr "" #: src/hd-data.c:82 msgid "United States" msgstr "" #: src/hd-data.c:84 msgid "Andorra" msgstr "" #: src/hd-data.c:85 msgid "United Arab Emirates" msgstr "" #: src/hd-data.c:86 msgid "Afghanistan" msgstr "" #: src/hd-data.c:87 msgid "Antigua and Barbuda" msgstr "" #: src/hd-data.c:88 msgid "Anguilla" msgstr "" #: src/hd-data.c:89 msgid "Albania" msgstr "" #: src/hd-data.c:90 msgid "Armenia" msgstr "" #: src/hd-data.c:91 msgid "Netherlands Antilles/Bonaire" msgstr "" #: src/hd-data.c:92 msgid "Netherlands Antilles/Curaçao" msgstr "" #: src/hd-data.c:93 msgid "Netherlands Antilles/St Maarten" msgstr "" #: src/hd-data.c:94 msgid "Netherlands Antilles/Saba and Statia" msgstr "" #: src/hd-data.c:95 msgid "Angola #" msgstr "" #: src/hd-data.c:96 msgid "Argentina" msgstr "" #: src/hd-data.c:97 msgid "American Samoa" msgstr "" #: src/hd-data.c:98 msgid "Austria" msgstr "" #: src/hd-data.c:99 msgid "Australia/Canberra" msgstr "" #: src/hd-data.c:100 msgid "Australia/Northern Territory" msgstr "" #: src/hd-data.c:101 msgid "Australia/Queensland" msgstr "" #: src/hd-data.c:102 msgid "Australia/Southern Australia" msgstr "" #: src/hd-data.c:103 msgid "Australia/New South Wales" msgstr "" #: src/hd-data.c:104 msgid "Australia/Tasmania" msgstr "" #: src/hd-data.c:105 msgid "Australia/Victoria" msgstr "" #: src/hd-data.c:106 msgid "Australia/Western Australia" msgstr "" #: src/hd-data.c:107 msgid "Aruba" msgstr "" #: src/hd-data.c:108 msgid "Azerbaijan" msgstr "" #: src/hd-data.c:109 msgid "Bosnia-Herzegovina" msgstr "" #: src/hd-data.c:110 msgid "Barbados" msgstr "" #: src/hd-data.c:111 msgid "Bangladesh #" msgstr "" #: src/hd-data.c:113 msgid "Burkina Faso" msgstr "" #: src/hd-data.c:114 msgid "Bulgaria" msgstr "" #: src/hd-data.c:115 msgid "Bahrain" msgstr "" #: src/hd-data.c:116 msgid "Burundi #" msgstr "" #: src/hd-data.c:117 msgid "Benin #" msgstr "" #: src/hd-data.c:118 msgid "Bermuda" msgstr "" #: src/hd-data.c:119 msgid "Brunei" msgstr "" #: src/hd-data.c:120 msgid "Bolivia" msgstr "" #: src/hd-data.c:122 msgid "Bahamas" msgstr "" #: src/hd-data.c:123 msgid "Bhutan #" msgstr "" #: src/hd-data.c:124 msgid "Bouvet Island" msgstr "" #: src/hd-data.c:125 msgid "Botswana" msgstr "" #: src/hd-data.c:126 msgid "Belarus" msgstr "" #: src/hd-data.c:127 msgid "Belize" msgstr "" #: src/hd-data.c:128 msgid "Canada/Alberta" msgstr "" #: src/hd-data.c:129 msgid "Canada/British Columbia" msgstr "" #: src/hd-data.c:130 msgid "Canada/Manitoba" msgstr "" #: src/hd-data.c:131 msgid "Canada/New Brunswick" msgstr "" #: src/hd-data.c:132 msgid "Canada/Newfoundland and Labrador" msgstr "" #: src/hd-data.c:133 msgid "Canada/Nova Scotia" msgstr "" #: src/hd-data.c:134 msgid "Canada/Nordwest Territories" msgstr "" #: src/hd-data.c:135 msgid "Canada/Ontario" msgstr "" #: src/hd-data.c:136 msgid "Canada/Prince Edward Island" msgstr "" #: src/hd-data.c:137 msgid "Canada/Québec" msgstr "" #: src/hd-data.c:138 msgid "Canada/Saskatchewan" msgstr "" #: src/hd-data.c:139 msgid "Canada/Yukon" msgstr "" #: src/hd-data.c:140 msgid "Cocos Islands (Keeling)" msgstr "" #: src/hd-data.c:141 msgid "Democratic Republic of Congo #" msgstr "" #: src/hd-data.c:142 msgid "Central African Republic #" msgstr "" #: src/hd-data.c:143 msgid "Republic of Congo #" msgstr "" #: src/hd-data.c:144 msgid "Switzerland/Aargau" msgstr "" #: src/hd-data.c:145 msgid "Switzerland/Appenzell Innerrhoden" msgstr "" #: src/hd-data.c:146 msgid "Switzerland/Appenzell Ausserrhoden" msgstr "" #: src/hd-data.c:147 msgid "Switzerland/Bern" msgstr "" #: src/hd-data.c:148 msgid "Switzerland/Basel-Land" msgstr "" #: src/hd-data.c:149 msgid "Switzerland/Basel-Stadt" msgstr "" #: src/hd-data.c:150 msgid "Switzerland/Fribourg" msgstr "" #: src/hd-data.c:151 msgid "Switzerland/Genève" msgstr "" #: src/hd-data.c:152 msgid "Switzerland/Glarus" msgstr "" #: src/hd-data.c:153 msgid "Switzerland/Graubünden" msgstr "" #: src/hd-data.c:154 msgid "Switzerland/Jura" msgstr "" #: src/hd-data.c:155 msgid "Switzerland/Luzern" msgstr "" #: src/hd-data.c:156 msgid "Switzerland/Neuchâtel" msgstr "" #: src/hd-data.c:157 msgid "Switzerland/Nidwalden" msgstr "" #: src/hd-data.c:158 msgid "Switzerland/Obwalden" msgstr "" #: src/hd-data.c:159 msgid "Switzerland/St Gallen" msgstr "" #: src/hd-data.c:160 msgid "Switzerland/Schaffhausen" msgstr "" #: src/hd-data.c:161 msgid "Switzerland/Solothurn" msgstr "" #: src/hd-data.c:162 msgid "Switzerland/Schwyz" msgstr "" #: src/hd-data.c:163 msgid "Switzerland/Thurgau" msgstr "" #: src/hd-data.c:164 msgid "Switzerland/Ticino" msgstr "" #: src/hd-data.c:165 msgid "Switzerland/Uri" msgstr "" #: src/hd-data.c:166 msgid "Switzerland/Vaud" msgstr "" #: src/hd-data.c:167 msgid "Switzerland/Valais" msgstr "" #: src/hd-data.c:168 msgid "Switzerland/Zug" msgstr "" #: src/hd-data.c:169 msgid "Switzerland/Zürich" msgstr "" #: src/hd-data.c:170 msgid "Côte d'Ivoire" msgstr "" #: src/hd-data.c:171 msgid "Cook Islands" msgstr "" #: src/hd-data.c:172 msgid "Chile" msgstr "" #: src/hd-data.c:173 msgid "Cameroon" msgstr "" #: src/hd-data.c:175 msgid "Colombia" msgstr "" #: src/hd-data.c:176 msgid "Costa Rica" msgstr "" #: src/hd-data.c:177 msgid "Cuba" msgstr "" #: src/hd-data.c:178 msgid "Cape Verde" msgstr "" #: src/hd-data.c:179 msgid "Christmas Islands" msgstr "" #: src/hd-data.c:180 msgid "Cyprus" msgstr "" #: src/hd-data.c:181 msgid "Czech Republic" msgstr "" #: src/hd-data.c:182 msgid "Germany/Brandenburg" msgstr "" #: src/hd-data.c:183 msgid "Germany/Berlin" msgstr "" #: src/hd-data.c:184 msgid "Germany/Baden-Württemberg" msgstr "" #: src/hd-data.c:185 msgid "Germany/Bavaria" msgstr "" #: src/hd-data.c:186 msgid "Germany/Bremen" msgstr "" #: src/hd-data.c:187 msgid "Germany/Hesse" msgstr "" #: src/hd-data.c:188 msgid "Germany/Hamburg" msgstr "" #: src/hd-data.c:189 msgid "Germany/Mecklenburg-West Pomerania" msgstr "" #: src/hd-data.c:190 msgid "Germany/Lower Saxony" msgstr "" #: src/hd-data.c:191 msgid "Germany/North Rhine-Westphalia" msgstr "" #: src/hd-data.c:192 msgid "Germany/Rhineland Palatinate" msgstr "" #: src/hd-data.c:193 msgid "Germany/Schleswig-Holstein" msgstr "" #: src/hd-data.c:194 msgid "Germany/Saar" msgstr "" #: src/hd-data.c:195 msgid "Germany/Saxony" msgstr "" #: src/hd-data.c:196 msgid "Germany/Saxony-Anhalt" msgstr "" #: src/hd-data.c:197 msgid "Germany/Thuringia" msgstr "" #: src/hd-data.c:198 msgid "Djibouti" msgstr "" #: src/hd-data.c:199 msgid "Denmark" msgstr "" #: src/hd-data.c:200 msgid "Dominica" msgstr "" #: src/hd-data.c:201 msgid "Dominican Republic" msgstr "" #: src/hd-data.c:202 msgid "Algeria" msgstr "" #: src/hd-data.c:203 msgid "Ecuador" msgstr "" #: src/hd-data.c:204 msgid "Estonia" msgstr "" #: src/hd-data.c:205 msgid "Egypt" msgstr "" #: src/hd-data.c:206 msgid "Western Sahara" msgstr "" #: src/hd-data.c:207 msgid "Eritrea" msgstr "" #: src/hd-data.c:209 msgid "Ethiopia" msgstr "" #: src/hd-data.c:210 msgid "Finland" msgstr "" #: src/hd-data.c:211 msgid "Fiji #" msgstr "" #: src/hd-data.c:212 msgid "Falkland Islands (Malvinas)" msgstr "" #: src/hd-data.c:213 msgid "Federated States of Micronesia" msgstr "" #: src/hd-data.c:214 msgid "Faroes" msgstr "" #: src/hd-data.c:216 msgid "Gabon #" msgstr "" #: src/hd-data.c:217 msgid "Great Britain/England and Wales" msgstr "" #: src/hd-data.c:218 msgid "Great Britain/Northern Ireland" msgstr "" #: src/hd-data.c:219 msgid "Great Britain/Scotland" msgstr "" #: src/hd-data.c:220 msgid "Grenada" msgstr "" #: src/hd-data.c:221 msgid "Georgia" msgstr "" #: src/hd-data.c:222 msgid "French Guiana" msgstr "" #: src/hd-data.c:223 msgid "Ghana" msgstr "" #: src/hd-data.c:224 msgid "Gibraltar" msgstr "" #: src/hd-data.c:225 msgid "Greenland" msgstr "" #: src/hd-data.c:226 msgid "Gambia" msgstr "" #: src/hd-data.c:227 msgid "Guinea" msgstr "" #: src/hd-data.c:228 msgid "Guadeloupe" msgstr "" #: src/hd-data.c:229 msgid "Equatorial Guinea" msgstr "" #: src/hd-data.c:230 msgid "Greece" msgstr "" #: src/hd-data.c:231 msgid "South Georgia and South Sandwich Islands" msgstr "" #: src/hd-data.c:232 msgid "Guatemala" msgstr "" #: src/hd-data.c:233 msgid "Guam" msgstr "" #: src/hd-data.c:234 msgid "Guinea-Bissau #" msgstr "" #: src/hd-data.c:235 msgid "Guyana #" msgstr "" #: src/hd-data.c:236 msgid "Hong Kong" msgstr "" #: src/hd-data.c:237 msgid "Heard and Mc Donald Islands" msgstr "" #: src/hd-data.c:238 msgid "Honduras" msgstr "" #: src/hd-data.c:239 msgid "Croatia" msgstr "" #: src/hd-data.c:240 msgid "Haiti" msgstr "" #: src/hd-data.c:241 msgid "Hungary" msgstr "" #: src/hd-data.c:242 msgid "Indonesia #" msgstr "" #: src/hd-data.c:243 msgid "Ireland" msgstr "" #: src/hd-data.c:245 msgid "India #" msgstr "" #: src/hd-data.c:246 msgid "Iraq" msgstr "" #: src/hd-data.c:247 msgid "Islamic Republic of Iran" msgstr "" #: src/hd-data.c:248 msgid "Iceland" msgstr "" #: src/hd-data.c:250 msgid "Jamaica" msgstr "" #: src/hd-data.c:251 msgid "Jordan" msgstr "" #: src/hd-data.c:253 msgid "Kenya #" msgstr "" #: src/hd-data.c:254 msgid "Kyrgyzstan" msgstr "" #: src/hd-data.c:255 msgid "Cambodia #" msgstr "" #: src/hd-data.c:256 msgid "Kiribati #" msgstr "" #: src/hd-data.c:257 msgid "Comoros" msgstr "" #: src/hd-data.c:258 msgid "St Kitts and Nevis" msgstr "" #: src/hd-data.c:259 msgid "Democratic People's Republic of Korea" msgstr "" #: src/hd-data.c:261 msgid "Kuwait" msgstr "" #: src/hd-data.c:262 msgid "Cayman Islands" msgstr "" #: src/hd-data.c:263 msgid "Kazakhstan" msgstr "" #: src/hd-data.c:264 msgid "Laos People's Democratic Republic #" msgstr "" #: src/hd-data.c:265 msgid "Lebanon" msgstr "" #: src/hd-data.c:266 msgid "St Lucia" msgstr "" #: src/hd-data.c:267 msgid "Liechtenstein" msgstr "" #: src/hd-data.c:268 msgid "Sri Lanka #" msgstr "" #: src/hd-data.c:269 msgid "Liberia" msgstr "" #: src/hd-data.c:270 msgid "Lesotho" msgstr "" #: src/hd-data.c:271 msgid "Lithuania" msgstr "" #: src/hd-data.c:272 msgid "Luxembourg" msgstr "" #: src/hd-data.c:273 msgid "Latvia" msgstr "" #: src/hd-data.c:274 msgid "Libyan Arab Jamahiriya (Libya)" msgstr "" #: src/hd-data.c:275 msgid "Morocco" msgstr "" #: src/hd-data.c:276 msgid "Monaco" msgstr "" #: src/hd-data.c:277 msgid "Republic of Moldova" msgstr "" #: src/hd-data.c:278 msgid "Madagascar #" msgstr "" #: src/hd-data.c:279 msgid "Marshall Islands" msgstr "" #: src/hd-data.c:280 msgid "Former Yugoslav Republic of Macedonia" msgstr "" #: src/hd-data.c:281 msgid "Mali" msgstr "" #: src/hd-data.c:282 msgid "Mongolia #" msgstr "" #: src/hd-data.c:283 msgid "Macau" msgstr "" #: src/hd-data.c:284 msgid "Northern Marian Islands (Saipan)" msgstr "" #: src/hd-data.c:285 msgid "Martinique" msgstr "" #: src/hd-data.c:286 msgid "Mauritania" msgstr "" #: src/hd-data.c:287 msgid "Montserrat" msgstr "" #: src/hd-data.c:288 msgid "Malta" msgstr "" #: src/hd-data.c:289 msgid "Mauritius" msgstr "" #: src/hd-data.c:290 msgid "Maldives" msgstr "" #: src/hd-data.c:291 msgid "Malawi" msgstr "" #: src/hd-data.c:293 msgid "Malaysia #" msgstr "" #: src/hd-data.c:294 msgid "Mozambique" msgstr "" #: src/hd-data.c:295 msgid "Namibia" msgstr "" #: src/hd-data.c:296 msgid "New Caledonia" msgstr "" #: src/hd-data.c:297 msgid "Niger" msgstr "" #: src/hd-data.c:298 msgid "Norfolk Islands" msgstr "" #: src/hd-data.c:299 msgid "Nigeria" msgstr "" #: src/hd-data.c:300 msgid "Nicaragua" msgstr "" #: src/hd-data.c:302 msgid "Myanmar (Burma) #" msgstr "" #: src/hd-data.c:303 msgid "Norway" msgstr "" #: src/hd-data.c:304 msgid "Nepal #" msgstr "" #: src/hd-data.c:305 msgid "Nauru" msgstr "" #: src/hd-data.c:306 msgid "Niue" msgstr "" #: src/hd-data.c:308 msgid "Oman" msgstr "" #: src/hd-data.c:309 msgid "Panama" msgstr "" #: src/hd-data.c:310 msgid "Peru" msgstr "" #: src/hd-data.c:311 msgid "French Polynesia" msgstr "" #: src/hd-data.c:312 msgid "Papua New Guinea" msgstr "" #: src/hd-data.c:313 msgid "Philippines" msgstr "" #: src/hd-data.c:314 msgid "Pakistan" msgstr "" #: src/hd-data.c:315 msgid "Poland" msgstr "" #: src/hd-data.c:316 msgid "Saint-Pierre and Miquelon" msgstr "" #: src/hd-data.c:317 msgid "Pitcairn" msgstr "" #: src/hd-data.c:318 msgid "Puerto Rico" msgstr "" #: src/hd-data.c:320 msgid "Palau" msgstr "" #: src/hd-data.c:321 msgid "Paraguay" msgstr "" #: src/hd-data.c:322 msgid "Qatar" msgstr "" #: src/hd-data.c:323 msgid "Réunion" msgstr "" #: src/hd-data.c:324 msgid "Romania" msgstr "" #: src/hd-data.c:326 msgid "Rwanda" msgstr "" #: src/hd-data.c:327 msgid "Saudi Arabia" msgstr "" #: src/hd-data.c:328 msgid "Solomon Islands" msgstr "" #: src/hd-data.c:329 msgid "Seychellen" msgstr "" #: src/hd-data.c:330 msgid "Sudan" msgstr "" #: src/hd-data.c:331 msgid "Sweden" msgstr "" #: src/hd-data.c:332 msgid "Singapore #" msgstr "" #: src/hd-data.c:333 msgid "St Helena" msgstr "" #: src/hd-data.c:334 msgid "Slovenia" msgstr "" #: src/hd-data.c:335 msgid "Svalbard and Jan Mayen Islands" msgstr "" #: src/hd-data.c:336 msgid "Slovakia" msgstr "" #: src/hd-data.c:337 msgid "Sierra Leone" msgstr "" #: src/hd-data.c:338 msgid "San Marino" msgstr "" #: src/hd-data.c:339 msgid "Senegal" msgstr "" #: src/hd-data.c:340 msgid "Somalia" msgstr "" #: src/hd-data.c:341 msgid "Suriname #" msgstr "" #: src/hd-data.c:342 msgid "Sao Tomé and Principe" msgstr "" #: src/hd-data.c:343 msgid "El Salvador" msgstr "" #: src/hd-data.c:344 msgid "Syrian Arab Republic (Syria)" msgstr "" #: src/hd-data.c:345 msgid "Swaziland" msgstr "" #: src/hd-data.c:346 msgid "Turks and Caicos Islands" msgstr "" #: src/hd-data.c:347 msgid "Chad" msgstr "" #: src/hd-data.c:348 msgid "Togo #" msgstr "" #: src/hd-data.c:349 msgid "Thailand #" msgstr "" #: src/hd-data.c:350 msgid "Tajikistan" msgstr "" #: src/hd-data.c:351 msgid "Tokelau" msgstr "" #: src/hd-data.c:352 msgid "Turkmenistan" msgstr "" #: src/hd-data.c:353 msgid "Tunisia" msgstr "" #: src/hd-data.c:354 msgid "Tonga" msgstr "" #: src/hd-data.c:355 msgid "Turkey" msgstr "" #: src/hd-data.c:356 msgid "Trinidad and Tobago #" msgstr "" #: src/hd-data.c:357 msgid "Tuvalu" msgstr "" #: src/hd-data.c:358 msgid "Taiwan" msgstr "" #: src/hd-data.c:359 msgid "Tanzania" msgstr "" #: src/hd-data.c:360 msgid "Ukraine" msgstr "" #: src/hd-data.c:361 msgid "Uganda" msgstr "" #: src/hd-data.c:362 msgid "United States/Alaska" msgstr "" #: src/hd-data.c:363 msgid "United States/Alabama" msgstr "" #: src/hd-data.c:364 msgid "United States/Arkansas" msgstr "" #: src/hd-data.c:365 msgid "United States/Arizona" msgstr "" #: src/hd-data.c:366 msgid "United States/California" msgstr "" #: src/hd-data.c:367 msgid "United States/Colorado" msgstr "" #: src/hd-data.c:368 msgid "United States/Connecticut" msgstr "" #: src/hd-data.c:369 msgid "United States/District of Columbia" msgstr "" #: src/hd-data.c:370 msgid "United States/Delaware" msgstr "" #: src/hd-data.c:371 msgid "United States/Florida" msgstr "" #: src/hd-data.c:372 msgid "United States/Georgia" msgstr "" #: src/hd-data.c:373 msgid "United States/Hawaii" msgstr "" #: src/hd-data.c:374 msgid "United States/Iowa" msgstr "" #: src/hd-data.c:375 msgid "United States/Idaho" msgstr "" #: src/hd-data.c:376 msgid "United States/Illinois" msgstr "" #: src/hd-data.c:377 msgid "United States/Indiana" msgstr "" #: src/hd-data.c:378 msgid "United States/Kansas" msgstr "" #: src/hd-data.c:379 msgid "United States/Kentucky" msgstr "" #: src/hd-data.c:380 msgid "United States/Louisiana" msgstr "" #: src/hd-data.c:381 msgid "United States/Massachusetts" msgstr "" #: src/hd-data.c:382 msgid "United States/Maryland" msgstr "" #: src/hd-data.c:383 msgid "United States/Maine" msgstr "" #: src/hd-data.c:384 msgid "United States/Michigan" msgstr "" #: src/hd-data.c:385 msgid "United States/Minnesota" msgstr "" #: src/hd-data.c:386 msgid "United States/Missouri" msgstr "" #: src/hd-data.c:387 msgid "United States/Mississippi" msgstr "" #: src/hd-data.c:388 msgid "United States/Montana" msgstr "" #: src/hd-data.c:389 msgid "United States/North Carolina" msgstr "" #: src/hd-data.c:390 msgid "United States/North Dakota" msgstr "" #: src/hd-data.c:391 msgid "United States/Nebraska" msgstr "" #: src/hd-data.c:392 msgid "United States/New Hampshire" msgstr "" #: src/hd-data.c:393 msgid "United States/New Jersey" msgstr "" #: src/hd-data.c:394 msgid "United States/New Mexico" msgstr "" #: src/hd-data.c:395 msgid "United States/Nevada" msgstr "" #: src/hd-data.c:396 msgid "United States/New York" msgstr "" #: src/hd-data.c:397 msgid "United States/Ohio" msgstr "" #: src/hd-data.c:398 msgid "United States/Oklahoma" msgstr "" #: src/hd-data.c:399 msgid "United States/Oregon" msgstr "" #: src/hd-data.c:400 msgid "United States/Pennsylvania" msgstr "" #: src/hd-data.c:401 msgid "United States/Rhode Island" msgstr "" #: src/hd-data.c:402 msgid "United States/South Carolina" msgstr "" #: src/hd-data.c:403 msgid "United States/South Dakota" msgstr "" #: src/hd-data.c:404 msgid "United States/Tennessee" msgstr "" #: src/hd-data.c:405 msgid "United States/Texas" msgstr "" #: src/hd-data.c:406 msgid "United States/Utah" msgstr "" #: src/hd-data.c:407 msgid "United States/Virginia" msgstr "" #: src/hd-data.c:408 msgid "United States/Vermont" msgstr "" #: src/hd-data.c:409 msgid "United States/Washington" msgstr "" #: src/hd-data.c:410 msgid "United States/Wisconsin" msgstr "" #: src/hd-data.c:411 msgid "United States/West Virginia" msgstr "" #: src/hd-data.c:412 msgid "United States/Wyoming" msgstr "" #: src/hd-data.c:413 msgid "Uruguay" msgstr "" #: src/hd-data.c:414 msgid "Uzbekistan" msgstr "" #: src/hd-data.c:415 msgid "St Vincent and Grenadines" msgstr "" #: src/hd-data.c:416 msgid "Venezuela" msgstr "" #: src/hd-data.c:417 msgid "British Virgin Islands" msgstr "" #: src/hd-data.c:418 msgid "U.S. Virgin Islands" msgstr "" #: src/hd-data.c:419 msgid "Viet Nam" msgstr "" #: src/hd-data.c:420 msgid "Vanuatu" msgstr "" #: src/hd-data.c:421 msgid "Wallis and Futuna Islands" msgstr "" #: src/hd-data.c:422 msgid "Samoa" msgstr "" #: src/hd-data.c:423 msgid "Yemen" msgstr "" #: src/hd-data.c:424 msgid "Mayotte" msgstr "" #: src/hd-data.c:425 msgid "Serbia and Montenegro" msgstr "" #: src/hd-data.c:426 msgid "South Africa" msgstr "" #: src/hd-data.c:427 msgid "Zambia" msgstr "" #: src/hd-data.c:428 msgid "Zimbabwe" msgstr "" #: src/hd-data.c:458 msgid "1st Advent" msgstr "" #: src/hd-data.c:459 msgid "1st Sunday in Lent" msgstr "" #: src/hd-data.c:460 msgid "2nd Advent" msgstr "" #: src/hd-data.c:461 msgid "2nd Sunday in Lent" msgstr "" #: src/hd-data.c:462 msgid "3rd Advent" msgstr "" #: src/hd-data.c:463 msgid "3rd Sunday in Lent" msgstr "" #: src/hd-data.c:464 msgid "4th Advent" msgstr "" #: src/hd-data.c:465 msgid "4th Sunday in Lent" msgstr "" #: src/hd-data.c:466 msgid "7-5-3 Festival" msgstr "" #: src/hd-data.c:467 msgid "Aborigines Day" msgstr "" #: src/hd-data.c:468 msgid "All Fool's Day" msgstr "" #: src/hd-data.c:469 msgid "All Saints' Day" msgstr "" #: src/hd-data.c:470 msgid "All Souls' Day" msgstr "" #: src/hd-data.c:471 msgid "Alphabet Day" msgstr "" #: src/hd-data.c:472 msgid "Anniversary of Auckland" msgstr "" #: src/hd-data.c:473 msgid "Anniversary of Canterbury North" msgstr "" #: src/hd-data.c:474 msgid "Anniversary of Canterbury South" msgstr "" #: src/hd-data.c:475 msgid "Anniversary of Chatham Islands" msgstr "" #: src/hd-data.c:476 msgid "Anniversary of Hawkes' Bay" msgstr "" #: src/hd-data.c:477 msgid "Anniversary of Marlborough" msgstr "" #: src/hd-data.c:478 msgid "Anniversary of Nelson" msgstr "" #: src/hd-data.c:479 msgid "Anniversary of Otago" msgstr "" #: src/hd-data.c:480 msgid "Anniversary of Southland" msgstr "" #: src/hd-data.c:481 msgid "Anniversary of Taranaki" msgstr "" #: src/hd-data.c:482 msgid "Anniversary of Wellington" msgstr "" #: src/hd-data.c:483 msgid "Anniversary of Westland" msgstr "" #: src/hd-data.c:484 msgid "Anzac Day" msgstr "" #: src/hd-data.c:485 msgid "Arbor Day" msgstr "" #: src/hd-data.c:486 msgid "Armed Forces Day" msgstr "" #: src/hd-data.c:487 msgid "Armistice Day" msgstr "" #: src/hd-data.c:488 msgid "Ash Monday" msgstr "" #: src/hd-data.c:489 msgid "Ash Wednesday" msgstr "" #: src/hd-data.c:490 msgid "Ascension of Abdu'l-Baha" msgstr "" #: src/hd-data.c:491 msgid "Ascension of Baha'u'llah" msgstr "" #: src/hd-data.c:492 msgid "Birth of Baha'u'llah" msgstr "" #: src/hd-data.c:493 msgid "Birth of the Bab" msgstr "" #: src/hd-data.c:494 msgid "Day of the Covenant" msgstr "" #: src/hd-data.c:495 msgid "Declaration of the Bab" msgstr "" #: src/hd-data.c:496 msgid "First Day of Ridvan" msgstr "" #: src/hd-data.c:497 msgid "Martyrdom of the Bab" msgstr "" #: src/hd-data.c:498 msgid "Bahá'i New Year's Day" msgstr "" #: src/hd-data.c:499 msgid "Ninth Day of Ridvan" msgstr "" #: src/hd-data.c:500 msgid "Twelfth Day of Ridvan" msgstr "" #: src/hd-data.c:501 msgid "Bank Holiday" msgstr "" #: src/hd-data.c:502 msgid "Basque National Day" msgstr "" #: src/hd-data.c:503 msgid "Battle of Boyne" msgstr "" #: src/hd-data.c:504 msgid "Battle of Puebla" msgstr "" #: src/hd-data.c:505 msgid "Beginning of Financial Year" msgstr "" #: src/hd-data.c:506 msgid "Benito Juárez Day" msgstr "" #: src/hd-data.c:507 msgid "Bodhidharma's Birthday" msgstr "" #: src/hd-data.c:508 msgid "Bosses' Day" msgstr "" #: src/hd-data.c:509 msgid "Boxing Day" msgstr "" #: src/hd-data.c:510 msgid "Bringing Home the Herds Day" msgstr "" #: src/hd-data.c:511 msgid "Bringing in the Harvest Day" msgstr "" #: src/hd-data.c:512 msgid "Buddha's Birthday" msgstr "" #: src/hd-data.c:513 msgid "Burns Night" msgstr "" #: src/hd-data.c:514 msgid "Camoes Day" msgstr "" #: src/hd-data.c:515 msgid "Carnival" msgstr "" #: src/hd-data.c:516 msgid "Beltane" msgstr "" #: src/hd-data.c:517 msgid "Imbolg" msgstr "" #: src/hd-data.c:518 msgid "Lughnasa" msgstr "" #: src/hd-data.c:519 msgid "Samhain/Celtic New Year's Day" msgstr "" #: src/hd-data.c:520 msgid "Children's Day" msgstr "" #: src/hd-data.c:521 msgid "Cycle" msgstr "" #: src/hd-data.c:522 msgid "Chinese New Year's Day" msgstr "" #: src/hd-data.c:523 msgid "Chinese New Year's Eve" msgstr "" #: src/hd-data.c:524 msgid "Christmas Day" msgstr "" #: src/hd-data.c:525 msgid "Christmas Eve" msgstr "" #: src/hd-data.c:526 msgid "Christ's Ascension Day" msgstr "" #: src/hd-data.c:527 msgid "Chrysanthenum Day" msgstr "" #: src/hd-data.c:528 msgid "Citizenship Day" msgstr "" #: src/hd-data.c:529 msgid "Civic Holiday" msgstr "" #: src/hd-data.c:530 msgid "Columbus Day" msgstr "" #: src/hd-data.c:531 msgid "Coming of Age Day" msgstr "" #: src/hd-data.c:532 msgid "Confucius' Birthday" msgstr "" #: src/hd-data.c:533 msgid "Constitution Anniversary" msgstr "" #: src/hd-data.c:534 msgid "Coptic New Year's Day" msgstr "" #: src/hd-data.c:535 msgid "Cosmonauts' Day" msgstr "" #: src/hd-data.c:536 msgid "Cross Raising Day" msgstr "" #: src/hd-data.c:537 msgid "Culture Day" msgstr "" #: src/hd-data.c:538 msgid "Day after Mid-Autumn Festival" msgstr "" #: src/hd-data.c:539 msgid "Day after Tomb-Sweeping Day" msgstr "" #: src/hd-data.c:540 msgid "Day of Andalucia" msgstr "" #: src/hd-data.c:541 msgid "Day of Catalonia" msgstr "" #: src/hd-data.c:542 msgid "Day of Galicia" msgstr "" #: src/hd-data.c:543 msgid "Day of Prayer and Repentance" msgstr "" #: src/hd-data.c:544 msgid "Day of Reconciliation" msgstr "" #: src/hd-data.c:545 msgid "Defenders of Motherland Day" msgstr "" #: src/hd-data.c:546 msgid "Double-9 Day" msgstr "" #: src/hd-data.c:547 msgid "Dragon Boat Festival" msgstr "" #: src/hd-data.c:548 msgid "Dynasty Day" msgstr "" #: src/hd-data.c:549 msgid "Easter Monday" msgstr "" #: src/hd-data.c:550 msgid "Easter Sunday" msgstr "" #: src/hd-data.c:551 msgid "Lunar Eclipse" msgstr "" #: src/hd-data.c:552 msgid "Solar Eclipse" msgstr "" #: src/hd-data.c:553 msgid "Annular" msgstr "" #: src/hd-data.c:554 msgid "Partial" msgstr "" #: src/hd-data.c:555 msgid "Penumbral" msgstr "" #: src/hd-data.c:556 msgid "Total" msgstr "" #: src/hd-data.c:557 msgid "Eindhoven's Liberation" msgstr "" #: src/hd-data.c:558 msgid "Election Day" msgstr "" #: src/hd-data.c:559 msgid "Emperor's Birthday" msgstr "" #: src/hd-data.c:560 msgid "Equinox Day" msgstr "" #: src/hd-data.c:561 msgid "Ethiopic New Year's Day" msgstr "" #: src/hd-data.c:562 msgid "Father's Day" msgstr "" #: src/hd-data.c:563 msgid "Feast of Corpus Christi" msgstr "" #: src/hd-data.c:564 msgid "Feast of Fortune" msgstr "" #: src/hd-data.c:565 msgid "Feast of Heart Jesus" msgstr "" #: src/hd-data.c:566 msgid "Festival of Lanterns" msgstr "" #: src/hd-data.c:567 msgid "Festival of Sadeh" msgstr "" #: src/hd-data.c:568 msgid "Flag Day" msgstr "" #: src/hd-data.c:569 msgid "Flemish Culture Day" msgstr "" #: src/hd-data.c:570 msgid "Founding of the Communist Party" msgstr "" #: src/hd-data.c:571 msgid "French Culture Day" msgstr "" #: src/hd-data.c:572 msgid "French Revolutionary" msgstr "" #: src/hd-data.c:573 msgid "Friendship Day" msgstr "" #: src/hd-data.c:574 msgid "German Unity Day" msgstr "" #: src/hd-data.c:575 msgid "Good Friday" msgstr "" #: src/hd-data.c:576 msgid "Good Saturday/Easter Eve" msgstr "" #: src/hd-data.c:577 msgid "Grandparents' Day" msgstr "" #: src/hd-data.c:578 msgid "Greenery Day" msgstr "" #: src/hd-data.c:579 msgid "Grotto Day" msgstr "" #: src/hd-data.c:580 msgid "Groundhog Day" msgstr "" #: src/hd-data.c:581 msgid "Guadalupe Virgin's Day" msgstr "" #: src/hd-data.c:582 msgid "Guy Fawke's Day" msgstr "" #: src/hd-data.c:583 msgid "Halloween" msgstr "" #: src/hd-data.c:584 msgid "Health and Sport's Day" msgstr "" #: src/hd-data.c:585 msgid "Hannukah/Festival of Lights" msgstr "" #: src/hd-data.c:586 msgid "Lag B'Omer" msgstr "" #: src/hd-data.c:587 msgid "Pesach/Passover" msgstr "" #: src/hd-data.c:588 msgid "Purim/Feast of Lots" msgstr "" #: src/hd-data.c:589 msgid "Rosh Hashana/New Year's Day" msgstr "" #: src/hd-data.c:590 msgid "Shavuot/Giving of the Torah" msgstr "" #: src/hd-data.c:591 msgid "Shushan Purim" msgstr "" #: src/hd-data.c:592 msgid "Simchat Torah" msgstr "" #: src/hd-data.c:593 msgid "Sukkot/Feast of Tabernacles" msgstr "" #: src/hd-data.c:594 msgid "Tisha B'Av/Fasting Day" msgstr "" #: src/hd-data.c:595 msgid "Tu B'Shevat/New Year of Trees" msgstr "" #: src/hd-data.c:596 msgid "Yom Hashoah/Holocaust Memorial" msgstr "" #: src/hd-data.c:597 msgid "Yom Hazikaron/Soldiers Memorial" msgstr "" #: src/hd-data.c:598 msgid "Yom Ha Azmaut/Independence Day" msgstr "" #: src/hd-data.c:599 msgid "Yom Kippur/Atonement Day" msgstr "" #: src/hd-data.c:600 msgid "Yom Yerushalayim/Jerusalem Day" msgstr "" #: src/hd-data.c:601 msgid "Holy Innocent's Day" msgstr "" #: src/hd-data.c:602 msgid "Holy Trinity" msgstr "" #: src/hd-data.c:603 msgid "Huravee Day" msgstr "" #: src/hd-data.c:604 msgid "Independence Day" msgstr "" #: src/hd-data.c:605 msgid "Independence Movement Day" msgstr "" #: src/hd-data.c:606 msgid "Independence Proclamation" msgstr "" #: src/hd-data.c:607 msgid "Indian New Year's Day" msgstr "" #: src/hd-data.c:608 msgid "Aga Khan's Birthday" msgstr "" #: src/hd-data.c:609 msgid "Ashura'" msgstr "" #: src/hd-data.c:610 msgid "Eid-al-Adha" msgstr "" #: src/hd-data.c:611 msgid "Eid-al-Fitr" msgstr "" #: src/hd-data.c:612 msgid "Eid-i-Milad-un-Nabi" msgstr "" #: src/hd-data.c:613 msgid "Ghadir" msgstr "" #: src/hd-data.c:614 msgid "Imamat Day" msgstr "" #: src/hd-data.c:615 msgid "Islamic New Year's Day" msgstr "" #: src/hd-data.c:616 msgid "Nuzul-al-Qur'an" msgstr "" #: src/hd-data.c:617 msgid "Quds Day" msgstr "" #: src/hd-data.c:618 msgid "Ramadan" msgstr "" #: src/hd-data.c:619 msgid "Shab-e-Bara't" msgstr "" #: src/hd-data.c:620 msgid "Shab-e-Mi'raj" msgstr "" #: src/hd-data.c:621 msgid "Shab-e Qadr" msgstr "" #: src/hd-data.c:622 msgid "Waqf-al-Arafat" msgstr "" #: src/hd-data.c:623 msgid "Japanese New Year's Day" msgstr "" #: src/hd-data.c:624 msgid "Japanese New Year's Eve" msgstr "" #: src/hd-data.c:625 msgid "Jesus' Circumcision" msgstr "" #: src/hd-data.c:626 msgid "Kwanzaa" msgstr "" #: src/hd-data.c:627 msgid "Labour Day" msgstr "" #: src/hd-data.c:628 msgid "Labour Thanksgiving Day" msgstr "" #: src/hd-data.c:629 msgid "Lao Tze's Birthday" msgstr "" #: src/hd-data.c:630 msgid "Liberation Day" msgstr "" #: src/hd-data.c:631 msgid "Marine Day" msgstr "" #: src/hd-data.c:632 msgid "Martinimas" msgstr "" #: src/hd-data.c:633 msgid "Martin L. King's Day" msgstr "" #: src/hd-data.c:634 msgid "Martyrs' Day" msgstr "" #: src/hd-data.c:635 msgid "Mary's Annunciation Day" msgstr "" #: src/hd-data.c:636 msgid "Mary's Ascension Day" msgstr "" #: src/hd-data.c:637 msgid "Mary's Candlemas" msgstr "" #: src/hd-data.c:638 msgid "Mary's Expectation" msgstr "" #: src/hd-data.c:639 msgid "Mary's Immaculate Conception" msgstr "" #: src/hd-data.c:640 msgid "Mary's Maternity" msgstr "" #: src/hd-data.c:641 msgid "Mary's Name" msgstr "" #: src/hd-data.c:642 msgid "Mary's Nativity" msgstr "" #: src/hd-data.c:643 msgid "Mary's Sacrifice" msgstr "" #: src/hd-data.c:644 msgid "Mary's Visitation" msgstr "" #: src/hd-data.c:645 msgid "Mary - Blessed Virgin" msgstr "" #: src/hd-data.c:646 msgid "Maundy Thursday" msgstr "" #: src/hd-data.c:647 msgid "May Day" msgstr "" #: src/hd-data.c:648 msgid "St John's/Midsummer Day" msgstr "" #: src/hd-data.c:649 msgid "Mid-Autumn Festival" msgstr "" #: src/hd-data.c:650 msgid "Mid-Spring Festival" msgstr "" #: src/hd-data.c:651 msgid "Mid-Year Festival" msgstr "" #: src/hd-data.c:652 msgid "Waxing Half Moon" msgstr "" #: src/hd-data.c:653 msgid "Full Moon" msgstr "" #: src/hd-data.c:654 msgid "Waning Half Moon" msgstr "" #: src/hd-data.c:655 msgid "New Moon" msgstr "" #: src/hd-data.c:656 msgid "Mother's Day" msgstr "" #: src/hd-data.c:657 msgid "Mother in Law's Day" msgstr "" #: src/hd-data.c:658 msgid "Music Water Banquet" msgstr "" #: src/hd-data.c:659 msgid "National Foundation Day" msgstr "" #: src/hd-data.c:660 msgid "National Holiday" msgstr "" #: src/hd-data.c:661 msgid "National Mourning Day" msgstr "" #: src/hd-data.c:662 msgid "New Year's Day" msgstr "" #: src/hd-data.c:663 msgid "Nurses' Day" msgstr "" #: src/hd-data.c:664 msgid "Old-Armenic New Year" msgstr "" #: src/hd-data.c:665 msgid "Old-Egyptic New Year" msgstr "" #: src/hd-data.c:666 msgid "Orthodox New Year's Day" msgstr "" #: src/hd-data.c:667 msgid "Our Lady Aparecida Day" msgstr "" #: src/hd-data.c:668 msgid "Palm Sunday" msgstr "" #: src/hd-data.c:669 msgid "Parent's Day" msgstr "" #: src/hd-data.c:670 msgid "Passion Sunday" msgstr "" #: src/hd-data.c:671 msgid "Peace Festival" msgstr "" #: src/hd-data.c:672 msgid "Peach Festival" msgstr "" #: src/hd-data.c:673 msgid "Whitsunday/Pentecost" msgstr "" #: src/hd-data.c:674 msgid "Noruz/Persian New Year's Day" msgstr "" #: src/hd-data.c:675 msgid "Prayer Day" msgstr "" #: src/hd-data.c:676 msgid "Presidential Inauguration" msgstr "" #: src/hd-data.c:677 msgid "Presidents' Day" msgstr "" #: src/hd-data.c:678 msgid "Presidents' Inform" msgstr "" #: src/hd-data.c:679 msgid "President Lincoln's Birthday" msgstr "" #: src/hd-data.c:680 msgid "Princess' Day" msgstr "" #: src/hd-data.c:681 msgid "Quinquagesima Sunday" msgstr "" #: src/hd-data.c:682 msgid "Reformation Day" msgstr "" #: src/hd-data.c:683 msgid "Remembrance/Memorial Day" msgstr "" #: src/hd-data.c:684 msgid "Republic Day" msgstr "" #: src/hd-data.c:685 msgid "Respect for the Aged Day" msgstr "" #: src/hd-data.c:686 msgid "Revolution Day" msgstr "" #: src/hd-data.c:687 msgid "Rio de Janeiro Anniversary" msgstr "" #: src/hd-data.c:688 msgid "Rogation Sunday" msgstr "" #: src/hd-data.c:689 msgid "Sao Paulo Anniversary" msgstr "" #: src/hd-data.c:690 msgid "Sapporo Snow Festival" msgstr "" #: src/hd-data.c:691 msgid "Season Change/Bean-Festival" msgstr "" #: src/hd-data.c:692 msgid "Septuagesima Sunday" msgstr "" #: src/hd-data.c:693 msgid "Seven Sleepers Day" msgstr "" #: src/hd-data.c:694 msgid "Sexagesima Sunday" msgstr "" #: src/hd-data.c:695 msgid "Shrove Tuesday/Mardi Gras" msgstr "" #: src/hd-data.c:696 msgid "Solstice Day" msgstr "" #: src/hd-data.c:697 msgid "Soot-Sweeping Day" msgstr "" #: src/hd-data.c:698 msgid "Spring Festival" msgstr "" #: src/hd-data.c:699 msgid "Start of common month" msgstr "" #: src/hd-data.c:700 msgid "Start of leap month" msgstr "" #: src/hd-data.c:701 msgid "Star Festival" msgstr "" #: src/hd-data.c:702 msgid "St Andrew's Day" msgstr "" #: src/hd-data.c:703 msgid "St Bartholomew Day" msgstr "" #: src/hd-data.c:704 msgid "St Berchtold's Day" msgstr "" #: src/hd-data.c:705 msgid "St David's Day" msgstr "" #: src/hd-data.c:706 msgid "St Edward's Day" msgstr "" #: src/hd-data.c:707 msgid "St George's Day" msgstr "" #: src/hd-data.c:708 msgid "St James' Day" msgstr "" #: src/hd-data.c:709 msgid "St Joseph's Day" msgstr "" #: src/hd-data.c:710 msgid "St Laurentius Day" msgstr "" #: src/hd-data.c:711 msgid "St Nicholas' Day" msgstr "" #: src/hd-data.c:712 msgid "St Nicholas' Eve" msgstr "" #: src/hd-data.c:713 msgid "St Patrick's Day" msgstr "" #: src/hd-data.c:714 msgid "St Peter and St Paul" msgstr "" #: src/hd-data.c:715 msgid "St Stephen's Day" msgstr "" #: src/hd-data.c:716 msgid "St Valentine's Day" msgstr "" #: src/hd-data.c:717 msgid "Sunday of the Dead" msgstr "" #: src/hd-data.c:718 msgid "Swallow Day" msgstr "" #: src/hd-data.c:719 msgid "Sweetest Day" msgstr "" #: src/hd-data.c:720 msgid "Sylvester/New Year's Eve" msgstr "" #: src/hd-data.c:721 msgid "Teacher's Day" msgstr "" #: src/hd-data.c:722 msgid "Thai New Year's Day" msgstr "" #: src/hd-data.c:723 msgid "Thanksgiving Day" msgstr "" #: src/hd-data.c:724 msgid "The King's Birthday" msgstr "" #: src/hd-data.c:725 msgid "The Queen's Birthday" msgstr "" #: src/hd-data.c:726 msgid "Epiphany/Three King's Day" msgstr "" #: src/hd-data.c:727 msgid "Tiradentes Day" msgstr "" #: src/hd-data.c:728 msgid "Tomb-Sweeping Day" msgstr "" #: src/hd-data.c:729 msgid "Transfiguration Day" msgstr "" #: src/hd-data.c:730 msgid "Tynwald Day" msgstr "" #: src/hd-data.c:731 msgid "Valborg's Eve" msgstr "" #: src/hd-data.c:732 msgid "Venice Carnival" msgstr "" #: src/hd-data.c:733 msgid "Veteran's Day" msgstr "" #: src/hd-data.c:734 msgid "Victoria Day" msgstr "" #: src/hd-data.c:735 msgid "Victory Day" msgstr "" #: src/hd-data.c:736 msgid "Whit Monday" msgstr "" #: src/hd-data.c:737 msgid "Women's Day" msgstr "" #: src/hd-data.c:738 msgid "Women's Shrove Day" msgstr "" #: src/hd-data.c:739 msgid "World Animal Day" msgstr "" #: src/hd-data.c:740 msgid "Youth Day" msgstr "" #: src/hd-data.c:746 msgid "Adelaide Cup Day" msgstr "" #: src/hd-data.c:747 msgid "Admission Day" msgstr "" #: src/hd-data.c:748 msgid "Alaska Day" msgstr "" #: src/hd-data.c:749 msgid "Aleksis Kivi Day" msgstr "" #: src/hd-data.c:750 msgid "Alice-Springs Show Day" msgstr "" #: src/hd-data.c:751 msgid "All Saints' Eve" msgstr "" #: src/hd-data.c:752 msgid "Americas Day" msgstr "" #: src/hd-data.c:753 msgid "Angam Day" msgstr "" #: src/hd-data.c:755 msgid "Anniversary of Amir's Succession" msgstr "" #: src/hd-data.c:756 msgid "Anniversary of Armed Struggle" msgstr "" #: src/hd-data.c:757 msgid "Anniversary of Green March" msgstr "" #: src/hd-data.c:758 msgid "Antillian Day" msgstr "" #: src/hd-data.c:759 msgid "Arab League Day" msgstr "" #: src/hd-data.c:761 msgid "Archbishop Makarios' Memorial Day" msgstr "" #: src/hd-data.c:762 msgid "Archbishop Makarios' Name-Day" msgstr "" #: src/hd-data.c:763 msgid "Arengo Anniversary" msgstr "" #: src/hd-data.c:764 msgid "Army Coup Day" msgstr "" #: src/hd-data.c:765 msgid "Arrival of the Swiss" msgstr "" #: src/hd-data.c:766 msgid "Artigas' Birthday" msgstr "" #: src/hd-data.c:767 msgid "Asuncion Day" msgstr "" #: src/hd-data.c:768 msgid "Ataturk Memorial Day" msgstr "" #: src/hd-data.c:769 msgid "Authority's Power Day" msgstr "" #: src/hd-data.c:770 msgid "Ba'ath Revolution Day" msgstr "" #: src/hd-data.c:771 msgid "Baron Bliss Day" msgstr "" #: src/hd-data.c:772 msgid "Bataan Day" msgstr "" #: src/hd-data.c:773 msgid "Battle of Angamos" msgstr "" #: src/hd-data.c:774 msgid "Battle of Boyacá" msgstr "" #: src/hd-data.c:775 msgid "Battle of Carabobo" msgstr "" #: src/hd-data.c:776 msgid "Battle of Iquique" msgstr "" #: src/hd-data.c:777 msgid "Battle of Las Piedras" msgstr "" #: src/hd-data.c:778 msgid "Battle of Näfels" msgstr "" #: src/hd-data.c:779 msgid "Beginning of Summer" msgstr "" #: src/hd-data.c:780 msgid "Belgrade's Day" msgstr "" #: src/hd-data.c:781 msgid "Bennington Battle Day" msgstr "" #: src/hd-data.c:782 msgid "Blessing of the Water" msgstr "" #: src/hd-data.c:783 msgid "Bloomsday" msgstr "" #: src/hd-data.c:784 msgid "Boganda Day" msgstr "" #: src/hd-data.c:785 msgid "Bonaire Day" msgstr "" #: src/hd-data.c:786 msgid "Boqueron Battle Day" msgstr "" #: src/hd-data.c:787 msgid "Botswana Day" msgstr "" #: src/hd-data.c:788 msgid "Bounty Day" msgstr "" #: src/hd-data.c:789 msgid "Bunker Hill Day" msgstr "" #: src/hd-data.c:790 msgid "Burning of Jan Hus" msgstr "" #: src/hd-data.c:791 msgid "Canberra Day" msgstr "" #: src/hd-data.c:792 msgid "Caricom Day" msgstr "" #: src/hd-data.c:793 msgid "Casimir Pulaski's Birthday" msgstr "" #: src/hd-data.c:794 msgid "Cassinga Day" msgstr "" #: src/hd-data.c:795 msgid "Cayenne Festival" msgstr "" #: src/hd-data.c:796 msgid "Cesar Chavez Day" msgstr "" #: src/hd-data.c:797 msgid "Charter Day" msgstr "" #: src/hd-data.c:798 msgid "Chiang Kai-shek's Birthday" msgstr "" #: src/hd-data.c:799 msgid "Children's White Sunday" msgstr "" #: src/hd-data.c:800 msgid "Colon Day" msgstr "" #: src/hd-data.c:801 msgid "Colorado Day" msgstr "" #: src/hd-data.c:802 msgid "Commonwealth Day" msgstr "" #: src/hd-data.c:803 msgid "Compact Day" msgstr "" #: src/hd-data.c:804 msgid "Confederal Agreement Day" msgstr "" #: src/hd-data.c:805 msgid "Coronation Day" msgstr "" #: src/hd-data.c:806 msgid "Cup Match Day" msgstr "" #: src/hd-data.c:807 msgid "Custom Chief's Day" msgstr "" #: src/hd-data.c:808 msgid "C. Mapinduzi Day" msgstr "" #: src/hd-data.c:809 msgid "Darwin Show Day" msgstr "" #: src/hd-data.c:810 msgid "Day of Goodwill" msgstr "" #: src/hd-data.c:811 msgid "Day of Students Revolt" msgstr "" #: src/hd-data.c:812 msgid "Day of the Free Laos" msgstr "" #: src/hd-data.c:813 msgid "Death of H. Christophe" msgstr "" #: src/hd-data.c:814 msgid "Death of J. Dessalines" msgstr "" #: src/hd-data.c:815 msgid "Death of President Abdallah" msgstr "" #: src/hd-data.c:816 msgid "Death of President Cheikh" msgstr "" #: src/hd-data.c:817 msgid "Death of President Soilih" msgstr "" #: src/hd-data.c:818 msgid "Death of Qaid-i-Azam" msgstr "" #: src/hd-data.c:819 msgid "Death of T. Louverture" msgstr "" #: src/hd-data.c:820 msgid "Defenders Day" msgstr "" #: src/hd-data.c:821 msgid "Dia del Padre" msgstr "" #: src/hd-data.c:822 msgid "Dia de los Maestros" msgstr "" #: src/hd-data.c:823 msgid "Discovery Day" msgstr "" #: src/hd-data.c:824 msgid "Downfall of the Dergue" msgstr "" #: src/hd-data.c:825 msgid "Dry Season Celebration" msgstr "" #: src/hd-data.c:826 msgid "Dr. Sun Yat-sen's Birthday" msgstr "" #: src/hd-data.c:827 msgid "Duarte's Birthday" msgstr "" #: src/hd-data.c:828 msgid "Easter Tuesday" msgstr "" #: src/hd-data.c:829 msgid "Economic Liberation Day" msgstr "" #: src/hd-data.c:830 msgid "Eight Hours Day" msgstr "" #: src/hd-data.c:831 msgid "Elections for National Assembly" msgstr "" #: src/hd-data.c:832 msgid "Errol Barrow Day" msgstr "" #: src/hd-data.c:833 msgid "Evacuation Day" msgstr "" #: src/hd-data.c:834 msgid "Eve of Epiphany" msgstr "" #: src/hd-data.c:835 msgid "Expedition of the 33" msgstr "" #: src/hd-data.c:836 msgid "E. Hostos' Birthday" msgstr "" #: src/hd-data.c:837 msgid "Family Day" msgstr "" #: src/hd-data.c:838 msgid "FAO Day" msgstr "" #: src/hd-data.c:839 msgid "Farmers' Day" msgstr "" #: src/hd-data.c:840 msgid "Father Leval Day" msgstr "" #: src/hd-data.c:841 msgid "Feast of Our Theotokos" msgstr "" #: src/hd-data.c:842 msgid "Fisherman's Day" msgstr "" #: src/hd-data.c:843 msgid "Foundation of NPLA Day" msgstr "" #: src/hd-data.c:844 msgid "Founding of People's Party" msgstr "" #: src/hd-data.c:845 msgid "Garifuna Day" msgstr "" #: src/hd-data.c:847 msgid "General San Martin's Anniversary" msgstr "" #: src/hd-data.c:848 msgid "Gospel Day" msgstr "" #: src/hd-data.c:849 msgid "Guacanaste Day" msgstr "" #: src/hd-data.c:850 msgid "Gustavus Adolphus' Day" msgstr "" #: src/hd-data.c:851 msgid "Heritage Day" msgstr "" #: src/hd-data.c:852 msgid "Heroes Day" msgstr "" #: src/hd-data.c:853 msgid "Hobart Show Day" msgstr "" #: src/hd-data.c:854 msgid "Holy Wednesday" msgstr "" #: src/hd-data.c:855 msgid "Ho Chi Minh's Birthday" msgstr "" #: src/hd-data.c:856 msgid "Human Rights Day" msgstr "" #: src/hd-data.c:857 msgid "Hurricane Supplication Day" msgstr "" #: src/hd-data.c:858 msgid "Hurricane Thanksgiving Day" msgstr "" #: src/hd-data.c:859 msgid "Independence of Cartagena" msgstr "" #: src/hd-data.c:860 msgid "Independence of Cuenca" msgstr "" #: src/hd-data.c:861 msgid "Independence of Guayaquil" msgstr "" #: src/hd-data.c:862 msgid "Independence of Quito" msgstr "" #: src/hd-data.c:863 msgid "Indian Arrival Day" msgstr "" #: src/hd-data.c:864 msgid "Internal Autonomy Day" msgstr "" #: src/hd-data.c:865 msgid "Jefferson Davis' Birthday" msgstr "" #: src/hd-data.c:866 msgid "June Holiday" msgstr "" #: src/hd-data.c:867 msgid "J. Barbosa's Birthday" msgstr "" #: src/hd-data.c:868 msgid "J. Chilembwe Day" msgstr "" #: src/hd-data.c:869 msgid "J. Diego's Birthday" msgstr "" #: src/hd-data.c:870 msgid "J. Robert's Birthday" msgstr "" #: src/hd-data.c:871 msgid "Kamarampaka Day" msgstr "" #: src/hd-data.c:872 msgid "Kartini Day" msgstr "" #: src/hd-data.c:873 msgid "Catherine Show Day" msgstr "" #: src/hd-data.c:874 msgid "Kiev Day" msgstr "" #: src/hd-data.c:875 msgid "Kim Il-Sung's Birthday" msgstr "" #: src/hd-data.c:876 msgid "Kim Jong-Il's Birthday" msgstr "" #: src/hd-data.c:877 msgid "King Kamehameha Day" msgstr "" #: src/hd-data.c:878 msgid "King Rama I Memorial Day/Chakri" msgstr "" #: src/hd-data.c:879 msgid "King Rama V Memorial Day" msgstr "" #: src/hd-data.c:880 msgid "Knabenschiessen" msgstr "" #: src/hd-data.c:881 msgid "Konstantin and Methodius" msgstr "" #: src/hd-data.c:882 msgid "Lapp National Holiday" msgstr "" #: src/hd-data.c:883 msgid "Launceston Cup Day" msgstr "" #: src/hd-data.c:884 msgid "Liberty Day" msgstr "" #: src/hd-data.c:885 msgid "Loss of Muslim Nation" msgstr "" #: src/hd-data.c:886 msgid "Luxembourg City Kermis" msgstr "" #: src/hd-data.c:887 msgid "Lyndon B. Johnson Day" msgstr "" #: src/hd-data.c:888 msgid "L. Rivera's Birthday" msgstr "" #: src/hd-data.c:889 msgid "Madaraka Day" msgstr "" #: src/hd-data.c:890 msgid "Mahatma Gandhi's Birthday" msgstr "" #: src/hd-data.c:891 msgid "Malvinas Day" msgstr "" #: src/hd-data.c:892 msgid "Manila Day" msgstr "" #: src/hd-data.c:893 msgid "Maputo City Day" msgstr "" #: src/hd-data.c:894 msgid "Marien Ngouabi Day" msgstr "" #: src/hd-data.c:895 msgid "Maryland Day" msgstr "" #: src/hd-data.c:896 msgid "Melbourne Cup Day" msgstr "" #: src/hd-data.c:897 msgid "Merchant Day" msgstr "" #: src/hd-data.c:898 msgid "St John's/Midsummers Eve" msgstr "" #: src/hd-data.c:899 msgid "Missionary Day" msgstr "" #: src/hd-data.c:900 msgid "Mi-Carême Day" msgstr "" #: src/hd-data.c:901 msgid "Morazan Day" msgstr "" #: src/hd-data.c:902 msgid "Mosheshoe's Day" msgstr "" #: src/hd-data.c:903 msgid "Motherhood and Beauty Day" msgstr "" #: src/hd-data.c:904 msgid "Naming Day" msgstr "" #: src/hd-data.c:905 msgid "National Bun Day" msgstr "" #: src/hd-data.c:906 msgid "National Heroes Day" msgstr "" #: src/hd-data.c:907 msgid "National Redemption Day" msgstr "" #: src/hd-data.c:908 msgid "National Resistance Day" msgstr "" #: src/hd-data.c:909 msgid "National Revival Day" msgstr "" #: src/hd-data.c:910 msgid "National Unity Day" msgstr "" #: src/hd-data.c:911 msgid "Ndadaye Day" msgstr "" #: src/hd-data.c:912 msgid "Neutrality Day" msgstr "" #: src/hd-data.c:913 msgid "Nevada Day" msgstr "" #: src/hd-data.c:914 msgid "New Regime Anniversary" msgstr "" #: src/hd-data.c:915 msgid "Nobel Day" msgstr "" #: src/hd-data.c:916 msgid "Noi Day" msgstr "" #: src/hd-data.c:917 msgid "OAU Day" msgstr "" #: src/hd-data.c:918 msgid "October Holiday" msgstr "" #: src/hd-data.c:919 msgid "Oil Industry Day" msgstr "" #: src/hd-data.c:920 msgid "Our Lady of Altagracia Day" msgstr "" #: src/hd-data.c:921 msgid "Our Lady of Camarin Day" msgstr "" #: src/hd-data.c:922 msgid "Our Lady of Las Mercedes Day" msgstr "" #: src/hd-data.c:923 msgid "Our Lady of Los Angeles Day" msgstr "" #: src/hd-data.c:924 msgid "Our Lady of Seven Sorrows" msgstr "" #: src/hd-data.c:925 msgid "Our Lady of Victories Day" msgstr "" #: src/hd-data.c:926 msgid "Panama City Day" msgstr "" #: src/hd-data.c:927 msgid "Panamerica Day" msgstr "" #: src/hd-data.c:928 msgid "Paris Peace Agreement Day" msgstr "" #: src/hd-data.c:929 msgid "Patriot's Day" msgstr "" #: src/hd-data.c:930 msgid "People's Uprising Day" msgstr "" #: src/hd-data.c:931 msgid "People Power Day" msgstr "" #: src/hd-data.c:932 msgid "Philippine-American Friendship" msgstr "" #: src/hd-data.c:933 msgid "Pichincha Day" msgstr "" #: src/hd-data.c:934 msgid "Picnic Day" msgstr "" #: src/hd-data.c:935 msgid "Pioneer Day" msgstr "" #: src/hd-data.c:936 msgid "Poya Day" msgstr "" #: src/hd-data.c:937 msgid "Prince Kalanianaole Day" msgstr "" #: src/hd-data.c:938 msgid "Prince of Wales' Birthday" msgstr "" #: src/hd-data.c:939 msgid "Proclamation Day" msgstr "" #: src/hd-data.c:940 msgid "Qaid-i-Azam's Birthday" msgstr "" #: src/hd-data.c:941 msgid "Ratu Sukuma Day" msgstr "" #: src/hd-data.c:942 msgid "Recreation Day" msgstr "" #: src/hd-data.c:943 msgid "Referendum Day" msgstr "" #: src/hd-data.c:944 msgid "Regatta Day" msgstr "" #: src/hd-data.c:945 msgid "Regency Exchange" msgstr "" #: src/hd-data.c:946 msgid "Restoration Day" msgstr "" #: src/hd-data.c:947 msgid "Return Day" msgstr "" #: src/hd-data.c:948 msgid "Reunification Day" msgstr "" #: src/hd-data.c:949 msgid "Rizal Day" msgstr "" #: src/hd-data.c:950 msgid "Rwagasore Day" msgstr "" #: src/hd-data.c:951 msgid "Saba Day" msgstr "" #: src/hd-data.c:952 msgid "San Jacinto Day" msgstr "" #: src/hd-data.c:953 msgid "San José Day" msgstr "" #: src/hd-data.c:954 msgid "SAR Establishment Day" msgstr "" #: src/hd-data.c:955 msgid "School Holiday" msgstr "" #: src/hd-data.c:956 msgid "Sechseläuten" msgstr "" #: src/hd-data.c:957 msgid "Separation Day" msgstr "" #: src/hd-data.c:958 msgid "Seretse Khama Day" msgstr "" #: src/hd-data.c:959 msgid "Settlers Day" msgstr "" #: src/hd-data.c:960 msgid "Seward's Day" msgstr "" #: src/hd-data.c:961 msgid "Shaheed Day" msgstr "" #: src/hd-data.c:962 msgid "Sheep Festival" msgstr "" #: src/hd-data.c:963 msgid "Sheikh Zayed's Ascension Day" msgstr "" #: src/hd-data.c:964 msgid "Simon Bolivar's Day" msgstr "" #: src/hd-data.c:965 msgid "Sinai-Liberation Day" msgstr "" #: src/hd-data.c:966 msgid "Slave-Liberation Day" msgstr "" #: src/hd-data.c:967 msgid "Sniff the Breeze Day" msgstr "" #: src/hd-data.c:968 msgid "Solidarity Day" msgstr "" #: src/hd-data.c:969 msgid "Somers Day" msgstr "" #: src/hd-data.c:970 msgid "Statia-American Day" msgstr "" #: src/hd-data.c:971 msgid "Student's Day" msgstr "" #: src/hd-data.c:972 msgid "St Agata Day" msgstr "" #: src/hd-data.c:973 msgid "St Canute's Day" msgstr "" #: src/hd-data.c:974 msgid "St Cedilia's Day" msgstr "" #: src/hd-data.c:975 msgid "St Charles' Day" msgstr "" #: src/hd-data.c:976 msgid "St Demetrius' Day" msgstr "" #: src/hd-data.c:977 msgid "St Dévote Day" msgstr "" #: src/hd-data.c:978 msgid "St Eliah's Day" msgstr "" #: src/hd-data.c:979 msgid "St Jean Baptiste Day" msgstr "" #: src/hd-data.c:980 msgid "St Lucia's Day" msgstr "" #: src/hd-data.c:981 msgid "St Marguerite's Day" msgstr "" #: src/hd-data.c:982 msgid "St Maroon's Day" msgstr "" #: src/hd-data.c:983 msgid "St Michael's Day" msgstr "" #: src/hd-data.c:984 msgid "St Olav's Day" msgstr "" #: src/hd-data.c:985 msgid "St Olav's Eve" msgstr "" #: src/hd-data.c:986 msgid "St Paul's Shipswreck" msgstr "" #: src/hd-data.c:987 msgid "St Rose of Lima" msgstr "" #: src/hd-data.c:988 msgid "St Ursula's Day" msgstr "" #: src/hd-data.c:989 msgid "St Vincent de Paul's Day" msgstr "" #: src/hd-data.c:990 msgid "Suez Victory Day" msgstr "" #: src/hd-data.c:991 msgid "Sultan Qaboos' Birthday" msgstr "" #: src/hd-data.c:992 msgid "Svetitskhovloba" msgstr "" #: src/hd-data.c:993 msgid "Sweden Day" msgstr "" #: src/hd-data.c:994 msgid "S. Doe's Birthday" msgstr "" #: src/hd-data.c:995 msgid "Tennant-Creek Show Day" msgstr "" #: src/hd-data.c:996 msgid "Territory Day" msgstr "" #: src/hd-data.c:997 msgid "The Crown Princesse's Birthday" msgstr "" #: src/hd-data.c:998 msgid "The Crown Princesse's Name-Day" msgstr "" #: src/hd-data.c:999 msgid "The Crown Prince's Birthday" msgstr "" #: src/hd-data.c:1000 msgid "The King's Name-Day" msgstr "" #: src/hd-data.c:1001 msgid "The Queen's Name-Day" msgstr "" #: src/hd-data.c:1002 msgid "Topou I Day" msgstr "" #: src/hd-data.c:1003 msgid "Town Meeting Day" msgstr "" #: src/hd-data.c:1004 msgid "Traditional Day" msgstr "" #: src/hd-data.c:1005 msgid "Transfer Day" msgstr "" #: src/hd-data.c:1006 msgid "Truman Day" msgstr "" #: src/hd-data.c:1007 msgid "Union Day" msgstr "" #: src/hd-data.c:1008 msgid "Union with Sweden dissolved" msgstr "" #: src/hd-data.c:1009 msgid "United Nations Day" msgstr "" #: src/hd-data.c:1010 msgid "Unity Factory Day" msgstr "" #: src/hd-data.c:1011 msgid "Victor-Schoelcher Day" msgstr "" #: src/hd-data.c:1012 msgid "Vidovdan" msgstr "" #: src/hd-data.c:1013 msgid "West Virginia Day" msgstr "" #: src/hd-data.c:1014 msgid "Whitsun Eve" msgstr "" #: src/hd-data.c:1015 msgid "W. Tubman's Birthday" msgstr "" #: src/hd-data.c:1016 msgid "Yap Day" msgstr "" #: src/hd-data.c:1017 msgid "Day of Czech Statehood" msgstr "" #: src/hd-data.c:1082 msgid "Zi/Rat" msgstr "" #: src/hd-data.c:1082 msgid "Chou/Ox" msgstr "" #: src/hd-data.c:1083 msgid "Yin/Tiger" msgstr "" #: src/hd-data.c:1083 msgid "Mao/Rabbit" msgstr "" #: src/hd-data.c:1084 msgid "Chen/Dragon" msgstr "" #: src/hd-data.c:1084 msgid "Si/Snake" msgstr "" #: src/hd-data.c:1085 msgid "Wu/Horse" msgstr "" #: src/hd-data.c:1085 msgid "Wei/Sheep" msgstr "" #: src/hd-data.c:1086 msgid "Shen/Monkey" msgstr "" #: src/hd-data.c:1086 msgid "You/Rooster" msgstr "" #: src/hd-data.c:1087 msgid "Xu/Dog" msgstr "" #: src/hd-data.c:1087 msgid "Hai/Pig" msgstr "" #: src/hd-data.c:1284 msgid "Ast" msgstr "" #: src/hd-data.c:1397 src/hd-data.c:1480 msgid "Bah" msgstr "" #: src/hd-data.c:1547 msgid "Cel" msgstr "" #: src/hd-data.c:1689 src/hd-data.c:2222 msgid "Chi" msgstr "" #: src/hd-data.c:1803 src/hd-data.c:2322 src/hd-data.c:3839 #, c-format msgid "Cannot calculate lunisolar calendar for %d correctly" msgstr "" #: src/hd-data.c:2224 src/hd-data.c:3727 msgid "Jap" msgstr "" #: src/hd-data.c:2420 msgid "Chr" msgstr "" #: src/hd-data.c:2654 src/hd-data.c:4171 msgid "FRR" msgstr "" #: src/hd-data.c:2775 src/hd-data.c:2957 msgid "Heb" msgstr "" #: src/hd-data.c:3187 src/hd-data.c:3616 msgid "Isl" msgstr "" #: src/hd-data.c:4241 src/hd-data.c:4336 msgid "AMO" msgstr "" #: src/hd-data.c:4262 src/hd-data.c:4334 msgid "EGO" msgstr "" #: src/hd-data.c:4444 msgid "OxN" msgstr "" #: src/hd-data.c:4446 msgid "OxO" msgstr "" #: src/hd-data.c:4647 src/hd-data.c:4776 msgid "Per" msgstr "" #: src/hd-data.c:4844 msgid "Zod" msgstr "" #: src/hd-use.c:928 msgid " day" msgstr "" #: src/hd-use.c:1973 src/hd-use.c:1978 src/hd-use.c:1982 src/hd-use.c:1989 #: src/hd-use.c:1993 src/hd-use.c:2089 src/hd-use.c:2273 msgid "Eternal holiday list" msgstr "" #: src/hd-use.c:1977 #, c-format msgid "%s:%*sThe year %0*d is A leap year" msgstr "" #: src/hd-use.c:1981 #, c-format msgid "%s:%*sThe year %0*d is NO leap year" msgstr "" #: src/hd-use.c:1988 #, c-format msgid "%s:%*sThe year %d is A leap year" msgstr "" #: src/hd-use.c:1992 #, c-format msgid "%s:%*sThe year %d is NO leap year" msgstr "" #: src/hd-use.c:2242 #, c-format msgid " = %+4d day" msgstr "" #: src/hd-use.c:2244 #, c-format msgid " = %+4d days" msgstr "" #: src/hd-use.c:2271 #, c-format msgid "%s%s contains %d maximum entries now!%s" msgstr "" #: src/help.c:64 #, c-format msgid "Compiled with %s%s for %s%s%s%s" msgstr "" #: src/help.c:74 msgid "# Day number (must be defined)" msgstr "" #: src/help.c:75 msgid "# Year number (must be defined)" msgstr "" #: src/help.c:76 msgid "# Weekday name (may be defined)" msgstr "" #: src/help.c:77 msgid "Month group (exactly one member must be defined):" msgstr "" #: src/help.c:78 msgid "# Month number" msgstr "" #: src/help.c:79 msgid "# Month name" msgstr "" #: src/help.c:80 msgid "Highlighting group (all members must be defined):" msgstr "" #: src/help.c:81 msgid "Start of highlighting sequence/marking character" msgstr "" #: src/help.c:83 msgid "End of highlighting sequence/marking character" msgstr "" #: src/help.c:85 msgid "Character replacement:" msgstr "" #: src/help.c:86 #, c-format msgid "Space/blank ('%c') character" msgstr "" #: src/help.c:87 #, c-format msgid "Underscore ('%c') character" msgstr "" #: src/help.c:88 #, c-format msgid "Percent ('%c') character" msgstr "" #: src/help.c:89 #, c-format msgid "Backslash ('%c') character" msgstr "" #: src/help.c:90 msgid "All format elements marked by # may optionally" msgstr "" #: src/help.c:91 msgid "contain a format instruction, which template is like:" msgstr "" #: src/help.c:92 msgid "[ALIGNMENT [SIGN] [ZERO] WIDTH [STYLE] [SUFFIX] FORMAT]" msgstr "" #: src/help.c:93 msgid "ALIGNMENT group (exactly one member must be defined):" msgstr "" #: src/help.c:94 msgid "Field contents placed at the left margin using width WIDTH" msgstr "" #: src/help.c:96 msgid "Field contents placed in centered manner using width WIDTH" msgstr "" #: src/help.c:98 msgid "Field contents placed at the right margin using width WIDTH" msgstr "" #: src/help.c:100 msgid "SIGN (may be defined):" msgstr "" #: src/help.c:101 msgid "Numerical value is provided with leading sign" msgstr "" #: src/help.c:102 msgid "ZERO (may be defined):" msgstr "" #: src/help.c:103 msgid "Numerical value is filled with leading zero(es)" msgstr "" #: src/help.c:104 msgid "WIDTH (must be defined):" msgstr "" #: src/help.c:105 #, c-format msgid "Field has the width N (%d...%d)" msgstr "" #: src/help.c:106 msgid "STYLE group (exactly one member may be defined):" msgstr "" #: src/help.c:107 msgid "Field contents is converted to upper-case letters" msgstr "" #: src/help.c:108 msgid "Field contents is converted to lower-case letters" msgstr "" #: src/help.c:109 msgid "Field contents is converted to capitalized words" msgstr "" #: src/help.c:110 msgid "SUFFIX (may be defined):" msgstr "" #: src/help.c:111 msgid "Numerical value is provided with an ordinal number suffix" msgstr "" #: src/help.c:113 msgid "FORMAT group (exactly one member must be defined):" msgstr "" #: src/help.c:114 msgid "Field contents is not cut after position WIDTH" msgstr "" #: src/help.c:115 msgid "Field contents is cut after position WIDTH" msgstr "" #: src/help.c:129 msgid "legal holidays" msgstr "" #: src/help.c:130 msgid "holidays" msgstr "" #: src/help.c:131 msgid "Mondays" msgstr "" #: src/help.c:132 msgid "Tuesdays" msgstr "" #: src/help.c:133 msgid "Wednesdays" msgstr "" #: src/help.c:134 msgid "Thursdays" msgstr "" #: src/help.c:135 msgid "Fridays" msgstr "" #: src/help.c:136 msgid "Saturdays" msgstr "" #: src/help.c:137 msgid "Sundays" msgstr "" #: src/help.c:138 msgid "Mondays...Thursdays" msgstr "" #: src/help.c:139 msgid "Mondays...Fridays" msgstr "" #: src/help.c:169 #, c-format msgid "%s: Use `%s %s' with one of these arguments" msgstr "" #: src/help.c:242 msgid "OPTION" msgstr "" #: src/help.c:255 msgid " Display help text and quit program" msgstr "" #: src/help.c:272 msgid " Display extended help text and quit program" msgstr "" #: src/help.c:290 msgid " Display software license and quit program" msgstr "" #: src/help.c:301 msgid " Display version information and quit program" msgstr "" #: src/help.c:312 #, c-format msgid " Set EXIT status of program to %d on `%s' etc." msgstr "" #: src/help.c:325 #, c-format msgid " Create response file for the `%cFILE' option" msgstr "" #: src/help.c:329 #, c-format msgid " %-3s = Store arguments of command line in file %s" msgstr "" #: src/help.c:343 #, c-format msgid "" " Create shell script which contains the arguments of command line" msgstr "" #: src/help.c:345 #, c-format msgid " %-3s = File name of the shell script" msgstr "" #: src/help.c:359 msgid " Define global date variable(s) \"DVAR->a...d|f...s|u...|z\"" msgstr "" #: src/help.c:363 #, c-format msgid " %-3s = \"DVAR%s%s%s\" definitions separated by `%s' characters" msgstr "" #: src/help.c:368 #, c-format msgid "" " E.g. %sv a%s1127%sb%s054 Set `a' to Nov 27 and `b' to May 4" msgstr "" #: src/help.c:380 msgid " Export local date variables from file to file" msgstr "" #: src/help.c:392 #, c-format msgid " Define global text variable(s) \"TVAR->%ca...%cz\"" msgstr "" #: src/help.c:397 #, c-format msgid " %-3s = \"TVAR%sTEXT\" definitions separated by `%s' characters" msgstr "" #: src/help.c:402 #, c-format msgid "" " E.g. %sr %ca%sfoo%s%cb%sbar Set `%ca' to `foo' and `%cb' to " "`bar'" msgstr "" #: src/help.c:408 #, c-format msgid "" " = \"TVAR[%s|%c%s]COMMAND\" definitions separated by `%s' characters" msgstr "" #: src/help.c:413 #, c-format msgid "" " E.g. %sr %ca%sfoo Assign output of command `foo' to `%ca'" msgstr "" #: src/help.c:425 msgid " Export local text variables from file to file" msgstr "" #: src/help.c:437 src/help.c:467 #, c-format msgid "" " Display only those fixed dates, whose date is not excluded by %s" msgstr "" #: src/help.c:442 #, c-format msgid " %-3s = One or more of the following characters. If character" msgstr "" #: src/help.c:447 msgid " is a LOWER-CASE-LETTER, it means a non-exclusion!" msgstr "" #: src/help.c:451 #, c-format msgid " %c = Exclusion of all %s" msgstr "" #: src/help.c:472 #, c-format msgid " %-3s = List of `%c[DATE][%c[DATE]]' and/or `%c[DATE][%c[DATE]]'" msgstr "" #: src/help.c:476 #, c-format msgid " expressions separated by `%s' characters" msgstr "" #: src/help.c:489 #, c-format msgid " Display only those fixed dates, whose text is matched by %s" msgstr "" #: src/help.c:494 #, c-format msgid " %-3s = Any text respectively \"regular expression\" you like" msgstr "" #: src/help.c:507 #, c-format msgid " Ignore case distinctions if `%s' option is given" msgstr "" #: src/help.c:519 #, c-format msgid " Revert the sense of matching of the `%s' option" msgstr "" #: src/help.c:530 msgid " Display some debug information" msgstr "" #: src/help.c:538 #, c-format msgid "" " [%-3s] = internal Information if program internal maximums are reached" msgstr "" #: src/help.c:547 msgid "" " = handled Like `internal' and file names which are handled" msgstr "" #: src/help.c:555 msgid "" " = unhandled Like `internal' and file names which are unhandled" msgstr "" #: src/help.c:563 msgid " = all Like `handled' and `unhandled' together" msgstr "" #: src/help.c:571 msgid "" " = abort Like `all' and abort if file name can't be handled" msgstr "" #: src/help.c:581 msgid " Use special format for calendar sheet" msgstr "" #: src/help.c:584 msgid " [MOD] = - Use standard format for calendar sheet" msgstr "" #: src/help.c:595 msgid " Use leap year rule of Eastern Orthodox churches" msgstr "" #: src/help.c:605 msgid " Provide calendar sheet with week numbers" msgstr "" #: src/help.c:616 #, c-format msgid " Determine type of week numbers (actual: %s)" msgstr "" #: src/help.c:617 msgid "Standard" msgstr "" #: src/help.c:623 #, c-format msgid " %-3s = yes ISO-8601:1988 week numbers" msgstr "" #: src/help.c:630 msgid " = no Standard week numbers" msgstr "" #: src/help.c:641 msgid " Suppress output of calendar sheet explicitly" msgstr "" #: src/help.c:654 #, c-format msgid " Direct output through external `%s' pager" msgstr "" #: src/help.c:660 src/help.c:662 msgid " Direct output through simple internal pager" msgstr "" #: src/help.c:679 msgid " Disable highlighting of text, holiday resp., actual day" msgstr "" #: src/help.c:694 msgid " Forces highlighting sequences if output is redirected/piped" msgstr "" #: src/help.c:706 msgid "" " Set highlighting sequence pairs 1 (=actual day) and 2 (=holiday)" msgstr "" #: src/help.c:710 #, c-format msgid " %-3s = Highlighting sequence pairs separated by `%s' characters" msgstr "" #: src/help.c:715 #, c-format msgid "" " E.g. %sH \\x2%s\\xAE Use hex values 2 and AE for sequence 1" msgstr "" #: src/help.c:720 #, c-format msgid "" " E.g. %sH %s%s*%s* Use characters `*' and `*' for sequence 2" msgstr "" #: src/help.c:731 msgid " Modify format of year calendar" msgstr "" #: src/help.c:735 #, c-format msgid " %-3s = 1|2|3|4|6|12 Number of blocks (actual: %d)" msgstr "" #: src/help.c:747 msgid " Use consecutive day of year in calendar sheet" msgstr "" #: src/help.c:751 msgid " [MOD] = b Use both date notations (day of month+year)" msgstr "" #: src/help.c:763 msgid " Use consecutive day of year in eternal holiday list" msgstr "" #: src/help.c:767 src/help.c:783 msgid " [MOD] = b Use both date notations (day of month+year)" msgstr "" #: src/help.c:779 msgid " Use consecutive day of year in fixed date list" msgstr "" #: src/help.c:794 #, c-format msgid " Set starting day of week (actual: %s)" msgstr "" #: src/help.c:827 #, c-format msgid " Send output via `%s' program to user" msgstr "" #: src/help.c:856 msgid "UNKNOWN" msgstr "" #: src/help.c:859 #, c-format msgid " [%-3s] = Email address, otherwise eMail is send to user `%s'" msgstr "" #: src/help.c:877 #, c-format msgid " Display eternal holiday list (Year in range: %d...%d)" msgstr "" #: src/help.c:880 msgid " n = Legal days and memorial days" msgstr "" #: src/help.c:882 msgid " N = Legal days only" msgstr "" #: src/help.c:884 src/help.c:1630 #, c-format msgid " [MOD] = %s Descending sort order" msgstr "" #: src/help.c:896 msgid " Suppress leading blank line of eternal holiday list" msgstr "" #: src/help.c:906 msgid " Exclude title of eternal holiday list" msgstr "" #: src/help.c:918 msgid " Provide eternal holiday list with astronomical data" msgstr "" #: src/help.c:930 msgid " Provide eternal holiday list with Bahá'i calendar holidays" msgstr "" #: src/help.c:942 msgid " Provide eternal holiday list with Bahá'i calendar months" msgstr "" #: src/help.c:954 msgid " Provide eternal holiday list with Celtic calendar holidays" msgstr "" #: src/help.c:966 msgid "" " Provide eternal holiday list with Chinese flexible calendar " "holidays" msgstr "" #: src/help.c:978 msgid "" " Provide eternal holiday list with Chinese flexible calendar months" msgstr "" #: src/help.c:990 msgid " Provide eternal holiday list with Chinese calendar holidays" msgstr "" #: src/help.c:1002 msgid " Provide eternal holiday list with Chinese calendar months" msgstr "" #: src/help.c:1014 msgid "" " Provide eternal holiday list with Christian Western calendar " "holidays" msgstr "" #: src/help.c:1026 msgid " Provide eternal holiday list with Coptic calendar months" msgstr "" #: src/help.c:1038 msgid " Provide eternal holiday list with Ethiopic calendar months" msgstr "" #: src/help.c:1050 msgid "" " Provide eternal holiday list with French Revolutionary calendar " "months" msgstr "" #: src/help.c:1062 msgid " Provide eternal holiday list with Hebrew calendar holidays" msgstr "" #: src/help.c:1074 msgid " Provide eternal holiday list with Hebrew calendar months" msgstr "" #: src/help.c:1086 msgid "" " Provide eternal holiday list with Indian civil-calendar months" msgstr "" #: src/help.c:1098 msgid "" " Provide eternal holiday list with Islamic civil-calendar holidays" msgstr "" #: src/help.c:1110 msgid "" " Provide eternal holiday list with Islamic civil-calendar months" msgstr "" #: src/help.c:1122 msgid "" " Provide eternal holiday list with Japanese flexible calendar " "holidays" msgstr "" #: src/help.c:1134 msgid "" " Provide eternal holiday list with Japanese flexible calendar months" msgstr "" #: src/help.c:1146 msgid " Provide eternal holiday list with Japanese calendar holidays" msgstr "" #: src/help.c:1158 msgid " Provide eternal holiday list with Japanese calendar months" msgstr "" #: src/help.c:1171 msgid "" " Provide eternal holiday list with multicultural New Year holidays" msgstr "" #: src/help.c:1183 msgid " Provide eternal holiday list with Old-Armenic calendar months" msgstr "" #: src/help.c:1195 msgid " Provide eternal holiday list with Old-Egyptic calendar months" msgstr "" #: src/help.c:1207 msgid "" " Provide eternal holiday list with Orthodox new-calendar holidays" msgstr "" #: src/help.c:1219 msgid "" " Provide eternal holiday list with Orthodox old-calendar holidays" msgstr "" #: src/help.c:1231 msgid "" " Provide eternal holiday list with Persian Jalaali-calendar holidays" msgstr "" #: src/help.c:1243 msgid "" " Provide eternal holiday list with Persian Jalaali-calendar months" msgstr "" #: src/help.c:1255 msgid " Provide eternal holiday list with zodiacal marker data" msgstr "" #: src/help.c:1267 msgid " Provide eternal holiday list with country specific holidays" msgstr "" #: src/help.c:1271 #, c-format msgid " %-3s = Single country resp., territory code or a list of these," msgstr "" #: src/help.c:1276 #, c-format msgid "" " which are connected by `%s' characters. Countries/territories," msgstr "" #: src/help.c:1281 msgid " marked by # have an incomplete recording of holidays" msgstr "" #: src/help.c:1285 #, c-format msgid " %-*s = Holidays in %s" msgstr "" #: src/help.c:1306 msgid "" " Set reference value for rise/set time respectively shadow length" msgstr "" #: src/help.c:1310 #, c-format msgid " %-3s = Angular value respectively factor in range: %+.1f...%+.1f" msgstr "" #: src/help.c:1321 msgid " Set base data of Earth's atmosphere" msgstr "" #: src/help.c:1325 #, c-format msgid " %-3s = Air pressure and temperature separated by `%s' character" msgstr "" #: src/help.c:1328 #, c-format msgid " Air pressure in Millibar (actual: %.3f)" msgstr "" #: src/help.c:1333 #, c-format msgid " Air temperature in degrees Celsius (actual: %+.3f)" msgstr "" #: src/help.c:1343 msgid " Limit rise/set times of Sun to the day" msgstr "" #: src/help.c:1355 msgid " Represent astronomical times and data with utmost precision" msgstr "" #: src/help.c:1365 #, c-format msgid " Execute `%c%c[%s]' shell commands" msgstr "" #: src/help.c:1368 #, c-format msgid " and \"TVAR[%s|%c%s]COMMAND\" assignments" msgstr "" #: src/help.c:1380 msgid " Change base time of astronomical functions" msgstr "" #: src/help.c:1383 msgid " respectively, change cycle-starting time" msgstr "" #: src/help.c:1393 #, 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:1401 #, 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:1417 msgid " Change cycle-ending time" msgstr "" #: src/help.c:1421 #, 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:1435 msgid " Change cycle-timestep" msgstr "" #: src/help.c:1439 #, c-format msgid " %-3s = MMMM|HH%s[MM] Timestep value (actual: %02d%s%02d)" msgstr "" #: src/help.c:1452 msgid " Change base year of calendar" msgstr "" #: src/help.c:1456 #, c-format msgid " %-3s = [%s|%s]YYYY Year offset value (actual: %d)" msgstr "" #: src/help.c:1468 msgid " Set period of Gregorian Reformation" msgstr "" #: src/help.c:1470 #, c-format msgid " Actual respected period: %02d-%02d %s %0*d" msgstr "" #: src/help.c:1476 #, c-format msgid " %-*d%*s = Set period to: %02d-%02d %s %0*d" msgstr "" #: src/help.c:1484 #, c-format msgid " %-3s = %s%c%s%s%s%s%s%s Set period explicitly" msgstr "" #: src/help.c:1498 #, c-format msgid " Set order of date elements using the %s format text" msgstr "" #: src/help.c:1501 #, c-format msgid " Actual: (%s) `%s' (%s)" msgstr "" #: src/help.c:1503 msgid "self-defined" msgstr "" #: src/help.c:1508 #, c-format msgid " %-6s = Format is: `%s' (%s)" msgstr "" #: src/help.c:1516 #, c-format msgid " %-3s = Define individual format. Respected format elements are:" msgstr "" #: src/help.c:1559 msgid " Define translatable country specific special character pairs" msgstr "" #: src/help.c:1563 #, c-format msgid " %-3s = UPPER-CASE-LETTER\"\"LOWER-CASE-LETTER... definitions" msgstr "" #: src/help.c:1568 #, c-format msgid "" " E.g. a `%s%s%s%s%s%s%s%s' %-3s causes the correct conversion of" msgstr "" #: src/help.c:1573 msgid "" " the preceding special characters in an individual date format," msgstr "" #: src/help.c:1577 msgid "" " which has a STYLE format instruction component, and that, how" msgstr "" #: src/help.c:1581 msgid " they are used by the character set used in Germany" msgstr "" #: src/help.c:1590 #, c-format msgid "+++ FIXED DATES +++" msgstr "" #: src/help.c:1611 #, c-format msgid " Use standard resource file `.%s%s' for fixed date list" msgstr "" #: src/help.c:1616 #, c-format msgid " Use standard resource file `%s%s' for fixed date list" msgstr "" #: src/help.c:1620 src/help.c:2160 msgid " Implies period: Today" msgstr "" #: src/help.c:1624 msgid " c = Display only those dates, for which fixed dates exists" msgstr "" #: src/help.c:1628 msgid "" " C = Display those dates, for which fixed dates doesn't exist, too" msgstr "" #: src/help.c:1640 msgid "" " [MOD] = One or more of the following modifiers which are marked by #" msgstr "" #: src/help.c:1653 #, c-format msgid " %-3s = Heading/Title text used for fixed date list" msgstr "" #: src/help.c:1656 #, c-format msgid " Actual: `%s'" msgstr "" #: src/help.c:1669 msgid " # g[MOD] = Group fixed dates by day using text MOD" msgstr "" #: src/help.c:1681 msgid " 1. Representation of text" msgstr "" #: src/help.c:1693 msgid " = Set width of the biorhythm text graphics" msgstr "" #: src/help.c:1697 #, c-format msgid " %-3s = %d...%d Length of a single axis" msgstr "" #: src/help.c:1710 msgid " = Set height of the Moon phase text graphics" msgstr "" #: src/help.c:1714 #, c-format msgid " %-3s = %d...%d Total number of lines" msgstr "" #: src/help.c:1726 msgid " # a = Display origin of fixed date" msgstr "" #: src/help.c:1738 msgid " # A = Display using alternative list format" msgstr "" #: src/help.c:1750 msgid " # e = Include legal days and memorial days" msgstr "" #: src/help.c:1752 msgid " # E = Include legal days only" msgstr "" #: src/help.c:1762 msgid " # k = Display week number" msgstr "" #: src/help.c:1774 msgid " # o = Omit repeating date part of fixed dates" msgstr "" #: src/help.c:1786 msgid "" " # Q = Suppress leading blank line of fixed dates list" msgstr "" #: src/help.c:1798 msgid " # U = Suppress date part of fixed dates" msgstr "" #: src/help.c:1810 msgid " # J = Suppress text part of fixed dates" msgstr "" #: src/help.c:1822 msgid " # x = Exclude title of fixed date list" msgstr "" #: src/help.c:1834 msgid " # z = Display consecutive number of fixed date" msgstr "" #: src/help.c:1846 msgid "" " # Z = Display dates, for which fixed dates doesn't exist" msgstr "" #: src/help.c:1854 msgid " 2. Respected period" msgstr "" #: src/help.c:1866 msgid " = Manage `29-FEBRUARY' in non-leap years" msgstr "" #: src/help.c:1874 #, c-format msgid " %-3s = february Respect at `28-FEBRUARY'" msgstr "" #: src/help.c:1883 #, c-format msgid " %-3s = march Respect at `01-MARCH'" msgstr "" #: src/help.c:1896 msgid "" " # d = Include actual date if list of periods is " "generated" msgstr "" #: src/help.c:1908 msgid "" " # l = Generate list of periods instead of a single " "period" msgstr "" #: src/help.c:1924 msgid " # Nd = Single absolute day N" msgstr "" #: src/help.c:1926 #, c-format msgid " # %cdN = Single absolute day N" msgstr "" #: src/help.c:1931 msgid " # NMOD = Single day N relative to today" msgstr "" #: src/help.c:1933 #, c-format msgid " MOD = %s Forwards" msgstr "" #: src/help.c:1935 #, c-format msgid " = %s Backwards" msgstr "" #: src/help.c:1938 msgid " # Nw = Complete week N" msgstr "" #: src/help.c:1942 msgid "" " N = 0 1st week / last week of previous year" msgstr "" #: src/help.c:1946 msgid " N = 1...52 1st...52nd week (always)" msgstr "" #: src/help.c:1950 msgid " N = 53 53rd week (sometimes)" msgstr "" #: src/help.c:1952 msgid " N = 99 Last week" msgstr "" #: src/help.c:1955 #, c-format msgid " # %s%s = Single day %s of month %s" msgstr "" #: src/help.c:1961 #, c-format msgid " # %s%sN = Single N'th weekday %s of month %s" msgstr "" #: src/help.c:1966 #, c-format msgid " N = 1...4 1st...4th weekday %s (always)" msgstr "" #: src/help.c:1971 #, c-format msgid " N = 5 5th weekday %s (sometimes)" msgstr "" #: src/help.c:1975 #, c-format msgid " N = 9 Last weekday %s" msgstr "" #: src/help.c:1979 #, c-format msgid " # %cdN%s = Single N'th weekday %s" msgstr "" #: src/help.c:1984 #, c-format msgid " N = 1...51 1st...51st weekday %s (always)" msgstr "" #: src/help.c:1989 #, c-format msgid " N = 52|53 52|53rd weekday %s (sometimes)" msgstr "" #: src/help.c:1993 #, c-format msgid " N = 99 Last weekday %s" msgstr "" #: src/help.c:1998 #, c-format msgid " # %cwN%s = Single weekday %s of N'th week" msgstr "" #: src/help.c:2003 #, c-format msgid "" " N = 0 %s which isn't located in 1st week" msgstr "" #: src/help.c:2008 #, c-format msgid " N = 1...51 %s of 1st...51st week (always)" msgstr "" #: src/help.c:2013 #, c-format msgid " N = 52|53 %s of 52|53rd week (sometimes)" msgstr "" #: src/help.c:2017 #, c-format msgid " N = 99 %s of last week" msgstr "" #: src/help.c:2023 #, c-format msgid " # %c%c[[%s|%s]N] = Single day N relative to Easter Sunday" msgstr "" #: src/help.c:2029 #, c-format msgid "" " # %c%c[%s|%s]N%s = Single N'th weekday relative to Easter Sunday" msgstr "" #: src/help.c:2035 #, c-format msgid " # %c%c[[%s|%s]N] = Single day N relative to today's date" msgstr "" #: src/help.c:2041 #, c-format msgid "" " # %c%c[%s|%s]N%s = Single N'th weekday relative to today's date" msgstr "" #: src/help.c:2047 #, c-format msgid " # %c?[[%s|%s]N] = Single day N relative to date variable" msgstr "" #: src/help.c:2053 #, c-format msgid "" " # %c?[%s|%s]N%s = Single N'th weekday relative to date variable" msgstr "" #: src/help.c:2061 msgid " # t|T = List tomorrow" msgstr "" #: src/help.c:2078 msgid " # w|W[MOD] = List complete week" msgstr "" #: src/help.c:2082 #, c-format msgid "" " [MOD] = %s List tomorrow until ending day of week" msgstr "" #: src/help.c:2087 #, c-format msgid "" " = %s List yesterday until starting day of week" msgstr "" #: src/help.c:2107 msgid " # m|M[MOD] = List complete month" msgstr "" #: src/help.c:2111 #, c-format msgid "" " [MOD] = %s List tomorrow until ending day of month" msgstr "" #: src/help.c:2116 #, c-format msgid "" " = %s List yesterday until starting day of month" msgstr "" #: src/help.c:2136 msgid " # y|Y[MOD] = List complete year" msgstr "" #: src/help.c:2140 #, c-format msgid "" " [MOD] = %s List tomorrow until ending day of year" msgstr "" #: src/help.c:2145 #, c-format msgid "" " = %s List yesterday until starting day of year" msgstr "" #: src/help.c:2158 msgid " Use alternative file(s) instead of standard resource file" msgstr "" #: src/help.c:2164 msgid " f = Display only those dates, for which fixed dates exists" msgstr "" #: src/help.c:2168 msgid "" " F = Display those dates, for which fixed dates doesn't exist, too" msgstr "" #: src/help.c:2172 #, c-format msgid " %-3s = Single file or list of files connected by `%s' characters" msgstr "" #: src/help.c:2183 msgid " Define additional resource file line" msgstr "" #: src/help.c:2185 #, c-format msgid " %-3s = Any possible resource file line" msgstr "" #: src/help.c:2195 #, c-format msgid "%cDATE" msgstr "" #: src/help.c:2197 msgid "Use given `DATE' instead of today's date" msgstr "" #: src/help.c:2201 #, 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:2208 #, c-format msgid " %s%cwN[%s], month name[%s], weekday name[N] or %s" msgstr "" #: src/help.c:2217 #, c-format msgid "%cFILE" msgstr "" #: src/help.c:2219 msgid "Preload options and commands from `FILE'" msgstr "" #: src/help.c:2223 msgid "COMMAND" msgstr "" #: src/help.c:2225 #, c-format msgid "%s = Month in range: %d...%d" msgstr "" #: src/help.c:2230 #, c-format msgid " or: month name | %s | %s%s | %s%s | %s%s" msgstr "" #: src/help.c:2235 #, c-format msgid " List: %s[%s%s]%s...%s%s[%s%s]" msgstr "" #: src/help.c:2241 #, c-format msgid " Range: %s[%s%s]%s%s[%s%s] | %s%s%s%s%s | %s %s%s%s" msgstr "" #: src/help.c:2247 #, c-format msgid "%s%*s = Year in range: %d...%d" msgstr "" #: src/help.c:2251 #, c-format msgid " List: [%s%s]%s%s...%s[%s%s]%s" msgstr "" #: src/help.c:2256 #, c-format msgid " Range: [%s%s]%s%s[%s%s]%s | %s%s%s %s%s%s" msgstr "" #: src/help.c:2282 #, c-format msgid " %sh, %s Display this help text and quit program" msgstr "" #: src/help.c:2285 #, c-format msgid " %shh, %s Display extended help text and quit program" msgstr "" #: src/help.c:2289 #, c-format msgid " %sL, %s Display software license and quit program" msgstr "" #: src/help.c:2293 #, c-format msgid " %sV, %s Display version information and quit program" msgstr "" #: src/help.c:2301 #, c-format msgid " %sp, %s Direct output through external `%s' pager" msgstr "" #: src/help.c:2308 src/help.c:2313 #, c-format msgid " %sp, %s Direct output through simple internal pager" msgstr "" #: src/help.c:2338 msgid "This software doesn't claim completeness, correctness or usability." msgstr "" #: src/help.c:2342 msgid "On principle I will not be liable for ANY damages or losses (implicit" msgstr "" #: src/help.c:2346 msgid "or explicit), which result from using or handling my software." msgstr "" #: src/help.c:2350 msgid "If you use this software, you agree without any exception to this" msgstr "" #: src/help.c:2352 msgid "agreement, which binds you LEGALLY !!" msgstr "" #: src/help.c:2357 msgid "This program is free software; you can redistribute it and/or modify" msgstr "" #: src/help.c:2361 msgid "it under the terms of the `GNU General Public License' as published by" msgstr "" #: src/help.c:2365 msgid "the `Free Software Foundation'; either version 3, or (at your option)" msgstr "" #: src/help.c:2367 msgid "any later version." msgstr "" #: src/help.c:2372 msgid "You should have received a copy of the `GNU General Public License'" msgstr "" #: src/help.c:2374 msgid "along with this program; if not, write to the:" msgstr "" #: src/help.c:2423 #, c-format msgid "" "Usage: %s [%s|%s{[?|h|??|hh|L|V]|{%sHKNOR%sXb%sijn%sq%ssu%s}}] [[%s] [%s]]" msgstr "" #: src/help.c:2451 #, c-format msgid "Use `%s %s|[%s?]" msgstr "" #: src/help.c:2460 msgid "for more information." msgstr "" #: src/help.c:2564 src/tcal.c:197 src/txt2gcal.c:136 src/gcal2txt.c:136 #, c-format msgid "Email bug reports to <%s>" msgstr "" #: src/help.c:2566 #, c-format msgid "GNU gcal home page: <%s>" msgstr "" #: src/help.c:2568 #, c-format msgid "General help using GNU software: <%s>" msgstr "" #: src/help.c:2594 src/tcal.c:219 src/txt2gcal.c:158 src/gcal2txt.c:158 #, c-format msgid "This is free software; see the source for copying conditions." msgstr "" #: src/help.c:2598 src/tcal.c:222 src/txt2gcal.c:161 src/gcal2txt.c:161 #, c-format msgid "There is NO warranty, without even the implied warranty of" msgstr "" #: src/help.c:2600 src/tcal.c:224 src/txt2gcal.c:163 src/gcal2txt.c:163 #, c-format msgid "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." msgstr "" #: src/help.c:2616 #, c-format msgid "%s: The Gregorian calendar program (GNU cal) %s" msgstr "" #: src/help.c:2624 #, c-format msgid "Usage: %s [[OPTION...] [%cDATE] [%cFILE...]] [COMMAND]" msgstr "" #: src/help.c:2627 #, c-format msgid "Usage: %s [[OPTION...] [%cFILE...]] [COMMAND]" msgstr "" #: src/help.c:2703 src/help.c:2849 msgid " 4.0 or 4.02" msgstr "" #: src/help.c:2711 src/help.c:2857 msgid " later than 5.0" msgstr "" #: src/help.c:2722 src/help.c:2864 msgid "++ 3.0 or later" msgstr "" #: src/help.c:2749 src/help.c:2970 msgid "5.1 or earlier" msgstr "" #: src/help.c:2752 src/help.c:2973 src/help.c:3128 src/help.c:3198 msgid "unknown compiler" msgstr "" #: src/help.c:2787 src/help.c:2876 src/help.c:3010 src/help.c:3032 #: src/help.c:3101 src/help.c:3138 src/help.c:3156 src/help.c:3213 #: src/help.c:3428 msgid " on " msgstr "" #: src/help.c:2826 msgid "(bad version)" msgstr "" #: src/help.c:2873 msgid "unknown compiler (SDK?)" msgstr "" #: src/help.c:2941 msgid " later than 4.5" msgstr "" #: src/help.c:2951 msgid "++ 1.0 or later" msgstr "" #: src/help.c:2959 msgid " 1.0 or 1.5?" msgstr "" #: src/help.c:3074 msgid "unknown " msgstr "" #: src/help.c:3086 #, c-format msgid "version %d.%d" msgstr "" #: src/help.c:3089 src/help.c:3122 src/help.c:3248 #, c-format msgid "version %d" msgstr "" #: src/help.c:3091 #, c-format msgid "unknown version" msgstr "" #: src/help.c:3205 #, c-format msgid " (%.4s for Alpha)" msgstr "" #: src/help.c:3208 #, c-format msgid " (%.4s for VAX)" msgstr "" #: src/help.c:3359 msgid " (NetBSD before 0.9)" msgstr "" #: src/help.c:3359 msgid " (NetBSD 1.2 or later)" msgstr "" #: src/help.c:3366 msgid " (FreeBSD 2.0 or later)" msgstr "" #: src/help.c:3369 msgid " (BSD/386 1.1 or later)" msgstr "" #: src/print.c:544 src/print.c:978 src/print.c:1033 msgid "CW" msgstr "" #: src/print.c:565 msgid "Week" msgstr "" #: src/rc-insert.c:1706 src/rc-insert.c:2824 msgid "pm" msgstr "" #: src/rc-insert.c:1715 src/rc-insert.c:2833 msgid "am" msgstr "" #: src/rc-insert.c:2018 src/rc-insert.c:2028 msgid "d'\"" msgstr "" #: src/rc-insert.c:2038 msgid "h'\"" msgstr "" #: src/rc-insert.c:3728 src/rc-utils.c:2585 #, c-format msgid "" "Cannot execute command in file `%s'\n" "Line: %ld %s" msgstr "" #: src/rc-insert.c:3750 src/rc-utils.c:2609 #, c-format msgid "" "Command executed (exit code=%d) in file `%s'\n" "Line %ld: %s" msgstr "" #: src/rc-use.c:513 msgid "Emo" msgstr "" #: src/rc-use.c:518 msgid "Int" msgstr "" #: src/rc-use.c:523 msgid "Phy" msgstr "" #: src/rc-use.c:1086 src/rc-use.c:1177 msgid "`Eternal holiday list'" msgstr "" #: src/rc-use.c:1877 src/rc-use.c:1926 src/rc-use.c:2015 src/rc-use.c:2107 msgid "`Internal'" msgstr "" #: src/rc-use.c:2339 #, c-format msgid " ; Week %s" msgstr "" #: src/rc-use.c:2348 #, c-format msgid "Week %s" msgstr "" #: src/rc-utils.c:397 src/rc-utils.c:414 #, c-format msgid "" "%s: invalid date given -- %s\n" "%s\n" "%s\n" msgstr "" #: src/rc-utils.c:3269 #, c-format msgid "Leap-day set to `%02d-%s' in file `%s'." msgstr "" #: src/rc-utils.c:3272 src/rc-utils.c:3686 #, c-format msgid "Line %ld: %s" msgstr "" #: src/rc-utils.c:3633 src/utils.c:274 #, c-format msgid "%s: abort, " msgstr "" #: src/rc-utils.c:3641 #, c-format msgid "illegal variable definition in file `%s'" msgstr "" #: src/rc-utils.c:3643 #, c-format msgid "illegal definition of variable `%c'" msgstr "" #: src/rc-utils.c:3650 #, c-format msgid "illegal variable operation in file `%s'" msgstr "" #: src/rc-utils.c:3652 #, c-format msgid "illegal operation on variable `%c'" msgstr "" #: src/rc-utils.c:3658 #, c-format msgid "variable `%c' undefined in file `%s'" msgstr "" #: src/rc-utils.c:3662 #, c-format msgid "invalid value assigned to variable `%c' in file `%s'" msgstr "" #: src/rc-utils.c:3683 #, c-format msgid "Invalid argument in command line given -- %s" msgstr "" #: src/rc-utils.c:3695 #, c-format msgid "Argument `%s' of command line ignored." msgstr "" #: src/rc-utils.c:3698 #, c-format msgid "Line %ld ignored: %s" msgstr "" #: src/tty.c:424 #, c-format msgid "%s: for more, <%s> to quit..." msgstr "" #: src/tty.c:1019 #, c-format msgid "environment variable `%s' not found" msgstr "" #: src/tty.c:1026 #, c-format msgid "environment variable `%s' not set" msgstr "" #: src/tty.c:1066 msgid "`termcap' file not found" msgstr "" #: src/tty.c:1071 #, c-format msgid "unknown terminal type defined in `%s'" msgstr "" #: src/tty.c:1080 #, c-format msgid "" "\n" "%s: warning, %s.\n" "\n" msgstr "" #: src/utils.c:280 #, c-format msgid "" "invalid year for computing Easter Sundays date\n" "Year must be in range (%d...%d)" msgstr "" #: src/utils.c:284 src/tcal.c:324 src/txt2gcal.c:263 src/gcal2txt.c:263 #, c-format msgid "`%s' line %ld: virtual memory exhausted (%s=%d)" msgstr "" #: src/utils.c:289 #, c-format msgid "" "invalid date part in file `%s'\n" "Line %ld: %s" msgstr "" #: src/utils.c:294 #, c-format msgid "" "invalid month field(%02d) in file `%s'\n" "Line %ld: %s" msgstr "" #: src/utils.c:299 #, c-format msgid "" "invalid day field(%02d) in file `%s'\n" "Line %ld: %s" msgstr "" #: src/utils.c:303 #, c-format msgid "" "malformed %s in file `%s'\n" "Line %ld: %s" msgstr "" #: src/utils.c:308 #, c-format msgid "" "invalid recursive/cyclic %s in file `%s'\n" "Line %ld: %s" msgstr "" #: src/utils.c:312 #, c-format msgid "file `%s' not found" msgstr "" #: src/utils.c:316 #, c-format msgid "" "invalid N'th weekday field(%d) in file `%s'\n" "Line %ld: %s" msgstr "" #: src/utils.c:322 #, c-format msgid "" "missing `whitespace' character after date part in file `%s'\n" "Line %ld: %s" msgstr "" #: src/utils.c:327 #, c-format msgid "" "file `%s' can't be written\n" "Storage media full!" msgstr "" #: src/utils.c:332 #, c-format msgid "sending eMail to <%s> failed" msgstr "" #: src/utils.c:334 src/utils.c:352 #, c-format msgid "" "\n" "`%s' line %ld: " msgstr "" #: src/utils.c:341 #, c-format msgid "`%s' line %ld: (`%s') `%s%d' failed" msgstr "" #: src/utils.c:350 #, c-format msgid "read error in file `%s'" msgstr "" #: src/utils.c:358 #, c-format msgid "" "illegal character in response file `%s'\n" "Line %ld: %s" msgstr "" #: src/utils.c:364 src/tcal.c:330 src/txt2gcal.c:269 src/gcal2txt.c:269 #, c-format msgid "`%s' line %ld: (`%s') invalid value for table size `sizeof %s>%d'" msgstr "" #: src/utils.c:369 #, c-format msgid "(`%s') date format `%s' is invalid" msgstr "" #: src/utils.c:375 #, c-format msgid "%s in search pattern `%s'" msgstr "" #: src/utils.c:378 #, c-format msgid "invalid search pattern `%s' specified" msgstr "" #: src/utils.c:383 src/tcal.c:338 src/txt2gcal.c:274 src/gcal2txt.c:274 #, c-format msgid "`%s' line %ld: (`%s') unmanaged error (%d)" msgstr "" #: src/utils.c:403 src/tcal.c:358 src/txt2gcal.c:294 src/gcal2txt.c:294 #, c-format msgid "" "\n" "%s: program aborted by signal %d\n" msgstr "" #: src/utils.c:1080 msgid "th" msgstr "" #: src/utils.c:1084 msgid "st" msgstr "" #: src/utils.c:1088 msgid "nd" msgstr "" #: src/utils.c:1092 msgid "rd" msgstr "" #: src/utils.c:1123 src/utils.c:1174 src/utils.c:1225 msgid "invalid day" msgstr "" #: src/utils.c:1128 msgid "Mon" msgstr "" #: src/utils.c:1133 msgid "Tue" msgstr "" #: src/utils.c:1138 msgid "Wed" msgstr "" #: src/utils.c:1143 msgid "Thu" msgstr "" #: src/utils.c:1148 msgid "Fri" msgstr "" #: src/utils.c:1153 msgid "Sat" msgstr "" #: src/utils.c:1158 msgid "Sun" msgstr "" #: src/utils.c:1179 msgid "Mo" msgstr "" #: src/utils.c:1184 msgid "Tu" msgstr "" #: src/utils.c:1189 msgid "We" msgstr "" #: src/utils.c:1194 msgid "Th" msgstr "" #: src/utils.c:1199 msgid "Fr" msgstr "" #: src/utils.c:1204 msgid "Sa" msgstr "" #: src/utils.c:1209 msgid "Su" msgstr "" #: src/utils.c:1226 msgid "Monday" msgstr "" #: src/utils.c:1226 msgid "Tuesday" msgstr "" #: src/utils.c:1226 msgid "Wednesday" msgstr "" #: src/utils.c:1226 msgid "Thursday" msgstr "" #: src/utils.c:1227 msgid "Friday" msgstr "" #: src/utils.c:1227 msgid "Saturday" msgstr "" #: src/utils.c:1227 msgid "Sunday" msgstr "" #: src/utils.c:1243 src/utils.c:1320 msgid "invalid month" msgstr "" #: src/utils.c:1248 msgid "Jan" msgstr "" #: src/utils.c:1253 msgid "Feb" msgstr "" #: src/utils.c:1258 msgid "Mar" msgstr "" #: src/utils.c:1263 msgid "Apr" msgstr "" #: src/utils.c:1268 msgid "May" msgstr "" #: src/utils.c:1273 msgid "Jun" msgstr "" #: src/utils.c:1278 msgid "Jul" msgstr "" #: src/utils.c:1283 msgid "Aug" msgstr "" #: src/utils.c:1288 msgid "Sep" msgstr "" #: src/utils.c:1293 msgid "Oct" msgstr "" #: src/utils.c:1298 msgid "Nov" msgstr "" #: src/utils.c:1303 msgid "Dec" msgstr "" #: src/utils.c:1321 msgid "January" msgstr "" #: src/utils.c:1321 msgid "February" msgstr "" #: src/utils.c:1322 msgid "March" msgstr "" #: src/utils.c:1322 msgid "April" msgstr "" #: src/utils.c:1332 msgid "May " msgstr "" #: src/utils.c:1333 msgid "June" msgstr "" #: src/utils.c:1333 msgid "July" msgstr "" #: src/utils.c:1334 msgid "August" msgstr "" #: src/utils.c:1334 msgid "September" msgstr "" #: src/utils.c:1335 msgid "October" msgstr "" #: src/utils.c:1335 msgid "November" msgstr "" #: src/utils.c:1335 msgid "December" msgstr "" #: src/tcal.c:191 #, c-format msgid "Usage: %s [--%s | --%s] | [--%s=[+|-]NUMBER] [ARGUMENT...]\n" msgstr "" #: src/tcal.c:320 src/txt2gcal.c:259 src/gcal2txt.c:259 #, c-format msgid "" "\n" "%s: abort, " msgstr "" #: src/tcal.c:335 #, c-format msgid "shift value `%s' is invalid" msgstr "" #: src/tcal.c:907 #, c-format msgid "%s: option `--%s' requires an argument" msgstr "" #: src/tcal.c:1071 #, c-format msgid "%s: error during program execution of `%s'\n" msgstr "" #: src/txt2gcal.c:131 #, c-format msgid "Usage: %s [--%s | --%s] | [TEXT-FILE | -] [DATE-PART]\n" msgstr "" #: src/txt2gcal.c:755 src/gcal2txt.c:754 #, c-format msgid "%s: no regular file\n" msgstr "" #: src/txt2gcal.c:760 src/gcal2txt.c:759 #, c-format msgid "%s: file not found\n" msgstr "" #: src/gcal2txt.c:131 #, c-format msgid "Usage: %s [--%s | --%s] | [RESOURCE-FILE | -]\n" msgstr "" gcal-3.6.3/po/nl.po0000644000175000017500000033147512125376134010762 00000000000000# Translation of gcal-3.00.po to Dutch # translation of gcal-3.00 to Dutch # Copyright (C) 2000 Thomas Esken (msgids) # Copyright (C) 1996, 2008 Free Software Foundation, Inc. # This file is distributed under the same license as the gcal package. # # Erick Branderhorst , 1996. # Mark Haanen , 2008. msgid "" msgstr "" "Project-Id-Version: gcal-3.00\n" "Report-Msgid-Bugs-To: bug-gcal@gnu.org\n" "POT-Creation-Date: 2013-03-29 21:40+0100\n" "PO-Revision-Date: 2008-06-12 20:29+0200\n" "Last-Translator: Mark Haanen \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-Generator: KBabel 1.11.4\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: src/file-io.c:1561 #, c-format msgid "Try to write %s `%s'... %s%s%s" msgstr "Probeer %s '%s' te schrijven... %s%s%s" #: src/file-io.c:1564 src/file-io.c:1689 src/file-io.c:1702 msgid "failed" msgstr "mislukt" #: src/file-io.c:1564 src/file-io.c:1689 src/file-io.c:1702 msgid "success" msgstr "gelukt" #: src/file-io.c:1684 #, 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:1685 msgid " `HERE' " msgstr " 'HIER' " #: src/file-io.c:1697 #, 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:352 src/gcal.c:523 src/gcal.c:2028 msgid "ARG" msgstr "ARG" #: src/gcal.c:1080 src/hd-data.c:69 msgid "Germany" msgstr "Duitsland" #: src/gcal.c:1081 msgid "U.S.A." msgstr "V.S." #: src/gcal.c:1082 src/hd-data.c:72 msgid "Great Britain" msgstr "Groot-Brittannië" #: src/gcal.c:1858 msgid "default" msgstr "standaard" #: src/gcal.c:1957 msgid ":" msgstr ":" #: src/gcal.c:1967 msgid "Y" msgstr "J" #: src/gcal.c:1972 msgid "M" msgstr "M" #: src/gcal.c:1977 msgid "W" msgstr "W" #: src/gcal.c:1982 msgid "D" msgstr "D" #: src/gcal.c:2073 msgid "Fixed date list:" msgstr "" #: src/gcal.c:2090 src/gcal.c:2105 msgid "environment variable" msgstr "omgevingsvariabele" #: src/gcal.c:2274 #, 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:2461 src/gcal.c:2489 src/gcal.c:6232 src/rc-use.c:1828 #: src/rc-use.c:1888 src/rc-use.c:1937 src/rc-use.c:2207 src/rc-utils.c:390 #: src/rc-utils.c:411 src/utils.c:342 src/utils.c:365 src/utils.c:384 #: src/utils.c:679 src/tcal.c:331 src/tcal.c:339 src/txt2gcal.c:270 #: src/txt2gcal.c:275 src/gcal2txt.c:270 src/gcal2txt.c:275 msgid "Internal" msgstr "Intern" #: src/gcal.c:2870 msgid "response file" msgstr "antwoordbestand" #: src/gcal.c:2870 src/gcal.c:2878 msgid "Created" msgstr "Aangemaakt" #: src/gcal.c:2878 msgid "shell script" msgstr "" #: src/gcal.c:3089 #, 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:3141 #, 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:4951 src/gcal.c:4984 msgid "command line" msgstr "commandoregel" #: src/gcal.c:5901 #, c-format msgid "%s: option `%s' is ambiguous" msgstr "%s: optie '%s' is dubbelzinnig" #: src/gcal.c:5906 src/tcal.c:895 src/txt2gcal.c:716 src/gcal2txt.c:715 #, c-format msgid "%s: unrecognized option `%s'" msgstr "%s: niet herkende optie '%s'" #: src/gcal.c:5909 #, c-format msgid "%s: invalid option -- %s" msgstr "%s: ongeldige optie -- %s" #: src/gcal.c:5916 #, 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' doesn't allow an argument" msgstr "%s: optie '%s' staat geen argument toe" #: src/gcal.c:5927 #, c-format msgid "%s: option `%s' requires an argument" msgstr "%s: optie '%s' vereist een argument" #: src/gcal.c:5931 #, c-format msgid "%s: option requires an argument -- %s" msgstr "%s: optie vereist een argument -- %s" #: src/gcal.c:5936 src/tcal.c:941 #, c-format msgid "%s: option with invalid argument -- %s" msgstr "%s: optie met ongeldig argument -- %s" #: src/gcal.c:5941 #, c-format msgid "%s: option with ambiguous argument -- %s" msgstr "%s: optie met dubbelzinnig argument -- %s" #: src/gcal.c:6001 #, 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:63 msgid "Australia" msgstr "Australië" #: src/hd-data.c:64 src/hd-data.c:112 msgid "Belgium" msgstr "België" #: src/hd-data.c:65 src/hd-data.c:121 msgid "Brazil" msgstr "Brazilië" #: src/hd-data.c:66 msgid "Canada" msgstr "Canada" #: src/hd-data.c:67 msgid "Switzerland" msgstr "Zwitserland" #: src/hd-data.c:68 src/hd-data.c:174 msgid "China" msgstr "China" #: src/hd-data.c:70 src/hd-data.c:208 msgid "Spain" msgstr "Spanje" #: src/hd-data.c:71 src/hd-data.c:215 msgid "France" msgstr "Frankrijk" #: src/hd-data.c:73 src/hd-data.c:244 msgid "Israel" msgstr "Israël" #: src/hd-data.c:74 src/hd-data.c:249 msgid "Italy" msgstr "Italië" #: src/hd-data.c:75 src/hd-data.c:252 msgid "Japan" msgstr "Japan" #: src/hd-data.c:76 src/hd-data.c:260 msgid "Republic of Korea" msgstr "Zuid-Korea" #: src/hd-data.c:77 src/hd-data.c:292 msgid "Mexico" msgstr "Mexico" #: src/hd-data.c:78 src/hd-data.c:301 msgid "Netherlands" msgstr "Nederland" #: src/hd-data.c:79 src/hd-data.c:307 msgid "New Zealand" msgstr "Nieuw-Zeeland" #: src/hd-data.c:80 src/hd-data.c:319 msgid "Portugal" msgstr "Portugal" #: src/hd-data.c:81 src/hd-data.c:325 msgid "Russian Federation" msgstr "Rusland" #: src/hd-data.c:82 msgid "United States" msgstr "Verenigde Staten" #: src/hd-data.c:84 msgid "Andorra" msgstr "Andorra" #: src/hd-data.c:85 msgid "United Arab Emirates" msgstr "Verenigde Arabische Emiraten" #: src/hd-data.c:86 msgid "Afghanistan" msgstr "Afghanistan" #: src/hd-data.c:87 msgid "Antigua and Barbuda" msgstr "Antigua-en-Barbuda" #: src/hd-data.c:88 msgid "Anguilla" msgstr "Anguilla" #: src/hd-data.c:89 msgid "Albania" msgstr "Albanië" #: src/hd-data.c:90 msgid "Armenia" msgstr "Armenië" #: src/hd-data.c:91 msgid "Netherlands Antilles/Bonaire" msgstr "Nederlandse Antillen/Bonaire" #: src/hd-data.c:92 msgid "Netherlands Antilles/Curaçao" msgstr "Nederlandse Antillen/Curaçao" #: src/hd-data.c:93 msgid "Netherlands Antilles/St Maarten" msgstr "Nederlandse Antillen/Sint-Maarten" #: src/hd-data.c:94 msgid "Netherlands Antilles/Saba and Statia" msgstr "Nederlandse Antillen/Saba en Sint-Eustatius" #: src/hd-data.c:95 msgid "Angola #" msgstr "Angola #" #: src/hd-data.c:96 msgid "Argentina" msgstr "Argentinië" #: src/hd-data.c:97 msgid "American Samoa" msgstr "Amerikaans Samoa" #: src/hd-data.c:98 msgid "Austria" msgstr "Oostenrijk" #: src/hd-data.c:99 msgid "Australia/Canberra" msgstr "Australië/Canberra" #: src/hd-data.c:100 msgid "Australia/Northern Territory" msgstr "Australië/Noordelijk Territorium" #: src/hd-data.c:101 msgid "Australia/Queensland" msgstr "Australië/Queensland" #: src/hd-data.c:102 msgid "Australia/Southern Australia" msgstr "Australië/Zuid-Australië" #: src/hd-data.c:103 msgid "Australia/New South Wales" msgstr "Australië/Nieuw-Zuid-Wales" #: src/hd-data.c:104 msgid "Australia/Tasmania" msgstr "Australië/Tasmanië" #: src/hd-data.c:105 msgid "Australia/Victoria" msgstr "Australië/Victoria" #: src/hd-data.c:106 msgid "Australia/Western Australia" msgstr "Australië/West-Australië" #: src/hd-data.c:107 msgid "Aruba" msgstr "Aruba" #: src/hd-data.c:108 msgid "Azerbaijan" msgstr "Azerbeidzjan" #: src/hd-data.c:109 msgid "Bosnia-Herzegovina" msgstr "Bosnië-Herzegovina" #: src/hd-data.c:110 msgid "Barbados" msgstr "Barbados" #: src/hd-data.c:111 msgid "Bangladesh #" msgstr "Bangladesh #" #: src/hd-data.c:113 msgid "Burkina Faso" msgstr "Burkina Faso" #: src/hd-data.c:114 msgid "Bulgaria" msgstr "Bulgarije" #: src/hd-data.c:115 msgid "Bahrain" msgstr "Bahrein" #: src/hd-data.c:116 msgid "Burundi #" msgstr "Burundi #" #: src/hd-data.c:117 msgid "Benin #" msgstr "Benin #" #: src/hd-data.c:118 msgid "Bermuda" msgstr "Bermuda" #: src/hd-data.c:119 msgid "Brunei" msgstr "" #: src/hd-data.c:120 msgid "Bolivia" msgstr "Bolivia" #: src/hd-data.c:122 msgid "Bahamas" msgstr "Bahamas" #: src/hd-data.c:123 msgid "Bhutan #" msgstr "Bhutan #" #: src/hd-data.c:124 msgid "Bouvet Island" msgstr "Bouvet" #: src/hd-data.c:125 msgid "Botswana" msgstr "Botswana" #: src/hd-data.c:126 msgid "Belarus" msgstr "Wit-Rusland" #: src/hd-data.c:127 msgid "Belize" msgstr "Belize" #: src/hd-data.c:128 msgid "Canada/Alberta" msgstr "Canada/Alberta" #: src/hd-data.c:129 msgid "Canada/British Columbia" msgstr "Canada/Brits-Columbia" #: src/hd-data.c:130 msgid "Canada/Manitoba" msgstr "Canada/Manitoba" #: src/hd-data.c:131 msgid "Canada/New Brunswick" msgstr "Canada/New Brunswick" #: src/hd-data.c:132 msgid "Canada/Newfoundland and Labrador" msgstr "Canada/Newfoundland en Labrador" #: src/hd-data.c:133 msgid "Canada/Nova Scotia" msgstr "Canada/Nova Scotia" #: src/hd-data.c:134 msgid "Canada/Nordwest Territories" msgstr "Canada/Northwest Territories" #: src/hd-data.c:135 msgid "Canada/Ontario" msgstr "Canada/Ontario" #: src/hd-data.c:136 msgid "Canada/Prince Edward Island" msgstr "Canada/Prins Edwardeiland" #: src/hd-data.c:137 msgid "Canada/Québec" msgstr "Canada/Québec" #: src/hd-data.c:138 msgid "Canada/Saskatchewan" msgstr "Canada/Saskatchewan" #: src/hd-data.c:139 msgid "Canada/Yukon" msgstr "Canada/Yukon" #: src/hd-data.c:140 msgid "Cocos Islands (Keeling)" msgstr "Cocoseilanden" #: src/hd-data.c:141 msgid "Democratic Republic of Congo #" msgstr "Congo-Kinshasa #" #: src/hd-data.c:142 msgid "Central African Republic #" msgstr "Centraal-Afrikaanse Republiek #" #: src/hd-data.c:143 msgid "Republic of Congo #" msgstr "Congo-Brazzaville #" #: src/hd-data.c:144 msgid "Switzerland/Aargau" msgstr "Zwitserland/Aargau" #: src/hd-data.c:145 msgid "Switzerland/Appenzell Innerrhoden" msgstr "Zwitserland/Appenzell Innerrhoden" #: src/hd-data.c:146 msgid "Switzerland/Appenzell Ausserrhoden" msgstr "Zwitserland/Appenzell Ausserrhoden" #: src/hd-data.c:147 msgid "Switzerland/Bern" msgstr "Zwitserland/Bern" #: src/hd-data.c:148 msgid "Switzerland/Basel-Land" msgstr "Zwitserland/Bazel-Landschap" #: src/hd-data.c:149 msgid "Switzerland/Basel-Stadt" msgstr "Zwitserland/Basel-Stad" #: src/hd-data.c:150 msgid "Switzerland/Fribourg" msgstr "Zwitserland/Fribourg" #: src/hd-data.c:151 msgid "Switzerland/Genève" msgstr "Zwitserland/Genève" #: src/hd-data.c:152 msgid "Switzerland/Glarus" msgstr "Zwitserland/Glarus" #: src/hd-data.c:153 msgid "Switzerland/Graubünden" msgstr "Zwitserland/Graubünden" #: src/hd-data.c:154 msgid "Switzerland/Jura" msgstr "Zwitserland/Jura" #: src/hd-data.c:155 msgid "Switzerland/Luzern" msgstr "Zwitserland/Luzern" #: src/hd-data.c:156 msgid "Switzerland/Neuchâtel" msgstr "Zwitserland/Neuchâtel" #: src/hd-data.c:157 msgid "Switzerland/Nidwalden" msgstr "Zwitserland/Nidwalden" #: src/hd-data.c:158 msgid "Switzerland/Obwalden" msgstr "Zwitserland/Obwalden" #: src/hd-data.c:159 msgid "Switzerland/St Gallen" msgstr "Zwitserland/Sankt Gallen" #: src/hd-data.c:160 #, fuzzy msgid "Switzerland/Schaffhausen" msgstr "Zwitserland/Schwyz" #: src/hd-data.c:161 msgid "Switzerland/Solothurn" msgstr "Zwitserland/Solothurn" #: src/hd-data.c:162 msgid "Switzerland/Schwyz" msgstr "Zwitserland/Schwyz" #: src/hd-data.c:163 msgid "Switzerland/Thurgau" msgstr "Zwitserland/Thurgau" #: src/hd-data.c:164 msgid "Switzerland/Ticino" msgstr "Zwitserland/Ticino" #: src/hd-data.c:165 msgid "Switzerland/Uri" msgstr "Zwitserland/Uri" #: src/hd-data.c:166 msgid "Switzerland/Vaud" msgstr "Zwitserland/Vaud" #: src/hd-data.c:167 msgid "Switzerland/Valais" msgstr "Zwitserland/Wallis" #: src/hd-data.c:168 msgid "Switzerland/Zug" msgstr "Zwitserland/Zug" #: src/hd-data.c:169 msgid "Switzerland/Zürich" msgstr "Zwitserland/Zürich" #: src/hd-data.c:170 msgid "Côte d'Ivoire" msgstr "Ivoorkust" #: src/hd-data.c:171 msgid "Cook Islands" msgstr "Cookeilanden" #: src/hd-data.c:172 msgid "Chile" msgstr "Chili" #: src/hd-data.c:173 msgid "Cameroon" msgstr "Kameroen" #: src/hd-data.c:175 msgid "Colombia" msgstr "Columbia" #: src/hd-data.c:176 msgid "Costa Rica" msgstr "Costa Rica" #: src/hd-data.c:177 msgid "Cuba" msgstr "Cuba" #: src/hd-data.c:178 msgid "Cape Verde" msgstr "Kaapverdië" #: src/hd-data.c:179 msgid "Christmas Islands" msgstr "Christmaseiland" #: src/hd-data.c:180 msgid "Cyprus" msgstr "Cyprus" #: src/hd-data.c:181 msgid "Czech Republic" msgstr "Tsjechië" #: src/hd-data.c:182 msgid "Germany/Brandenburg" msgstr "Duitsland/Brandenburg" #: src/hd-data.c:183 msgid "Germany/Berlin" msgstr "Duitsland/Berlijn" #: src/hd-data.c:184 msgid "Germany/Baden-Württemberg" msgstr "Duitsland/Baden-Württemberg" #: src/hd-data.c:185 msgid "Germany/Bavaria" msgstr "Duitsland/Beieren" #: src/hd-data.c:186 msgid "Germany/Bremen" msgstr "Duitsland/Bremen" #: src/hd-data.c:187 msgid "Germany/Hesse" msgstr "Duitsland/Hessen" #: src/hd-data.c:188 msgid "Germany/Hamburg" msgstr "Duitsland/Hamburg" #: src/hd-data.c:189 msgid "Germany/Mecklenburg-West Pomerania" msgstr "Duitsland/Mecklenburg-Voor-Pommeren" #: src/hd-data.c:190 msgid "Germany/Lower Saxony" msgstr "Duitsland/Nedersaksen" #: src/hd-data.c:191 msgid "Germany/North Rhine-Westphalia" msgstr "Duitsland/Noord-Rijnland-Westfalen" #: src/hd-data.c:192 msgid "Germany/Rhineland Palatinate" msgstr "Duitsland/Rijnland-Palts" #: src/hd-data.c:193 msgid "Germany/Schleswig-Holstein" msgstr "Duitsland/Sleeswijk-Holstein" #: src/hd-data.c:194 msgid "Germany/Saar" msgstr "Duitsland/Saarland" #: src/hd-data.c:195 msgid "Germany/Saxony" msgstr "Duitsland/Saksen" #: src/hd-data.c:196 msgid "Germany/Saxony-Anhalt" msgstr "Duitsland/Saksen-Anhalt" #: src/hd-data.c:197 msgid "Germany/Thuringia" msgstr "Duitsland/Thüringen" #: src/hd-data.c:198 msgid "Djibouti" msgstr "Djibouti" #: src/hd-data.c:199 msgid "Denmark" msgstr "Denemarken" #: src/hd-data.c:200 msgid "Dominica" msgstr "Dominica" #: src/hd-data.c:201 msgid "Dominican Republic" msgstr "Dominicaanse republiek" #: src/hd-data.c:202 msgid "Algeria" msgstr "Algerije" #: src/hd-data.c:203 msgid "Ecuador" msgstr "Ecuador" #: src/hd-data.c:204 msgid "Estonia" msgstr "Estland" #: src/hd-data.c:205 msgid "Egypt" msgstr "Egypte" #: src/hd-data.c:206 msgid "Western Sahara" msgstr "Westelijke Sahara" #: src/hd-data.c:207 msgid "Eritrea" msgstr "Eritrea" #: src/hd-data.c:209 msgid "Ethiopia" msgstr "Ethiopië" #: src/hd-data.c:210 msgid "Finland" msgstr "Finland" #: src/hd-data.c:211 msgid "Fiji #" msgstr "Fiji #" #: src/hd-data.c:212 msgid "Falkland Islands (Malvinas)" msgstr "Falklandeilanden" #: src/hd-data.c:213 msgid "Federated States of Micronesia" msgstr "Micronesia" #: src/hd-data.c:214 msgid "Faroes" msgstr "Faeröer" #: src/hd-data.c:216 msgid "Gabon #" msgstr "Gabon #" #: src/hd-data.c:217 msgid "Great Britain/England and Wales" msgstr "Verenigd Koninkrijk/Engeland en Wales" #: src/hd-data.c:218 msgid "Great Britain/Northern Ireland" msgstr "Verenigd Koninkrijk/Noord-Ierland" #: src/hd-data.c:219 msgid "Great Britain/Scotland" msgstr "Verenigd Koninkrijk/Schotland" #: src/hd-data.c:220 msgid "Grenada" msgstr "Grenada" #: src/hd-data.c:221 msgid "Georgia" msgstr "Georgië" #: src/hd-data.c:222 msgid "French Guiana" msgstr "Frans Guyana" #: src/hd-data.c:223 msgid "Ghana" msgstr "Ghana" #: src/hd-data.c:224 msgid "Gibraltar" msgstr "Gibraltar" #: src/hd-data.c:225 msgid "Greenland" msgstr "Groenland" #: src/hd-data.c:226 msgid "Gambia" msgstr "Gambia" #: src/hd-data.c:227 msgid "Guinea" msgstr "Guinea" #: src/hd-data.c:228 msgid "Guadeloupe" msgstr "Guadeloupe" #: src/hd-data.c:229 msgid "Equatorial Guinea" msgstr "Equatoriaal-Guinea" #: src/hd-data.c:230 msgid "Greece" msgstr "Griekenland" #: src/hd-data.c:231 msgid "South Georgia and South Sandwich Islands" msgstr "Zuid-Georgië en de Zuidelijke Sandwicheilanden" #: src/hd-data.c:232 msgid "Guatemala" msgstr "Guatemala" #: src/hd-data.c:233 msgid "Guam" msgstr "Guam" #: src/hd-data.c:234 msgid "Guinea-Bissau #" msgstr "Guinee-Bissau #" #: src/hd-data.c:235 msgid "Guyana #" msgstr "Guyana #" #: src/hd-data.c:236 msgid "Hong Kong" msgstr "Hong Kong" #: src/hd-data.c:237 msgid "Heard and Mc Donald Islands" msgstr "Heard en McDonaldeilanden" #: src/hd-data.c:238 msgid "Honduras" msgstr "Honduras" #: src/hd-data.c:239 msgid "Croatia" msgstr "Kroatië" #: src/hd-data.c:240 msgid "Haiti" msgstr "Haïti" #: src/hd-data.c:241 msgid "Hungary" msgstr "Hongarije" #: src/hd-data.c:242 msgid "Indonesia #" msgstr "Indonesië #" #: src/hd-data.c:243 msgid "Ireland" msgstr "Ierland" #: src/hd-data.c:245 msgid "India #" msgstr "India #" #: src/hd-data.c:246 msgid "Iraq" msgstr "Irak" #: src/hd-data.c:247 msgid "Islamic Republic of Iran" msgstr "Iran" #: src/hd-data.c:248 msgid "Iceland" msgstr "IJsland" #: src/hd-data.c:250 msgid "Jamaica" msgstr "Jamaica" #: src/hd-data.c:251 msgid "Jordan" msgstr "Jordanië" #: src/hd-data.c:253 msgid "Kenya #" msgstr "Kenya #" #: src/hd-data.c:254 msgid "Kyrgyzstan" msgstr "Kirgizië" #: src/hd-data.c:255 msgid "Cambodia #" msgstr "Cambodja #" #: src/hd-data.c:256 msgid "Kiribati #" msgstr "Kiribati #" #: src/hd-data.c:257 msgid "Comoros" msgstr "Comoren" #: src/hd-data.c:258 msgid "St Kitts and Nevis" msgstr "Saint Kitts en Nevis" #: src/hd-data.c:259 msgid "Democratic People's Republic of Korea" msgstr "Noord-Korea" #: src/hd-data.c:261 msgid "Kuwait" msgstr "Koeweit" #: src/hd-data.c:262 msgid "Cayman Islands" msgstr "Caymaneilanden" #: src/hd-data.c:263 msgid "Kazakhstan" msgstr "Kazachstan" #: src/hd-data.c:264 msgid "Laos People's Democratic Republic #" msgstr "Laos" #: src/hd-data.c:265 msgid "Lebanon" msgstr "Libanon" #: src/hd-data.c:266 msgid "St Lucia" msgstr "Saint Lucia" #: src/hd-data.c:267 msgid "Liechtenstein" msgstr "Liechtenstein" #: src/hd-data.c:268 msgid "Sri Lanka #" msgstr "Sri Lanka #" #: src/hd-data.c:269 msgid "Liberia" msgstr "Liberia" #: src/hd-data.c:270 msgid "Lesotho" msgstr "Lesotho" #: src/hd-data.c:271 msgid "Lithuania" msgstr "Litouwen" #: src/hd-data.c:272 msgid "Luxembourg" msgstr "Luxemburg" #: src/hd-data.c:273 msgid "Latvia" msgstr "Letland" #: src/hd-data.c:274 msgid "Libyan Arab Jamahiriya (Libya)" msgstr "Libië" #: src/hd-data.c:275 msgid "Morocco" msgstr "Markokko" #: src/hd-data.c:276 msgid "Monaco" msgstr "Monaco" #: src/hd-data.c:277 msgid "Republic of Moldova" msgstr "Moldavië" #: src/hd-data.c:278 msgid "Madagascar #" msgstr "Madagascar #" #: src/hd-data.c:279 msgid "Marshall Islands" msgstr "Marshalleilanden" #: src/hd-data.c:280 msgid "Former Yugoslav Republic of Macedonia" msgstr "Macedonië" #: src/hd-data.c:281 msgid "Mali" msgstr "Mali" #: src/hd-data.c:282 msgid "Mongolia #" msgstr "Mongolië #" #: src/hd-data.c:283 msgid "Macau" msgstr "Macau" #: src/hd-data.c:284 msgid "Northern Marian Islands (Saipan)" msgstr "Noordelijke Marianen" #: src/hd-data.c:285 msgid "Martinique" msgstr "Martinique" #: src/hd-data.c:286 msgid "Mauritania" msgstr "Mauritanië" #: src/hd-data.c:287 msgid "Montserrat" msgstr "Montserrat" #: src/hd-data.c:288 msgid "Malta" msgstr "Malta" #: src/hd-data.c:289 msgid "Mauritius" msgstr "Mauritius" #: src/hd-data.c:290 msgid "Maldives" msgstr "Maldiven" #: src/hd-data.c:291 msgid "Malawi" msgstr "Malawi" #: src/hd-data.c:293 msgid "Malaysia #" msgstr "Maleisië #" #: src/hd-data.c:294 msgid "Mozambique" msgstr "Mozambique" #: src/hd-data.c:295 msgid "Namibia" msgstr "Namibië" #: src/hd-data.c:296 msgid "New Caledonia" msgstr "Nieuw-Caledonië" #: src/hd-data.c:297 msgid "Niger" msgstr "Niger" #: src/hd-data.c:298 msgid "Norfolk Islands" msgstr "Norfolk" #: src/hd-data.c:299 msgid "Nigeria" msgstr "Nigeria" #: src/hd-data.c:300 msgid "Nicaragua" msgstr "Nicaragua" #: src/hd-data.c:302 msgid "Myanmar (Burma) #" msgstr "Myanmar #" #: src/hd-data.c:303 msgid "Norway" msgstr "Noorwegen" #: src/hd-data.c:304 msgid "Nepal #" msgstr "Nepal #" #: src/hd-data.c:305 msgid "Nauru" msgstr "Nauru" #: src/hd-data.c:306 msgid "Niue" msgstr "Niue" #: src/hd-data.c:308 msgid "Oman" msgstr "Oman" #: src/hd-data.c:309 msgid "Panama" msgstr "Panama" #: src/hd-data.c:310 msgid "Peru" msgstr "Peru" #: src/hd-data.c:311 msgid "French Polynesia" msgstr "Frans-Polynesië" #: src/hd-data.c:312 msgid "Papua New Guinea" msgstr "Papoea-Nieuw-Guinea" #: src/hd-data.c:313 msgid "Philippines" msgstr "Filipijnen" #: src/hd-data.c:314 msgid "Pakistan" msgstr "Pakistan" #: src/hd-data.c:315 msgid "Poland" msgstr "Polen" #: src/hd-data.c:316 msgid "Saint-Pierre and Miquelon" msgstr "Saint-Pierre en Miquelon" #: src/hd-data.c:317 msgid "Pitcairn" msgstr "Pitcairneilanden" #: src/hd-data.c:318 msgid "Puerto Rico" msgstr "Puerto Rico" #: src/hd-data.c:320 msgid "Palau" msgstr "Palau" #: src/hd-data.c:321 msgid "Paraguay" msgstr "Paraguay" #: src/hd-data.c:322 msgid "Qatar" msgstr "Qatar" #: src/hd-data.c:323 msgid "Réunion" msgstr "Réunion" #: src/hd-data.c:324 msgid "Romania" msgstr "Roemenië" #: src/hd-data.c:326 msgid "Rwanda" msgstr "Rwanda" #: src/hd-data.c:327 msgid "Saudi Arabia" msgstr "Saudi-Arabië" #: src/hd-data.c:328 msgid "Solomon Islands" msgstr "Salomonseilanden" #: src/hd-data.c:329 msgid "Seychellen" msgstr "Seychellen" #: src/hd-data.c:330 msgid "Sudan" msgstr "Soedan" #: src/hd-data.c:331 msgid "Sweden" msgstr "Zweden" #: src/hd-data.c:332 msgid "Singapore #" msgstr "Singapore #" #: src/hd-data.c:333 msgid "St Helena" msgstr "Sint-Helena" #: src/hd-data.c:334 msgid "Slovenia" msgstr "Slovenië" #: src/hd-data.c:335 msgid "Svalbard and Jan Mayen Islands" msgstr "Spitsbergen en Jan Mayen" #: src/hd-data.c:336 msgid "Slovakia" msgstr "Slowakije" #: src/hd-data.c:337 msgid "Sierra Leone" msgstr "Sierra Leone" #: src/hd-data.c:338 msgid "San Marino" msgstr "San Marino" #: src/hd-data.c:339 msgid "Senegal" msgstr "Senegal" #: src/hd-data.c:340 msgid "Somalia" msgstr "Somalië" #: src/hd-data.c:341 msgid "Suriname #" msgstr "Suriname #" #: src/hd-data.c:342 msgid "Sao Tomé and Principe" msgstr "Sao Tomé en Principe" #: src/hd-data.c:343 msgid "El Salvador" msgstr "El Salvador" #: src/hd-data.c:344 msgid "Syrian Arab Republic (Syria)" msgstr "Syrië" #: src/hd-data.c:345 msgid "Swaziland" msgstr "Swaziland" #: src/hd-data.c:346 msgid "Turks and Caicos Islands" msgstr "Turks- en Caicoseilanden" #: src/hd-data.c:347 msgid "Chad" msgstr "Tsjaad" #: src/hd-data.c:348 msgid "Togo #" msgstr "Togo #" #: src/hd-data.c:349 msgid "Thailand #" msgstr "Thailand #" #: src/hd-data.c:350 msgid "Tajikistan" msgstr "Tadzjikistan" #: src/hd-data.c:351 msgid "Tokelau" msgstr "Tokelau-eilanden" #: src/hd-data.c:352 msgid "Turkmenistan" msgstr "Turkmenistan" #: src/hd-data.c:353 msgid "Tunisia" msgstr "Tunesië" #: src/hd-data.c:354 msgid "Tonga" msgstr "Tonga" #: src/hd-data.c:355 msgid "Turkey" msgstr "Turkije" #: src/hd-data.c:356 msgid "Trinidad and Tobago #" msgstr "Trinidad en Tobago #" #: src/hd-data.c:357 msgid "Tuvalu" msgstr "Tuvalu" #: src/hd-data.c:358 msgid "Taiwan" msgstr "Taiwan" #: src/hd-data.c:359 msgid "Tanzania" msgstr "Tanzania" #: src/hd-data.c:360 msgid "Ukraine" msgstr "Oekraïne" #: src/hd-data.c:361 msgid "Uganda" msgstr "Uganda" #: src/hd-data.c:362 msgid "United States/Alaska" msgstr "Verenigde Staten/Alaska" #: src/hd-data.c:363 msgid "United States/Alabama" msgstr "Verenigde Staten/Alabama" #: src/hd-data.c:364 msgid "United States/Arkansas" msgstr "Verenigde Staten/Arkansas" #: src/hd-data.c:365 msgid "United States/Arizona" msgstr "Verenigde Staten/Arizona" #: src/hd-data.c:366 msgid "United States/California" msgstr "Verenigde Staten/Californië" #: src/hd-data.c:367 msgid "United States/Colorado" msgstr "Verenigde Staten/Colorado" #: src/hd-data.c:368 msgid "United States/Connecticut" msgstr "Verenigde Staten/Connecticut" #: src/hd-data.c:369 msgid "United States/District of Columbia" msgstr "Verenigde Staten/District of Columbia" #: src/hd-data.c:370 msgid "United States/Delaware" msgstr "Verenigde Staten/Delaware" #: src/hd-data.c:371 msgid "United States/Florida" msgstr "Verenigde Staten/Florida" #: src/hd-data.c:372 msgid "United States/Georgia" msgstr "Verenigde Staten/Georgia" #: src/hd-data.c:373 msgid "United States/Hawaii" msgstr "Verenigde Staten/Hawaï" #: src/hd-data.c:374 msgid "United States/Iowa" msgstr "Verenigde Staten/Iowa" #: src/hd-data.c:375 msgid "United States/Idaho" msgstr "Verenigde Staten/Idaho" #: src/hd-data.c:376 msgid "United States/Illinois" msgstr "Verenigde Staten/Illinois" #: src/hd-data.c:377 msgid "United States/Indiana" msgstr "Verenigde Staten/Indiana" #: src/hd-data.c:378 msgid "United States/Kansas" msgstr "Verenigde Staten/Kansas" #: src/hd-data.c:379 msgid "United States/Kentucky" msgstr "Verenigde Staten/Kentucky" #: src/hd-data.c:380 msgid "United States/Louisiana" msgstr "Verenigde Staten/Louisiana" #: src/hd-data.c:381 msgid "United States/Massachusetts" msgstr "Verenigde Staten/Massachusetts" #: src/hd-data.c:382 msgid "United States/Maryland" msgstr "Verenigde Staten/Maryland" #: src/hd-data.c:383 msgid "United States/Maine" msgstr "Verenigde Staten/Maine" #: src/hd-data.c:384 msgid "United States/Michigan" msgstr "Verenigde Staten/Michigan" #: src/hd-data.c:385 msgid "United States/Minnesota" msgstr "Verenigde Staten/Minnesota" #: src/hd-data.c:386 msgid "United States/Missouri" msgstr "Verenigde Staten/Missouri" #: src/hd-data.c:387 msgid "United States/Mississippi" msgstr "Verenigde Staten/Mississippi" #: src/hd-data.c:388 msgid "United States/Montana" msgstr "Verenigde Staten/Montana" #: src/hd-data.c:389 msgid "United States/North Carolina" msgstr "Verenigde Staten/North Carolina" #: src/hd-data.c:390 msgid "United States/North Dakota" msgstr "Verenigde Staten/North Dakota" #: src/hd-data.c:391 msgid "United States/Nebraska" msgstr "Verenigde Staten/Nebraska" #: src/hd-data.c:392 msgid "United States/New Hampshire" msgstr "Verenigde Staten/New Hampshire" #: src/hd-data.c:393 msgid "United States/New Jersey" msgstr "Verenigde Staten/New Jersey" #: src/hd-data.c:394 msgid "United States/New Mexico" msgstr "Verenigde Staten/New Mexico" #: src/hd-data.c:395 msgid "United States/Nevada" msgstr "Verenigde Staten/Nevada" #: src/hd-data.c:396 msgid "United States/New York" msgstr "Verenigde Staten/New York" #: src/hd-data.c:397 msgid "United States/Ohio" msgstr "Verenigde Staten/Ohio" #: src/hd-data.c:398 msgid "United States/Oklahoma" msgstr "Verenigde Staten/Oklahoma" #: src/hd-data.c:399 msgid "United States/Oregon" msgstr "Verenigde Staten/Oregon" #: src/hd-data.c:400 msgid "United States/Pennsylvania" msgstr "Verenigde Staten/Pennsylvania" #: src/hd-data.c:401 msgid "United States/Rhode Island" msgstr "Verenigde Staten/Rhode Island" #: src/hd-data.c:402 msgid "United States/South Carolina" msgstr "Verenigde Staten/South Carolina" #: src/hd-data.c:403 msgid "United States/South Dakota" msgstr "Verenigde Staten/South Dakota" #: src/hd-data.c:404 msgid "United States/Tennessee" msgstr "Verenigde Staten/Tennessee" #: src/hd-data.c:405 msgid "United States/Texas" msgstr "Verenigde Staten/Texas" #: src/hd-data.c:406 msgid "United States/Utah" msgstr "Verenigde Staten/Utah" #: src/hd-data.c:407 msgid "United States/Virginia" msgstr "Verenigde Staten/Virginia" #: src/hd-data.c:408 msgid "United States/Vermont" msgstr "Verenigde Staten/Vermont" #: src/hd-data.c:409 msgid "United States/Washington" msgstr "Verenigde Staten/Washington" #: src/hd-data.c:410 msgid "United States/Wisconsin" msgstr "Verenigde Staten/Wisconsin" #: src/hd-data.c:411 msgid "United States/West Virginia" msgstr "Verenigde Staten/West Virginia" #: src/hd-data.c:412 msgid "United States/Wyoming" msgstr "Verenigde Staten/Wyoming" #: src/hd-data.c:413 msgid "Uruguay" msgstr "Uruguay" #: src/hd-data.c:414 msgid "Uzbekistan" msgstr "Oezbekistan" #: src/hd-data.c:415 msgid "St Vincent and Grenadines" msgstr "Saint Vincent en de Grenadines" #: src/hd-data.c:416 msgid "Venezuela" msgstr "Venezuela" #: src/hd-data.c:417 msgid "British Virgin Islands" msgstr "Britse Maagdeneilanden" #: src/hd-data.c:418 msgid "U.S. Virgin Islands" msgstr "Amerikaanse Maagdeneilanden" #: src/hd-data.c:419 msgid "Viet Nam" msgstr "Vietnam" #: src/hd-data.c:420 msgid "Vanuatu" msgstr "Vanuatu" #: src/hd-data.c:421 msgid "Wallis and Futuna Islands" msgstr "Wallis en Futuna" #: src/hd-data.c:422 msgid "Samoa" msgstr "Samoa" #: src/hd-data.c:423 msgid "Yemen" msgstr "Jemen" #: src/hd-data.c:424 msgid "Mayotte" msgstr "Mayotte" #: src/hd-data.c:425 msgid "Serbia and Montenegro" msgstr "Servië en Montenegro" #: src/hd-data.c:426 msgid "South Africa" msgstr "Zuid-Afrika" #: src/hd-data.c:427 msgid "Zambia" msgstr "Zambia" #: src/hd-data.c:428 msgid "Zimbabwe" msgstr "Zimbabwe" #: src/hd-data.c:458 msgid "1st Advent" msgstr "eerste Adventszondag" #: src/hd-data.c:459 msgid "1st Sunday in Lent" msgstr "eerste zondag in de Vastentijd" #: src/hd-data.c:460 msgid "2nd Advent" msgstr "tweede Adventszondag" #: src/hd-data.c:461 msgid "2nd Sunday in Lent" msgstr "tweede zondag in de Vastentijd" #: src/hd-data.c:462 msgid "3rd Advent" msgstr "derde Adventszondag" #: src/hd-data.c:463 msgid "3rd Sunday in Lent" msgstr "derde zondag in de Vastentijd" #: src/hd-data.c:464 msgid "4th Advent" msgstr "vierde Adventszondag" #: src/hd-data.c:465 msgid "4th Sunday in Lent" msgstr "vierde zondag in de Vastentijd" #: src/hd-data.c:466 msgid "7-5-3 Festival" msgstr "" #: src/hd-data.c:467 msgid "Aborigines Day" msgstr "" #: src/hd-data.c:468 msgid "All Fool's Day" msgstr "Eén april" #: src/hd-data.c:469 msgid "All Saints' Day" msgstr "Allerheiligen" #: src/hd-data.c:470 msgid "All Souls' Day" msgstr "Allerzielen" #: src/hd-data.c:471 msgid "Alphabet Day" msgstr "Alfabetdag" #: src/hd-data.c:472 msgid "Anniversary of Auckland" msgstr "Verjaardag van Auckland" #: src/hd-data.c:473 msgid "Anniversary of Canterbury North" msgstr "Verjaardag van Canterbury North" #: src/hd-data.c:474 msgid "Anniversary of Canterbury South" msgstr "Verjaardag van Canterbury South" #: src/hd-data.c:475 msgid "Anniversary of Chatham Islands" msgstr "Verjaardag van de Chathameilanden" #: src/hd-data.c:476 msgid "Anniversary of Hawkes' Bay" msgstr "Verjaardag van Hawkes' Bay" #: src/hd-data.c:477 msgid "Anniversary of Marlborough" msgstr "Verjaardag van Marlborough" #: src/hd-data.c:478 msgid "Anniversary of Nelson" msgstr "Verjaardag van Nelson" #: src/hd-data.c:479 msgid "Anniversary of Otago" msgstr "Verjaardag van Otago" #: src/hd-data.c:480 msgid "Anniversary of Southland" msgstr "Verjaardag van Southland" #: src/hd-data.c:481 msgid "Anniversary of Taranaki" msgstr "Verjaardag van Taranaki" #: src/hd-data.c:482 msgid "Anniversary of Wellington" msgstr "Verjaardag van Wellington" #: src/hd-data.c:483 msgid "Anniversary of Westland" msgstr "Verjaardag van Westland" #: src/hd-data.c:484 msgid "Anzac Day" msgstr "Anzac Day" #: src/hd-data.c:485 msgid "Arbor Day" msgstr "Boomfeestdag" #: src/hd-data.c:486 msgid "Armed Forces Day" msgstr "Strijdkrachtendag" #: src/hd-data.c:487 msgid "Armistice Day" msgstr "Wapenstilstanddag" #: src/hd-data.c:488 msgid "Ash Monday" msgstr "" #: src/hd-data.c:489 msgid "Ash Wednesday" msgstr "Aswoensdag" #: src/hd-data.c:490 msgid "Ascension of Abdu'l-Baha" msgstr "Heengaan van Abdu'l-Bahá" #: src/hd-data.c:491 msgid "Ascension of Baha'u'llah" msgstr "Heengaan van Bahá'u'lláh" #: src/hd-data.c:492 msgid "Birth of Baha'u'llah" msgstr "Geboortedag van Bahá'u'lláh" #: src/hd-data.c:493 msgid "Birth of the Bab" msgstr "Geboortedag van de Báb" #: src/hd-data.c:494 msgid "Day of the Covenant" msgstr "Dag van het Verbond" #: src/hd-data.c:495 msgid "Declaration of the Bab" msgstr "Verkondiging van de Báb" #: src/hd-data.c:496 msgid "First Day of Ridvan" msgstr "Eerste dag van Ridván" #: src/hd-data.c:497 msgid "Martyrdom of the Bab" msgstr "Marteldood van de Báb" #: src/hd-data.c:498 msgid "Bahá'i New Year's Day" msgstr "Naw-Rúz (Bahá'í nieuwjaar)" #: src/hd-data.c:499 msgid "Ninth Day of Ridvan" msgstr "Negende dag van Ridván" #: src/hd-data.c:500 msgid "Twelfth Day of Ridvan" msgstr "Twaalfde dag van Ridván" #: src/hd-data.c:501 msgid "Bank Holiday" msgstr "Bankvakantie" #: src/hd-data.c:502 msgid "Basque National Day" msgstr "" #: src/hd-data.c:503 msgid "Battle of Boyne" msgstr "Slag om de Boyne" #: src/hd-data.c:504 msgid "Battle of Puebla" msgstr "" #: src/hd-data.c:505 msgid "Beginning of Financial Year" msgstr "Begin van het financieel jaar" #: src/hd-data.c:506 msgid "Benito Juárez Day" msgstr "" #: src/hd-data.c:507 msgid "Bodhidharma's Birthday" msgstr "" #: src/hd-data.c:508 msgid "Bosses' Day" msgstr "Bazendag" #: src/hd-data.c:509 msgid "Boxing Day" msgstr "Tweede Kerstdag" #: src/hd-data.c:510 msgid "Bringing Home the Herds Day" msgstr "" #: src/hd-data.c:511 msgid "Bringing in the Harvest Day" msgstr "" #: src/hd-data.c:512 msgid "Buddha's Birthday" msgstr "" #: src/hd-data.c:513 msgid "Burns Night" msgstr "Burnsnacht" #: src/hd-data.c:514 msgid "Camoes Day" msgstr "" #: src/hd-data.c:515 msgid "Carnival" msgstr "Carnaval" #: src/hd-data.c:516 msgid "Beltane" msgstr "Beltaine" #: src/hd-data.c:517 msgid "Imbolg" msgstr "Imbolc" #: src/hd-data.c:518 msgid "Lughnasa" msgstr "Lughnasadh" #: src/hd-data.c:519 msgid "Samhain/Celtic New Year's Day" msgstr "Samhain (Keltisch nieuwjaar)" #: src/hd-data.c:520 msgid "Children's Day" msgstr "Kinderdag" #: src/hd-data.c:521 msgid "Cycle" msgstr "Cyclus" #: src/hd-data.c:522 msgid "Chinese New Year's Day" msgstr "Chinees nieuwjaar" #: src/hd-data.c:523 msgid "Chinese New Year's Eve" msgstr "Chinees oudjaar" #: src/hd-data.c:524 msgid "Christmas Day" msgstr "Eerste Kerstdag" #: src/hd-data.c:525 msgid "Christmas Eve" msgstr "Kerstavond" #: src/hd-data.c:526 msgid "Christ's Ascension Day" msgstr "Hemelvaartsdag" #: src/hd-data.c:527 msgid "Chrysanthenum Day" msgstr "" #: src/hd-data.c:528 msgid "Citizenship Day" msgstr "Burgerschapsdag" #: src/hd-data.c:529 msgid "Civic Holiday" msgstr "" #: src/hd-data.c:530 msgid "Columbus Day" msgstr "Columbusdag" #: src/hd-data.c:531 msgid "Coming of Age Day" msgstr "" #: src/hd-data.c:532 msgid "Confucius' Birthday" msgstr "Geboortedag van Confucius" #: src/hd-data.c:533 msgid "Constitution Anniversary" msgstr "Verjaardag van de grondwet" #: src/hd-data.c:534 msgid "Coptic New Year's Day" msgstr "Koptisch nieuwjaar" #: src/hd-data.c:535 msgid "Cosmonauts' Day" msgstr "Kosmonautendag" #: src/hd-data.c:536 msgid "Cross Raising Day" msgstr "" #: src/hd-data.c:537 msgid "Culture Day" msgstr "" #: src/hd-data.c:538 msgid "Day after Mid-Autumn Festival" msgstr "" #: src/hd-data.c:539 msgid "Day after Tomb-Sweeping Day" msgstr "" #: src/hd-data.c:540 msgid "Day of Andalucia" msgstr "Dag van Andalusië" #: src/hd-data.c:541 msgid "Day of Catalonia" msgstr "Dag van Catalonië" #: src/hd-data.c:542 msgid "Day of Galicia" msgstr "Dag van Galicië" #: src/hd-data.c:543 msgid "Day of Prayer and Repentance" msgstr "Dag van gebed en boetedoening" #: src/hd-data.c:544 msgid "Day of Reconciliation" msgstr "Dag van verzoening" #: src/hd-data.c:545 msgid "Defenders of Motherland Day" msgstr "Dag van de verdedigers van het moederland" #: src/hd-data.c:546 msgid "Double-9 Day" msgstr "" #: src/hd-data.c:547 msgid "Dragon Boat Festival" msgstr "" #: src/hd-data.c:548 msgid "Dynasty Day" msgstr "" #: src/hd-data.c:549 msgid "Easter Monday" msgstr "Tweede Paasdag" #: src/hd-data.c:550 msgid "Easter Sunday" msgstr "Eerste Paasdag" #: src/hd-data.c:551 msgid "Lunar Eclipse" msgstr "Maansverduistering" #: src/hd-data.c:552 msgid "Solar Eclipse" msgstr "Zonsverduistering" #: src/hd-data.c:553 msgid "Annular" msgstr "Ringvormige" #: src/hd-data.c:554 msgid "Partial" msgstr "Gedeeltelijke" #: src/hd-data.c:555 msgid "Penumbral" msgstr "Hybride" #: src/hd-data.c:556 msgid "Total" msgstr "Gehele" #: src/hd-data.c:557 msgid "Eindhoven's Liberation" msgstr "Bevrijding van Eindhoven" #: src/hd-data.c:558 msgid "Election Day" msgstr "Verkiezingsdag" #: src/hd-data.c:559 msgid "Emperor's Birthday" msgstr "Verjaardag van de Keizer" #: src/hd-data.c:560 msgid "Equinox Day" msgstr "" #: src/hd-data.c:561 msgid "Ethiopic New Year's Day" msgstr "Ethiopisch nieuwjaar" #: src/hd-data.c:562 msgid "Father's Day" msgstr "Vaderdag" #: src/hd-data.c:563 msgid "Feast of Corpus Christi" msgstr "" #: src/hd-data.c:564 msgid "Feast of Fortune" msgstr "" #: src/hd-data.c:565 msgid "Feast of Heart Jesus" msgstr "" #: src/hd-data.c:566 msgid "Festival of Lanterns" msgstr "" #: src/hd-data.c:567 msgid "Festival of Sadeh" msgstr "" #: src/hd-data.c:568 msgid "Flag Day" msgstr "Vlaggendag" #: src/hd-data.c:569 msgid "Flemish Culture Day" msgstr "" #: src/hd-data.c:570 msgid "Founding of the Communist Party" msgstr "" #: src/hd-data.c:571 msgid "French Culture Day" msgstr "" #: src/hd-data.c:572 msgid "French Revolutionary" msgstr "" #: src/hd-data.c:573 msgid "Friendship Day" msgstr "Vriendschapsdag" #: src/hd-data.c:574 msgid "German Unity Day" msgstr "Dag van de Duitse hereniging" #: src/hd-data.c:575 msgid "Good Friday" msgstr "Goede Vrijdag" #: src/hd-data.c:576 msgid "Good Saturday/Easter Eve" msgstr "Stille Zaterdag" #: src/hd-data.c:577 msgid "Grandparents' Day" msgstr "Grootouderdag" #: src/hd-data.c:578 msgid "Greenery Day" msgstr "Dag van het natuurgroen" #: src/hd-data.c:579 msgid "Grotto Day" msgstr "" #: src/hd-data.c:580 msgid "Groundhog Day" msgstr "Marmottendag" #: src/hd-data.c:581 msgid "Guadalupe Virgin's Day" msgstr "" #: src/hd-data.c:582 msgid "Guy Fawke's Day" msgstr "" #: src/hd-data.c:583 msgid "Halloween" msgstr "Halloween" #: src/hd-data.c:584 msgid "Health and Sport's Day" msgstr "Dag van gezondheid en sport" #: src/hd-data.c:585 msgid "Hannukah/Festival of Lights" msgstr "Chanoeka (Feest van het licht)" #: src/hd-data.c:586 msgid "Lag B'Omer" msgstr "Lag baOmer" #: src/hd-data.c:587 msgid "Pesach/Passover" msgstr "Pesach (joods Pasen)" #: src/hd-data.c:588 msgid "Purim/Feast of Lots" msgstr "Poerim (Lotenfeest)" #: src/hd-data.c:589 msgid "Rosh Hashana/New Year's Day" msgstr "Rosj Hasjana (joods nieuwjaar)" #: src/hd-data.c:590 msgid "Shavuot/Giving of the Torah" msgstr "Sjavoeot (Wekenfeest)" #: src/hd-data.c:591 #, fuzzy msgid "Shushan Purim" msgstr "viering Poerim (Lotenfeest)" #: src/hd-data.c:592 msgid "Simchat Torah" msgstr "Simchat Thora (Vreugde van de Wet)" #: src/hd-data.c:593 msgid "Sukkot/Feast of Tabernacles" msgstr "Soekot (Loofhuttenfeest)" #: src/hd-data.c:594 msgid "Tisha B'Av/Fasting Day" msgstr "Tisja be'Aaw (Verwoesting van de Eerste en Tweede Tempel)" #: src/hd-data.c:595 msgid "Tu B'Shevat/New Year of Trees" msgstr "Toe Biesjwat (Nieuwjaar van de Bomen)" #: src/hd-data.c:596 msgid "Yom Hashoah/Holocaust Memorial" msgstr "Jom Hasjoa (herdenking holocaust)" #: src/hd-data.c:597 msgid "Yom Hazikaron/Soldiers Memorial" msgstr "Jom Ha-zikaron (herdenking oorlogsslachtoffers)" #: src/hd-data.c:598 msgid "Yom Ha Azmaut/Independence Day" msgstr "Jom Ha-atsmaoet (onafhankelijkheidsdag van Israël)" #: src/hd-data.c:599 msgid "Yom Kippur/Atonement Day" msgstr "Jom Kipoer (Grote Verzoendag)" #: src/hd-data.c:600 msgid "Yom Yerushalayim/Jerusalem Day" msgstr "Jeruzalemdag" #: src/hd-data.c:601 msgid "Holy Innocent's Day" msgstr "" #: src/hd-data.c:602 msgid "Holy Trinity" msgstr "" #: src/hd-data.c:603 msgid "Huravee Day" msgstr "" #: src/hd-data.c:604 msgid "Independence Day" msgstr "Onafhankelijkheidsdag" #: src/hd-data.c:605 msgid "Independence Movement Day" msgstr "" #: src/hd-data.c:606 msgid "Independence Proclamation" msgstr "" #: src/hd-data.c:607 msgid "Indian New Year's Day" msgstr "" #: src/hd-data.c:608 msgid "Aga Khan's Birthday" msgstr "" #: src/hd-data.c:609 msgid "Ashura'" msgstr "Asjoera" #: src/hd-data.c:610 msgid "Eid-al-Adha" msgstr "Offerfeest" #: src/hd-data.c:611 msgid "Eid-al-Fitr" msgstr "Suikerfeest" #: src/hd-data.c:612 msgid "Eid-i-Milad-un-Nabi" msgstr "" #: src/hd-data.c:613 msgid "Ghadir" msgstr "" #: src/hd-data.c:614 msgid "Imamat Day" msgstr "" #: src/hd-data.c:615 msgid "Islamic New Year's Day" msgstr "Islamitisch nieuwjaar" #: src/hd-data.c:616 msgid "Nuzul-al-Qur'an" msgstr "" #: src/hd-data.c:617 msgid "Quds Day" msgstr "" #: src/hd-data.c:618 msgid "Ramadan" msgstr "Ramadan" #: src/hd-data.c:619 msgid "Shab-e-Bara't" msgstr "" #: src/hd-data.c:620 msgid "Shab-e-Mi'raj" msgstr "" #: src/hd-data.c:621 msgid "Shab-e Qadr" msgstr "" #: src/hd-data.c:622 msgid "Waqf-al-Arafat" msgstr "" #: src/hd-data.c:623 msgid "Japanese New Year's Day" msgstr "Japans nieuwjaar" #: src/hd-data.c:624 msgid "Japanese New Year's Eve" msgstr "Japans oudjaar" #: src/hd-data.c:625 msgid "Jesus' Circumcision" msgstr "Besnijdenis des Heren" #: src/hd-data.c:626 msgid "Kwanzaa" msgstr "" #: src/hd-data.c:627 msgid "Labour Day" msgstr "Dag van de Arbeid" #: src/hd-data.c:628 msgid "Labour Thanksgiving Day" msgstr "" #: src/hd-data.c:629 msgid "Lao Tze's Birthday" msgstr "Geboortedag van Lao Tze" #: src/hd-data.c:630 msgid "Liberation Day" msgstr "Bevrijdingsdag" #: src/hd-data.c:631 msgid "Marine Day" msgstr "" #: src/hd-data.c:632 msgid "Martinimas" msgstr "Sint-Maarten" #: src/hd-data.c:633 msgid "Martin L. King's Day" msgstr "Martin Luther Kingdag" #: src/hd-data.c:634 msgid "Martyrs' Day" msgstr "Martelarendag" #: src/hd-data.c:635 msgid "Mary's Annunciation Day" msgstr "Maria Boodschap" #: src/hd-data.c:636 msgid "Mary's Ascension Day" msgstr "Maria ten Hemelopneming" #: src/hd-data.c:637 msgid "Mary's Candlemas" msgstr "Maria Lichtmis" #: src/hd-data.c:638 msgid "Mary's Expectation" msgstr "" #: src/hd-data.c:639 msgid "Mary's Immaculate Conception" msgstr "Maria Onbevlekte Ontvangenis" #: src/hd-data.c:640 msgid "Mary's Maternity" msgstr "" #: src/hd-data.c:641 msgid "Mary's Name" msgstr "Heilige Naam van Maria" #: src/hd-data.c:642 msgid "Mary's Nativity" msgstr "Maria Geboorte" #: src/hd-data.c:643 msgid "Mary's Sacrifice" msgstr "" #: src/hd-data.c:644 msgid "Mary's Visitation" msgstr "Maria Visitatie" #: src/hd-data.c:645 msgid "Mary - Blessed Virgin" msgstr "" #: src/hd-data.c:646 msgid "Maundy Thursday" msgstr "" #: src/hd-data.c:647 msgid "May Day" msgstr "Eenmeifeest" #: src/hd-data.c:648 msgid "St John's/Midsummer Day" msgstr "Midzomerdag" #: src/hd-data.c:649 msgid "Mid-Autumn Festival" msgstr "" #: src/hd-data.c:650 msgid "Mid-Spring Festival" msgstr "" #: src/hd-data.c:651 msgid "Mid-Year Festival" msgstr "" #: src/hd-data.c:652 msgid "Waxing Half Moon" msgstr "Eerste kwartier" #: src/hd-data.c:653 msgid "Full Moon" msgstr "Volle maan" #: src/hd-data.c:654 msgid "Waning Half Moon" msgstr "Laatste kwartier" #: src/hd-data.c:655 msgid "New Moon" msgstr "Nieuwe maan" #: src/hd-data.c:656 msgid "Mother's Day" msgstr "Moederdag" #: src/hd-data.c:657 msgid "Mother in Law's Day" msgstr "Schoonmoederdag" #: src/hd-data.c:658 msgid "Music Water Banquet" msgstr "" #: src/hd-data.c:659 msgid "National Foundation Day" msgstr "" #: src/hd-data.c:660 msgid "National Holiday" msgstr "Nationale feestdag" #: src/hd-data.c:661 msgid "National Mourning Day" msgstr "Nationale rouwdag" #: src/hd-data.c:662 msgid "New Year's Day" msgstr "Nieuwjaarsdag" #: src/hd-data.c:663 msgid "Nurses' Day" msgstr "" #: src/hd-data.c:664 msgid "Old-Armenic New Year" msgstr "Oud-Armenisch nieuwjaar" #: src/hd-data.c:665 msgid "Old-Egyptic New Year" msgstr "Oud-Egyptisch nieuwjaar" #: src/hd-data.c:666 msgid "Orthodox New Year's Day" msgstr "Orthodox nieuwjaar" #: src/hd-data.c:667 msgid "Our Lady Aparecida Day" msgstr "" #: src/hd-data.c:668 msgid "Palm Sunday" msgstr "Palmzondag" #: src/hd-data.c:669 msgid "Parent's Day" msgstr "Ouderdag" #: src/hd-data.c:670 msgid "Passion Sunday" msgstr "Passiezondag" #: src/hd-data.c:671 msgid "Peace Festival" msgstr "Vredesfestival" #: src/hd-data.c:672 msgid "Peach Festival" msgstr "Perzikenfestival" #: src/hd-data.c:673 msgid "Whitsunday/Pentecost" msgstr "" #: src/hd-data.c:674 msgid "Noruz/Persian New Year's Day" msgstr "Perzisch nieuwjaar" #: src/hd-data.c:675 msgid "Prayer Day" msgstr "Gebedsdag" #: src/hd-data.c:676 msgid "Presidential Inauguration" msgstr "" #: src/hd-data.c:677 msgid "Presidents' Day" msgstr "" #: src/hd-data.c:678 msgid "Presidents' Inform" msgstr "" #: src/hd-data.c:679 msgid "President Lincoln's Birthday" msgstr "Geboortedag van president Lincoln" #: src/hd-data.c:680 msgid "Princess' Day" msgstr "Prinsessendag" #: src/hd-data.c:681 msgid "Quinquagesima Sunday" msgstr "" #: src/hd-data.c:682 msgid "Reformation Day" msgstr "" #: src/hd-data.c:683 msgid "Remembrance/Memorial Day" msgstr "" #: src/hd-data.c:684 msgid "Republic Day" msgstr "Dag van de republiek" #: src/hd-data.c:685 msgid "Respect for the Aged Day" msgstr "" #: src/hd-data.c:686 msgid "Revolution Day" msgstr "Dag van de revolutie" #: src/hd-data.c:687 msgid "Rio de Janeiro Anniversary" msgstr "" #: src/hd-data.c:688 msgid "Rogation Sunday" msgstr "" #: src/hd-data.c:689 msgid "Sao Paulo Anniversary" msgstr "" #: src/hd-data.c:690 msgid "Sapporo Snow Festival" msgstr "" #: src/hd-data.c:691 msgid "Season Change/Bean-Festival" msgstr "" #: src/hd-data.c:692 msgid "Septuagesima Sunday" msgstr "Septuagesima" #: src/hd-data.c:693 msgid "Seven Sleepers Day" msgstr "" #: src/hd-data.c:694 msgid "Sexagesima Sunday" msgstr "Sexagesima" #: src/hd-data.c:695 msgid "Shrove Tuesday/Mardi Gras" msgstr "Vastenavond" #: src/hd-data.c:696 msgid "Solstice Day" msgstr "Zonnewende" #: src/hd-data.c:697 msgid "Soot-Sweeping Day" msgstr "" #: src/hd-data.c:698 msgid "Spring Festival" msgstr "Lentefestival" #: src/hd-data.c:699 msgid "Start of common month" msgstr "Start van gewone maand" #: src/hd-data.c:700 msgid "Start of leap month" msgstr "Start van schrikkelmaand" #: src/hd-data.c:701 msgid "Star Festival" msgstr "" #: src/hd-data.c:702 msgid "St Andrew's Day" msgstr "" #: src/hd-data.c:703 msgid "St Bartholomew Day" msgstr "" #: src/hd-data.c:704 msgid "St Berchtold's Day" msgstr "" #: src/hd-data.c:705 msgid "St David's Day" msgstr "" #: src/hd-data.c:706 msgid "St Edward's Day" msgstr "" #: src/hd-data.c:707 msgid "St George's Day" msgstr "" #: src/hd-data.c:708 msgid "St James' Day" msgstr "" #: src/hd-data.c:709 msgid "St Joseph's Day" msgstr "" #: src/hd-data.c:710 msgid "St Laurentius Day" msgstr "" #: src/hd-data.c:711 msgid "St Nicholas' Day" msgstr "Sint Nicolaas" #: src/hd-data.c:712 msgid "St Nicholas' Eve" msgstr "Sinterklaasavond" #: src/hd-data.c:713 msgid "St Patrick's Day" msgstr "" #: src/hd-data.c:714 msgid "St Peter and St Paul" msgstr "" #: src/hd-data.c:715 msgid "St Stephen's Day" msgstr "" #: src/hd-data.c:716 msgid "St Valentine's Day" msgstr "Valentijnsdag" #: src/hd-data.c:717 msgid "Sunday of the Dead" msgstr "" #: src/hd-data.c:718 msgid "Swallow Day" msgstr "" #: src/hd-data.c:719 msgid "Sweetest Day" msgstr "" #: src/hd-data.c:720 msgid "Sylvester/New Year's Eve" msgstr "Oudejaarsavond" #: src/hd-data.c:721 msgid "Teacher's Day" msgstr "" #: src/hd-data.c:722 msgid "Thai New Year's Day" msgstr "" #: src/hd-data.c:723 msgid "Thanksgiving Day" msgstr "Thanksgiving Day" #: src/hd-data.c:724 msgid "The King's Birthday" msgstr "" #: src/hd-data.c:725 msgid "The Queen's Birthday" msgstr "" #: src/hd-data.c:726 msgid "Epiphany/Three King's Day" msgstr "Driekoningen" #: src/hd-data.c:727 msgid "Tiradentes Day" msgstr "" #: src/hd-data.c:728 msgid "Tomb-Sweeping Day" msgstr "" #: src/hd-data.c:729 msgid "Transfiguration Day" msgstr "" #: src/hd-data.c:730 msgid "Tynwald Day" msgstr "" #: src/hd-data.c:731 msgid "Valborg's Eve" msgstr "" #: src/hd-data.c:732 msgid "Venice Carnival" msgstr "" #: src/hd-data.c:733 msgid "Veteran's Day" msgstr "" #: src/hd-data.c:734 msgid "Victoria Day" msgstr "" #: src/hd-data.c:735 msgid "Victory Day" msgstr "" #: src/hd-data.c:736 msgid "Whit Monday" msgstr "" #: src/hd-data.c:737 msgid "Women's Day" msgstr "" #: src/hd-data.c:738 msgid "Women's Shrove Day" msgstr "" #: src/hd-data.c:739 msgid "World Animal Day" msgstr "" #: src/hd-data.c:740 msgid "Youth Day" msgstr "" #: src/hd-data.c:746 msgid "Adelaide Cup Day" msgstr "" #: src/hd-data.c:747 msgid "Admission Day" msgstr "" #: src/hd-data.c:748 msgid "Alaska Day" msgstr "" #: src/hd-data.c:749 msgid "Aleksis Kivi Day" msgstr "" #: src/hd-data.c:750 msgid "Alice-Springs Show Day" msgstr "" #: src/hd-data.c:751 msgid "All Saints' Eve" msgstr "Allerheiligenavond" #: src/hd-data.c:752 msgid "Americas Day" msgstr "" #: src/hd-data.c:753 msgid "Angam Day" msgstr "" #: src/hd-data.c:755 msgid "Anniversary of Amir's Succession" msgstr "" #: src/hd-data.c:756 msgid "Anniversary of Armed Struggle" msgstr "" #: src/hd-data.c:757 msgid "Anniversary of Green March" msgstr "" #: src/hd-data.c:758 msgid "Antillian Day" msgstr "" #: src/hd-data.c:759 msgid "Arab League Day" msgstr "" #: src/hd-data.c:761 msgid "Archbishop Makarios' Memorial Day" msgstr "" #: src/hd-data.c:762 msgid "Archbishop Makarios' Name-Day" msgstr "" #: src/hd-data.c:763 msgid "Arengo Anniversary" msgstr "" #: src/hd-data.c:764 msgid "Army Coup Day" msgstr "" #: src/hd-data.c:765 msgid "Arrival of the Swiss" msgstr "" #: src/hd-data.c:766 msgid "Artigas' Birthday" msgstr "" #: src/hd-data.c:767 msgid "Asuncion Day" msgstr "" #: src/hd-data.c:768 msgid "Ataturk Memorial Day" msgstr "" #: src/hd-data.c:769 msgid "Authority's Power Day" msgstr "" #: src/hd-data.c:770 msgid "Ba'ath Revolution Day" msgstr "" #: src/hd-data.c:771 msgid "Baron Bliss Day" msgstr "" #: src/hd-data.c:772 msgid "Bataan Day" msgstr "" #: src/hd-data.c:773 msgid "Battle of Angamos" msgstr "" #: src/hd-data.c:774 msgid "Battle of Boyacá" msgstr "" #: src/hd-data.c:775 msgid "Battle of Carabobo" msgstr "" #: src/hd-data.c:776 msgid "Battle of Iquique" msgstr "" #: src/hd-data.c:777 msgid "Battle of Las Piedras" msgstr "" #: src/hd-data.c:778 msgid "Battle of Näfels" msgstr "" #: src/hd-data.c:779 msgid "Beginning of Summer" msgstr "" #: src/hd-data.c:780 msgid "Belgrade's Day" msgstr "" #: src/hd-data.c:781 msgid "Bennington Battle Day" msgstr "" #: src/hd-data.c:782 msgid "Blessing of the Water" msgstr "" #: src/hd-data.c:783 msgid "Bloomsday" msgstr "Bloomsday" #: src/hd-data.c:784 msgid "Boganda Day" msgstr "" #: src/hd-data.c:785 msgid "Bonaire Day" msgstr "" #: src/hd-data.c:786 msgid "Boqueron Battle Day" msgstr "" #: src/hd-data.c:787 msgid "Botswana Day" msgstr "" #: src/hd-data.c:788 msgid "Bounty Day" msgstr "" #: src/hd-data.c:789 msgid "Bunker Hill Day" msgstr "" #: src/hd-data.c:790 msgid "Burning of Jan Hus" msgstr "" #: src/hd-data.c:791 msgid "Canberra Day" msgstr "" #: src/hd-data.c:792 msgid "Caricom Day" msgstr "" #: src/hd-data.c:793 msgid "Casimir Pulaski's Birthday" msgstr "" #: src/hd-data.c:794 msgid "Cassinga Day" msgstr "" #: src/hd-data.c:795 msgid "Cayenne Festival" msgstr "" #: src/hd-data.c:796 msgid "Cesar Chavez Day" msgstr "" #: src/hd-data.c:797 msgid "Charter Day" msgstr "" #: src/hd-data.c:798 msgid "Chiang Kai-shek's Birthday" msgstr "" #: src/hd-data.c:799 msgid "Children's White Sunday" msgstr "" #: src/hd-data.c:800 msgid "Colon Day" msgstr "" #: src/hd-data.c:801 msgid "Colorado Day" msgstr "" #: src/hd-data.c:802 msgid "Commonwealth Day" msgstr "" #: src/hd-data.c:803 msgid "Compact Day" msgstr "" #: src/hd-data.c:804 msgid "Confederal Agreement Day" msgstr "" #: src/hd-data.c:805 msgid "Coronation Day" msgstr "" #: src/hd-data.c:806 msgid "Cup Match Day" msgstr "" #: src/hd-data.c:807 msgid "Custom Chief's Day" msgstr "" #: src/hd-data.c:808 msgid "C. Mapinduzi Day" msgstr "" #: src/hd-data.c:809 msgid "Darwin Show Day" msgstr "" #: src/hd-data.c:810 msgid "Day of Goodwill" msgstr "" #: src/hd-data.c:811 msgid "Day of Students Revolt" msgstr "" #: src/hd-data.c:812 msgid "Day of the Free Laos" msgstr "" #: src/hd-data.c:813 msgid "Death of H. Christophe" msgstr "" #: src/hd-data.c:814 msgid "Death of J. Dessalines" msgstr "" #: src/hd-data.c:815 msgid "Death of President Abdallah" msgstr "" #: src/hd-data.c:816 msgid "Death of President Cheikh" msgstr "" #: src/hd-data.c:817 msgid "Death of President Soilih" msgstr "" #: src/hd-data.c:818 msgid "Death of Qaid-i-Azam" msgstr "" #: src/hd-data.c:819 msgid "Death of T. Louverture" msgstr "" #: src/hd-data.c:820 msgid "Defenders Day" msgstr "" #: src/hd-data.c:821 msgid "Dia del Padre" msgstr "" #: src/hd-data.c:822 msgid "Dia de los Maestros" msgstr "" #: src/hd-data.c:823 msgid "Discovery Day" msgstr "" #: src/hd-data.c:824 msgid "Downfall of the Dergue" msgstr "" #: src/hd-data.c:825 msgid "Dry Season Celebration" msgstr "" #: src/hd-data.c:826 msgid "Dr. Sun Yat-sen's Birthday" msgstr "" #: src/hd-data.c:827 msgid "Duarte's Birthday" msgstr "" #: src/hd-data.c:828 msgid "Easter Tuesday" msgstr "Paasdinsdag" #: src/hd-data.c:829 msgid "Economic Liberation Day" msgstr "" #: src/hd-data.c:830 msgid "Eight Hours Day" msgstr "" #: src/hd-data.c:831 msgid "Elections for National Assembly" msgstr "" #: src/hd-data.c:832 msgid "Errol Barrow Day" msgstr "" #: src/hd-data.c:833 msgid "Evacuation Day" msgstr "" #: src/hd-data.c:834 msgid "Eve of Epiphany" msgstr "" #: src/hd-data.c:835 msgid "Expedition of the 33" msgstr "" #: src/hd-data.c:836 msgid "E. Hostos' Birthday" msgstr "" #: src/hd-data.c:837 msgid "Family Day" msgstr "" #: src/hd-data.c:838 msgid "FAO Day" msgstr "" #: src/hd-data.c:839 msgid "Farmers' Day" msgstr "" #: src/hd-data.c:840 msgid "Father Leval Day" msgstr "" #: src/hd-data.c:841 msgid "Feast of Our Theotokos" msgstr "" #: src/hd-data.c:842 msgid "Fisherman's Day" msgstr "" #: src/hd-data.c:843 msgid "Foundation of NPLA Day" msgstr "" #: src/hd-data.c:844 msgid "Founding of People's Party" msgstr "" #: src/hd-data.c:845 msgid "Garifuna Day" msgstr "" #: src/hd-data.c:847 msgid "General San Martin's Anniversary" msgstr "" #: src/hd-data.c:848 msgid "Gospel Day" msgstr "" #: src/hd-data.c:849 msgid "Guacanaste Day" msgstr "" #: src/hd-data.c:850 msgid "Gustavus Adolphus' Day" msgstr "" #: src/hd-data.c:851 msgid "Heritage Day" msgstr "" #: src/hd-data.c:852 msgid "Heroes Day" msgstr "" #: src/hd-data.c:853 msgid "Hobart Show Day" msgstr "" #: src/hd-data.c:854 msgid "Holy Wednesday" msgstr "Schortelwoensdag" #: src/hd-data.c:855 msgid "Ho Chi Minh's Birthday" msgstr "" #: src/hd-data.c:856 msgid "Human Rights Day" msgstr "Mensenrechtendag" #: src/hd-data.c:857 msgid "Hurricane Supplication Day" msgstr "" #: src/hd-data.c:858 msgid "Hurricane Thanksgiving Day" msgstr "" #: src/hd-data.c:859 msgid "Independence of Cartagena" msgstr "" #: src/hd-data.c:860 msgid "Independence of Cuenca" msgstr "" #: src/hd-data.c:861 msgid "Independence of Guayaquil" msgstr "" #: src/hd-data.c:862 msgid "Independence of Quito" msgstr "" #: src/hd-data.c:863 msgid "Indian Arrival Day" msgstr "" #: src/hd-data.c:864 msgid "Internal Autonomy Day" msgstr "" #: src/hd-data.c:865 msgid "Jefferson Davis' Birthday" msgstr "" #: src/hd-data.c:866 msgid "June Holiday" msgstr "" #: src/hd-data.c:867 msgid "J. Barbosa's Birthday" msgstr "" #: src/hd-data.c:868 msgid "J. Chilembwe Day" msgstr "" #: src/hd-data.c:869 msgid "J. Diego's Birthday" msgstr "" #: src/hd-data.c:870 msgid "J. Robert's Birthday" msgstr "" #: src/hd-data.c:871 msgid "Kamarampaka Day" msgstr "" #: src/hd-data.c:872 msgid "Kartini Day" msgstr "" #: src/hd-data.c:873 msgid "Catherine Show Day" msgstr "" #: src/hd-data.c:874 msgid "Kiev Day" msgstr "" #: src/hd-data.c:875 msgid "Kim Il-Sung's Birthday" msgstr "" #: src/hd-data.c:876 msgid "Kim Jong-Il's Birthday" msgstr "" #: src/hd-data.c:877 msgid "King Kamehameha Day" msgstr "" #: src/hd-data.c:878 msgid "King Rama I Memorial Day/Chakri" msgstr "" #: src/hd-data.c:879 msgid "King Rama V Memorial Day" msgstr "" #: src/hd-data.c:880 msgid "Knabenschiessen" msgstr "" #: src/hd-data.c:881 msgid "Konstantin and Methodius" msgstr "" #: src/hd-data.c:882 msgid "Lapp National Holiday" msgstr "" #: src/hd-data.c:883 msgid "Launceston Cup Day" msgstr "" #: src/hd-data.c:884 msgid "Liberty Day" msgstr "" #: src/hd-data.c:885 msgid "Loss of Muslim Nation" msgstr "" #: src/hd-data.c:886 msgid "Luxembourg City Kermis" msgstr "" #: src/hd-data.c:887 msgid "Lyndon B. Johnson Day" msgstr "" #: src/hd-data.c:888 msgid "L. Rivera's Birthday" msgstr "" #: src/hd-data.c:889 msgid "Madaraka Day" msgstr "" #: src/hd-data.c:890 msgid "Mahatma Gandhi's Birthday" msgstr "" #: src/hd-data.c:891 msgid "Malvinas Day" msgstr "" #: src/hd-data.c:892 msgid "Manila Day" msgstr "" #: src/hd-data.c:893 msgid "Maputo City Day" msgstr "" #: src/hd-data.c:894 msgid "Marien Ngouabi Day" msgstr "" #: src/hd-data.c:895 msgid "Maryland Day" msgstr "" #: src/hd-data.c:896 msgid "Melbourne Cup Day" msgstr "" #: src/hd-data.c:897 msgid "Merchant Day" msgstr "" #: src/hd-data.c:898 msgid "St John's/Midsummers Eve" msgstr "" #: src/hd-data.c:899 msgid "Missionary Day" msgstr "" #: src/hd-data.c:900 msgid "Mi-Carême Day" msgstr "" #: src/hd-data.c:901 msgid "Morazan Day" msgstr "" #: src/hd-data.c:902 msgid "Mosheshoe's Day" msgstr "" #: src/hd-data.c:903 msgid "Motherhood and Beauty Day" msgstr "" #: src/hd-data.c:904 msgid "Naming Day" msgstr "" #: src/hd-data.c:905 msgid "National Bun Day" msgstr "" #: src/hd-data.c:906 msgid "National Heroes Day" msgstr "" #: src/hd-data.c:907 msgid "National Redemption Day" msgstr "" #: src/hd-data.c:908 msgid "National Resistance Day" msgstr "" #: src/hd-data.c:909 msgid "National Revival Day" msgstr "" #: src/hd-data.c:910 msgid "National Unity Day" msgstr "" #: src/hd-data.c:911 msgid "Ndadaye Day" msgstr "" #: src/hd-data.c:912 msgid "Neutrality Day" msgstr "" #: src/hd-data.c:913 msgid "Nevada Day" msgstr "" #: src/hd-data.c:914 msgid "New Regime Anniversary" msgstr "" #: src/hd-data.c:915 msgid "Nobel Day" msgstr "" #: src/hd-data.c:916 msgid "Noi Day" msgstr "" #: src/hd-data.c:917 msgid "OAU Day" msgstr "" #: src/hd-data.c:918 msgid "October Holiday" msgstr "" #: src/hd-data.c:919 msgid "Oil Industry Day" msgstr "" #: src/hd-data.c:920 msgid "Our Lady of Altagracia Day" msgstr "" #: src/hd-data.c:921 msgid "Our Lady of Camarin Day" msgstr "" #: src/hd-data.c:922 msgid "Our Lady of Las Mercedes Day" msgstr "" #: src/hd-data.c:923 msgid "Our Lady of Los Angeles Day" msgstr "" #: src/hd-data.c:924 msgid "Our Lady of Seven Sorrows" msgstr "" #: src/hd-data.c:925 msgid "Our Lady of Victories Day" msgstr "" #: src/hd-data.c:926 msgid "Panama City Day" msgstr "" #: src/hd-data.c:927 msgid "Panamerica Day" msgstr "" #: src/hd-data.c:928 msgid "Paris Peace Agreement Day" msgstr "" #: src/hd-data.c:929 msgid "Patriot's Day" msgstr "" #: src/hd-data.c:930 msgid "People's Uprising Day" msgstr "" #: src/hd-data.c:931 msgid "People Power Day" msgstr "" #: src/hd-data.c:932 msgid "Philippine-American Friendship" msgstr "" #: src/hd-data.c:933 msgid "Pichincha Day" msgstr "" #: src/hd-data.c:934 msgid "Picnic Day" msgstr "" #: src/hd-data.c:935 msgid "Pioneer Day" msgstr "" #: src/hd-data.c:936 msgid "Poya Day" msgstr "" #: src/hd-data.c:937 msgid "Prince Kalanianaole Day" msgstr "" #: src/hd-data.c:938 msgid "Prince of Wales' Birthday" msgstr "" #: src/hd-data.c:939 msgid "Proclamation Day" msgstr "" #: src/hd-data.c:940 msgid "Qaid-i-Azam's Birthday" msgstr "" #: src/hd-data.c:941 msgid "Ratu Sukuma Day" msgstr "" #: src/hd-data.c:942 msgid "Recreation Day" msgstr "" #: src/hd-data.c:943 msgid "Referendum Day" msgstr "" #: src/hd-data.c:944 msgid "Regatta Day" msgstr "" #: src/hd-data.c:945 msgid "Regency Exchange" msgstr "" #: src/hd-data.c:946 msgid "Restoration Day" msgstr "" #: src/hd-data.c:947 msgid "Return Day" msgstr "" #: src/hd-data.c:948 msgid "Reunification Day" msgstr "" #: src/hd-data.c:949 msgid "Rizal Day" msgstr "" #: src/hd-data.c:950 msgid "Rwagasore Day" msgstr "" #: src/hd-data.c:951 msgid "Saba Day" msgstr "" #: src/hd-data.c:952 msgid "San Jacinto Day" msgstr "" #: src/hd-data.c:953 msgid "San José Day" msgstr "" #: src/hd-data.c:954 msgid "SAR Establishment Day" msgstr "" #: src/hd-data.c:955 msgid "School Holiday" msgstr "" #: src/hd-data.c:956 msgid "Sechseläuten" msgstr "" #: src/hd-data.c:957 msgid "Separation Day" msgstr "" #: src/hd-data.c:958 msgid "Seretse Khama Day" msgstr "" #: src/hd-data.c:959 msgid "Settlers Day" msgstr "" #: src/hd-data.c:960 msgid "Seward's Day" msgstr "" #: src/hd-data.c:961 msgid "Shaheed Day" msgstr "" #: src/hd-data.c:962 msgid "Sheep Festival" msgstr "" #: src/hd-data.c:963 msgid "Sheikh Zayed's Ascension Day" msgstr "" #: src/hd-data.c:964 msgid "Simon Bolivar's Day" msgstr "" #: src/hd-data.c:965 msgid "Sinai-Liberation Day" msgstr "" #: src/hd-data.c:966 msgid "Slave-Liberation Day" msgstr "" #: src/hd-data.c:967 msgid "Sniff the Breeze Day" msgstr "" #: src/hd-data.c:968 msgid "Solidarity Day" msgstr "" #: src/hd-data.c:969 msgid "Somers Day" msgstr "" #: src/hd-data.c:970 msgid "Statia-American Day" msgstr "" #: src/hd-data.c:971 msgid "Student's Day" msgstr "" #: src/hd-data.c:972 msgid "St Agata Day" msgstr "" #: src/hd-data.c:973 msgid "St Canute's Day" msgstr "" #: src/hd-data.c:974 msgid "St Cedilia's Day" msgstr "" #: src/hd-data.c:975 msgid "St Charles' Day" msgstr "" #: src/hd-data.c:976 msgid "St Demetrius' Day" msgstr "" #: src/hd-data.c:977 msgid "St Dévote Day" msgstr "" #: src/hd-data.c:978 msgid "St Eliah's Day" msgstr "" #: src/hd-data.c:979 msgid "St Jean Baptiste Day" msgstr "" #: src/hd-data.c:980 msgid "St Lucia's Day" msgstr "" #: src/hd-data.c:981 msgid "St Marguerite's Day" msgstr "" #: src/hd-data.c:982 msgid "St Maroon's Day" msgstr "" #: src/hd-data.c:983 msgid "St Michael's Day" msgstr "" #: src/hd-data.c:984 msgid "St Olav's Day" msgstr "" #: src/hd-data.c:985 msgid "St Olav's Eve" msgstr "" #: src/hd-data.c:986 msgid "St Paul's Shipswreck" msgstr "" #: src/hd-data.c:987 msgid "St Rose of Lima" msgstr "" #: src/hd-data.c:988 msgid "St Ursula's Day" msgstr "" #: src/hd-data.c:989 msgid "St Vincent de Paul's Day" msgstr "" #: src/hd-data.c:990 msgid "Suez Victory Day" msgstr "" #: src/hd-data.c:991 msgid "Sultan Qaboos' Birthday" msgstr "" #: src/hd-data.c:992 msgid "Svetitskhovloba" msgstr "" #: src/hd-data.c:993 msgid "Sweden Day" msgstr "" #: src/hd-data.c:994 msgid "S. Doe's Birthday" msgstr "" #: src/hd-data.c:995 msgid "Tennant-Creek Show Day" msgstr "" #: src/hd-data.c:996 msgid "Territory Day" msgstr "" #: src/hd-data.c:997 msgid "The Crown Princesse's Birthday" msgstr "" #: src/hd-data.c:998 msgid "The Crown Princesse's Name-Day" msgstr "" #: src/hd-data.c:999 msgid "The Crown Prince's Birthday" msgstr "" #: src/hd-data.c:1000 msgid "The King's Name-Day" msgstr "" #: src/hd-data.c:1001 msgid "The Queen's Name-Day" msgstr "" #: src/hd-data.c:1002 msgid "Topou I Day" msgstr "" #: src/hd-data.c:1003 msgid "Town Meeting Day" msgstr "" #: src/hd-data.c:1004 msgid "Traditional Day" msgstr "" #: src/hd-data.c:1005 msgid "Transfer Day" msgstr "" #: src/hd-data.c:1006 msgid "Truman Day" msgstr "" #: src/hd-data.c:1007 msgid "Union Day" msgstr "" #: src/hd-data.c:1008 msgid "Union with Sweden dissolved" msgstr "" #: src/hd-data.c:1009 msgid "United Nations Day" msgstr "" #: src/hd-data.c:1010 msgid "Unity Factory Day" msgstr "" #: src/hd-data.c:1011 msgid "Victor-Schoelcher Day" msgstr "" #: src/hd-data.c:1012 msgid "Vidovdan" msgstr "" #: src/hd-data.c:1013 msgid "West Virginia Day" msgstr "" #: src/hd-data.c:1014 msgid "Whitsun Eve" msgstr "" #: src/hd-data.c:1015 msgid "W. Tubman's Birthday" msgstr "" #: src/hd-data.c:1016 msgid "Yap Day" msgstr "" #: src/hd-data.c:1017 msgid "Day of Czech Statehood" msgstr "" #: src/hd-data.c:1082 msgid "Zi/Rat" msgstr "Rat" #: src/hd-data.c:1082 msgid "Chou/Ox" msgstr "Os" #: src/hd-data.c:1083 msgid "Yin/Tiger" msgstr "Tijger" #: src/hd-data.c:1083 msgid "Mao/Rabbit" msgstr "Konijn" #: src/hd-data.c:1084 msgid "Chen/Dragon" msgstr "Draak" #: src/hd-data.c:1084 msgid "Si/Snake" msgstr "Slang" #: src/hd-data.c:1085 msgid "Wu/Horse" msgstr "Paard" #: src/hd-data.c:1085 msgid "Wei/Sheep" msgstr "Schaap" #: src/hd-data.c:1086 msgid "Shen/Monkey" msgstr "Aap" #: src/hd-data.c:1086 msgid "You/Rooster" msgstr "Haan" #: src/hd-data.c:1087 msgid "Xu/Dog" msgstr "Hond" #: src/hd-data.c:1087 msgid "Hai/Pig" msgstr "Varken" #: src/hd-data.c:1284 msgid "Ast" msgstr "" #: src/hd-data.c:1397 src/hd-data.c:1480 msgid "Bah" msgstr "Bah" #: src/hd-data.c:1547 msgid "Cel" msgstr "Kel" #: src/hd-data.c:1689 src/hd-data.c:2222 msgid "Chi" msgstr "Chi" #: src/hd-data.c:1803 src/hd-data.c:2322 src/hd-data.c:3839 #, c-format msgid "Cannot calculate lunisolar calendar for %d correctly" msgstr "" #: src/hd-data.c:2224 src/hd-data.c:3727 msgid "Jap" msgstr "Jap" #: src/hd-data.c:2420 msgid "Chr" msgstr "Chr" #: src/hd-data.c:2654 src/hd-data.c:4171 msgid "FRR" msgstr "FRR" #: src/hd-data.c:2775 src/hd-data.c:2957 msgid "Heb" msgstr "Heb" #: src/hd-data.c:3187 src/hd-data.c:3616 msgid "Isl" msgstr "Isl" #: src/hd-data.c:4241 src/hd-data.c:4336 msgid "AMO" msgstr "" #: src/hd-data.c:4262 src/hd-data.c:4334 msgid "EGO" msgstr "" #: src/hd-data.c:4444 msgid "OxN" msgstr "" #: src/hd-data.c:4446 msgid "OxO" msgstr "" #: src/hd-data.c:4647 src/hd-data.c:4776 msgid "Per" msgstr "" #: src/hd-data.c:4844 msgid "Zod" msgstr "" #: src/hd-use.c:928 msgid " day" msgstr " dag" #: src/hd-use.c:1973 src/hd-use.c:1978 src/hd-use.c:1982 src/hd-use.c:1989 #: src/hd-use.c:1993 src/hd-use.c:2089 src/hd-use.c:2273 msgid "Eternal holiday list" msgstr "" #: src/hd-use.c:1977 #, 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:1981 #, 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:1988 #, c-format msgid "%s:%*sThe year %d is A leap year" msgstr "%s:%*sHet jaar %d is WEL een schrikkeljaar" #: src/hd-use.c:1992 #, c-format msgid "%s:%*sThe year %d is NO leap year" msgstr "%s:%*sHet jaar %d is GEEN schrikkeljaar" #: src/hd-use.c:2242 #, c-format msgid " = %+4d day" msgstr " = %+4d dag" #: src/hd-use.c:2244 #, c-format msgid " = %+4d days" msgstr " = %+4d dagen" #: src/hd-use.c:2271 #, c-format msgid "%s%s contains %d maximum entries now!%s" msgstr "%s%s bevat nu %d maxima als invoer!%s" #: src/help.c:64 #, 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:74 msgid "# Day number (must be defined)" msgstr "# Dagnummer (verplicht)" #: src/help.c:75 msgid "# Year number (must be defined)" msgstr "# Jaarnummer (verplicht)" #: src/help.c:76 msgid "# Weekday name (may be defined)" msgstr "# Weekdagnaam (optioneel)" #: src/help.c:77 msgid "Month group (exactly one member must be defined):" msgstr "Maand (kies exact één uit de lijst):" #: src/help.c:78 msgid "# Month number" msgstr "# Maandnummer" #: src/help.c:79 msgid "# Month name" msgstr "# Maandnaam" #: src/help.c:80 #, fuzzy msgid "Highlighting group (all members must be defined):" msgstr "Arceren (alle leden verplicht):" #: src/help.c:81 msgid "Start of highlighting sequence/marking character" msgstr "Begin van markeersequentie/merkteken" #: src/help.c:83 msgid "End of highlighting sequence/marking character" msgstr "Einde van markeersequentie/merkteken" #: src/help.c:85 msgid "Character replacement:" msgstr "Karaktervervanging:" #: src/help.c:86 #, c-format msgid "Space/blank ('%c') character" msgstr "Spatie/blanco ('%c') karakter" #: src/help.c:87 #, c-format msgid "Underscore ('%c') character" msgstr "Underscore ('%c') karakter" #: src/help.c:88 #, c-format msgid "Percent ('%c') character" msgstr "Procent ('%c') karakter" #: src/help.c:89 #, c-format msgid "Backslash ('%c') character" msgstr "Backslash ('%c') karakter" #: src/help.c:90 msgid "All format elements marked by # may optionally" msgstr "Alle formatelementen gemarkeerd door een # kunnen optioneel" #: src/help.c:91 msgid "contain a format instruction, which template is like:" msgstr "een formatinstructie bevatten met de syntax:" #: src/help.c:92 msgid "[ALIGNMENT [SIGN] [ZERO] WIDTH [STYLE] [SUFFIX] FORMAT]" msgstr "[UITLIJNING [TEKEN] [NUL] BREEDTE [STIJL] [ACHTERVOEGSEL] AFKAPGEDRAG]" #: src/help.c:93 msgid "ALIGNMENT group (exactly one member must be defined):" msgstr "UITLIJNING (verplicht één kiezen uit de lijst):" #: src/help.c:94 msgid "Field contents placed at the left margin using width WIDTH" msgstr "Veldinhoud wordt links uitgelijnd met breedte BREEDTE" #: src/help.c:96 msgid "Field contents placed in centered manner using width WIDTH" msgstr "Veldinhoud wordt gecentreerd met breedte BREEDTE" #: src/help.c:98 msgid "Field contents placed at the right margin using width WIDTH" msgstr "Veldinhoud wordt gecentreerd met breedte BREEDTE" #: src/help.c:100 msgid "SIGN (may be defined):" msgstr "TEKEN (optioneel):" #: src/help.c:101 msgid "Numerical value is provided with leading sign" msgstr "Getalwaarde wordt voorafgegaan door een teken" #: src/help.c:102 msgid "ZERO (may be defined):" msgstr "NUL (optioneel):" #: src/help.c:103 msgid "Numerical value is filled with leading zero(es)" msgstr "Getalwaarde wordt aangevuld met voorloopnul(len)" #: src/help.c:104 msgid "WIDTH (must be defined):" msgstr "BREEDTE (verplicht):" #: src/help.c:105 #, c-format msgid "Field has the width N (%d...%d)" msgstr "Het aantal posities van het veld (%d...%d)" #: src/help.c:106 msgid "STYLE group (exactly one member may be defined):" msgstr "STIJL (optioneel één kiezen uit lijst):" #: src/help.c:107 msgid "Field contents is converted to upper-case letters" msgstr "Veldinhoud wordt omgezet in hoofdletterd" #: src/help.c:108 msgid "Field contents is converted to lower-case letters" msgstr "Veldinhoud wordt omgezet in kleine letters" #: src/help.c:109 msgid "Field contents is converted to capitalized words" msgstr "Veldinhoud wordt omgezet naar woorden met beginhoofdletter" #: src/help.c:110 msgid "SUFFIX (may be defined):" msgstr "ACHTERVOEGSEL (optioneel):" #: src/help.c:111 msgid "Numerical value is provided with an ordinal number suffix" msgstr "Getalwaarde wordt gevolgd door een rangtelwoord-achtervoegsel" #: src/help.c:113 msgid "FORMAT group (exactly one member must be defined):" msgstr "AFKAPGEDRAG (verplicht één kiezen uit lijst):" #: src/help.c:114 msgid "Field contents is not cut after position WIDTH" msgstr "Veldinhoud wordt niet na positie BREEDTE afgekapt" #: src/help.c:115 msgid "Field contents is cut after position WIDTH" msgstr "Veldinhoud wordt na positie BREEDTE afgekapt" #: src/help.c:129 msgid "legal holidays" msgstr "wettelijke vakantiedagen" #: src/help.c:130 msgid "holidays" msgstr "vakantiedagen" #: src/help.c:131 msgid "Mondays" msgstr "maandagen" #: src/help.c:132 msgid "Tuesdays" msgstr "dinsdagen" #: src/help.c:133 msgid "Wednesdays" msgstr "woensdagen" #: src/help.c:134 msgid "Thursdays" msgstr "donderdagen" #: src/help.c:135 msgid "Fridays" msgstr "vrijdagen" #: src/help.c:136 msgid "Saturdays" msgstr "zaterdagen" #: src/help.c:137 msgid "Sundays" msgstr "zondagen" #: src/help.c:138 msgid "Mondays...Thursdays" msgstr "maandagen...donderdagen" #: src/help.c:139 msgid "Mondays...Fridays" msgstr "maandagen...vrijdagen" #: src/help.c:169 #, 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:242 msgid "OPTION" msgstr "OPTIE" #: src/help.c:255 msgid " Display help text and quit program" msgstr " Hulptekst tonen en programma beëindigen" #: src/help.c:272 msgid " Display extended help text and quit program" msgstr " Uitgebreide hulptekst tonen en programma beëindigen" #: src/help.c:290 msgid " Display software license and quit program" msgstr " Softwarelicentie tonen en programma beëindigen" #: src/help.c:301 msgid " Display version information and quit program" msgstr " Versieinformatie tonen en programma beëindigen" #: src/help.c:312 #, c-format msgid " Set EXIT status of program to %d on `%s' etc." msgstr "" #: src/help.c:325 #, c-format msgid " Create response file for the `%cFILE' option" msgstr "" #: src/help.c:329 #, c-format msgid " %-3s = Store arguments of command line in file %s" msgstr "" #: src/help.c:343 #, c-format msgid "" " Create shell script which contains the arguments of command line" msgstr "" #: src/help.c:345 #, c-format msgid " %-3s = File name of the shell script" msgstr "" #: src/help.c:359 msgid " Define global date variable(s) \"DVAR->a...d|f...s|u...|z\"" msgstr "" #: src/help.c:363 #, c-format msgid " %-3s = \"DVAR%s%s%s\" definitions separated by `%s' characters" msgstr "" #: src/help.c:368 #, c-format msgid "" " E.g. %sv a%s1127%sb%s054 Set `a' to Nov 27 and `b' to May 4" msgstr "" #: src/help.c:380 msgid " Export local date variables from file to file" msgstr "" #: src/help.c:392 #, c-format msgid " Define global text variable(s) \"TVAR->%ca...%cz\"" msgstr "" #: src/help.c:397 #, c-format msgid " %-3s = \"TVAR%sTEXT\" definitions separated by `%s' characters" msgstr "" #: src/help.c:402 #, c-format msgid "" " E.g. %sr %ca%sfoo%s%cb%sbar Set `%ca' to `foo' and `%cb' to " "`bar'" msgstr "" #: src/help.c:408 #, c-format msgid "" " = \"TVAR[%s|%c%s]COMMAND\" definitions separated by `%s' characters" msgstr "" #: src/help.c:413 #, c-format msgid "" " E.g. %sr %ca%sfoo Assign output of command `foo' to `%ca'" msgstr "" #: src/help.c:425 msgid " Export local text variables from file to file" msgstr "" #: src/help.c:437 src/help.c:467 #, c-format msgid "" " Display only those fixed dates, whose date is not excluded by %s" msgstr "" #: src/help.c:442 #, 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:447 msgid " is a LOWER-CASE-LETTER, it means a non-exclusion!" msgstr " KLEINE LETTER betekent hier niet-uitsluiting!" #: src/help.c:451 #, c-format msgid " %c = Exclusion of all %s" msgstr " %c = Uitsluiting van alle %s" #: src/help.c:472 #, 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:476 #, c-format msgid " expressions separated by `%s' characters" msgstr " uitdrukkingen, gescheiden door '%s' karakters" #: src/help.c:489 #, 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:494 #, c-format msgid " %-3s = Any text respectively \"regular expression\" you like" msgstr "" #: src/help.c:507 #, c-format msgid " Ignore case distinctions if `%s' option is given" msgstr "" #: src/help.c:519 #, c-format msgid " Revert the sense of matching of the `%s' option" msgstr "" #: src/help.c:530 msgid " Display some debug information" msgstr " Foutopsporingsinformatie tonen" #: src/help.c:538 #, 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:547 msgid "" " = handled Like `internal' and file names which are handled" msgstr " = handled Zoals 'internal' en verwerkte bestandsnamen" #: src/help.c:555 msgid "" " = unhandled Like `internal' and file names which are unhandled" msgstr " = unhandled Zoals 'internal' en onverwerkte bestandsnamen" #: src/help.c:563 msgid " = all Like `handled' and `unhandled' together" msgstr " = all Zoals 'handled' en 'unhandled' samen" #: src/help.c:571 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:581 msgid " Use special format for calendar sheet" msgstr "" #: src/help.c:584 msgid " [MOD] = - Use standard format for calendar sheet" msgstr "" #: src/help.c:595 msgid " Use leap year rule of Eastern Orthodox churches" msgstr "" #: src/help.c:605 msgid " Provide calendar sheet with week numbers" msgstr "" #: src/help.c:616 #, c-format msgid " Determine type of week numbers (actual: %s)" msgstr " Het type weeknummers vaststellen (huidig: %s)" #: src/help.c:617 msgid "Standard" msgstr "Standaard" #: src/help.c:623 #, c-format msgid " %-3s = yes ISO-8601:1988 week numbers" msgstr " %-3s = yes ISO-8601:1988 weeknummers" #: src/help.c:630 msgid " = no Standard week numbers" msgstr " = no Standaard weeknumbers" #: src/help.c:641 msgid " Suppress output of calendar sheet explicitly" msgstr "" #: src/help.c:654 #, c-format msgid " Direct output through external `%s' pager" msgstr "" #: src/help.c:660 src/help.c:662 msgid " Direct output through simple internal pager" msgstr "" #: src/help.c:679 msgid " Disable highlighting of text, holiday resp., actual day" msgstr "" #: src/help.c:694 msgid " Forces highlighting sequences if output is redirected/piped" msgstr "" #: src/help.c:706 msgid "" " Set highlighting sequence pairs 1 (=actual day) and 2 (=holiday)" msgstr "" #: src/help.c:710 #, c-format msgid " %-3s = Highlighting sequence pairs separated by `%s' characters" msgstr "" #: src/help.c:715 #, c-format msgid "" " E.g. %sH \\x2%s\\xAE Use hex values 2 and AE for sequence 1" msgstr "" #: src/help.c:720 #, c-format msgid "" " E.g. %sH %s%s*%s* Use characters `*' and `*' for sequence 2" msgstr "" #: src/help.c:731 msgid " Modify format of year calendar" msgstr "" #: src/help.c:735 #, c-format msgid " %-3s = 1|2|3|4|6|12 Number of blocks (actual: %d)" msgstr "" #: src/help.c:747 msgid " Use consecutive day of year in calendar sheet" msgstr "" #: src/help.c:751 msgid " [MOD] = b Use both date notations (day of month+year)" msgstr "" #: src/help.c:763 msgid " Use consecutive day of year in eternal holiday list" msgstr "" #: src/help.c:767 src/help.c:783 msgid " [MOD] = b Use both date notations (day of month+year)" msgstr "" #: src/help.c:779 msgid " Use consecutive day of year in fixed date list" msgstr "" #: src/help.c:794 #, c-format msgid " Set starting day of week (actual: %s)" msgstr "" #: src/help.c:827 #, c-format msgid " Send output via `%s' program to user" msgstr "" #: src/help.c:856 msgid "UNKNOWN" msgstr "" #: src/help.c:859 #, c-format msgid " [%-3s] = Email address, otherwise eMail is send to user `%s'" msgstr "" #: src/help.c:877 #, c-format msgid " Display eternal holiday list (Year in range: %d...%d)" msgstr "" #: src/help.c:880 msgid " n = Legal days and memorial days" msgstr "" #: src/help.c:882 msgid " N = Legal days only" msgstr "" #: src/help.c:884 src/help.c:1630 #, c-format msgid " [MOD] = %s Descending sort order" msgstr "" #: src/help.c:896 msgid " Suppress leading blank line of eternal holiday list" msgstr "" #: src/help.c:906 msgid " Exclude title of eternal holiday list" msgstr "" #: src/help.c:918 msgid " Provide eternal holiday list with astronomical data" msgstr "" #: src/help.c:930 msgid " Provide eternal holiday list with Bahá'i calendar holidays" msgstr "" #: src/help.c:942 msgid " Provide eternal holiday list with Bahá'i calendar months" msgstr "" #: src/help.c:954 msgid " Provide eternal holiday list with Celtic calendar holidays" msgstr "" #: src/help.c:966 msgid "" " Provide eternal holiday list with Chinese flexible calendar " "holidays" msgstr "" #: src/help.c:978 msgid "" " Provide eternal holiday list with Chinese flexible calendar months" msgstr "" #: src/help.c:990 msgid " Provide eternal holiday list with Chinese calendar holidays" msgstr "" #: src/help.c:1002 msgid " Provide eternal holiday list with Chinese calendar months" msgstr "" #: src/help.c:1014 msgid "" " Provide eternal holiday list with Christian Western calendar " "holidays" msgstr "" #: src/help.c:1026 msgid " Provide eternal holiday list with Coptic calendar months" msgstr "" #: src/help.c:1038 msgid " Provide eternal holiday list with Ethiopic calendar months" msgstr "" #: src/help.c:1050 msgid "" " Provide eternal holiday list with French Revolutionary calendar " "months" msgstr "" #: src/help.c:1062 msgid " Provide eternal holiday list with Hebrew calendar holidays" msgstr "" #: src/help.c:1074 msgid " Provide eternal holiday list with Hebrew calendar months" msgstr "" #: src/help.c:1086 msgid "" " Provide eternal holiday list with Indian civil-calendar months" msgstr "" #: src/help.c:1098 msgid "" " Provide eternal holiday list with Islamic civil-calendar holidays" msgstr "" #: src/help.c:1110 msgid "" " Provide eternal holiday list with Islamic civil-calendar months" msgstr "" #: src/help.c:1122 msgid "" " Provide eternal holiday list with Japanese flexible calendar " "holidays" msgstr "" #: src/help.c:1134 msgid "" " Provide eternal holiday list with Japanese flexible calendar months" msgstr "" #: src/help.c:1146 msgid " Provide eternal holiday list with Japanese calendar holidays" msgstr "" #: src/help.c:1158 msgid " Provide eternal holiday list with Japanese calendar months" msgstr "" #: src/help.c:1171 msgid "" " Provide eternal holiday list with multicultural New Year holidays" msgstr "" #: src/help.c:1183 msgid " Provide eternal holiday list with Old-Armenic calendar months" msgstr "" #: src/help.c:1195 msgid " Provide eternal holiday list with Old-Egyptic calendar months" msgstr "" #: src/help.c:1207 msgid "" " Provide eternal holiday list with Orthodox new-calendar holidays" msgstr "" #: src/help.c:1219 msgid "" " Provide eternal holiday list with Orthodox old-calendar holidays" msgstr "" #: src/help.c:1231 msgid "" " Provide eternal holiday list with Persian Jalaali-calendar holidays" msgstr "" #: src/help.c:1243 msgid "" " Provide eternal holiday list with Persian Jalaali-calendar months" msgstr "" #: src/help.c:1255 msgid " Provide eternal holiday list with zodiacal marker data" msgstr "" #: src/help.c:1267 msgid " Provide eternal holiday list with country specific holidays" msgstr "" #: src/help.c:1271 #, c-format msgid " %-3s = Single country resp., territory code or a list of these," msgstr "" #: src/help.c:1276 #, c-format msgid "" " which are connected by `%s' characters. Countries/territories," msgstr "" #: src/help.c:1281 msgid " marked by # have an incomplete recording of holidays" msgstr "" #: src/help.c:1285 #, c-format msgid " %-*s = Holidays in %s" msgstr "" #: src/help.c:1306 msgid "" " Set reference value for rise/set time respectively shadow length" msgstr "" #: src/help.c:1310 #, c-format msgid " %-3s = Angular value respectively factor in range: %+.1f...%+.1f" msgstr "" #: src/help.c:1321 msgid " Set base data of Earth's atmosphere" msgstr "" #: src/help.c:1325 #, c-format msgid " %-3s = Air pressure and temperature separated by `%s' character" msgstr "" #: src/help.c:1328 #, c-format msgid " Air pressure in Millibar (actual: %.3f)" msgstr "" #: src/help.c:1333 #, c-format msgid " Air temperature in degrees Celsius (actual: %+.3f)" msgstr "" #: src/help.c:1343 msgid " Limit rise/set times of Sun to the day" msgstr "" #: src/help.c:1355 msgid " Represent astronomical times and data with utmost precision" msgstr "" #: src/help.c:1365 #, c-format msgid " Execute `%c%c[%s]' shell commands" msgstr "" #: src/help.c:1368 #, c-format msgid " and \"TVAR[%s|%c%s]COMMAND\" assignments" msgstr "" #: src/help.c:1380 msgid " Change base time of astronomical functions" msgstr "" #: src/help.c:1383 msgid " respectively, change cycle-starting time" msgstr "" #: src/help.c:1393 #, 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:1401 #, 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:1417 msgid " Change cycle-ending time" msgstr "" #: src/help.c:1421 #, 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:1435 msgid " Change cycle-timestep" msgstr "" #: src/help.c:1439 #, c-format msgid " %-3s = MMMM|HH%s[MM] Timestep value (actual: %02d%s%02d)" msgstr "" #: src/help.c:1452 msgid " Change base year of calendar" msgstr "" #: src/help.c:1456 #, c-format msgid " %-3s = [%s|%s]YYYY Year offset value (actual: %d)" msgstr "" #: src/help.c:1468 msgid " Set period of Gregorian Reformation" msgstr "" #: src/help.c:1470 #, c-format msgid " Actual respected period: %02d-%02d %s %0*d" msgstr "" #: src/help.c:1476 #, c-format msgid " %-*d%*s = Set period to: %02d-%02d %s %0*d" msgstr "" #: src/help.c:1484 #, c-format msgid " %-3s = %s%c%s%s%s%s%s%s Set period explicitly" msgstr "" #: src/help.c:1498 #, c-format msgid " Set order of date elements using the %s format text" msgstr "" #: src/help.c:1501 #, c-format msgid " Actual: (%s) `%s' (%s)" msgstr "" #: src/help.c:1503 msgid "self-defined" msgstr "" #: src/help.c:1508 #, c-format msgid " %-6s = Format is: `%s' (%s)" msgstr "" #: src/help.c:1516 #, c-format msgid " %-3s = Define individual format. Respected format elements are:" msgstr "" #: src/help.c:1559 msgid " Define translatable country specific special character pairs" msgstr "" #: src/help.c:1563 #, c-format msgid " %-3s = UPPER-CASE-LETTER\"\"LOWER-CASE-LETTER... definitions" msgstr "" #: src/help.c:1568 #, c-format msgid "" " E.g. a `%s%s%s%s%s%s%s%s' %-3s causes the correct conversion of" msgstr "" #: src/help.c:1573 msgid "" " the preceding special characters in an individual date format," msgstr "" #: src/help.c:1577 msgid "" " which has a STYLE format instruction component, and that, how" msgstr "" #: src/help.c:1581 msgid " they are used by the character set used in Germany" msgstr "" #: src/help.c:1590 #, c-format msgid "+++ FIXED DATES +++" msgstr "" #: src/help.c:1611 #, c-format msgid " Use standard resource file `.%s%s' for fixed date list" msgstr "" #: src/help.c:1616 #, c-format msgid " Use standard resource file `%s%s' for fixed date list" msgstr "" #: src/help.c:1620 src/help.c:2160 msgid " Implies period: Today" msgstr "" #: src/help.c:1624 msgid " c = Display only those dates, for which fixed dates exists" msgstr "" #: src/help.c:1628 msgid "" " C = Display those dates, for which fixed dates doesn't exist, too" msgstr "" #: src/help.c:1640 msgid "" " [MOD] = One or more of the following modifiers which are marked by #" msgstr "" #: src/help.c:1653 #, c-format msgid " %-3s = Heading/Title text used for fixed date list" msgstr "" #: src/help.c:1656 #, c-format msgid " Actual: `%s'" msgstr "" #: src/help.c:1669 msgid " # g[MOD] = Group fixed dates by day using text MOD" msgstr "" #: src/help.c:1681 msgid " 1. Representation of text" msgstr "" #: src/help.c:1693 msgid " = Set width of the biorhythm text graphics" msgstr "" #: src/help.c:1697 #, c-format msgid " %-3s = %d...%d Length of a single axis" msgstr "" #: src/help.c:1710 msgid " = Set height of the Moon phase text graphics" msgstr "" #: src/help.c:1714 #, c-format msgid " %-3s = %d...%d Total number of lines" msgstr "" #: src/help.c:1726 msgid " # a = Display origin of fixed date" msgstr "" #: src/help.c:1738 msgid " # A = Display using alternative list format" msgstr "" #: src/help.c:1750 msgid " # e = Include legal days and memorial days" msgstr "" #: src/help.c:1752 msgid " # E = Include legal days only" msgstr "" #: src/help.c:1762 msgid " # k = Display week number" msgstr "" #: src/help.c:1774 msgid " # o = Omit repeating date part of fixed dates" msgstr "" #: src/help.c:1786 msgid "" " # Q = Suppress leading blank line of fixed dates list" msgstr "" #: src/help.c:1798 msgid " # U = Suppress date part of fixed dates" msgstr "" #: src/help.c:1810 msgid " # J = Suppress text part of fixed dates" msgstr "" #: src/help.c:1822 msgid " # x = Exclude title of fixed date list" msgstr "" #: src/help.c:1834 msgid " # z = Display consecutive number of fixed date" msgstr "" #: src/help.c:1846 msgid "" " # Z = Display dates, for which fixed dates doesn't exist" msgstr "" #: src/help.c:1854 msgid " 2. Respected period" msgstr "" #: src/help.c:1866 msgid " = Manage `29-FEBRUARY' in non-leap years" msgstr "" #: src/help.c:1874 #, c-format msgid " %-3s = february Respect at `28-FEBRUARY'" msgstr "" #: src/help.c:1883 #, c-format msgid " %-3s = march Respect at `01-MARCH'" msgstr "" #: src/help.c:1896 msgid "" " # d = Include actual date if list of periods is " "generated" msgstr "" #: src/help.c:1908 msgid "" " # l = Generate list of periods instead of a single " "period" msgstr "" #: src/help.c:1924 msgid " # Nd = Single absolute day N" msgstr "" #: src/help.c:1926 #, c-format msgid " # %cdN = Single absolute day N" msgstr "" #: src/help.c:1931 msgid " # NMOD = Single day N relative to today" msgstr "" #: src/help.c:1933 #, c-format msgid " MOD = %s Forwards" msgstr "" #: src/help.c:1935 #, c-format msgid " = %s Backwards" msgstr "" #: src/help.c:1938 msgid " # Nw = Complete week N" msgstr "" #: src/help.c:1942 msgid "" " N = 0 1st week / last week of previous year" msgstr "" #: src/help.c:1946 msgid " N = 1...52 1st...52nd week (always)" msgstr "" #: src/help.c:1950 msgid " N = 53 53rd week (sometimes)" msgstr "" #: src/help.c:1952 msgid " N = 99 Last week" msgstr "" #: src/help.c:1955 #, c-format msgid " # %s%s = Single day %s of month %s" msgstr "" #: src/help.c:1961 #, c-format msgid " # %s%sN = Single N'th weekday %s of month %s" msgstr "" #: src/help.c:1966 #, c-format msgid " N = 1...4 1st...4th weekday %s (always)" msgstr "" #: src/help.c:1971 #, c-format msgid " N = 5 5th weekday %s (sometimes)" msgstr "" #: src/help.c:1975 #, c-format msgid " N = 9 Last weekday %s" msgstr "" #: src/help.c:1979 #, c-format msgid " # %cdN%s = Single N'th weekday %s" msgstr "" #: src/help.c:1984 #, c-format msgid " N = 1...51 1st...51st weekday %s (always)" msgstr "" #: src/help.c:1989 #, c-format msgid " N = 52|53 52|53rd weekday %s (sometimes)" msgstr "" #: src/help.c:1993 #, c-format msgid " N = 99 Last weekday %s" msgstr "" #: src/help.c:1998 #, c-format msgid " # %cwN%s = Single weekday %s of N'th week" msgstr "" #: src/help.c:2003 #, c-format msgid "" " N = 0 %s which isn't located in 1st week" msgstr "" #: src/help.c:2008 #, c-format msgid " N = 1...51 %s of 1st...51st week (always)" msgstr "" #: src/help.c:2013 #, c-format msgid " N = 52|53 %s of 52|53rd week (sometimes)" msgstr "" #: src/help.c:2017 #, c-format msgid " N = 99 %s of last week" msgstr "" #: src/help.c:2023 #, c-format msgid " # %c%c[[%s|%s]N] = Single day N relative to Easter Sunday" msgstr "" #: src/help.c:2029 #, c-format msgid "" " # %c%c[%s|%s]N%s = Single N'th weekday relative to Easter Sunday" msgstr "" #: src/help.c:2035 #, c-format msgid " # %c%c[[%s|%s]N] = Single day N relative to today's date" msgstr "" #: src/help.c:2041 #, c-format msgid "" " # %c%c[%s|%s]N%s = Single N'th weekday relative to today's date" msgstr "" #: src/help.c:2047 #, c-format msgid " # %c?[[%s|%s]N] = Single day N relative to date variable" msgstr "" #: src/help.c:2053 #, c-format msgid "" " # %c?[%s|%s]N%s = Single N'th weekday relative to date variable" msgstr "" #: src/help.c:2061 msgid " # t|T = List tomorrow" msgstr "" #: src/help.c:2078 msgid " # w|W[MOD] = List complete week" msgstr "" #: src/help.c:2082 #, c-format msgid "" " [MOD] = %s List tomorrow until ending day of week" msgstr "" #: src/help.c:2087 #, c-format msgid "" " = %s List yesterday until starting day of week" msgstr "" #: src/help.c:2107 msgid " # m|M[MOD] = List complete month" msgstr "" #: src/help.c:2111 #, c-format msgid "" " [MOD] = %s List tomorrow until ending day of month" msgstr "" #: src/help.c:2116 #, c-format msgid "" " = %s List yesterday until starting day of month" msgstr "" #: src/help.c:2136 msgid " # y|Y[MOD] = List complete year" msgstr "" #: src/help.c:2140 #, c-format msgid "" " [MOD] = %s List tomorrow until ending day of year" msgstr "" #: src/help.c:2145 #, c-format msgid "" " = %s List yesterday until starting day of year" msgstr "" #: src/help.c:2158 msgid " Use alternative file(s) instead of standard resource file" msgstr "" #: src/help.c:2164 msgid " f = Display only those dates, for which fixed dates exists" msgstr "" #: src/help.c:2168 msgid "" " F = Display those dates, for which fixed dates doesn't exist, too" msgstr "" #: src/help.c:2172 #, c-format msgid " %-3s = Single file or list of files connected by `%s' characters" msgstr "" #: src/help.c:2183 msgid " Define additional resource file line" msgstr "" #: src/help.c:2185 #, c-format msgid " %-3s = Any possible resource file line" msgstr "" #: src/help.c:2195 #, c-format msgid "%cDATE" msgstr "" #: src/help.c:2197 msgid "Use given `DATE' instead of today's date" msgstr "" #: src/help.c:2201 #, 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:2208 #, c-format msgid " %s%cwN[%s], month name[%s], weekday name[N] or %s" msgstr "" #: src/help.c:2217 #, c-format msgid "%cFILE" msgstr "" #: src/help.c:2219 msgid "Preload options and commands from `FILE'" msgstr "" #: src/help.c:2223 msgid "COMMAND" msgstr "" #: src/help.c:2225 #, c-format msgid "%s = Month in range: %d...%d" msgstr "" #: src/help.c:2230 #, c-format msgid " or: month name | %s | %s%s | %s%s | %s%s" msgstr "" #: src/help.c:2235 #, c-format msgid " List: %s[%s%s]%s...%s%s[%s%s]" msgstr "" #: src/help.c:2241 #, c-format msgid " Range: %s[%s%s]%s%s[%s%s] | %s%s%s%s%s | %s %s%s%s" msgstr "" #: src/help.c:2247 #, c-format msgid "%s%*s = Year in range: %d...%d" msgstr "" #: src/help.c:2251 #, c-format msgid " List: [%s%s]%s%s...%s[%s%s]%s" msgstr "" #: src/help.c:2256 #, c-format msgid " Range: [%s%s]%s%s[%s%s]%s | %s%s%s %s%s%s" msgstr "" #: src/help.c:2282 #, c-format msgid " %sh, %s Display this help text and quit program" msgstr "" #: src/help.c:2285 #, c-format msgid " %shh, %s Display extended help text and quit program" msgstr "" #: src/help.c:2289 #, c-format msgid " %sL, %s Display software license and quit program" msgstr "" #: src/help.c:2293 #, c-format msgid " %sV, %s Display version information and quit program" msgstr "" #: src/help.c:2301 #, c-format msgid " %sp, %s Direct output through external `%s' pager" msgstr "" #: src/help.c:2308 src/help.c:2313 #, c-format msgid " %sp, %s Direct output through simple internal pager" msgstr "" #: src/help.c:2338 msgid "This software doesn't claim completeness, correctness or usability." msgstr "" #: src/help.c:2342 msgid "On principle I will not be liable for ANY damages or losses (implicit" msgstr "" #: src/help.c:2346 msgid "or explicit), which result from using or handling my software." msgstr "" #: src/help.c:2350 msgid "If you use this software, you agree without any exception to this" msgstr "" #: src/help.c:2352 msgid "agreement, which binds you LEGALLY !!" msgstr "" #: src/help.c:2357 msgid "This program is free software; you can redistribute it and/or modify" msgstr "" #: src/help.c:2361 msgid "it under the terms of the `GNU General Public License' as published by" msgstr "" #: src/help.c:2365 msgid "the `Free Software Foundation'; either version 3, or (at your option)" msgstr "" #: src/help.c:2367 msgid "any later version." msgstr "" #: src/help.c:2372 msgid "You should have received a copy of the `GNU General Public License'" msgstr "" #: src/help.c:2374 msgid "along with this program; if not, write to the:" msgstr "" #: src/help.c:2423 #, c-format msgid "" "Usage: %s [%s|%s{[?|h|??|hh|L|V]|{%sHKNOR%sXb%sijn%sq%ssu%s}}] [[%s] [%s]]" msgstr "" #: src/help.c:2451 #, c-format msgid "Use `%s %s|[%s?]" msgstr "" #: src/help.c:2460 msgid "for more information." msgstr "" #: src/help.c:2564 src/tcal.c:197 src/txt2gcal.c:136 src/gcal2txt.c:136 #, c-format msgid "Email bug reports to <%s>" msgstr "" #: src/help.c:2566 #, c-format msgid "GNU gcal home page: <%s>" msgstr "" #: src/help.c:2568 #, c-format msgid "General help using GNU software: <%s>" msgstr "" #: src/help.c:2594 src/tcal.c:219 src/txt2gcal.c:158 src/gcal2txt.c:158 #, c-format msgid "This is free software; see the source for copying conditions." msgstr "" #: src/help.c:2598 src/tcal.c:222 src/txt2gcal.c:161 src/gcal2txt.c:161 #, c-format msgid "There is NO warranty, without even the implied warranty of" msgstr "" #: src/help.c:2600 src/tcal.c:224 src/txt2gcal.c:163 src/gcal2txt.c:163 #, c-format msgid "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." msgstr "" #: src/help.c:2616 #, c-format msgid "%s: The Gregorian calendar program (GNU cal) %s" msgstr "" #: src/help.c:2624 #, c-format msgid "Usage: %s [[OPTION...] [%cDATE] [%cFILE...]] [COMMAND]" msgstr "" #: src/help.c:2627 #, c-format msgid "Usage: %s [[OPTION...] [%cFILE...]] [COMMAND]" msgstr "" #: src/help.c:2703 src/help.c:2849 msgid " 4.0 or 4.02" msgstr "" #: src/help.c:2711 src/help.c:2857 msgid " later than 5.0" msgstr "" #: src/help.c:2722 src/help.c:2864 msgid "++ 3.0 or later" msgstr "" #: src/help.c:2749 src/help.c:2970 msgid "5.1 or earlier" msgstr "" #: src/help.c:2752 src/help.c:2973 src/help.c:3128 src/help.c:3198 msgid "unknown compiler" msgstr "" #: src/help.c:2787 src/help.c:2876 src/help.c:3010 src/help.c:3032 #: src/help.c:3101 src/help.c:3138 src/help.c:3156 src/help.c:3213 #: src/help.c:3428 msgid " on " msgstr "" #: src/help.c:2826 msgid "(bad version)" msgstr "" #: src/help.c:2873 msgid "unknown compiler (SDK?)" msgstr "" #: src/help.c:2941 msgid " later than 4.5" msgstr "" #: src/help.c:2951 msgid "++ 1.0 or later" msgstr "" #: src/help.c:2959 msgid " 1.0 or 1.5?" msgstr "" #: src/help.c:3074 msgid "unknown " msgstr "" #: src/help.c:3086 #, c-format msgid "version %d.%d" msgstr "" #: src/help.c:3089 src/help.c:3122 src/help.c:3248 #, c-format msgid "version %d" msgstr "" #: src/help.c:3091 #, c-format msgid "unknown version" msgstr "" #: src/help.c:3205 #, c-format msgid " (%.4s for Alpha)" msgstr "" #: src/help.c:3208 #, c-format msgid " (%.4s for VAX)" msgstr "" #: src/help.c:3359 msgid " (NetBSD before 0.9)" msgstr "" #: src/help.c:3359 msgid " (NetBSD 1.2 or later)" msgstr "" #: src/help.c:3366 msgid " (FreeBSD 2.0 or later)" msgstr "" #: src/help.c:3369 msgid " (BSD/386 1.1 or later)" msgstr "" #: src/print.c:544 src/print.c:978 src/print.c:1033 msgid "CW" msgstr "" #: src/print.c:565 msgid "Week" msgstr "Week" #: src/rc-insert.c:1706 src/rc-insert.c:2824 msgid "pm" msgstr "" #: src/rc-insert.c:1715 src/rc-insert.c:2833 msgid "am" msgstr "" #: src/rc-insert.c:2018 src/rc-insert.c:2028 msgid "d'\"" msgstr "" #: src/rc-insert.c:2038 msgid "h'\"" msgstr "" #: src/rc-insert.c:3728 src/rc-utils.c:2585 #, c-format msgid "" "Cannot execute command in file `%s'\n" "Line: %ld %s" msgstr "" #: src/rc-insert.c:3750 src/rc-utils.c:2609 #, c-format msgid "" "Command executed (exit code=%d) in file `%s'\n" "Line %ld: %s" msgstr "" #: src/rc-use.c:513 msgid "Emo" msgstr "" #: src/rc-use.c:518 msgid "Int" msgstr "" #: src/rc-use.c:523 msgid "Phy" msgstr "" #: src/rc-use.c:1086 src/rc-use.c:1177 msgid "`Eternal holiday list'" msgstr "" #: src/rc-use.c:1877 src/rc-use.c:1926 src/rc-use.c:2015 src/rc-use.c:2107 msgid "`Internal'" msgstr "" #: src/rc-use.c:2339 #, c-format msgid " ; Week %s" msgstr "" #: src/rc-use.c:2348 #, c-format msgid "Week %s" msgstr "Week %s" #: src/rc-utils.c:397 src/rc-utils.c:414 #, 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:3269 #, c-format msgid "Leap-day set to `%02d-%s' in file `%s'." msgstr "" #: src/rc-utils.c:3272 src/rc-utils.c:3686 #, c-format msgid "Line %ld: %s" msgstr "" #: src/rc-utils.c:3633 src/utils.c:274 #, c-format msgid "%s: abort, " msgstr "" #: src/rc-utils.c:3641 #, c-format msgid "illegal variable definition in file `%s'" msgstr "" #: src/rc-utils.c:3643 #, c-format msgid "illegal definition of variable `%c'" msgstr "" #: src/rc-utils.c:3650 #, c-format msgid "illegal variable operation in file `%s'" msgstr "" #: src/rc-utils.c:3652 #, c-format msgid "illegal operation on variable `%c'" msgstr "" #: src/rc-utils.c:3658 #, c-format msgid "variable `%c' undefined in file `%s'" msgstr "" #: src/rc-utils.c:3662 #, c-format msgid "invalid value assigned to variable `%c' in file `%s'" msgstr "" #: src/rc-utils.c:3683 #, c-format msgid "Invalid argument in command line given -- %s" msgstr "" #: src/rc-utils.c:3695 #, c-format msgid "Argument `%s' of command line ignored." msgstr "" #: src/rc-utils.c:3698 #, c-format msgid "Line %ld ignored: %s" msgstr "" #: src/tty.c:424 #, c-format msgid "%s: for more, <%s> to quit..." msgstr "" #: src/tty.c:1019 #, c-format msgid "environment variable `%s' not found" msgstr "omgevingsvariabele '%s' niet gevonden" #: src/tty.c:1026 #, c-format msgid "environment variable `%s' not set" msgstr "omgevingsvariabele '%s' niet ingesteld" #: src/tty.c:1066 msgid "`termcap' file not found" msgstr "" #: src/tty.c:1071 #, c-format msgid "unknown terminal type defined in `%s'" msgstr "" #: src/tty.c:1080 #, c-format msgid "" "\n" "%s: warning, %s.\n" "\n" msgstr "" #: src/utils.c:280 #, c-format msgid "" "invalid year for computing Easter Sundays date\n" "Year must be in range (%d...%d)" msgstr "" #: src/utils.c:284 src/tcal.c:324 src/txt2gcal.c:263 src/gcal2txt.c:263 #, c-format msgid "`%s' line %ld: virtual memory exhausted (%s=%d)" msgstr "" #: src/utils.c:289 #, c-format msgid "" "invalid date part in file `%s'\n" "Line %ld: %s" msgstr "" #: src/utils.c:294 #, c-format msgid "" "invalid month field(%02d) in file `%s'\n" "Line %ld: %s" msgstr "" #: src/utils.c:299 #, c-format msgid "" "invalid day field(%02d) in file `%s'\n" "Line %ld: %s" msgstr "" #: src/utils.c:303 #, c-format msgid "" "malformed %s in file `%s'\n" "Line %ld: %s" msgstr "" #: src/utils.c:308 #, c-format msgid "" "invalid recursive/cyclic %s in file `%s'\n" "Line %ld: %s" msgstr "" #: src/utils.c:312 #, c-format msgid "file `%s' not found" msgstr "" #: src/utils.c:316 #, c-format msgid "" "invalid N'th weekday field(%d) in file `%s'\n" "Line %ld: %s" msgstr "" #: src/utils.c:322 #, c-format msgid "" "missing `whitespace' character after date part in file `%s'\n" "Line %ld: %s" msgstr "" #: src/utils.c:327 #, c-format msgid "" "file `%s' can't be written\n" "Storage media full!" msgstr "" #: src/utils.c:332 #, c-format msgid "sending eMail to <%s> failed" msgstr "" #: src/utils.c:334 src/utils.c:352 #, c-format msgid "" "\n" "`%s' line %ld: " msgstr "" #: src/utils.c:341 #, c-format msgid "`%s' line %ld: (`%s') `%s%d' failed" msgstr "" #: src/utils.c:350 #, c-format msgid "read error in file `%s'" msgstr "" #: src/utils.c:358 #, c-format msgid "" "illegal character in response file `%s'\n" "Line %ld: %s" msgstr "" #: src/utils.c:364 src/tcal.c:330 src/txt2gcal.c:269 src/gcal2txt.c:269 #, c-format msgid "`%s' line %ld: (`%s') invalid value for table size `sizeof %s>%d'" msgstr "" #: src/utils.c:369 #, c-format msgid "(`%s') date format `%s' is invalid" msgstr "" #: src/utils.c:375 #, c-format msgid "%s in search pattern `%s'" msgstr "" #: src/utils.c:378 #, c-format msgid "invalid search pattern `%s' specified" msgstr "" #: src/utils.c:383 src/tcal.c:338 src/txt2gcal.c:274 src/gcal2txt.c:274 #, c-format msgid "`%s' line %ld: (`%s') unmanaged error (%d)" msgstr "" #: src/utils.c:403 src/tcal.c:358 src/txt2gcal.c:294 src/gcal2txt.c:294 #, c-format msgid "" "\n" "%s: program aborted by signal %d\n" msgstr "" #: src/utils.c:1080 msgid "th" msgstr "" #: src/utils.c:1084 msgid "st" msgstr "" #: src/utils.c:1088 msgid "nd" msgstr "" #: src/utils.c:1092 msgid "rd" msgstr "" #: src/utils.c:1123 src/utils.c:1174 src/utils.c:1225 msgid "invalid day" msgstr "" #: src/utils.c:1128 msgid "Mon" msgstr "maa" #: src/utils.c:1133 msgid "Tue" msgstr "din" #: src/utils.c:1138 msgid "Wed" msgstr "woe" #: src/utils.c:1143 msgid "Thu" msgstr "don" #: src/utils.c:1148 msgid "Fri" msgstr "vri" #: src/utils.c:1153 msgid "Sat" msgstr "zat" #: src/utils.c:1158 msgid "Sun" msgstr "zon" #: src/utils.c:1179 msgid "Mo" msgstr "ma" #: src/utils.c:1184 msgid "Tu" msgstr "di" #: src/utils.c:1189 msgid "We" msgstr "wo" #: src/utils.c:1194 msgid "Th" msgstr "do" #: src/utils.c:1199 msgid "Fr" msgstr "vr" #: src/utils.c:1204 msgid "Sa" msgstr "za" #: src/utils.c:1209 msgid "Su" msgstr "zo" #: src/utils.c:1226 msgid "Monday" msgstr "maandag" #: src/utils.c:1226 msgid "Tuesday" msgstr "dinsdag" #: src/utils.c:1226 msgid "Wednesday" msgstr "woensdag" #: src/utils.c:1226 msgid "Thursday" msgstr "donderdag" #: src/utils.c:1227 msgid "Friday" msgstr "vrijdag" #: src/utils.c:1227 msgid "Saturday" msgstr "zaterdag" #: src/utils.c:1227 msgid "Sunday" msgstr "zondag" #: src/utils.c:1243 src/utils.c:1320 msgid "invalid month" msgstr "ongeldige maand" #: src/utils.c:1248 msgid "Jan" msgstr "jan" #: src/utils.c:1253 msgid "Feb" msgstr "feb" #: src/utils.c:1258 msgid "Mar" msgstr "mrt" #: src/utils.c:1263 msgid "Apr" msgstr "apr" #: src/utils.c:1268 msgid "May" msgstr "mei" #: src/utils.c:1273 msgid "Jun" msgstr "jun" #: src/utils.c:1278 msgid "Jul" msgstr "jul" #: src/utils.c:1283 msgid "Aug" msgstr "aug" #: src/utils.c:1288 msgid "Sep" msgstr "sep" #: src/utils.c:1293 msgid "Oct" msgstr "okt" #: src/utils.c:1298 msgid "Nov" msgstr "nov" #: src/utils.c:1303 msgid "Dec" msgstr "dec" #: src/utils.c:1321 msgid "January" msgstr "januari" #: src/utils.c:1321 msgid "February" msgstr "februari" #: src/utils.c:1322 msgid "March" msgstr "maart" #: src/utils.c:1322 msgid "April" msgstr "april" #: src/utils.c:1332 msgid "May " msgstr "mei" #: src/utils.c:1333 msgid "June" msgstr "juni" #: src/utils.c:1333 msgid "July" msgstr "juli" #: src/utils.c:1334 msgid "August" msgstr "augustus" #: src/utils.c:1334 msgid "September" msgstr "september" #: src/utils.c:1335 msgid "October" msgstr "oktober" #: src/utils.c:1335 msgid "November" msgstr "november" #: src/utils.c:1335 msgid "December" msgstr "december" #: src/tcal.c:191 #, c-format msgid "Usage: %s [--%s | --%s] | [--%s=[+|-]NUMBER] [ARGUMENT...]\n" msgstr "" #: src/tcal.c:320 src/txt2gcal.c:259 src/gcal2txt.c:259 #, c-format msgid "" "\n" "%s: abort, " msgstr "" #: src/tcal.c:335 #, c-format msgid "shift value `%s' is invalid" msgstr "" #: src/tcal.c:907 #, c-format msgid "%s: option `--%s' requires an argument" msgstr "%s: optie '--%s' vereist een argument" #: src/tcal.c:1071 #, c-format msgid "%s: error during program execution of `%s'\n" msgstr "" #: src/txt2gcal.c:131 #, c-format msgid "Usage: %s [--%s | --%s] | [TEXT-FILE | -] [DATE-PART]\n" msgstr "" #: src/txt2gcal.c:755 src/gcal2txt.c:754 #, c-format msgid "%s: no regular file\n" msgstr "%s: geen gewoon bestand\n" #: src/txt2gcal.c:760 src/gcal2txt.c:759 #, c-format msgid "%s: file not found\n" msgstr "%s: bestand niet gevonden\n" #: src/gcal2txt.c:131 #, c-format msgid "Usage: %s [--%s | --%s] | [RESOURCE-FILE | -]\n" msgstr "" #~ msgid "Brunei Darussalam" #~ msgstr "Brunei" #~ msgid "invalid [] range" #~ msgstr "ongeldig [] bereik" gcal-3.6.3/po/it.gmo0000644000175000017500000011677312125376135011134 00000000000000Þ•…D_l(è5é5ý5M6D\6F¡6Fè6@/7Ap7F²7Fù7=@86~87µ81í879'W9!9$¡94Æ9?û94;:=p:M®:.ü:(+;-T;-‚;#°;'Ô;!ü;J<6i<5 <,Ö<3=(7=6`=7—=7Ï=2>0:>&k>:’>EÍ>*?C>?7‚?-º?è?I@R@;n@:ª@=å@;#A8_A@˜A;ÙAB'B7BOBgB~B “B  B ­B ¸B ÄBBÑBCC)C9C@C+GC;sC+¯CÛC%ïC#D9D)RD|D$™D+¾D&êD%E(7E&`E‡E ¤E²EÂEÒE æEñE FF "F-F @FKF^FmF|F ‹F—FŸF§F¶FÆF ÕFâFñFùFG G#GCGcG‚GG¸GÎGãGüGH.HFH ZHdHhH nH xH&‚H©HºH ÂHÐHÖHïHI I II0IJIgI|I™I¬I¿IÛI ãIîIöI þI JJ!J)J1J8J@JHJQJfJwJJ’J ›J©J°JÇJÎJ ×J äJîJ öJK KK K8KHK ]K~KšK­K¼KØKçK ûK0L 9LDLML\LwL |LˆLŽL”L œL ªL¸LÊLâL9ëL%M -M :MEMMM RM^MeMtMƒMH…MÎMÒM%ÛMN N(N1N:N MN[NcN iNuNN ¡N­NµN½NÆNâNéNíNöNOO%$OJOMO TObOsOwO~O †OO˜OŸO§O¯OÊOÚOéOýO P P*P"?PbPP žP«PºPÐPëPýP Q QQ;QZQqQ xQ‚Q ŠQ•Q šQ¤Q«Q»QÄQÌQ ÒQÜQøQ R RRR #R,/R\RaRiR‚R‰RR—R›R£R©R°R´R¹R½R ÂRÍR ÕRàR çR#òRSS%S-S5S TSbS wS „S ŽS œS§S©S ¯S.¼SëS òSýST T TT T&T 7TBTXTpT…T–T©TÆT ×TãTóTU U !U+U/U4Ug$Ng sg ~g_ŒgìhiSiShiN¼iU jEajT§jTüj[QkF­kGôk@imD¨m2ím? nN`n/¯n(ßn4o/=o'mo.•o"ÄoMçoA5p6wp2®p1áp-qEAq<‡q:ÄqEÿq@Er(†r<¯rLìr,9s@fsF§s4îs##tEGt tH®t8÷tL0u=}u9»uMõuHCvŒvžv®vÊvævww,w=wMw\wEkw±w¹wÎwãwêw-ñw>x3^x’x*¨x(Óxüx(yBy(`y*‰y*´y)ßy' z*1z!\z~zz¤z¸zËzÚzôz{{,{F{U{o{€{{ ¦{²{º{Â{ Ñ{ß{ú{|'|/|8|A|Z|z| ™|!º|Ü|ø|}%}?}X}s}Œ} ž}¨}¬} ³} ½}.Ç}ö}~~/~5~O~i~m~ t~~~‘~°~Î~ã~)I Q]e m z‡ œ£ª²ºÃÚêò€ €€"€<€C€ L€ Y€c€ k€v€~€…€”€¯€¿€Ö€ò€%!4Ve y:† Á Ì Öãþ ‚‚‚‚!‚(‚:‚J‚`‚>i‚¨‚ ¯‚ º‚ł͂҂ç‚í‚ý‚ ƒIƒXƒ\ƒ(eƒ"Žƒ ±ƒ»ƒƒ˃áƒõƒýƒ „ „1„ D„N„V„^„f„„‡„‹„”„±„ ¸„„Ú„Ý„å„õ„… …… &…1…9…@…H…Q…m…~……¤…³…Ä…Ó…(ë…†1†M†_†q†І¦†¸† ¾† Ɇ"׆ú†‡.‡ 5‡A‡ I‡S‡ X‡b‡i‡y‡ ‚‡‡ “‡‡´‡ ½‡LJЇ؇ à‡8ì‡%ˆ*ˆ2ˆPˆXˆ_ˆhˆlˆtˆ }ˆ‡ˆ‹ˆ’ˆ–ˆ ˆ¨ˆ °ˆ»ˆ ˆ*ψúˆ‰ ‰‰‰ ‰.‰ D‰Q‰Z‰ i‰u‰w‰ }‰-Љ¸‰ ¿‰ɉщÖ‰ ܉é‰í‰ó‰ Š Š&Š=Š QŠ[ŠkŠŠŠ žŠ¬Š¿Š%ÓŠ ùŠ ‹‹‹‹!‹)‹,‹0‹7‹?‹O‹j‹ …‹ ‹›‹ £‹­‹‹Ê‹Ћ Ø‹ä‹ý‹&Œ>Œ\Œ lŒ wŒ …ŒŒ•ŒŒ ¢Œ&°Œ׌àŒäŒíŒõŒùŒ*1DMe jt} …*§ ÒÝãúŽ$Ž,Ž>ŽEŽ NŽoŽrŽŠŽ Ž›Ž°Ž´Ž»ŽÊŽÙŽᎠåŽïŽ    ' 4 @KTc r| „,Ž»Â Ø äð ÿ # 4 @M b p~•ž¡§«´ ÇÒ ðú‘ ‘‘7‘S‘m‘…‘”‘¦‘·‘ȑڑé‘ú‘’ ’1’D’T’e’x’Š’ š’§’ ¸’ Æ’Ô’ä’!ü’“ %“0“9“ <“G“a“e“n““†“Ž“!”“¶“ʓ͓ѓړë“ó“ û“””$”<”C”J”R” f”r”†”™”­””ٔ!•=•Q•e•x•Š•Ÿ•³•Ä•וì•––)–C–X–n–†–›–¯–Ä–×–ñ–—"—7—U—q—‚———ª—×Ü—ù—˜*˜<˜M˜a˜v˜ ˜®˜Ęؘ<à˜6™-T™‚™ •™ ™ ¨™²™º™¼™Ò™Õ™ Ù™ä™ ÷™ š šš ,š7š?šAš Gš Qš[šbšjš)sšš¸š»šËš#Þš%›E(›n›„›Ÿ›+®›*Ú›4œ3:œnœ€œ=œΜçœêœíœðœ$58;S.r¡)¶ à캎 Üç3f~ÍÇSJ”­K u- ©#VO'IK;]÷bAmÿ¿7—ö: 7ý Ýv1Z<‹VNYkîû¨RÏ<ð¸)_ýþÄb‹I‘ .ÛkQ¥*î L+%œØxë߃×Gg®.6k^žˆD‰RTuÎu4!^I°sh›FŒVKH†/¹@zÃ/±3Ðo:|ìC;Ù#%ï…δbÆõµÑ=!;„ÖBnæ™|º‚ªcÄt£q@ø© Ì”øZq“G)sMaš’Žj–d2Ír¡_dÂfû[“`Â}«Uüà¢ëg˜ ÕyYGT´Ý"·Ú¨DAAXµ¼¤LÞ¬EwðQ›nPé J€eù»Ò°=3v9t05OÓ·ôïây%¸E\âí²ì H[H…Ÿ01æJqŠwrÆC5jY­9"nd•—¶Dx}õy|è? mU$Bóm>Û(š«ã†p}úi(Œê+p„M ÙXáÊ[c¤þúXR¯~Ö?³W…ó8¡ؾe‡z4EÁˆt¬£zPa~'$ \³Ê’S5òÓ7* ÅPZÅ4Ò–Ñ-‚ò¢œ8aê¾Wè!ä¯FñãžOlhW ü- &LN‡ùh(¦,²_É6F,#$ €@i¼ƒC)1½§e§U:ÃÔ6ƒ÷»ñ½éo2N„x/.ÏÜ'{i‚±\ö^à˪0®¥ Ú‘9Þ+BŸÀÀ•Ìçw‰äåß¿,8"jÕ€Њoc2*{Ô×M`>á`>?gËl=&ÉÈQ&åÇlsvÈ™Tf ]¶í<ô{pÿ]r˜¹¦ÁS %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/Nordwest TerritoriesCanada/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/SaarGermany/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 ZealandNicaraguaNigerNigeriaNiueNorfolk IslandsNorthern 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-LandSwitzerland/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: 2013-03-29 21:40+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 %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/Territori del NordovestCanada/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/SaarlandGermania/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 ZelandaNicaraguaNigerNigeriaNiueIsola NorfolkIsole 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 CampagnaSvizzera/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-3.6.3/po/es.po0000644000175000017500000045624412125376134010762 00000000000000# Mensajes en español para GNU gcal 3.6. # 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. # msgid "" msgstr "" "Project-Id-Version: GNU gcal 3.6\n" "Report-Msgid-Bugs-To: bug-gcal@gnu.org\n" "POT-Creation-Date: 2013-03-29 21:40+0100\n" "PO-Revision-Date: 2011-08-24 12:05-0500\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" # ¿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:1561 #, c-format msgid "Try to write %s `%s'... %s%s%s" msgstr "Intente escribir %s `%s' ... %s%s%s" #: src/file-io.c:1564 src/file-io.c:1689 src/file-io.c:1702 msgid "failed" msgstr "falló" #: src/file-io.c:1564 src/file-io.c:1689 src/file-io.c:1702 msgid "success" msgstr "satisfactorio" #: src/file-io.c:1684 #, 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:1685 msgid " `HERE' " msgstr " `AQUÃ' " #: src/file-io.c:1697 #, 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:352 src/gcal.c:523 src/gcal.c:2028 msgid "ARG" msgstr "ARG" #: src/gcal.c:1080 src/hd-data.c:69 msgid "Germany" msgstr "Alemania" #: src/gcal.c:1081 msgid "U.S.A." msgstr "EE.UU." #: src/gcal.c:1082 src/hd-data.c:72 msgid "Great Britain" msgstr "Gran Bretaña" #: src/gcal.c:1858 msgid "default" msgstr "por defecto" #: src/gcal.c:1957 msgid ":" msgstr ":" #: src/gcal.c:1967 msgid "Y" msgstr "A" # Ãdem. sv #: src/gcal.c:1972 msgid "M" msgstr "M" #: src/gcal.c:1977 msgid "W" msgstr "S" #: src/gcal.c:1982 msgid "D" msgstr "D" #: src/gcal.c:2073 msgid "Fixed date list:" msgstr "Lista de fechas fijas:" #: src/gcal.c:2090 src/gcal.c:2105 msgid "environment variable" msgstr "variable de entorno" #: src/gcal.c:2274 #, 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:2461 src/gcal.c:2489 src/gcal.c:6232 src/rc-use.c:1828 #: src/rc-use.c:1888 src/rc-use.c:1937 src/rc-use.c:2207 src/rc-utils.c:390 #: src/rc-utils.c:411 src/utils.c:342 src/utils.c:365 src/utils.c:384 #: src/utils.c:679 src/tcal.c:331 src/tcal.c:339 src/txt2gcal.c:270 #: src/txt2gcal.c:275 src/gcal2txt.c:270 src/gcal2txt.c:275 msgid "Internal" msgstr "Interno" #: src/gcal.c:2870 msgid "response file" msgstr "fichero de resultados" #: src/gcal.c:2870 src/gcal.c:2878 msgid "Created" msgstr "Creado" #: src/gcal.c:2878 msgid "shell script" msgstr "fichero de órdenes" # Pequeños errores de traducción corregidos. cfuga #: src/gcal.c:3089 #, 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:3141 #, 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:4951 src/gcal.c:4984 msgid "command line" msgstr "línea de órdenes" #: src/gcal.c:5901 #, c-format msgid "%s: option `%s' is ambiguous" msgstr "%s: la opción `%s' es ambigua" #: src/gcal.c:5906 src/tcal.c:895 src/txt2gcal.c:716 src/gcal2txt.c:715 #, c-format msgid "%s: unrecognized option `%s'" msgstr "%s: la opción `%s' no está reconocida" #: src/gcal.c:5909 #, c-format msgid "%s: invalid option -- %s" msgstr "%s: opción inválida -- %s" #: src/gcal.c:5916 #, 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' doesn't allow an argument" msgstr "%s: la opción `%s' no admite ningún argumento" #: src/gcal.c:5927 #, c-format msgid "%s: option `%s' requires an argument" msgstr "%s: la opción `%s' necesita un argumento" #: src/gcal.c:5931 #, 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:5936 src/tcal.c:941 #, c-format msgid "%s: option with invalid argument -- %s" msgstr "%s: la opción tiene un argumento no válido -- %s" #: src/gcal.c:5941 #, c-format msgid "%s: option with ambiguous argument -- %s" msgstr "%s: el argumento de la opción es ambiguo -- %s" #: src/gcal.c:6001 #, 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:63 msgid "Australia" msgstr "Australia" #: src/hd-data.c:64 src/hd-data.c:112 msgid "Belgium" msgstr "Bélgica" #: src/hd-data.c:65 src/hd-data.c:121 msgid "Brazil" msgstr "Brasil" #: src/hd-data.c:66 msgid "Canada" msgstr "Canadá" #: src/hd-data.c:67 msgid "Switzerland" msgstr "Suiza" #: src/hd-data.c:68 src/hd-data.c:174 msgid "China" msgstr "China" #: src/hd-data.c:70 src/hd-data.c:208 msgid "Spain" msgstr "España" #: src/hd-data.c:71 src/hd-data.c:215 msgid "France" msgstr "Francia" #: src/hd-data.c:73 src/hd-data.c:244 msgid "Israel" msgstr "Israel" #: src/hd-data.c:74 src/hd-data.c:249 msgid "Italy" msgstr "Italia" #: src/hd-data.c:75 src/hd-data.c:252 msgid "Japan" msgstr "Japón" #: src/hd-data.c:76 src/hd-data.c:260 msgid "Republic of Korea" msgstr "República de Corea" #: src/hd-data.c:77 src/hd-data.c:292 msgid "Mexico" msgstr "México" #: src/hd-data.c:78 src/hd-data.c:301 msgid "Netherlands" msgstr "Holanda" #: src/hd-data.c:79 src/hd-data.c:307 msgid "New Zealand" msgstr "Nueva Zelanda" #: src/hd-data.c:80 src/hd-data.c:319 msgid "Portugal" msgstr "Portugal" #: src/hd-data.c:81 src/hd-data.c:325 msgid "Russian Federation" msgstr "Federación Rusa" #: src/hd-data.c:82 msgid "United States" msgstr "Estados Unidos" #: src/hd-data.c:84 msgid "Andorra" msgstr "Andorra" #: src/hd-data.c:85 msgid "United Arab Emirates" msgstr "Emiratos Ãrabes Unidos" #: src/hd-data.c:86 msgid "Afghanistan" msgstr "Afganistán" #: src/hd-data.c:87 msgid "Antigua and Barbuda" msgstr "Antigua y Barbados" #: src/hd-data.c:88 msgid "Anguilla" msgstr "Anguila" #: src/hd-data.c:89 msgid "Albania" msgstr "Albania" #: src/hd-data.c:90 msgid "Armenia" msgstr "Armenia" #: src/hd-data.c:91 msgid "Netherlands Antilles/Bonaire" msgstr "Antillas Holandesas/Bonaire" #: src/hd-data.c:92 msgid "Netherlands Antilles/Curaçao" msgstr "Antillas Holandesas/Curaçao" #: src/hd-data.c:93 msgid "Netherlands Antilles/St Maarten" msgstr "Antillas Holandesas/San Maarten" #: src/hd-data.c:94 msgid "Netherlands Antilles/Saba and Statia" msgstr "Antillas Holandesas/Saba y Estatia" #: src/hd-data.c:95 msgid "Angola #" msgstr "Angola #" #: src/hd-data.c:96 msgid "Argentina" msgstr "Argentina" #: src/hd-data.c:97 msgid "American Samoa" msgstr "Samoa Americana" #: src/hd-data.c:98 msgid "Austria" msgstr "Austria" #: src/hd-data.c:99 msgid "Australia/Canberra" msgstr "Australia/Canberra" #: src/hd-data.c:100 msgid "Australia/Northern Territory" msgstr "Australia/Territorio del Norte" #: src/hd-data.c:101 msgid "Australia/Queensland" msgstr "Australia/Queensland" #: src/hd-data.c:102 msgid "Australia/Southern Australia" msgstr "Australia/Australia del Sur" #: src/hd-data.c:103 msgid "Australia/New South Wales" msgstr "Australia/Nueva Gales del Sur" #: src/hd-data.c:104 msgid "Australia/Tasmania" msgstr "Australia/Tasmania" #: src/hd-data.c:105 msgid "Australia/Victoria" msgstr "Australia/Victoria" #: src/hd-data.c:106 msgid "Australia/Western Australia" msgstr "Australia/Australia Occidental" #: src/hd-data.c:107 msgid "Aruba" msgstr "Aruba" #: src/hd-data.c:108 msgid "Azerbaijan" msgstr "Azerbayán" #: src/hd-data.c:109 msgid "Bosnia-Herzegovina" msgstr "Bosnia-Herzegovina" #: src/hd-data.c:110 msgid "Barbados" msgstr "Barbados" #: src/hd-data.c:111 msgid "Bangladesh #" msgstr "Bangladesh #" #: src/hd-data.c:113 msgid "Burkina Faso" msgstr "Burkina Faso" #: src/hd-data.c:114 msgid "Bulgaria" msgstr "Bulgaria" #: src/hd-data.c:115 msgid "Bahrain" msgstr "Bahrain" #: src/hd-data.c:116 msgid "Burundi #" msgstr "Burundi #" #: src/hd-data.c:117 msgid "Benin #" msgstr "Benin #" #: src/hd-data.c:118 msgid "Bermuda" msgstr "Bermuda" #: src/hd-data.c:119 msgid "Brunei" msgstr "Brunei" #: src/hd-data.c:120 msgid "Bolivia" msgstr "Bolivia" #: src/hd-data.c:122 msgid "Bahamas" msgstr "Bahamas" #: src/hd-data.c:123 msgid "Bhutan #" msgstr "Bhután #" #: src/hd-data.c:124 msgid "Bouvet Island" msgstr "Isla Bouvet" #: src/hd-data.c:125 msgid "Botswana" msgstr "Botswana" #: src/hd-data.c:126 msgid "Belarus" msgstr "Belarus" #: src/hd-data.c:127 msgid "Belize" msgstr "Belice" #: src/hd-data.c:128 msgid "Canada/Alberta" msgstr "Canadá/Alberta" #: src/hd-data.c:129 msgid "Canada/British Columbia" msgstr "Canadá/Columbia Británica" #: src/hd-data.c:130 msgid "Canada/Manitoba" msgstr "Canadá/Manitoba" #: src/hd-data.c:131 msgid "Canada/New Brunswick" msgstr "Canadá/Nueva Brunswick" #: src/hd-data.c:132 msgid "Canada/Newfoundland and Labrador" msgstr "Canadá/Terranova y Labrador" #: src/hd-data.c:133 msgid "Canada/Nova Scotia" msgstr "Canadá/Nueva Escocia" #: src/hd-data.c:134 msgid "Canada/Nordwest Territories" msgstr "Canadá/Territorios del Noroeste" #: src/hd-data.c:135 msgid "Canada/Ontario" msgstr "Canadá/Ontario" #: src/hd-data.c:136 msgid "Canada/Prince Edward Island" msgstr "Canadá/Isla Príncipe Eduardo" #: src/hd-data.c:137 msgid "Canada/Québec" msgstr "Canadá/Québec" #: src/hd-data.c:138 msgid "Canada/Saskatchewan" msgstr "Canadá/Saskatchewan" #: src/hd-data.c:139 msgid "Canada/Yukon" msgstr "Canadá/Yukón" #: src/hd-data.c:140 msgid "Cocos Islands (Keeling)" msgstr "Islas Cocos (Keeling)" #: src/hd-data.c:141 msgid "Democratic Republic of Congo #" msgstr "República Democrática de Congo #" #: src/hd-data.c:142 msgid "Central African Republic #" msgstr "República Central Africana #o" #: src/hd-data.c:143 msgid "Republic of Congo #" msgstr "República de Congo #" #: src/hd-data.c:144 msgid "Switzerland/Aargau" msgstr "Suiza/Aargau" #: src/hd-data.c:145 msgid "Switzerland/Appenzell Innerrhoden" msgstr "Suiza/Appenzel Innerrhoden" #: src/hd-data.c:146 msgid "Switzerland/Appenzell Ausserrhoden" msgstr "Suiza/Appenzell Ausserrhoden" #: src/hd-data.c:147 msgid "Switzerland/Bern" msgstr "Suiza/Berna" #: src/hd-data.c:148 msgid "Switzerland/Basel-Land" msgstr "Suiza/Basel-Land" #: src/hd-data.c:149 msgid "Switzerland/Basel-Stadt" msgstr "Suiza/Basel-Stadt" #: src/hd-data.c:150 msgid "Switzerland/Fribourg" msgstr "Suiza/Friburgo" #: src/hd-data.c:151 msgid "Switzerland/Genève" msgstr "Suiza/Génova" #: src/hd-data.c:152 msgid "Switzerland/Glarus" msgstr "Suiza/Glarus" #: src/hd-data.c:153 msgid "Switzerland/Graubünden" msgstr "Suiza/Graubünden" #: src/hd-data.c:154 msgid "Switzerland/Jura" msgstr "Suiza/Jura" #: src/hd-data.c:155 msgid "Switzerland/Luzern" msgstr "Suiza/Lucerna" #: src/hd-data.c:156 msgid "Switzerland/Neuchâtel" msgstr "Suiza/Neuchâtel" #: src/hd-data.c:157 msgid "Switzerland/Nidwalden" msgstr "Suiza/Nidwalden" #: src/hd-data.c:158 msgid "Switzerland/Obwalden" msgstr "Suiza/Obwalden" #: src/hd-data.c:159 msgid "Switzerland/St Gallen" msgstr "Suiza/St Gallen" #: src/hd-data.c:160 msgid "Switzerland/Schaffhausen" msgstr "Suiza/Schaffhausen" #: src/hd-data.c:161 msgid "Switzerland/Solothurn" msgstr "Suiza/Solothurn" #: src/hd-data.c:162 msgid "Switzerland/Schwyz" msgstr "Suiza/Schwyz" #: src/hd-data.c:163 msgid "Switzerland/Thurgau" msgstr "Suiza/Thurgau" #: src/hd-data.c:164 msgid "Switzerland/Ticino" msgstr "Suiza/Ticino" #: src/hd-data.c:165 msgid "Switzerland/Uri" msgstr "Suiza/Uri" #: src/hd-data.c:166 msgid "Switzerland/Vaud" msgstr "Suiza/Vaud" #: src/hd-data.c:167 msgid "Switzerland/Valais" msgstr "Suiza/Valais" #: src/hd-data.c:168 msgid "Switzerland/Zug" msgstr "Suiza/Zug" #: src/hd-data.c:169 msgid "Switzerland/Zürich" msgstr "Suiza/Zurich" #: src/hd-data.c:170 msgid "Côte d'Ivoire" msgstr "Costa de Marfil" #: src/hd-data.c:171 msgid "Cook Islands" msgstr "Islas Cook" #: src/hd-data.c:172 msgid "Chile" msgstr "Chile" #: src/hd-data.c:173 msgid "Cameroon" msgstr "Camerún" #: src/hd-data.c:175 msgid "Colombia" msgstr "Colombia" #: src/hd-data.c:176 msgid "Costa Rica" msgstr "Costa Rica" #: src/hd-data.c:177 msgid "Cuba" msgstr "Cuba" #: src/hd-data.c:178 msgid "Cape Verde" msgstr "Cabo Verde" #: src/hd-data.c:179 msgid "Christmas Islands" msgstr "Islas Navidad" #: src/hd-data.c:180 msgid "Cyprus" msgstr "Chipre" #: src/hd-data.c:181 msgid "Czech Republic" msgstr "República Checa" #: src/hd-data.c:182 msgid "Germany/Brandenburg" msgstr "Alemania/Brandenburgo" #: src/hd-data.c:183 msgid "Germany/Berlin" msgstr "Alemania/Berlín" #: src/hd-data.c:184 msgid "Germany/Baden-Württemberg" msgstr "Alemania/Baden-Württemberg" #: src/hd-data.c:185 msgid "Germany/Bavaria" msgstr "Alemania/Bavaria" #: src/hd-data.c:186 msgid "Germany/Bremen" msgstr "Alemania/Bremen" #: src/hd-data.c:187 msgid "Germany/Hesse" msgstr "Alemania/Hesse" #: src/hd-data.c:188 msgid "Germany/Hamburg" msgstr "Alemania/Hamburgo" #: src/hd-data.c:189 msgid "Germany/Mecklenburg-West Pomerania" msgstr "Alemania/Mecklenburg-Pomerania del Oeste" #: src/hd-data.c:190 msgid "Germany/Lower Saxony" msgstr "Alemania/Sajonia Baja" #: src/hd-data.c:191 msgid "Germany/North Rhine-Westphalia" msgstr "Alemania/Norte del Rhin-Westphalia" #: src/hd-data.c:192 msgid "Germany/Rhineland Palatinate" msgstr "Alemania/Rhineland Palatinate" #: src/hd-data.c:193 msgid "Germany/Schleswig-Holstein" msgstr "Alemania/Schleswig-Holstein" #: src/hd-data.c:194 msgid "Germany/Saar" msgstr "Alemania/Saar" #: src/hd-data.c:195 msgid "Germany/Saxony" msgstr "Alemania/Sajonia" #: src/hd-data.c:196 msgid "Germany/Saxony-Anhalt" msgstr "Alemania/Sajonia Alta" #: src/hd-data.c:197 msgid "Germany/Thuringia" msgstr "Alemania/Turingia" #: src/hd-data.c:198 msgid "Djibouti" msgstr "Djibouti" #: src/hd-data.c:199 msgid "Denmark" msgstr "Dinamarca" #: src/hd-data.c:200 msgid "Dominica" msgstr "Dominica" #: src/hd-data.c:201 msgid "Dominican Republic" msgstr "República Dominicana" #: src/hd-data.c:202 msgid "Algeria" msgstr "Algeria" #: src/hd-data.c:203 msgid "Ecuador" msgstr "Ecuador" #: src/hd-data.c:204 msgid "Estonia" msgstr "Estonia" #: src/hd-data.c:205 msgid "Egypt" msgstr "Egipto" #: src/hd-data.c:206 msgid "Western Sahara" msgstr "Sahara Occidental" #: src/hd-data.c:207 msgid "Eritrea" msgstr "Eritrea" #: src/hd-data.c:209 msgid "Ethiopia" msgstr "Etiopía" #: src/hd-data.c:210 msgid "Finland" msgstr "Finlandia" #: src/hd-data.c:211 msgid "Fiji #" msgstr "Fiji #" #: src/hd-data.c:212 msgid "Falkland Islands (Malvinas)" msgstr "Islas Falkland (Malvinas)" #: src/hd-data.c:213 msgid "Federated States of Micronesia" msgstr "Estados Federados de Micronesia" #: src/hd-data.c:214 msgid "Faroes" msgstr "Faroes" #: src/hd-data.c:216 msgid "Gabon #" msgstr "Gabón #" #: src/hd-data.c:217 msgid "Great Britain/England and Wales" msgstr "Gran Bretaña/Inglaterra y Gales" #: src/hd-data.c:218 msgid "Great Britain/Northern Ireland" msgstr "Gran Bretaña/Irlanda del Norte" #: src/hd-data.c:219 msgid "Great Britain/Scotland" msgstr "Gran Bretaña/Escocia" #: src/hd-data.c:220 msgid "Grenada" msgstr "Granada" #: src/hd-data.c:221 msgid "Georgia" msgstr "Georgia" #: src/hd-data.c:222 msgid "French Guiana" msgstr "Guyana Francesa" #: src/hd-data.c:223 msgid "Ghana" msgstr "Ghana" #: src/hd-data.c:224 msgid "Gibraltar" msgstr "Gibraltar" #: src/hd-data.c:225 msgid "Greenland" msgstr "Groelandia" #: src/hd-data.c:226 msgid "Gambia" msgstr "Gambia" #: src/hd-data.c:227 msgid "Guinea" msgstr "Guinea" #: src/hd-data.c:228 msgid "Guadeloupe" msgstr "Guadalupe" #: src/hd-data.c:229 msgid "Equatorial Guinea" msgstr "Guinea Ecuatorial" #: src/hd-data.c:230 msgid "Greece" msgstr "Grecia" #: src/hd-data.c:231 msgid "South Georgia and South Sandwich Islands" msgstr "Islas de Georgia del Sur y Sandwich del Sur" #: src/hd-data.c:232 msgid "Guatemala" msgstr "Guatemala" #: src/hd-data.c:233 msgid "Guam" msgstr "Guam" #: src/hd-data.c:234 msgid "Guinea-Bissau #" msgstr "Guinea-Bissau #" #: src/hd-data.c:235 msgid "Guyana #" msgstr "Guyana #" #: src/hd-data.c:236 msgid "Hong Kong" msgstr "Hong Kong" #: src/hd-data.c:237 msgid "Heard and Mc Donald Islands" msgstr "Islas Heard y Mc Donald" #: src/hd-data.c:238 msgid "Honduras" msgstr "Honduras" #: src/hd-data.c:239 msgid "Croatia" msgstr "Croacia" #: src/hd-data.c:240 msgid "Haiti" msgstr "Haití" #: src/hd-data.c:241 msgid "Hungary" msgstr "Hungría" #: src/hd-data.c:242 msgid "Indonesia #" msgstr "Indonesia #" #: src/hd-data.c:243 msgid "Ireland" msgstr "Irlanda" #: src/hd-data.c:245 msgid "India #" msgstr "India #" #: src/hd-data.c:246 msgid "Iraq" msgstr "Irak" #: src/hd-data.c:247 msgid "Islamic Republic of Iran" msgstr "República Islámica de Irán" #: src/hd-data.c:248 msgid "Iceland" msgstr "Islandia" #: src/hd-data.c:250 msgid "Jamaica" msgstr "Jamaica" #: src/hd-data.c:251 msgid "Jordan" msgstr "Jordania" #: src/hd-data.c:253 msgid "Kenya #" msgstr "Kenya #" #: src/hd-data.c:254 msgid "Kyrgyzstan" msgstr "Kyrgyzstán" #: src/hd-data.c:255 msgid "Cambodia #" msgstr "Camboya #" #: src/hd-data.c:256 msgid "Kiribati #" msgstr "Kiribati #" #: src/hd-data.c:257 msgid "Comoros" msgstr "Comoros" #: src/hd-data.c:258 msgid "St Kitts and Nevis" msgstr "St Kitts y Nevis" #: src/hd-data.c:259 msgid "Democratic People's Republic of Korea" msgstr "República del Pueblo Democrática de Corea" #: src/hd-data.c:261 msgid "Kuwait" msgstr "Kuwait" #: src/hd-data.c:262 msgid "Cayman Islands" msgstr "Islas Caimán" #: src/hd-data.c:263 msgid "Kazakhstan" msgstr "Kazajistán" # FIXME - No me gusta la traducción. cfuga #: src/hd-data.c:264 msgid "Laos People's Democratic Republic #" msgstr "República Democrática de la Gente de Laos #" #: src/hd-data.c:265 msgid "Lebanon" msgstr "Líbano" #: src/hd-data.c:266 msgid "St Lucia" msgstr "Santa Lucía" #: src/hd-data.c:267 msgid "Liechtenstein" msgstr "Liechtenstein" #: src/hd-data.c:268 msgid "Sri Lanka #" msgstr "Sri Lanka #" #: src/hd-data.c:269 msgid "Liberia" msgstr "Liberia" #: src/hd-data.c:270 msgid "Lesotho" msgstr "Lesotho" #: src/hd-data.c:271 msgid "Lithuania" msgstr "Lituania" #: src/hd-data.c:272 msgid "Luxembourg" msgstr "Luxemburgo" #: src/hd-data.c:273 msgid "Latvia" msgstr "Latvia" #: src/hd-data.c:274 msgid "Libyan Arab Jamahiriya (Libya)" msgstr "Jamahiriya Ãrabe Libia (LIbia)" #: src/hd-data.c:275 msgid "Morocco" msgstr "Marruecos" #: src/hd-data.c:276 msgid "Monaco" msgstr "Mónaco" #: src/hd-data.c:277 msgid "Republic of Moldova" msgstr "República de Moldavia" #: src/hd-data.c:278 msgid "Madagascar #" msgstr "Magadascar #" #: src/hd-data.c:279 msgid "Marshall Islands" msgstr "Islas Marshall" #: src/hd-data.c:280 msgid "Former Yugoslav Republic of Macedonia" msgstr "Antigua República Yugoslava de Macedonia" #: src/hd-data.c:281 msgid "Mali" msgstr "Mali" #: src/hd-data.c:282 msgid "Mongolia #" msgstr "Mongolia #" #: src/hd-data.c:283 msgid "Macau" msgstr "Macao" #: src/hd-data.c:284 msgid "Northern Marian Islands (Saipan)" msgstr "Islas Marianas del Norte (Saipan)" #: src/hd-data.c:285 msgid "Martinique" msgstr "Martinica" #: src/hd-data.c:286 msgid "Mauritania" msgstr "Mauritania" #: src/hd-data.c:287 msgid "Montserrat" msgstr "Montserrat" #: src/hd-data.c:288 msgid "Malta" msgstr "Malta" #: src/hd-data.c:289 msgid "Mauritius" msgstr "Mauritania" #: src/hd-data.c:290 msgid "Maldives" msgstr "Maldivas" #: src/hd-data.c:291 msgid "Malawi" msgstr "Malawi" #: src/hd-data.c:293 msgid "Malaysia #" msgstr "Malasia #" #: src/hd-data.c:294 msgid "Mozambique" msgstr "Mozambique" #: src/hd-data.c:295 msgid "Namibia" msgstr "Namibia" #: src/hd-data.c:296 msgid "New Caledonia" msgstr "Nueva Caledonia" #: src/hd-data.c:297 msgid "Niger" msgstr "Níger" #: src/hd-data.c:298 msgid "Norfolk Islands" msgstr "Islas Norfolk" #: src/hd-data.c:299 msgid "Nigeria" msgstr "Nigeria" #: src/hd-data.c:300 msgid "Nicaragua" msgstr "Nicaragua" #: src/hd-data.c:302 msgid "Myanmar (Burma) #" msgstr "Myanmar (Burma) #" #: src/hd-data.c:303 msgid "Norway" msgstr "Noruega" #: src/hd-data.c:304 msgid "Nepal #" msgstr "Nepal #" #: src/hd-data.c:305 msgid "Nauru" msgstr "Nauru" #: src/hd-data.c:306 msgid "Niue" msgstr "Niue" #: src/hd-data.c:308 msgid "Oman" msgstr "Omán" #: src/hd-data.c:309 msgid "Panama" msgstr "Panamá" #: src/hd-data.c:310 msgid "Peru" msgstr "Perú" #: src/hd-data.c:311 msgid "French Polynesia" msgstr "Polinesia Francesa" #: src/hd-data.c:312 msgid "Papua New Guinea" msgstr "Papúa Nueva Guinea" #: src/hd-data.c:313 msgid "Philippines" msgstr "Filipinas" #: src/hd-data.c:314 msgid "Pakistan" msgstr "Paquistán" #: src/hd-data.c:315 msgid "Poland" msgstr "Polonia" #: src/hd-data.c:316 msgid "Saint-Pierre and Miquelon" msgstr "Saint-Pierre y Miquelon" #: src/hd-data.c:317 msgid "Pitcairn" msgstr "Pitcairn" #: src/hd-data.c:318 msgid "Puerto Rico" msgstr "Puerto Rico" #: src/hd-data.c:320 msgid "Palau" msgstr "Palau" #: src/hd-data.c:321 msgid "Paraguay" msgstr "Paraguay" #: src/hd-data.c:322 msgid "Qatar" msgstr "Qatar" #: src/hd-data.c:323 msgid "Réunion" msgstr "Reunión" #: src/hd-data.c:324 msgid "Romania" msgstr "Rumania" #: src/hd-data.c:326 msgid "Rwanda" msgstr "Ruanda" #: src/hd-data.c:327 msgid "Saudi Arabia" msgstr "Arabia Saudita" #: src/hd-data.c:328 msgid "Solomon Islands" msgstr "Islas Salomón" #: src/hd-data.c:329 msgid "Seychellen" msgstr "Seychelles" #: src/hd-data.c:330 msgid "Sudan" msgstr "Sudán" #: src/hd-data.c:331 msgid "Sweden" msgstr "Suecia" #: src/hd-data.c:332 msgid "Singapore #" msgstr "Singapur #" #: src/hd-data.c:333 msgid "St Helena" msgstr "Santa Elena" #: src/hd-data.c:334 msgid "Slovenia" msgstr "Eslovenia" #: src/hd-data.c:335 msgid "Svalbard and Jan Mayen Islands" msgstr "Islas Svalbard y Jan Mayen" #: src/hd-data.c:336 msgid "Slovakia" msgstr "Eslovaquia" #: src/hd-data.c:337 msgid "Sierra Leone" msgstr "Sierra Leona" #: src/hd-data.c:338 msgid "San Marino" msgstr "San Marino" #: src/hd-data.c:339 msgid "Senegal" msgstr "Senegal" #: src/hd-data.c:340 msgid "Somalia" msgstr "Somalia" #: src/hd-data.c:341 msgid "Suriname #" msgstr "Surinam #" #: src/hd-data.c:342 msgid "Sao Tomé and Principe" msgstr "Santo Tomé y Príncipe" #: src/hd-data.c:343 msgid "El Salvador" msgstr "El Salvador" #: src/hd-data.c:344 msgid "Syrian Arab Republic (Syria)" msgstr "República Ãrabe Siria (Siria)" #: src/hd-data.c:345 msgid "Swaziland" msgstr "Swazilandia" #: src/hd-data.c:346 msgid "Turks and Caicos Islands" msgstr "Islas Turcas y Caicos" #: src/hd-data.c:347 msgid "Chad" msgstr "Chad" #: src/hd-data.c:348 msgid "Togo #" msgstr "Togo #" #: src/hd-data.c:349 msgid "Thailand #" msgstr "Tailandia #" #: src/hd-data.c:350 msgid "Tajikistan" msgstr "Tajikistán" #: src/hd-data.c:351 msgid "Tokelau" msgstr "Tokelau" #: src/hd-data.c:352 msgid "Turkmenistan" msgstr "Turkmenistán" #: src/hd-data.c:353 msgid "Tunisia" msgstr "Túnez" #: src/hd-data.c:354 msgid "Tonga" msgstr "Tonga" #: src/hd-data.c:355 msgid "Turkey" msgstr "Turquía" #: src/hd-data.c:356 msgid "Trinidad and Tobago #" msgstr "Trinidad y Tobago #" #: src/hd-data.c:357 msgid "Tuvalu" msgstr "Tuvalu" #: src/hd-data.c:358 msgid "Taiwan" msgstr "Taiwán" #: src/hd-data.c:359 msgid "Tanzania" msgstr "Tanzania" #: src/hd-data.c:360 msgid "Ukraine" msgstr "Ucrania" #: src/hd-data.c:361 msgid "Uganda" msgstr "Uganda" #: src/hd-data.c:362 msgid "United States/Alaska" msgstr "Estados Unidos/Alaska" #: src/hd-data.c:363 msgid "United States/Alabama" msgstr "Estados Unidos/Alabama" #: src/hd-data.c:364 msgid "United States/Arkansas" msgstr "Estados Unidos/Arkansas" #: src/hd-data.c:365 msgid "United States/Arizona" msgstr "Estados Unidos/Arizona" #: src/hd-data.c:366 msgid "United States/California" msgstr "Estados Unidos/California" #: src/hd-data.c:367 msgid "United States/Colorado" msgstr "Estados Unidos/Colorado" #: src/hd-data.c:368 msgid "United States/Connecticut" msgstr "Estados Unidos/Connecticut" #: src/hd-data.c:369 msgid "United States/District of Columbia" msgstr "Estados Unidos/Distrito de Columbia" #: src/hd-data.c:370 msgid "United States/Delaware" msgstr "Estados Unidos/Delaware" #: src/hd-data.c:371 msgid "United States/Florida" msgstr "Estados Unidos/Florida" #: src/hd-data.c:372 msgid "United States/Georgia" msgstr "Estados Unidos/Georgia" #: src/hd-data.c:373 msgid "United States/Hawaii" msgstr "Estados Unidos/Hawaii" #: src/hd-data.c:374 msgid "United States/Iowa" msgstr "Estados Unidos/Iowa" #: src/hd-data.c:375 msgid "United States/Idaho" msgstr "Estados Unidos/Idaho" #: src/hd-data.c:376 msgid "United States/Illinois" msgstr "Estados Unidos/Illinois" #: src/hd-data.c:377 msgid "United States/Indiana" msgstr "Estados Unidos/Indiana" #: src/hd-data.c:378 msgid "United States/Kansas" msgstr "Estados Unidos/Kansas" #: src/hd-data.c:379 msgid "United States/Kentucky" msgstr "Estados Unidos/Kentucky" #: src/hd-data.c:380 msgid "United States/Louisiana" msgstr "Estados Unidos/Louisiana" #: src/hd-data.c:381 msgid "United States/Massachusetts" msgstr "Estados Unidos/Massachusetts" #: src/hd-data.c:382 msgid "United States/Maryland" msgstr "Estados Unidos/Maryland" #: src/hd-data.c:383 msgid "United States/Maine" msgstr "Estados Unidos/Maine" #: src/hd-data.c:384 msgid "United States/Michigan" msgstr "Estados Unidos/Michigan" #: src/hd-data.c:385 msgid "United States/Minnesota" msgstr "Estados Unidos/Minnesota" #: src/hd-data.c:386 msgid "United States/Missouri" msgstr "Estados Unidos/Missouri" #: src/hd-data.c:387 msgid "United States/Mississippi" msgstr "Estados Unidos/Mississippi" #: src/hd-data.c:388 msgid "United States/Montana" msgstr "Estados Unidos/Montana" #: src/hd-data.c:389 msgid "United States/North Carolina" msgstr "Estados Unidos/Carolina del Norte" #: src/hd-data.c:390 msgid "United States/North Dakota" msgstr "Estados Unidos/Dakota del Norte" #: src/hd-data.c:391 msgid "United States/Nebraska" msgstr "Estados Unidos" #: src/hd-data.c:392 msgid "United States/New Hampshire" msgstr "Estados Unidos/Nueva Hampshire" #: src/hd-data.c:393 msgid "United States/New Jersey" msgstr "Estados Unidos/Nueva Jersey" #: src/hd-data.c:394 msgid "United States/New Mexico" msgstr "Estados Unidos/Nuevo México" #: src/hd-data.c:395 msgid "United States/Nevada" msgstr "Estados Unidos/Nevada" #: src/hd-data.c:396 msgid "United States/New York" msgstr "Estados Unidos/Nueva York" #: src/hd-data.c:397 msgid "United States/Ohio" msgstr "Estados Unidos/Ohio" #: src/hd-data.c:398 msgid "United States/Oklahoma" msgstr "Estados Unidos/Oklahoma" #: src/hd-data.c:399 msgid "United States/Oregon" msgstr "Estados Unidos/Oregon" #: src/hd-data.c:400 msgid "United States/Pennsylvania" msgstr "Estados Unidos/Pennsylvania" #: src/hd-data.c:401 msgid "United States/Rhode Island" msgstr "Estados Unidos/Isla Rhode" #: src/hd-data.c:402 msgid "United States/South Carolina" msgstr "Estados Unidos/Carolina del Sur" #: src/hd-data.c:403 msgid "United States/South Dakota" msgstr "Estados Unidos/Dakota del Sur" #: src/hd-data.c:404 msgid "United States/Tennessee" msgstr "Estados Unidos/Tennessee" # ¿O mejor Tejas? - cfuga #: src/hd-data.c:405 msgid "United States/Texas" msgstr "Estados Unidos/Texas" #: src/hd-data.c:406 msgid "United States/Utah" msgstr "Estados Unidos/Utah" #: src/hd-data.c:407 msgid "United States/Virginia" msgstr "Estados Unidos/Virginia" #: src/hd-data.c:408 msgid "United States/Vermont" msgstr "Estados Unidos/Vermonth" #: src/hd-data.c:409 msgid "United States/Washington" msgstr "Estados Unidos/Washington" #: src/hd-data.c:410 msgid "United States/Wisconsin" msgstr "Estados Unidos/Wisconsin" #: src/hd-data.c:411 msgid "United States/West Virginia" msgstr "Estados Unidos/Virginia Oeste" #: src/hd-data.c:412 msgid "United States/Wyoming" msgstr "Estados Unidos/Wyoming" #: src/hd-data.c:413 msgid "Uruguay" msgstr "Uruguay" #: src/hd-data.c:414 msgid "Uzbekistan" msgstr "Uzbekistán" #: src/hd-data.c:415 msgid "St Vincent and Grenadines" msgstr "San Vicente y Granadinas" #: src/hd-data.c:416 msgid "Venezuela" msgstr "Venezuela" #: src/hd-data.c:417 msgid "British Virgin Islands" msgstr "Islas Vírgenes Británicas" #: src/hd-data.c:418 msgid "U.S. Virgin Islands" msgstr "Islas Vírgenes (E.U.)" #: src/hd-data.c:419 msgid "Viet Nam" msgstr "Vietnam" #: src/hd-data.c:420 msgid "Vanuatu" msgstr "Vanuatu" #: src/hd-data.c:421 msgid "Wallis and Futuna Islands" msgstr "Islas Wallis y Futuna" #: src/hd-data.c:422 msgid "Samoa" msgstr "Samoa" #: src/hd-data.c:423 msgid "Yemen" msgstr "Yemen" #: src/hd-data.c:424 msgid "Mayotte" msgstr "Mayotte" #: src/hd-data.c:425 msgid "Serbia and Montenegro" msgstr "Serbia y Montenegro" #: src/hd-data.c:426 msgid "South Africa" msgstr "Sudáfrica" #: src/hd-data.c:427 msgid "Zambia" msgstr "Zambia" #: src/hd-data.c:428 msgid "Zimbabwe" msgstr "Zimbabwe" #: src/hd-data.c:458 msgid "1st Advent" msgstr "Primer Adviento" #: src/hd-data.c:459 msgid "1st Sunday in Lent" msgstr "Primer domingo de Cuaresma" #: src/hd-data.c:460 msgid "2nd Advent" msgstr "2º Adviento" #: src/hd-data.c:461 msgid "2nd Sunday in Lent" msgstr "2° domingo de Cuaresma" #: src/hd-data.c:462 msgid "3rd Advent" msgstr "3er Adviento" #: src/hd-data.c:463 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:464 msgid "4th Advent" msgstr "4º Adviento" #: src/hd-data.c:465 msgid "4th Sunday in Lent" msgstr "4° domingo de Cuaresma" #: src/hd-data.c:466 msgid "7-5-3 Festival" msgstr "Festival 7-5-3" #: src/hd-data.c:467 msgid "Aborigines Day" msgstr "Día de los Aborígenes" #: src/hd-data.c:468 msgid "All Fool's Day" msgstr "Día de los Santos Inocentes" #: src/hd-data.c:469 msgid "All Saints' Day" msgstr "Día de Todos los Santos" #: src/hd-data.c:470 msgid "All Souls' Day" msgstr "Día de Todas las Almas" #: src/hd-data.c:471 msgid "Alphabet Day" msgstr "Día del Alfabeto" #: src/hd-data.c:472 msgid "Anniversary of Auckland" msgstr "Aniversario de Auckland" #: src/hd-data.c:473 msgid "Anniversary of Canterbury North" msgstr "Aniversario de Canterbury del Norte" #: src/hd-data.c:474 msgid "Anniversary of Canterbury South" msgstr "Aniversario de Canterbury del Sur" #: src/hd-data.c:475 msgid "Anniversary of Chatham Islands" msgstr "Aniversario de las Islas Chatham" #: src/hd-data.c:476 msgid "Anniversary of Hawkes' Bay" msgstr "Aniversario de la Bahía de Hawkes" #: src/hd-data.c:477 msgid "Anniversary of Marlborough" msgstr "Aniversario de Marlborough" #: src/hd-data.c:478 msgid "Anniversary of Nelson" msgstr "Aniversario de Nelson" #: src/hd-data.c:479 msgid "Anniversary of Otago" msgstr "Aniversario de Otago" #: src/hd-data.c:480 msgid "Anniversary of Southland" msgstr "Aniversario de Southland" #: src/hd-data.c:481 msgid "Anniversary of Taranaki" msgstr "Aniversario de Taranaki" #: src/hd-data.c:482 msgid "Anniversary of Wellington" msgstr "Aniversario de Wellington" #: src/hd-data.c:483 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:484 msgid "Anzac Day" msgstr "Día de Anzac" #: src/hd-data.c:485 msgid "Arbor Day" msgstr "Día de Arbor" #: src/hd-data.c:486 msgid "Armed Forces Day" msgstr "Día de las Fuerzas Armadas" #: src/hd-data.c:487 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:488 msgid "Ash Monday" msgstr "Lunes de Pentecostés" #: src/hd-data.c:489 msgid "Ash Wednesday" msgstr "Miércoles de Ceniza" #: src/hd-data.c:490 msgid "Ascension of Abdu'l-Baha" msgstr "Ascensión de Abdu'l-Baha" #: src/hd-data.c:491 msgid "Ascension of Baha'u'llah" msgstr "Ascensión de Baha'u'llah" #: src/hd-data.c:492 msgid "Birth of Baha'u'llah" msgstr "Nacimiento de Baha'u'llah" #: src/hd-data.c:493 msgid "Birth of the Bab" msgstr "Nacimiento del Bab" #: src/hd-data.c:494 msgid "Day of the Covenant" msgstr "Día del Convenio" #: src/hd-data.c:495 msgid "Declaration of the Bab" msgstr "Declaración del Bab" #: src/hd-data.c:496 msgid "First Day of Ridvan" msgstr "Primer Día de Ridvan" #: src/hd-data.c:497 msgid "Martyrdom of the Bab" msgstr "Martirio del Bab" #: src/hd-data.c:498 msgid "Bahá'i New Year's Day" msgstr "Día de Año Nuevo de Bahá'i" #: src/hd-data.c:499 msgid "Ninth Day of Ridvan" msgstr "9º Día de Ridvan" #: src/hd-data.c:500 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:501 msgid "Bank Holiday" msgstr "Día Festivo" # Perdón por mi incultura ¿cual es la Nación Lapona? ¿Laponia? #: src/hd-data.c:502 msgid "Basque National Day" msgstr "Día de la Nación Vasca" #: src/hd-data.c:503 msgid "Battle of Boyne" msgstr "Batalla de Boyne" #: src/hd-data.c:504 msgid "Battle of Puebla" msgstr "Batalla de Puebla" #: src/hd-data.c:505 msgid "Beginning of Financial Year" msgstr "Inicio del Año Financiero" #: src/hd-data.c:506 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:507 msgid "Bodhidharma's Birthday" msgstr "Natalicio de Bodhidharma" #: src/hd-data.c:508 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:509 msgid "Boxing Day" msgstr "Día después de Navidad" #: src/hd-data.c:510 msgid "Bringing Home the Herds Day" msgstr "Día para traer los Rebaños a Casa" #: src/hd-data.c:511 msgid "Bringing in the Harvest Day" msgstr "Día para traer la Cosecha" #: src/hd-data.c:512 msgid "Buddha's Birthday" msgstr "Natalicio de Buda" #: src/hd-data.c:513 msgid "Burns Night" msgstr "Noche del Fuego" #: src/hd-data.c:514 msgid "Camoes Day" msgstr "Día de Camoes" #: src/hd-data.c:515 msgid "Carnival" msgstr "Carnaval" #: src/hd-data.c:516 msgid "Beltane" msgstr "Beltane" #: src/hd-data.c:517 msgid "Imbolg" msgstr "Imbolc" #: src/hd-data.c:518 msgid "Lughnasa" msgstr "Lughnasa" #: src/hd-data.c:519 msgid "Samhain/Celtic New Year's Day" msgstr "Samhain/Día de Año Nuevo Celta" #: src/hd-data.c:520 msgid "Children's Day" msgstr "Día de los Niños" #: src/hd-data.c:521 msgid "Cycle" msgstr "Ciclo" #: src/hd-data.c:522 msgid "Chinese New Year's Day" msgstr "Día de Año Nuevo Chino" #: src/hd-data.c:523 msgid "Chinese New Year's Eve" msgstr "Víspera del Día de Año Nuevo Chino" #: src/hd-data.c:524 msgid "Christmas Day" msgstr "Día de Navidad" #: src/hd-data.c:525 msgid "Christmas Eve" msgstr "Nochebuena" #: src/hd-data.c:526 msgid "Christ's Ascension Day" msgstr "Día de la Ascensión de Cristo" #: src/hd-data.c:527 msgid "Chrysanthenum Day" msgstr "Día del Crisantemo" #: src/hd-data.c:528 msgid "Citizenship Day" msgstr "Día del Ciudadano" #: src/hd-data.c:529 msgid "Civic Holiday" msgstr "Fiesta Cívica" #: src/hd-data.c:530 msgid "Columbus Day" msgstr "Día de Colón" #: src/hd-data.c:531 msgid "Coming of Age Day" msgstr "Día de la Llegada de la Era" #: src/hd-data.c:532 msgid "Confucius' Birthday" msgstr "Natalicio de Confucio" #: src/hd-data.c:533 msgid "Constitution Anniversary" msgstr "Aniversario de la Constitución" #: src/hd-data.c:534 msgid "Coptic New Year's Day" msgstr "Día de Año Nuevo Copto" #: src/hd-data.c:535 msgid "Cosmonauts' Day" msgstr "Día de los Cosmonautas" #: src/hd-data.c:536 msgid "Cross Raising Day" msgstr "Día del Levantamiento de la Cruz" #: src/hd-data.c:537 msgid "Culture Day" msgstr "Día de la Cultura" #: src/hd-data.c:538 msgid "Day after Mid-Autumn Festival" msgstr "Día después del Festival de Medio Otoño" #: src/hd-data.c:539 msgid "Day after Tomb-Sweeping Day" msgstr "Día después del Día de Limpieza de Tumbas" #: src/hd-data.c:540 msgid "Day of Andalucia" msgstr "Día de Andalucía" #: src/hd-data.c:541 msgid "Day of Catalonia" msgstr "Día de Catalunia" #: src/hd-data.c:542 msgid "Day of Galicia" msgstr "Día de Galicia" #: src/hd-data.c:543 msgid "Day of Prayer and Repentance" msgstr "Día de Oración y Arrepentimiento" #: src/hd-data.c:544 msgid "Day of Reconciliation" msgstr "Día de la Reconciliación" #: src/hd-data.c:545 msgid "Defenders of Motherland Day" msgstr "Día de los Defensores de la Madre Patria" #: src/hd-data.c:546 msgid "Double-9 Day" msgstr "Día del Doble 9" #: src/hd-data.c:547 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:548 msgid "Dynasty Day" msgstr "Día de la Dinastía" #: src/hd-data.c:549 msgid "Easter Monday" msgstr "Lunes de Pascua" #: src/hd-data.c:550 msgid "Easter Sunday" msgstr "Domingo de Resurrección" #: src/hd-data.c:551 msgid "Lunar Eclipse" msgstr "Eclipse Lunar" #: src/hd-data.c:552 msgid "Solar Eclipse" msgstr "Eclipse Solar" #: src/hd-data.c:553 msgid "Annular" msgstr "Anular" #: src/hd-data.c:554 msgid "Partial" msgstr "Parcial" #: src/hd-data.c:555 msgid "Penumbral" msgstr "Penumbral" #: src/hd-data.c:556 msgid "Total" msgstr "Total" #: src/hd-data.c:557 msgid "Eindhoven's Liberation" msgstr "Liberación de Eindhoven" #: src/hd-data.c:558 msgid "Election Day" msgstr "Día de la Elección" #: src/hd-data.c:559 msgid "Emperor's Birthday" msgstr "Natalicio del Emperador" #: src/hd-data.c:560 msgid "Equinox Day" msgstr "Día del Equinoccio" #: src/hd-data.c:561 msgid "Ethiopic New Year's Day" msgstr "Día de Año Nuevo Etíope" #: src/hd-data.c:562 msgid "Father's Day" msgstr "Día del Padre" #: src/hd-data.c:563 msgid "Feast of Corpus Christi" msgstr "Fiesta del Corpus Cristi" #: src/hd-data.c:564 msgid "Feast of Fortune" msgstr "Fiesta de la Fortuna" #: src/hd-data.c:565 msgid "Feast of Heart Jesus" msgstr "Fiesta del Corazón de Jesús" #: src/hd-data.c:566 msgid "Festival of Lanterns" msgstr "Festival de las Linternas" #: src/hd-data.c:567 msgid "Festival of Sadeh" msgstr "Festival de Sadeh" #: src/hd-data.c:568 msgid "Flag Day" msgstr "Día de la Bandera" #: src/hd-data.c:569 msgid "Flemish Culture Day" msgstr "Día de la Cultura Flamenca" #: src/hd-data.c:570 msgid "Founding of the Communist Party" msgstr "Fundación del Partido Comunista" #: src/hd-data.c:571 msgid "French Culture Day" msgstr "Día de la Cultura Francesa" #: src/hd-data.c:572 msgid "French Revolutionary" msgstr "Día de la Revolución Francesa" #: src/hd-data.c:573 msgid "Friendship Day" msgstr "Día de la Amistad" #: src/hd-data.c:574 msgid "German Unity Day" msgstr "Día de la Unificación Alemana" #: src/hd-data.c:575 msgid "Good Friday" msgstr "Viernes Santo" #: src/hd-data.c:576 msgid "Good Saturday/Easter Eve" msgstr "Sábado Santo/Vísperas de Pascua" #: src/hd-data.c:577 msgid "Grandparents' Day" msgstr "Día de los Abuelos" #: src/hd-data.c:578 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:579 msgid "Grotto Day" msgstr "Día de la Cripta" #: src/hd-data.c:580 msgid "Groundhog Day" msgstr "Día de la Marmota" #: src/hd-data.c:581 msgid "Guadalupe Virgin's Day" msgstr "Día de la Virgen de Guadalupe" #: src/hd-data.c:582 msgid "Guy Fawke's Day" msgstr "Día de Guy Fawke" #: src/hd-data.c:583 msgid "Halloween" msgstr "Noche de Brujas" #: src/hd-data.c:584 msgid "Health and Sport's Day" msgstr "Día de la Salud y los Deportes" #: src/hd-data.c:585 msgid "Hannukah/Festival of Lights" msgstr "Hannukah/Festival de las Luces" #: src/hd-data.c:586 msgid "Lag B'Omer" msgstr "Lag B'Omer" #: src/hd-data.c:587 msgid "Pesach/Passover" msgstr "Pesach/Pascua" #: src/hd-data.c:588 msgid "Purim/Feast of Lots" msgstr "Purim/Fiesta de Muchos" #: src/hd-data.c:589 msgid "Rosh Hashana/New Year's Day" msgstr "Rosh Hashana/Día de Año Nuevo" #: src/hd-data.c:590 msgid "Shavuot/Giving of the Torah" msgstr "Shavout/Entrega de la Torah" #: src/hd-data.c:591 msgid "Shushan Purim" msgstr "Shushan Purim" #: src/hd-data.c:592 msgid "Simchat Torah" msgstr "Simchat Torah" #: src/hd-data.c:593 msgid "Sukkot/Feast of Tabernacles" msgstr "Sukkot/Fiesta de los Tabernáculos" #: src/hd-data.c:594 msgid "Tisha B'Av/Fasting Day" msgstr "Tisha B'Av/Día de Ayuno" #: src/hd-data.c:595 msgid "Tu B'Shevat/New Year of Trees" msgstr "Tu B'Shevat/Año Nuevo de los Ãrboles" #: src/hd-data.c:596 msgid "Yom Hashoah/Holocaust Memorial" msgstr "Yom Hashoah/Memorial del Holocausto" #: src/hd-data.c:597 msgid "Yom Hazikaron/Soldiers Memorial" msgstr "Yom Hazikaron/Memorial de los Soldados" #: src/hd-data.c:598 msgid "Yom Ha Azmaut/Independence Day" msgstr "Yom Ha Azmaut/Día de la Independencia" #: src/hd-data.c:599 msgid "Yom Kippur/Atonement Day" msgstr "Yom Kippur/Día de la Redención" #: src/hd-data.c:600 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:601 msgid "Holy Innocent's Day" msgstr "Día de los Santos Inocentes" #: src/hd-data.c:602 msgid "Holy Trinity" msgstr "Santísimia Trinidad" #: src/hd-data.c:603 msgid "Huravee Day" msgstr "Día de Huravee" #: src/hd-data.c:604 msgid "Independence Day" msgstr "Día de la Independencia" #: src/hd-data.c:605 msgid "Independence Movement Day" msgstr "Día del Movimiento de Independencia" #: src/hd-data.c:606 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:607 msgid "Indian New Year's Day" msgstr "Día de Año Nuevo Indio" #: src/hd-data.c:608 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:609 msgid "Ashura'" msgstr "Ashura'" #: src/hd-data.c:610 msgid "Eid-al-Adha" msgstr "Eid-al-Adha" #: src/hd-data.c:611 msgid "Eid-al-Fitr" msgstr "Eid-al-Fitr" #: src/hd-data.c:612 msgid "Eid-i-Milad-un-Nabi" msgstr "Eid-i-Milad-un-Nabi" #: src/hd-data.c:613 msgid "Ghadir" msgstr "Ghadir" #: src/hd-data.c:614 msgid "Imamat Day" msgstr "Día de Imamat" #: src/hd-data.c:615 msgid "Islamic New Year's Day" msgstr "Día de Año Nuevo Islámico" #: src/hd-data.c:616 msgid "Nuzul-al-Qur'an" msgstr "Nuzul-al-Qur'an" #: src/hd-data.c:617 msgid "Quds Day" msgstr "Día de Quds" #: src/hd-data.c:618 msgid "Ramadan" msgstr "Ramadán" #: src/hd-data.c:619 msgid "Shab-e-Bara't" msgstr "Shab-e-Bara't" #: src/hd-data.c:620 msgid "Shab-e-Mi'raj" msgstr "Shab-e-Mi'raj" #: src/hd-data.c:621 msgid "Shab-e Qadr" msgstr "Shab-e Qadr" #: src/hd-data.c:622 msgid "Waqf-al-Arafat" msgstr "Waqf-al-Arafat" #: src/hd-data.c:623 msgid "Japanese New Year's Day" msgstr "Día de Año Nuevo Japonés" #: src/hd-data.c:624 msgid "Japanese New Year's Eve" msgstr "Víspera del Día de Año Nuevo Japonés" #: src/hd-data.c:625 msgid "Jesus' Circumcision" msgstr "Circuncisión de Jesús" #: src/hd-data.c:626 msgid "Kwanzaa" msgstr "Kwanzaa" #: src/hd-data.c:627 msgid "Labour Day" msgstr "Día del Trabajo" #: src/hd-data.c:628 msgid "Labour Thanksgiving Day" msgstr "Día de Acción de Gracias del Trabajo" #: src/hd-data.c:629 msgid "Lao Tze's Birthday" msgstr "Natalicio de Lao Tse" #: src/hd-data.c:630 msgid "Liberation Day" msgstr "Día de la Liberación" #: src/hd-data.c:631 msgid "Marine Day" msgstr "Día de la Marina" #: src/hd-data.c:632 msgid "Martinimas" msgstr "Martinimas" #: src/hd-data.c:633 msgid "Martin L. King's Day" msgstr "Día de Martin L. King" #: src/hd-data.c:634 msgid "Martyrs' Day" msgstr "Día de los Mártires" #: src/hd-data.c:635 msgid "Mary's Annunciation Day" msgstr "Día de la Anunciación a María" #: src/hd-data.c:636 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:637 msgid "Mary's Candlemas" msgstr "Purificación de María" #: src/hd-data.c:638 msgid "Mary's Expectation" msgstr "Espera de María" #: src/hd-data.c:639 msgid "Mary's Immaculate Conception" msgstr "Día de la Inmaculada Concepción de María" #: src/hd-data.c:640 msgid "Mary's Maternity" msgstr "Maternidad de María" #: src/hd-data.c:641 msgid "Mary's Name" msgstr "Nombre de María" #: src/hd-data.c:642 msgid "Mary's Nativity" msgstr "Natividad de María" #: src/hd-data.c:643 msgid "Mary's Sacrifice" msgstr "Sacrificio de María" #: src/hd-data.c:644 msgid "Mary's Visitation" msgstr "Visitación de María" #: src/hd-data.c:645 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:646 msgid "Maundy Thursday" msgstr "Última cena de Jesucristo" #: src/hd-data.c:647 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:648 msgid "St John's/Midsummer Day" msgstr "Día de San Juan/Noche de Verano" #: src/hd-data.c:649 msgid "Mid-Autumn Festival" msgstr "Festival de Medio Otoño" #: src/hd-data.c:650 msgid "Mid-Spring Festival" msgstr "Festival de Media Primavera" #: src/hd-data.c:651 msgid "Mid-Year Festival" msgstr "Festival de Medio Año" #: src/hd-data.c:652 msgid "Waxing Half Moon" msgstr "Cuarto Creciente" #: src/hd-data.c:653 msgid "Full Moon" msgstr "Luna Llena" #: src/hd-data.c:654 msgid "Waning Half Moon" msgstr "Cuarto Menguante" #: src/hd-data.c:655 msgid "New Moon" msgstr "Luna Nueva" #: src/hd-data.c:656 msgid "Mother's Day" msgstr "Día de la Madre" #: src/hd-data.c:657 msgid "Mother in Law's Day" msgstr "Día de la Suegra" #: src/hd-data.c:658 msgid "Music Water Banquet" msgstr "Banquete de la Música Acuática" #: src/hd-data.c:659 msgid "National Foundation Day" msgstr "Día de la Fundación Nacional" #: src/hd-data.c:660 msgid "National Holiday" msgstr "Día Nacional" #: src/hd-data.c:661 msgid "National Mourning Day" msgstr "Día de Duelo Nacional" #: src/hd-data.c:662 msgid "New Year's Day" msgstr "Día de Año Nuevo" #: src/hd-data.c:663 msgid "Nurses' Day" msgstr "Día de la Enfermera" #: src/hd-data.c:664 msgid "Old-Armenic New Year" msgstr "Año Nuevo del Armenio Antiguo" #: src/hd-data.c:665 msgid "Old-Egyptic New Year" msgstr "Año Nuevo del Egipcio Antiguo" #: src/hd-data.c:666 msgid "Orthodox New Year's Day" msgstr "Día de Año Nuevo Ortodoxo" #: src/hd-data.c:667 msgid "Our Lady Aparecida Day" msgstr "Día de Nuestra Señora Aparecida" #: src/hd-data.c:668 msgid "Palm Sunday" msgstr "Domingo de Ramos" #: src/hd-data.c:669 msgid "Parent's Day" msgstr "Día de los Padres" #: src/hd-data.c:670 msgid "Passion Sunday" msgstr "Domingo de Pasión" #: src/hd-data.c:671 msgid "Peace Festival" msgstr "Festival de la Paz" #: src/hd-data.c:672 msgid "Peach Festival" msgstr "Festival del Durazno" #: src/hd-data.c:673 msgid "Whitsunday/Pentecost" msgstr "Pentecostés" #: src/hd-data.c:674 msgid "Noruz/Persian New Year's Day" msgstr "Noruz/Día de Año Nuevo Persa" #: src/hd-data.c:675 msgid "Prayer Day" msgstr "Día de Oración" #: src/hd-data.c:676 msgid "Presidential Inauguration" msgstr "Inauguración Presidencial" #: src/hd-data.c:677 msgid "Presidents' Day" msgstr "Día de los Presidentes" #: src/hd-data.c:678 msgid "Presidents' Inform" msgstr "Informe de los Presidentes" #: src/hd-data.c:679 msgid "President Lincoln's Birthday" msgstr "Natalicio del Presidente Lincoln" #: src/hd-data.c:680 msgid "Princess' Day" msgstr "Día de la Princesa" #: src/hd-data.c:681 msgid "Quinquagesima Sunday" msgstr "Domingo Quincuagésimo" #: src/hd-data.c:682 msgid "Reformation Day" msgstr "Día de la Reforma" #: src/hd-data.c:683 msgid "Remembrance/Memorial Day" msgstr "Día Memorial" #: src/hd-data.c:684 msgid "Republic Day" msgstr "Día de la República" #: src/hd-data.c:685 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:686 msgid "Revolution Day" msgstr "Día de la Reforma" #: src/hd-data.c:687 msgid "Rio de Janeiro Anniversary" msgstr "Aniversario de Río de Janeiro" #: src/hd-data.c:688 msgid "Rogation Sunday" msgstr "Domingo de Rogación" #: src/hd-data.c:689 msgid "Sao Paulo Anniversary" msgstr "Aniversario de Sao Paulo" #: src/hd-data.c:690 msgid "Sapporo Snow Festival" msgstr "Festival de la Nieve de Sapporo" #: src/hd-data.c:691 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:692 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:693 msgid "Seven Sleepers Day" msgstr "Día de los Siete Durmientes" #: src/hd-data.c:694 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:695 msgid "Shrove Tuesday/Mardi Gras" msgstr "Día del Entierro de la Sardina/Mardi Gras" #: src/hd-data.c:696 msgid "Solstice Day" msgstr "Día de Solsticio" #: src/hd-data.c:697 msgid "Soot-Sweeping Day" msgstr "Día de la Limpieza de Hollín" #: src/hd-data.c:698 msgid "Spring Festival" msgstr "Festival de Primavera" #: src/hd-data.c:699 msgid "Start of common month" msgstr "Inicio del mes común" #: src/hd-data.c:700 msgid "Start of leap month" msgstr "Inicio del mes bisiesto" #: src/hd-data.c:701 msgid "Star Festival" msgstr "Festival de las Estrellas" #: src/hd-data.c:702 msgid "St Andrew's Day" msgstr "Día de San Andrés" #: src/hd-data.c:703 msgid "St Bartholomew Day" msgstr "Día de San Bartolomé" #: src/hd-data.c:704 msgid "St Berchtold's Day" msgstr "Día de San Berchtold" #: src/hd-data.c:705 msgid "St David's Day" msgstr "Día de San David" #: src/hd-data.c:706 msgid "St Edward's Day" msgstr "Día de San Eduardo" #: src/hd-data.c:707 msgid "St George's Day" msgstr "Día de San Jorge" #: src/hd-data.c:708 msgid "St James' Day" msgstr "Día de San Jaime" #: src/hd-data.c:709 msgid "St Joseph's Day" msgstr "Día de San José" #: src/hd-data.c:710 msgid "St Laurentius Day" msgstr "Día de San Laurencio" #: src/hd-data.c:711 msgid "St Nicholas' Day" msgstr "Día de San Nicolás" #: src/hd-data.c:712 msgid "St Nicholas' Eve" msgstr "Víspera de San Nicolás" #: src/hd-data.c:713 msgid "St Patrick's Day" msgstr "Día de San Patricio" #: src/hd-data.c:714 msgid "St Peter and St Paul" msgstr "San Pedro y San Pablo" #: src/hd-data.c:715 msgid "St Stephen's Day" msgstr "Día de San Estéfano" #: src/hd-data.c:716 msgid "St Valentine's Day" msgstr "Día de San Valentín" #: src/hd-data.c:717 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:718 msgid "Swallow Day" msgstr "Día de la Golondrina" #: src/hd-data.c:719 msgid "Sweetest Day" msgstr "El Día más Dulce" #: src/hd-data.c:720 msgid "Sylvester/New Year's Eve" msgstr "San Silvestre/Víspera del Año Nuevo" #: src/hd-data.c:721 msgid "Teacher's Day" msgstr "Día del Profesor" #: src/hd-data.c:722 msgid "Thai New Year's Day" msgstr "Día de Año Nuevo Thai" #: src/hd-data.c:723 msgid "Thanksgiving Day" msgstr "Día de Acción de Gracias" #: src/hd-data.c:724 msgid "The King's Birthday" msgstr "Natalicio del Rey" #: src/hd-data.c:725 msgid "The Queen's Birthday" msgstr "Natalicio de la Reina" #: src/hd-data.c:726 msgid "Epiphany/Three King's Day" msgstr "Epifanía del Señor/Día de Reyes" #: src/hd-data.c:727 msgid "Tiradentes Day" msgstr "Día de Tiradentes" #: src/hd-data.c:728 msgid "Tomb-Sweeping Day" msgstr "Día de Limpieza de Tumbas" #: src/hd-data.c:729 msgid "Transfiguration Day" msgstr "Día de la Transfiguración" #: src/hd-data.c:730 msgid "Tynwald Day" msgstr "Día de Tynwald" #: src/hd-data.c:731 msgid "Valborg's Eve" msgstr "Víspera de Valborg" #: src/hd-data.c:732 msgid "Venice Carnival" msgstr "Carnaval de Venecia" #: src/hd-data.c:733 msgid "Veteran's Day" msgstr "Día de los Veteranos" #: src/hd-data.c:734 msgid "Victoria Day" msgstr "Día de la Reina Victoria" #: src/hd-data.c:735 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:736 msgid "Whit Monday" msgstr "Lunes de Pentecostés" #: src/hd-data.c:737 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:738 msgid "Women's Shrove Day" msgstr "Carnaval de las Mujeres" #: src/hd-data.c:739 msgid "World Animal Day" msgstr "Día Mundíal de los Animales" #: src/hd-data.c:740 msgid "Youth Day" msgstr "Día de la Juventud" #: src/hd-data.c:746 msgid "Adelaide Cup Day" msgstr "Día de la Copa Adelaide" #: src/hd-data.c:747 msgid "Admission Day" msgstr "Día de Admisión" #: src/hd-data.c:748 msgid "Alaska Day" msgstr "Día de Alaska" #: src/hd-data.c:749 msgid "Aleksis Kivi Day" msgstr "Día de Aleksis Kivi" #: src/hd-data.c:750 msgid "Alice-Springs Show Day" msgstr "Día de la Feria de Alice Springs" #: src/hd-data.c:751 msgid "All Saints' Eve" msgstr "Víspera de Todos los Santos" #: src/hd-data.c:752 msgid "Americas Day" msgstr "Día de las Américas" #: src/hd-data.c:753 msgid "Angam Day" msgstr "Día de Angam" #: src/hd-data.c:755 msgid "Anniversary of Amir's Succession" msgstr "Aniversario de la Sucesión de Amir" #: src/hd-data.c:756 msgid "Anniversary of Armed Struggle" msgstr "Aniversario de la Lucha Armada" #: src/hd-data.c:757 msgid "Anniversary of Green March" msgstr "Aniversario de la Marcha Verde" #: src/hd-data.c:758 msgid "Antillian Day" msgstr "Día de las Antillas" #: src/hd-data.c:759 msgid "Arab League Day" msgstr "Día de la Liga Ãrabe" #: src/hd-data.c:761 msgid "Archbishop Makarios' Memorial Day" msgstr "Día Memorial del Arzobispo Makarios" #: src/hd-data.c:762 msgid "Archbishop Makarios' Name-Day" msgstr "Santoral del Arzobizpo Makarios" #: src/hd-data.c:763 msgid "Arengo Anniversary" msgstr "Aniversario de Arengo" #: src/hd-data.c:764 msgid "Army Coup Day" msgstr "Día del Golpe Militar" #: src/hd-data.c:765 msgid "Arrival of the Swiss" msgstr "Llegada de los Suizos" #: src/hd-data.c:766 msgid "Artigas' Birthday" msgstr "Natalicio de Artigas" #: src/hd-data.c:767 msgid "Asuncion Day" msgstr "Día de la Asunción" #: src/hd-data.c:768 msgid "Ataturk Memorial Day" msgstr "Día Memorial de Ataturk" #: src/hd-data.c:769 msgid "Authority's Power Day" msgstr "Día del Poder de la Autoridad" #: src/hd-data.c:770 msgid "Ba'ath Revolution Day" msgstr "Día de la Revolución Ba'ath" #: src/hd-data.c:771 msgid "Baron Bliss Day" msgstr "Día del Barón Bliss" #: src/hd-data.c:772 msgid "Bataan Day" msgstr "Día de Bataan" #: src/hd-data.c:773 msgid "Battle of Angamos" msgstr "Batalla de Angamos" #: src/hd-data.c:774 msgid "Battle of Boyacá" msgstr "Batalla de Boyacá" #: src/hd-data.c:775 msgid "Battle of Carabobo" msgstr "Batalla de Carabobo" #: src/hd-data.c:776 msgid "Battle of Iquique" msgstr "Batalla de Iquique" #: src/hd-data.c:777 msgid "Battle of Las Piedras" msgstr "Batalla de Las Piedras" #: src/hd-data.c:778 msgid "Battle of Näfels" msgstr "Batalla de Näfels" #: src/hd-data.c:779 msgid "Beginning of Summer" msgstr "Inicio del Verano" #: src/hd-data.c:780 msgid "Belgrade's Day" msgstr "Día de Belgrado" #: src/hd-data.c:781 msgid "Bennington Battle Day" msgstr "Día de la Batalla de Bennington" #: src/hd-data.c:782 msgid "Blessing of the Water" msgstr "Bendición del Agua" #: src/hd-data.c:783 msgid "Bloomsday" msgstr "Bloomsday" #: src/hd-data.c:784 msgid "Boganda Day" msgstr "Día de Boganda" #: src/hd-data.c:785 msgid "Bonaire Day" msgstr "Día de Bonaire" #: src/hd-data.c:786 msgid "Boqueron Battle Day" msgstr "Día de la Batalla de Boquerón" #: src/hd-data.c:787 msgid "Botswana Day" msgstr "Día de Botswana" # FIXME - ¿Aquí "bounty" es nombre propio o sustantivo? - cfuga #: src/hd-data.c:788 msgid "Bounty Day" msgstr "Día del Motín" #: src/hd-data.c:789 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:790 msgid "Burning of Jan Hus" msgstr "Día de la Muerte en la Hoguera de Juana de Arco" #: src/hd-data.c:791 msgid "Canberra Day" msgstr "Día de Canberra" # Caricom = "Caribbean Community" - cfuga #: src/hd-data.c:792 msgid "Caricom Day" msgstr "Día de la Caricom" #: src/hd-data.c:793 msgid "Casimir Pulaski's Birthday" msgstr "Natalicio de Casimir Pulaski" #: src/hd-data.c:794 msgid "Cassinga Day" msgstr "Día de Cassinga" #: src/hd-data.c:795 msgid "Cayenne Festival" msgstr "Festival de Cayenne" #: src/hd-data.c:796 msgid "Cesar Chavez Day" msgstr "Día de César Chávez" #: src/hd-data.c:797 msgid "Charter Day" msgstr "Día de la Carta" #: src/hd-data.c:798 msgid "Chiang Kai-shek's Birthday" msgstr "Natalicio de Chiang Kai-shek" #: src/hd-data.c:799 msgid "Children's White Sunday" msgstr "Domingo Blanco de los Niños" #: src/hd-data.c:800 msgid "Colon Day" msgstr "Día de Colón" #: src/hd-data.c:801 msgid "Colorado Day" msgstr "Día de Colorado" # FIXME - ¿Se debe dejar "Commonwealth" sin traducción? - cfuga #: src/hd-data.c:802 msgid "Commonwealth Day" msgstr "Día de la Comunidad Británica" #: src/hd-data.c:803 msgid "Compact Day" msgstr "Día Compacto" #: src/hd-data.c:804 msgid "Confederal Agreement Day" msgstr "Día del Acuerdo de Confederación" #: src/hd-data.c:805 msgid "Coronation Day" msgstr "Día de la Coronación" #: src/hd-data.c:806 msgid "Cup Match Day" msgstr "Día de la Copa Match" # ¿Alguien de Vanuatu que nos quiera explicar? - cfuga #: src/hd-data.c:807 msgid "Custom Chief's Day" msgstr "Día del Arreglo del Jefe" #: src/hd-data.c:808 msgid "C. Mapinduzi Day" msgstr "Día de C. Mapinduzi" #: src/hd-data.c:809 msgid "Darwin Show Day" msgstr "Día de la Feria de Darwin" #: src/hd-data.c:810 msgid "Day of Goodwill" msgstr "Día de Buena Voluntad" #: src/hd-data.c:811 msgid "Day of Students Revolt" msgstr "Día de la Revuelta Estudiantil" #: src/hd-data.c:812 msgid "Day of the Free Laos" msgstr "Día de Laos Libre" #: src/hd-data.c:813 msgid "Death of H. Christophe" msgstr "Muerte de H. Christophe" #: src/hd-data.c:814 msgid "Death of J. Dessalines" msgstr "Muerte de J. Dessalines" #: src/hd-data.c:815 msgid "Death of President Abdallah" msgstr "Muerte del Presidente Abdallah" #: src/hd-data.c:816 msgid "Death of President Cheikh" msgstr "Muerte del Presidente Cheikh" #: src/hd-data.c:817 msgid "Death of President Soilih" msgstr "Muerte del Presidente Soilih" #: src/hd-data.c:818 msgid "Death of Qaid-i-Azam" msgstr "Muerte de Qaid-i-Azam" #: src/hd-data.c:819 msgid "Death of T. Louverture" msgstr "Muerte de T. Louverture" #: src/hd-data.c:820 msgid "Defenders Day" msgstr "Día de los Defensores" #: src/hd-data.c:821 msgid "Dia del Padre" msgstr "Día del Padre" #: src/hd-data.c:822 msgid "Dia de los Maestros" msgstr "Día de los Maestros" #: src/hd-data.c:823 msgid "Discovery Day" msgstr "Día del Descubrimiento" #: src/hd-data.c:824 msgid "Downfall of the Dergue" msgstr "Caída del Dergue" #: src/hd-data.c:825 msgid "Dry Season Celebration" msgstr "Celebración de la Estación Seca" #: src/hd-data.c:826 msgid "Dr. Sun Yat-sen's Birthday" msgstr "Natalicio del Dr. Sun Yat-sen" #: src/hd-data.c:827 msgid "Duarte's Birthday" msgstr "Natalicio de Duarte" #: src/hd-data.c:828 msgid "Easter Tuesday" msgstr "Martes de Pascua" #: src/hd-data.c:829 msgid "Economic Liberation Day" msgstr "Día de la Liberación Económica" #: src/hd-data.c:830 msgid "Eight Hours Day" msgstr "Día de Ocho Horas" #: src/hd-data.c:831 msgid "Elections for National Assembly" msgstr "Elecciones para la Asamblea Nacional" #: src/hd-data.c:832 msgid "Errol Barrow Day" msgstr "Día de Errol Barrow" #: src/hd-data.c:833 msgid "Evacuation Day" msgstr "Día de la Evacuación" #: src/hd-data.c:834 msgid "Eve of Epiphany" msgstr "Víspera de Epifanía" #: src/hd-data.c:835 msgid "Expedition of the 33" msgstr "Expedición del 33" #: src/hd-data.c:836 msgid "E. Hostos' Birthday" msgstr "Natalicio de E. Hostos" #: src/hd-data.c:837 msgid "Family Day" msgstr "Día de la Familia" #: src/hd-data.c:838 msgid "FAO Day" msgstr "Día de la FAO" #: src/hd-data.c:839 msgid "Farmers' Day" msgstr "Día de los Granjeros" #: src/hd-data.c:840 msgid "Father Leval Day" msgstr "Día del Padre Leval" #: src/hd-data.c:841 msgid "Feast of Our Theotokos" msgstr "Fiesta de Nuestro Señor" #: src/hd-data.c:842 msgid "Fisherman's Day" msgstr "Día del Pescador" #: src/hd-data.c:843 msgid "Foundation of NPLA Day" msgstr "Día de la Fundación de NPLA" #: src/hd-data.c:844 msgid "Founding of People's Party" msgstr "Fundación del Partido del Pueblo" #: src/hd-data.c:845 msgid "Garifuna Day" msgstr "Día de Garifuna" #: src/hd-data.c:847 msgid "General San Martin's Anniversary" msgstr "Aniversario del General San Martín" #: src/hd-data.c:848 msgid "Gospel Day" msgstr "Día del Evangelio" #: src/hd-data.c:849 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:850 msgid "Gustavus Adolphus' Day" msgstr "Día de Gustavo Adolfo" #: src/hd-data.c:851 msgid "Heritage Day" msgstr "Día de la Herencia" #: src/hd-data.c:852 msgid "Heroes Day" msgstr "Día de los Héroes" #: src/hd-data.c:853 msgid "Hobart Show Day" msgstr "Día de la Feria de Hobart" #: src/hd-data.c:854 msgid "Holy Wednesday" msgstr "Miércoles Santo" #: src/hd-data.c:855 msgid "Ho Chi Minh's Birthday" msgstr "Natalicio de Ho Chi Minh" #: src/hd-data.c:856 msgid "Human Rights Day" msgstr "Día de los Derechos Humanos" #: src/hd-data.c:857 msgid "Hurricane Supplication Day" msgstr "Día de la Súplica por el Huracán" #: src/hd-data.c:858 msgid "Hurricane Thanksgiving Day" msgstr "Día de Acción de Gracias del Huracán" #: src/hd-data.c:859 msgid "Independence of Cartagena" msgstr "Independencia de Cartagena" #: src/hd-data.c:860 msgid "Independence of Cuenca" msgstr "Independencia de Cuenca" #: src/hd-data.c:861 msgid "Independence of Guayaquil" msgstr "Independencia de Guayaquil" #: src/hd-data.c:862 msgid "Independence of Quito" msgstr "Independencia de Quito" #: src/hd-data.c:863 msgid "Indian Arrival Day" msgstr "Día de la llegada de los Indios" #: src/hd-data.c:864 msgid "Internal Autonomy Day" msgstr "Día de la Autonomía Interna" #: src/hd-data.c:865 msgid "Jefferson Davis' Birthday" msgstr "Natalicio de Jefferson Davis" #: src/hd-data.c:866 msgid "June Holiday" msgstr "Fiesta de Junio" #: src/hd-data.c:867 msgid "J. Barbosa's Birthday" msgstr "Natalicio de J. Barbosa" #: src/hd-data.c:868 msgid "J. Chilembwe Day" msgstr "Día de J. Chilembwe" #: src/hd-data.c:869 msgid "J. Diego's Birthday" msgstr "Natalicio de J. Diego" #: src/hd-data.c:870 msgid "J. Robert's Birthday" msgstr "Natalicio de J. Robert" #: src/hd-data.c:871 msgid "Kamarampaka Day" msgstr "Día de Kamarampaka" #: src/hd-data.c:872 msgid "Kartini Day" msgstr "Día de Kartini" #: src/hd-data.c:873 msgid "Catherine Show Day" msgstr "Día de la Feria Catherine" #: src/hd-data.c:874 msgid "Kiev Day" msgstr "Día de Kiev" #: src/hd-data.c:875 msgid "Kim Il-Sung's Birthday" msgstr "Natalicio de Kim Il-Sung" #: src/hd-data.c:876 msgid "Kim Jong-Il's Birthday" msgstr "Natalicio de Kim Jong-Il" #: src/hd-data.c:877 msgid "King Kamehameha Day" msgstr "Día del Rey Kamehameha" #: src/hd-data.c:878 msgid "King Rama I Memorial Day/Chakri" msgstr "Día Memorial del Rey Rama I/Chakri" #: src/hd-data.c:879 msgid "King Rama V Memorial Day" msgstr "Día Memorial del Rey Rama V" #: src/hd-data.c:880 msgid "Knabenschiessen" msgstr "Knabenschiessen" #: src/hd-data.c:881 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:882 msgid "Lapp National Holiday" msgstr "Vacaciones de la Nación Lapona" #: src/hd-data.c:883 msgid "Launceston Cup Day" msgstr "Día de la Copa Launceston" #: src/hd-data.c:884 msgid "Liberty Day" msgstr "Día de la Libertad" #: src/hd-data.c:885 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:886 msgid "Luxembourg City Kermis" msgstr "Kermés de la Ciudad de Luxemburgo" #: src/hd-data.c:887 msgid "Lyndon B. Johnson Day" msgstr "Día de Lyndon B. Johnson" #: src/hd-data.c:888 msgid "L. Rivera's Birthday" msgstr "Natalicio de L. Rivera" #: src/hd-data.c:889 msgid "Madaraka Day" msgstr "Día de Madaraka" #: src/hd-data.c:890 msgid "Mahatma Gandhi's Birthday" msgstr "Natalicio de Mahatma Gandhi" #: src/hd-data.c:891 msgid "Malvinas Day" msgstr "Día de las Malvinas" #: src/hd-data.c:892 msgid "Manila Day" msgstr "Día de Manila" #: src/hd-data.c:893 msgid "Maputo City Day" msgstr "Día de la Ciudad de Maputo" #: src/hd-data.c:894 msgid "Marien Ngouabi Day" msgstr "Día de Marien Ngouabi" #: src/hd-data.c:895 msgid "Maryland Day" msgstr "Día de Maryland" #: src/hd-data.c:896 msgid "Melbourne Cup Day" msgstr "Día de la Copa Melbourne" #: src/hd-data.c:897 msgid "Merchant Day" msgstr "Día del Comerciante" #: src/hd-data.c:898 msgid "St John's/Midsummers Eve" msgstr "San Juan/Víspera del Solsticio de Verano" #: src/hd-data.c:899 msgid "Missionary Day" msgstr "Día del Misionerio" #: src/hd-data.c:900 msgid "Mi-Carême Day" msgstr "Día de Mi-Carême" #: src/hd-data.c:901 msgid "Morazan Day" msgstr "Día de Morazan" #: src/hd-data.c:902 msgid "Mosheshoe's Day" msgstr "Día de Mosheshoe" #: src/hd-data.c:903 msgid "Motherhood and Beauty Day" msgstr "Día de la Maternidad y la Belleza" #: src/hd-data.c:904 msgid "Naming Day" msgstr "Día del Nombre" # ayyyyyy, que doloooor! # #: src/hd-data.c:905 msgid "National Bun Day" msgstr "Día del Dolor Nacional" #: src/hd-data.c:906 msgid "National Heroes Day" msgstr "Día Nacional de los Héroes" #: src/hd-data.c:907 msgid "National Redemption Day" msgstr "Día de la Redención Nacional" #: src/hd-data.c:908 msgid "National Resistance Day" msgstr "Día de la Resistencia Nacional" #: src/hd-data.c:909 msgid "National Revival Day" msgstr "Día del Revivir Nacional" #: src/hd-data.c:910 msgid "National Unity Day" msgstr "Día de la Unidad Nacional" #: src/hd-data.c:911 msgid "Ndadaye Day" msgstr "Día de Ndadaye" #: src/hd-data.c:912 msgid "Neutrality Day" msgstr "Día de la Neutralidad" #: src/hd-data.c:913 msgid "Nevada Day" msgstr "Día de Nevada" #: src/hd-data.c:914 msgid "New Regime Anniversary" msgstr "Aniversario del Nuevo Régimen" #: src/hd-data.c:915 msgid "Nobel Day" msgstr "Día del Nobel" #: src/hd-data.c:916 msgid "Noi Day" msgstr "Día de Noi" #: src/hd-data.c:917 msgid "OAU Day" msgstr "Día de la OAU" #: src/hd-data.c:918 msgid "October Holiday" msgstr "Fiesta de Octubre" #: src/hd-data.c:919 msgid "Oil Industry Day" msgstr "Día de la Industria Petrolera" #: src/hd-data.c:920 msgid "Our Lady of Altagracia Day" msgstr "Día de Nuestra Señora de Altagracia" #: src/hd-data.c:921 msgid "Our Lady of Camarin Day" msgstr "Día de Nuestra Señora de Camarín" #: src/hd-data.c:922 msgid "Our Lady of Las Mercedes Day" msgstr "Día de Nuestra Señora de Las Mercedes" #: src/hd-data.c:923 msgid "Our Lady of Los Angeles Day" msgstr "Día de Nuestra Señora de Los Ãngeles" #: src/hd-data.c:924 msgid "Our Lady of Seven Sorrows" msgstr "Nuestra Señora de los Dolores" #: src/hd-data.c:925 msgid "Our Lady of Victories Day" msgstr "Día de Nuestra Señora de las Victorias" #: src/hd-data.c:926 msgid "Panama City Day" msgstr "Día de la Ciudad de Panamá" #: src/hd-data.c:927 msgid "Panamerica Day" msgstr "Día de Panamérica" #: src/hd-data.c:928 msgid "Paris Peace Agreement Day" msgstr "Día del Acuerdo de Paz de París" #: src/hd-data.c:929 msgid "Patriot's Day" msgstr "Día del Patriota" #: src/hd-data.c:930 msgid "People's Uprising Day" msgstr "Día de la Sublevación del Pueblo" #: src/hd-data.c:931 msgid "People Power Day" msgstr "Día del Poder de la Gente" #: src/hd-data.c:932 msgid "Philippine-American Friendship" msgstr "Amistad Filipino-Americana" #: src/hd-data.c:933 msgid "Pichincha Day" msgstr "Día de Pichincha" #: src/hd-data.c:934 msgid "Picnic Day" msgstr "Día del Almuerzo" #: src/hd-data.c:935 msgid "Pioneer Day" msgstr "Día del Pionero" #: src/hd-data.c:936 msgid "Poya Day" msgstr "Día de Poya" #: src/hd-data.c:937 msgid "Prince Kalanianaole Day" msgstr "Día del Príncipe Kalanianaole" #: src/hd-data.c:938 msgid "Prince of Wales' Birthday" msgstr "Natalicio del Príncipe de Gales" #: src/hd-data.c:939 msgid "Proclamation Day" msgstr "Día de la Proclamación" #: src/hd-data.c:940 msgid "Qaid-i-Azam's Birthday" msgstr "Natalicio de Qaid-i-Azam" #: src/hd-data.c:941 msgid "Ratu Sukuma Day" msgstr "Día de Ratu Sukuma" #: src/hd-data.c:942 msgid "Recreation Day" msgstr "Día de la Recreación" #: src/hd-data.c:943 msgid "Referendum Day" msgstr "Día del Referéndum" #: src/hd-data.c:944 msgid "Regatta Day" msgstr "Día de la Regata" #: src/hd-data.c:945 msgid "Regency Exchange" msgstr "Cambio de Regencia" #: src/hd-data.c:946 msgid "Restoration Day" msgstr "Día de la Restauración" #: src/hd-data.c:947 msgid "Return Day" msgstr "Día del Retorno" #: src/hd-data.c:948 msgid "Reunification Day" msgstr "Día de la Reunificación" #: src/hd-data.c:949 msgid "Rizal Day" msgstr "Día de Rizal" #: src/hd-data.c:950 msgid "Rwagasore Day" msgstr "Día de Rwagasore" #: src/hd-data.c:951 msgid "Saba Day" msgstr "Día de Saba" #: src/hd-data.c:952 msgid "San Jacinto Day" msgstr "Día de San Jacinto" #: src/hd-data.c:953 msgid "San José Day" msgstr "Día de San José" #: src/hd-data.c:954 msgid "SAR Establishment Day" msgstr "Día de Establecimiento del SAR" #: src/hd-data.c:955 msgid "School Holiday" msgstr "Descanso escolar" #: src/hd-data.c:956 msgid "Sechseläuten" msgstr "Sechseläuten" #: src/hd-data.c:957 msgid "Separation Day" msgstr "Día de la Separación" #: src/hd-data.c:958 msgid "Seretse Khama Day" msgstr "Día de Seretse Khama" #: src/hd-data.c:959 msgid "Settlers Day" msgstr "Día de los Colonos" #: src/hd-data.c:960 msgid "Seward's Day" msgstr "Día de Seward" #: src/hd-data.c:961 msgid "Shaheed Day" msgstr "Día de Shaheed" #: src/hd-data.c:962 msgid "Sheep Festival" msgstr "Festival de las Ovejas" #: src/hd-data.c:963 msgid "Sheikh Zayed's Ascension Day" msgstr "Día de la Ascensión de Sheikh Zayed" #: src/hd-data.c:964 msgid "Simon Bolivar's Day" msgstr "Día de Simón Bolívar" #: src/hd-data.c:965 msgid "Sinai-Liberation Day" msgstr "Día de la Liberación del Sinaí" #: src/hd-data.c:966 msgid "Slave-Liberation Day" msgstr "Día de la Liberación de Esclavos" #: src/hd-data.c:967 msgid "Sniff the Breeze Day" msgstr "Día de Oler la Brisa" #: src/hd-data.c:968 msgid "Solidarity Day" msgstr "Día de Solidaridad" #: src/hd-data.c:969 msgid "Somers Day" msgstr "Día de Somers" #: src/hd-data.c:970 msgid "Statia-American Day" msgstr "Día de Statia Americana" #: src/hd-data.c:971 msgid "Student's Day" msgstr "Día del Estudiante" #: src/hd-data.c:972 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:973 msgid "St Canute's Day" msgstr "Día de San Canuto" #: src/hd-data.c:974 msgid "St Cedilia's Day" msgstr "Día de Santa Cedilia" #: src/hd-data.c:975 msgid "St Charles' Day" msgstr "Día de San Carlos" #: src/hd-data.c:976 msgid "St Demetrius' Day" msgstr "Día de San Demetrio" #: src/hd-data.c:977 msgid "St Dévote Day" msgstr "Día de Santa Devota" #: src/hd-data.c:978 msgid "St Eliah's Day" msgstr "Día de San Elías" #: src/hd-data.c:979 msgid "St Jean Baptiste Day" msgstr "Día de San Juan Bautista" #: src/hd-data.c:980 msgid "St Lucia's Day" msgstr "Día de Santa Lucía" #: src/hd-data.c:981 msgid "St Marguerite's Day" msgstr "Día de Santa Margarita" #: src/hd-data.c:982 msgid "St Maroon's Day" msgstr "Día de San Maroon" #: src/hd-data.c:983 msgid "St Michael's Day" msgstr "Día de San Miguel" #: src/hd-data.c:984 msgid "St Olav's Day" msgstr "Día de San Olav" #: src/hd-data.c:985 msgid "St Olav's Eve" msgstr "Víspera de San Olav" #: src/hd-data.c:986 msgid "St Paul's Shipswreck" msgstr "Naufragio de San Pablo" #: src/hd-data.c:987 msgid "St Rose of Lima" msgstr "Santa Rosa de Lima" #: src/hd-data.c:988 msgid "St Ursula's Day" msgstr "Día de Santa Úrsula" #: src/hd-data.c:989 msgid "St Vincent de Paul's Day" msgstr "Día de San Vicente de Paul" #: src/hd-data.c:990 msgid "Suez Victory Day" msgstr "Día de la Victoria de Suez" #: src/hd-data.c:991 msgid "Sultan Qaboos' Birthday" msgstr "Natalicio del Sultán Qaboos" #: src/hd-data.c:992 msgid "Svetitskhovloba" msgstr "Svetitskhovloba" #: src/hd-data.c:993 msgid "Sweden Day" msgstr "Día de Suecia" #: src/hd-data.c:994 msgid "S. Doe's Birthday" msgstr "Natalicio de S. Doe" #: src/hd-data.c:995 msgid "Tennant-Creek Show Day" msgstr "Día de la Feria de Tennant-Creek" #: src/hd-data.c:996 msgid "Territory Day" msgstr "Día del Territorio" #: src/hd-data.c:997 msgid "The Crown Princesse's Birthday" msgstr "Natalicio de la Princesa de la Corona" #: src/hd-data.c:998 msgid "The Crown Princesse's Name-Day" msgstr "Santoral de la Princesa de la Corona" #: src/hd-data.c:999 msgid "The Crown Prince's Birthday" msgstr "Natalicio del Príncipe de la Corona" #: src/hd-data.c:1000 msgid "The King's Name-Day" msgstr "Santoral del Rey" #: src/hd-data.c:1001 msgid "The Queen's Name-Day" msgstr "Santoral de la Reina" #: src/hd-data.c:1002 msgid "Topou I Day" msgstr "Día de Topou I" #: src/hd-data.c:1003 msgid "Town Meeting Day" msgstr "Día de la Junta de la Ciudad" #: src/hd-data.c:1004 msgid "Traditional Day" msgstr "Día Tradicional" #: src/hd-data.c:1005 msgid "Transfer Day" msgstr "Día de Transferencia" #: src/hd-data.c:1006 msgid "Truman Day" msgstr "Día de Truman" #: src/hd-data.c:1007 msgid "Union Day" msgstr "Día de la Unión" #: src/hd-data.c:1008 msgid "Union with Sweden dissolved" msgstr "Disolución de la unión con Suecia" #: src/hd-data.c:1009 msgid "United Nations Day" msgstr "Día de Naciones Unidas" # ¿Alguien de Yemen que nos aclare la celebración? - cfuga #: src/hd-data.c:1010 msgid "Unity Factory Day" msgstr "Día de la Fábrica Unidad" #: src/hd-data.c:1011 msgid "Victor-Schoelcher Day" msgstr "Día de Víctor-Schoelcher" #: src/hd-data.c:1012 msgid "Vidovdan" msgstr "San Vito" #: src/hd-data.c:1013 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:1014 msgid "Whitsun Eve" msgstr "Víspera de Pentecostés" #: src/hd-data.c:1015 msgid "W. Tubman's Birthday" msgstr "Natalicio de W. Tubman" #: src/hd-data.c:1016 msgid "Yap Day" msgstr "Día Yap" #: src/hd-data.c:1017 msgid "Day of Czech Statehood" msgstr "Día del Estado Checo" #: src/hd-data.c:1082 msgid "Zi/Rat" msgstr "Zi/Rata" #: src/hd-data.c:1082 msgid "Chou/Ox" msgstr "Chou/Buey" #: src/hd-data.c:1083 msgid "Yin/Tiger" msgstr "Yin/Tigre" #: src/hd-data.c:1083 msgid "Mao/Rabbit" msgstr "Mao/Conejo" #: src/hd-data.c:1084 msgid "Chen/Dragon" msgstr "Chen/Dragón" #: src/hd-data.c:1084 msgid "Si/Snake" msgstr "Si/Serpiente" #: src/hd-data.c:1085 msgid "Wu/Horse" msgstr "Wu/Caballo" #: src/hd-data.c:1085 msgid "Wei/Sheep" msgstr "Wei/Oveja" #: src/hd-data.c:1086 msgid "Shen/Monkey" msgstr "Shen/Mono" #: src/hd-data.c:1086 msgid "You/Rooster" msgstr "You/Gallo" #: src/hd-data.c:1087 msgid "Xu/Dog" msgstr "Xu/Perro" #: src/hd-data.c:1087 msgid "Hai/Pig" msgstr "Hai/Cerdo" #: src/hd-data.c:1284 msgid "Ast" msgstr "Ast" #: src/hd-data.c:1397 src/hd-data.c:1480 msgid "Bah" msgstr "Bah" #: src/hd-data.c:1547 msgid "Cel" msgstr "Cel" #: src/hd-data.c:1689 src/hd-data.c:2222 msgid "Chi" msgstr "Chi" #: src/hd-data.c:1803 src/hd-data.c:2322 src/hd-data.c:3839 #, 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:2224 src/hd-data.c:3727 msgid "Jap" msgstr "Jap" #: src/hd-data.c:2420 msgid "Chr" msgstr "Cri" #: src/hd-data.c:2654 src/hd-data.c:4171 msgid "FRR" msgstr "RFR" #: src/hd-data.c:2775 src/hd-data.c:2957 msgid "Heb" msgstr "Heb" #: src/hd-data.c:3187 src/hd-data.c:3616 msgid "Isl" msgstr "Isl" #: src/hd-data.c:4241 src/hd-data.c:4336 msgid "AMO" msgstr "AMA" #: src/hd-data.c:4262 src/hd-data.c:4334 msgid "EGO" msgstr "EGA" #: src/hd-data.c:4444 msgid "OxN" msgstr "OxN" #: src/hd-data.c:4446 msgid "OxO" msgstr "OxA" #: src/hd-data.c:4647 src/hd-data.c:4776 msgid "Per" msgstr "Per" #: src/hd-data.c:4844 msgid "Zod" msgstr "Zod" #: src/hd-use.c:928 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:1973 src/hd-use.c:1978 src/hd-use.c:1982 src/hd-use.c:1989 #: src/hd-use.c:1993 src/hd-use.c:2089 src/hd-use.c:2273 msgid "Eternal holiday list" msgstr "Lista perpetua de días festivos" #: src/hd-use.c:1977 #, 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:1981 #, 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:1988 #, c-format msgid "%s:%*sThe year %d is A leap year" msgstr "%s:%*sEl año %d es bisiesto" #: src/hd-use.c:1992 #, c-format msgid "%s:%*sThe year %d is NO leap year" msgstr "%s:%*sEl año %d NO es bisiesto" #: src/hd-use.c:2242 #, c-format msgid " = %+4d day" msgstr " = %+4d día" #: src/hd-use.c:2244 #, c-format msgid " = %+4d days" msgstr " = %+4d días" #: src/hd-use.c:2271 #, 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:64 #, 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:74 msgid "# Day number (must be defined)" msgstr "# Número de día (se debe definir)" #: src/help.c:75 msgid "# Year number (must be defined)" msgstr "# Número de año (se debe definir)" #: src/help.c:76 msgid "# Weekday name (may be defined)" msgstr "# Nombre del día de la semana (se debe definir)" #: src/help.c:77 msgid "Month group (exactly one member must be defined):" msgstr "Grupo de meses (debe definirse solo un miembro):" #: src/help.c:78 msgid "# Month number" msgstr "# Número de mes" #: src/help.c:79 msgid "# Month name" msgstr "# Nombre del mes" #: src/help.c:80 msgid "Highlighting group (all members must be defined):" msgstr "Grupo resaltado (deben definirse todos sus miembros):" #: src/help.c:81 msgid "Start of highlighting sequence/marking character" msgstr "Inicio de la secuencia resaltada/carácter de marcado" #: src/help.c:83 msgid "End of highlighting sequence/marking character" msgstr "Fin de la secuencia resaltada/carácter de marcado" #: src/help.c:85 msgid "Character replacement:" msgstr "Substitución de caracteres:" #: src/help.c:86 #, c-format msgid "Space/blank ('%c') character" msgstr "Carácter de espacio en blanco ('%c')" #: src/help.c:87 #, 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:88 #, c-format msgid "Percent ('%c') character" msgstr "Carácter de porcentaje ('%c')" #: src/help.c:89 #, c-format msgid "Backslash ('%c') character" msgstr "Carácter de diagonal invertida ('%c')" #: src/help.c:90 msgid "All format elements marked by # may optionally" msgstr "Todos los elementos de formato marcados con #" #: src/help.c:91 msgid "contain a format instruction, which template is like:" msgstr "pueden contener una instrucción de formato, de la forma:" #: src/help.c:92 msgid "[ALIGNMENT [SIGN] [ZERO] WIDTH [STYLE] [SUFFIX] FORMAT]" msgstr "[ALINEACIÓN [SIGNO] [CERO] ANCHURA [ESTILO] [SUFIJO] FORMATO]" #: src/help.c:93 msgid "ALIGNMENT group (exactly one member must be defined):" msgstr "Grupo de ALINEACIÓN (debe definirse sólo un miembro):" #: src/help.c:94 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:96 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:98 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:100 msgid "SIGN (may be defined):" msgstr "SIGNO (puede estar definido):" #: src/help.c:101 msgid "Numerical value is provided with leading sign" msgstr "Se proporciona un valor numérico con un signo precedente" #: src/help.c:102 msgid "ZERO (may be defined):" msgstr "CERO (puede estar definido):" #: src/help.c:103 msgid "Numerical value is filled with leading zero(es)" msgstr "El valor numérico se rellena con ceros delante" #: src/help.c:104 msgid "WIDTH (must be defined):" msgstr "ANCHURA (debe estar definida):" #: src/help.c:105 #, c-format msgid "Field has the width N (%d...%d)" msgstr "El campo tiene la anchura N (%d...%d)" #: src/help.c:106 msgid "STYLE group (exactly one member may be defined):" msgstr "Grupo de ESTILO (debe definirse sólo un miembro):" #: src/help.c:107 msgid "Field contents is converted to upper-case letters" msgstr "Los contenidos de los campos se convierten a letras mayúsculas" #: src/help.c:108 msgid "Field contents is converted to lower-case letters" msgstr "Los contenidos de los campos se convierten a letras minúsculas" #: src/help.c:109 msgid "Field contents is converted to capitalized words" msgstr "" "Los contenidos de los campos se convierten a letras iniciales mayúsculas" #: src/help.c:110 msgid "SUFFIX (may be defined):" msgstr "SUFIJO (puede estar definido):" #: src/help.c:111 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:113 msgid "FORMAT group (exactly one member must be defined):" msgstr "Grupo de FORMATO (debe definirse sólo un miembro):" #: src/help.c:114 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:115 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:129 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:130 msgid "holidays" msgstr "fiestas" # Te habías comido las mayusculas! - Jano #: src/help.c:131 msgid "Mondays" msgstr "Lunes" #: src/help.c:132 msgid "Tuesdays" msgstr "Martes" #: src/help.c:133 msgid "Wednesdays" msgstr "Miércoles" #: src/help.c:134 msgid "Thursdays" msgstr "Jueves" #: src/help.c:135 msgid "Fridays" msgstr "Viernes" #: src/help.c:136 msgid "Saturdays" msgstr "Sábados" #: src/help.c:137 msgid "Sundays" msgstr "Domingos" #: src/help.c:138 msgid "Mondays...Thursdays" msgstr "Lunes...Jueves" #: src/help.c:139 msgid "Mondays...Fridays" msgstr "Lunes...Viernes" #: src/help.c:169 #, 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:242 msgid "OPTION" msgstr "OPCIÓN" #: src/help.c:255 msgid " Display help text and quit program" msgstr " Muestra un mensaje de ayuda y finaliza" #: src/help.c:272 msgid " Display extended help text and quit program" msgstr " Muestra información de ayuda y finaliza" #: src/help.c:290 msgid " Display software license and quit program" msgstr " Muestra la licencia del programa y finaliza" #: src/help.c:301 msgid " Display version information and quit program" msgstr " Muestra información de la versión y finaliza" #: src/help.c:312 #, 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:325 #, c-format msgid " Create response file for the `%cFILE' option" msgstr " Crea un fichero de resultados para la opción `%cFICHERO'" #: src/help.c:329 #, 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:343 #, 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:345 #, 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:359 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:363 #, 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:368 #, 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:380 msgid " Export local date variables from file to file" msgstr " Exporta las variables locales de fecha de un fichero a otro" #: src/help.c:392 #, 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:397 #, c-format msgid " %-3s = \"TVAR%sTEXT\" definitions separated by `%s' characters" msgstr "" " %-3s = Definiciones de \"TVAR%sTEXT\" separadas por `%s' caracteres" #: src/help.c:402 #, 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:408 #, 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:413 #, 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:425 msgid " Export local text variables from file to file" msgstr " Exporta variables locales de texto de un fichero a otro" #: src/help.c:437 src/help.c:467 #, 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:442 #, 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:447 msgid " is a LOWER-CASE-LETTER, it means a non-exclusion!" msgstr " es una LETRA MINÚSCULA, ¡significa no-exclusión!" #: src/help.c:451 #, c-format msgid " %c = Exclusion of all %s" msgstr " %c = Exclusión de todos los %s" #: src/help.c:472 #, 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:476 #, c-format msgid " expressions separated by `%s' characters" msgstr " expresiones separadas por `%s' caracteres" #: src/help.c:489 #, 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:494 #, c-format msgid " %-3s = Any text respectively \"regular expression\" you like" msgstr "" " %-3s = Cualquier texto, respectivamente \"expresión regular\" que desee" #: src/help.c:507 #, 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:519 #, 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:530 msgid " Display some debug information" msgstr " Muestra algunos mensajes de depuración" #: src/help.c:538 #, 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:547 msgid "" " = handled Like `internal' and file names which are handled" msgstr "" " = handled Como `internal' y muestra los nombres de fichero " "tratados" #: src/help.c:555 msgid "" " = unhandled Like `internal' and file names which are unhandled" msgstr "" " = unhandled Como `internal' y muestra nombres de fichero no " "tratados" #: src/help.c:563 msgid " = all Like `handled' and `unhandled' together" msgstr " = all Como `handled' y `unhandled' a la vez" #: src/help.c:571 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:581 msgid " Use special format for calendar sheet" msgstr " Usa un formato especial para la hoja de calendario" #: src/help.c:584 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:595 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:605 msgid " Provide calendar sheet with week numbers" msgstr " Da la hoja de calendario con números de semana" #: src/help.c:616 #, c-format msgid " Determine type of week numbers (actual: %s)" msgstr " Determina el tipo de números de semana (actual: %s)" #: src/help.c:617 msgid "Standard" msgstr "Estándard" #: src/help.c:623 #, c-format msgid " %-3s = yes ISO-8601:1988 week numbers" msgstr " %-3s = yes Números de semana ISO-8601:1988" #: src/help.c:630 msgid " = no Standard week numbers" msgstr " = no Números de semana estándard" # ??? #: src/help.c:641 msgid " Suppress output of calendar sheet explicitly" msgstr " No muestra explícitamente del calendario" #: src/help.c:654 #, c-format msgid " Direct output through external `%s' pager" msgstr " Dirige la salida a través del paginador externo `%s'" #: src/help.c:660 src/help.c:662 msgid " Direct output through simple internal pager" msgstr " Dirige la salida a través del visor interno" #: src/help.c:679 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:694 msgid " Forces highlighting sequences if output is redirected/piped" msgstr "" " Fuerza el atributo de brillo aunque la salida esté redirigida" #: src/help.c:706 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:710 #, c-format msgid " %-3s = Highlighting sequence pairs separated by `%s' characters" msgstr " %-3s = Pares de resaltado separados por `%s' caracteres" #: src/help.c:715 #, 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:720 #, 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:731 msgid " Modify format of year calendar" msgstr " Cambia el formato del calendario anual" #: src/help.c:735 #, 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:747 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:751 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:763 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:767 src/help.c:783 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:779 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:794 #, c-format msgid " Set starting day of week (actual: %s)" msgstr " Establece el primer día de la semana (actual: %s)" #: src/help.c:827 #, c-format msgid " Send output via `%s' program to user" msgstr " Redirige la salida a través del programa `%s'" #: src/help.c:856 msgid "UNKNOWN" msgstr "DESCONOCIDO" #: src/help.c:859 #, 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:877 #, 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:880 msgid " n = Legal days and memorial days" msgstr " n = Días hábiles y días conmemorativos" # ¿días hábiles? #: src/help.c:882 msgid " N = Legal days only" msgstr " N = Sólo días hábiles" #: src/help.c:884 src/help.c:1630 #, c-format msgid " [MOD] = %s Descending sort order" msgstr " [MOD ] = %s Orden descendente" #: src/help.c:896 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:906 msgid " Exclude title of eternal holiday list" msgstr " Excluye el título de la lista perpetua de días festivos" #: src/help.c:918 msgid " Provide eternal holiday list with astronomical data" msgstr " Lista perpetua de fiestas con datos astronómicos" #: src/help.c:930 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:942 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:954 msgid " Provide eternal holiday list with Celtic calendar holidays" msgstr "" " Lista perpetua de fiestas con las fiestas del calendario Celta" #: src/help.c:966 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:978 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:990 msgid " Provide eternal holiday list with Chinese calendar holidays" msgstr "" " Lista perpetua de fiestas con las fiestas del calendario Chino" #: src/help.c:1002 msgid " Provide eternal holiday list with Chinese calendar months" msgstr " Lista perpetua de fiestas con los meses del calendario Chino" #: src/help.c:1014 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:1026 msgid " Provide eternal holiday list with Coptic calendar months" msgstr " Lista perpetua de fiestas con los meses del calendario Copto" #: src/help.c:1038 msgid " Provide eternal holiday list with Ethiopic calendar months" msgstr "" " Lista perpetua de fiestas con los meses del calendario Etíope" #: src/help.c:1050 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:1062 msgid " Provide eternal holiday list with Hebrew calendar holidays" msgstr "" " Lista perpetua de fiestas con las fiestas del calendario Hebreo" #: src/help.c:1074 msgid " Provide eternal holiday list with Hebrew calendar months" msgstr "" " Lista perpetua de fiestas con los meses del calendario Hebreo" #: src/help.c:1086 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:1098 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:1110 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:1122 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:1134 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:1146 msgid " Provide eternal holiday list with Japanese calendar holidays" msgstr "" " Lista perpetua de fiestas con las fiestas del calendario Japonés" #: src/help.c:1158 msgid " Provide eternal holiday list with Japanese calendar months" msgstr "" " Lista perpetua de fiestas con los meses del calendario Japonés" #: src/help.c:1171 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:1183 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:1195 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:1207 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:1219 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:1231 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:1243 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:1255 msgid " Provide eternal holiday list with zodiacal marker data" msgstr " Lista perpetua de fiestas con datos del zodiaco" #: src/help.c:1267 msgid " Provide eternal holiday list with country specific holidays" msgstr " Lista de vacaciones incluyendo las locales" #: src/help.c:1271 #, 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:1276 #, 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:1281 msgid " marked by # have an incomplete recording of holidays" msgstr " marcados con # tienen un registro incompleto de fiestas" #: src/help.c:1285 #, c-format msgid " %-*s = Holidays in %s" msgstr " %-*s = Fiestas en %s" #: src/help.c:1306 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:1310 #, 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:1321 msgid " Set base data of Earth's atmosphere" msgstr " Establece la base de datos de la atmósfera terrestre" #: src/help.c:1325 #, 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:1328 #, c-format msgid " Air pressure in Millibar (actual: %.3f)" msgstr " Presión del aire en milibares (actual: %.3f)" #: src/help.c:1333 #, c-format msgid " Air temperature in degrees Celsius (actual: %+.3f)" msgstr " Temperatura del aire en grados Celsius (actual: %+.3f)" #: src/help.c:1343 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:1355 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:1365 #, c-format msgid " Execute `%c%c[%s]' shell commands" msgstr " Ejecuta las órdenes de shell `%c%c[%s]'" #: src/help.c:1368 #, c-format msgid " and \"TVAR[%s|%c%s]COMMAND\" assignments" msgstr " y las asignaciones \"TVAR[%s|%c%s]ORDEN\"" #: src/help.c:1380 msgid " Change base time of astronomical functions" msgstr " Cambia el tiempo base de las funciones astronómicas" #: src/help.c:1383 msgid " respectively, change cycle-starting time" msgstr " respectivamente, cambia el tiempo de inicio del ciclo" #: src/help.c:1393 #, 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:1401 #, 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:1417 msgid " Change cycle-ending time" msgstr " Cambia el tiempo del fin de ciclo" #: src/help.c:1421 #, 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:1435 msgid " Change cycle-timestep" msgstr " Cambia el lapso de tiempo del ciclo" #: src/help.c:1439 #, 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:1452 msgid " Change base year of calendar" msgstr " Cambia el año base del calendario" #: src/help.c:1456 #, 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:1468 msgid " Set period of Gregorian Reformation" msgstr " Establece el periodo de la Reforma Gregoriana" #: src/help.c:1470 #, c-format msgid " Actual respected period: %02d-%02d %s %0*d" msgstr " Periodo respecto al actual: %02d-%02d %s %0*d" #: src/help.c:1476 #, 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:1484 #, 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:1498 #, 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:1501 #, c-format msgid " Actual: (%s) `%s' (%s)" msgstr " Actual: (%s) `%s' (%s)" #: src/help.c:1503 msgid "self-defined" msgstr "auto-definido" #: src/help.c:1508 #, c-format msgid " %-6s = Format is: `%s' (%s)" msgstr " %-6s = El formato es: `%s' (%s)" #: src/help.c:1516 #, 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:1559 msgid " Define translatable country specific special character pairs" msgstr "" " Define el par de caracteres especiales traducibles específicos del " "país" #: src/help.c:1563 #, c-format msgid " %-3s = UPPER-CASE-LETTER\"\"LOWER-CASE-LETTER... definitions" msgstr " %-3s = Definiciones LETRA-MAYÚSCULA\" \"LETRA-MINÚSCULA..." #: src/help.c:1568 #, 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:1573 msgid "" " the preceding special characters in an individual date format," msgstr "" " los caracteres especiales precedentes en un formato personal de " "fecha," #: src/help.c:1577 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:1581 msgid " they are used by the character set used in Germany" msgstr " usa el conjunto de caracteres utilizados en Alemania" #: src/help.c:1590 #, c-format msgid "+++ FIXED DATES +++" msgstr "+++ FECHAS CONSTANTES +++" #: src/help.c:1611 #, 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:1616 #, 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:1620 src/help.c:2160 msgid " Implies period: Today" msgstr " Implica que el periodo de aviso es el día de hoy" #: src/help.c:1624 msgid " c = Display only those dates, for which fixed dates exists" msgstr " c = Muestra solo las fechas constantes" #: src/help.c:1628 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:1640 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:1653 #, 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:1656 #, c-format msgid " Actual: `%s'" msgstr " Actual: `%s'" #: src/help.c:1669 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:1681 msgid " 1. Representation of text" msgstr " 1. Representación del texto" #: src/help.c:1693 msgid " = Set width of the biorhythm text graphics" msgstr " = Cambiar anchura de la gráfica de biorritmos" #: src/help.c:1697 #, c-format msgid " %-3s = %d...%d Length of a single axis" msgstr " %-3s = %d...%d Longitud de un eje" #: src/help.c:1710 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:1714 #, c-format msgid " %-3s = %d...%d Total number of lines" msgstr " %-3s = %d...%d Número total de líneas" #: src/help.c:1726 msgid " # a = Display origin of fixed date" msgstr " # a = Muestra el origen de una fecha" #: src/help.c:1738 msgid " # A = Display using alternative list format" msgstr " # A = Utiliza un formato de listado distinto" #: src/help.c:1750 msgid " # e = Include legal days and memorial days" msgstr " # e = Incluir días hábiles y commemorativos" #: src/help.c:1752 msgid " # E = Include legal days only" msgstr " # e = Incluir solo días hábiles" #: src/help.c:1762 msgid " # k = Display week number" msgstr " # k = Muestra el número de la semana" #: src/help.c:1774 msgid " # o = Omit repeating date part of fixed dates" msgstr " # o = Evita redundancias en las fechas" #: src/help.c:1786 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:1798 msgid " # U = Suppress date part of fixed dates" msgstr " # U = Suprime la parte de la fecha" #: src/help.c:1810 msgid " # J = Suppress text part of fixed dates" msgstr " # J = Suprime la parte de texto de la fecha" #: src/help.c:1822 msgid " # x = Exclude title of fixed date list" msgstr " # x = No muestra el título en la lista de fechas" #: src/help.c:1834 msgid " # z = Display consecutive number of fixed date" msgstr " # z = Muestra el siguiente número de fecha fija" #: src/help.c:1846 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:1854 msgid " 2. Respected period" msgstr " 2. Periodo relacionado" #: src/help.c:1866 msgid " = Manage `29-FEBRUARY' in non-leap years" msgstr "" " = Contempla el '29-FEBRERO' en los años\n" " no bisiestos" #: src/help.c:1874 #, c-format msgid " %-3s = february Respect at `28-FEBRUARY'" msgstr " %-3s = february Respecto al '28-FEBRERO'" #: src/help.c:1883 #, c-format msgid " %-3s = march Respect at `01-MARCH'" msgstr " %-3s = march Respecto al '01-MARZO'" #: src/help.c:1896 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:1908 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:1924 msgid " # Nd = Single absolute day N" msgstr " # Nd = día absoluto N" #: src/help.c:1926 #, c-format msgid " # %cdN = Single absolute day N" msgstr " # %cdN = día absoluto N" #: src/help.c:1931 msgid " # NMOD = Single day N relative to today" msgstr " # NMOD = día N respecto a hoy" #: src/help.c:1933 #, c-format msgid " MOD = %s Forwards" msgstr " MOD = %s Adelante" #: src/help.c:1935 #, c-format msgid " = %s Backwards" msgstr " = %s Atrás" #: src/help.c:1938 msgid " # Nw = Complete week N" msgstr " # Nw = Semana N completa" #: src/help.c:1942 msgid "" " N = 0 1st week / last week of previous year" msgstr "" " N = 0 1ª y última semana del año anterior" #: src/help.c:1946 msgid " N = 1...52 1st...52nd week (always)" msgstr " N = 1...52 1-a...52-a semana (siempre)" #: src/help.c:1950 msgid " N = 53 53rd week (sometimes)" msgstr " N = 53 53ª semana (a veces)" #: src/help.c:1952 msgid " N = 99 Last week" msgstr " N = 99 Última semana" #: src/help.c:1955 #, c-format msgid " # %s%s = Single day %s of month %s" msgstr " # %s%s = Día %s del mes %s" #: src/help.c:1961 #, 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:1966 #, 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:1971 #, c-format msgid " N = 5 5th weekday %s (sometimes)" msgstr "" " N = 5 5° día de la semana %s (a veces)" #: src/help.c:1975 #, c-format msgid " N = 9 Last weekday %s" msgstr " N = 9 Ultimo día de la semana %s" #: src/help.c:1979 #, c-format msgid " # %cdN%s = Single N'th weekday %s" msgstr " # %cdN%s = Día N de la semana %s" #: src/help.c:1984 #, 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:1989 #, 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:1993 #, c-format msgid " N = 99 Last weekday %s" msgstr " N = 99 Ultimo día de la semana %s" #: src/help.c:1998 #, 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:2003 #, 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:2008 #, 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:2013 #, 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:2017 #, c-format msgid " N = 99 %s of last week" msgstr " N = 99 %s de la última semana" #: src/help.c:2023 #, 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:2029 #, 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:2035 #, 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:2041 #, 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:2047 #, 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:2053 #, 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:2061 msgid " # t|T = List tomorrow" msgstr " # t|T = Lista mañana" #: src/help.c:2078 msgid " # w|W[MOD] = List complete week" msgstr " # w|W[MOD] = Lista la semana completa" #: src/help.c:2082 #, 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:2087 #, 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:2107 msgid " # m|M[MOD] = List complete month" msgstr " # m|M[MOD] = Lista el mes completo" #: src/help.c:2111 #, 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:2116 #, c-format msgid "" " = %s List yesterday until starting day of month" msgstr "" " = %s Lista desde ayer hasta el principio del mes" #: src/help.c:2136 msgid " # y|Y[MOD] = List complete year" msgstr " # y|Y[MOD] = Lista el año completo" #: src/help.c:2140 #, 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:2145 #, c-format msgid "" " = %s List yesterday until starting day of year" msgstr " = %s Lista todo el año hasta ayer" #: src/help.c:2158 msgid " Use alternative file(s) instead of standard resource file" msgstr " Utiliza ficheros de recursos distintos del estándar" #: src/help.c:2164 msgid " f = Display only those dates, for which fixed dates exists" msgstr " f = Muestra solo los días con fechas fijas" #: src/help.c:2168 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:2172 #, 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:2183 msgid " Define additional resource file line" msgstr " Define una línea adicional del fichero de recursos" #: src/help.c:2185 #, c-format msgid " %-3s = Any possible resource file line" msgstr " %-3s = Cualquier línea del fichero de recursos" #: src/help.c:2195 #, c-format msgid "%cDATE" msgstr "%cDATE" #: src/help.c:2197 msgid "Use given `DATE' instead of today's date" msgstr "Utiliza la `DATE' predeterminada en vez de la actual" #: src/help.c:2201 #, 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:2208 #, 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:2217 #, c-format msgid "%cFILE" msgstr "%cFILE" #: src/help.c:2219 msgid "Preload options and commands from `FILE'" msgstr "Carga las opciones y las órdenes desde `FILE'" #: src/help.c:2223 msgid "COMMAND" msgstr "ORDEN" #: src/help.c:2225 #, c-format msgid "%s = Month in range: %d...%d" msgstr "%s = Mes entre: %d...%d" #: src/help.c:2230 #, 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:2235 #, 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:2241 #, 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:2247 #, c-format msgid "%s%*s = Year in range: %d...%d" msgstr "%s%*s = Año entre: %d...%d" #: src/help.c:2251 #, 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:2256 #, 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:2282 #, 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:2285 #, 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:2289 #, c-format msgid " %sL, %s Display software license and quit program" msgstr " %sL, %s Muestra la licencia del programa y finaliza" #: src/help.c:2293 #, c-format msgid " %sV, %s Display version information and quit program" msgstr " %sV, %s Informa de la versión y finaliza" #: src/help.c:2301 #, 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:2308 src/help.c:2313 #, 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:2338 msgid "This software doesn't claim completeness, correctness or usability." msgstr "Este programa no afirma ser completo, sin errores o utilizable." #: src/help.c:2342 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:2346 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:2350 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:2352 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:2357 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:2361 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:2365 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:2367 msgid "any later version." msgstr "cualquier versión posterior." #: src/help.c:2372 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:2374 msgid "along with this program; if not, write to the:" msgstr "junto con éste programa; si no es así, escriba a:" #: src/help.c:2423 #, 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:2451 #, c-format msgid "Use `%s %s|[%s?]" msgstr "Utilice `%s %s'|[%s?]" #: src/help.c:2460 msgid "for more information." msgstr "para más información ." #: src/help.c:2564 src/tcal.c:197 src/txt2gcal.c:136 src/gcal2txt.c:136 #, c-format msgid "Email bug reports to <%s>" msgstr "Informes de bichos por Email a <%s>" #: src/help.c:2566 #, c-format msgid "GNU gcal home page: <%s>" msgstr "" #: src/help.c:2568 #, c-format msgid "General help using GNU software: <%s>" msgstr "" #: src/help.c:2594 src/tcal.c:219 src/txt2gcal.c:158 src/gcal2txt.c:158 #, 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:2598 src/tcal.c:222 src/txt2gcal.c:161 src/gcal2txt.c:161 #, 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:2600 src/tcal.c:224 src/txt2gcal.c:163 src/gcal2txt.c:163 #, c-format msgid "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." msgstr "COMERCIABILIDAD o IDONEIDAD PARA UNA TAREA DETERMINADA" #: src/help.c:2616 #, c-format msgid "%s: The Gregorian calendar program (GNU cal) %s" msgstr "%s: El programa de calendario Gregoriano (GNU cal) %s" #: src/help.c:2624 #, c-format msgid "Usage: %s [[OPTION...] [%cDATE] [%cFILE...]] [COMMAND]" msgstr "Modo de empleo: %s [[OPCIÓN...] [%cFECHA] [%cFICHERO...]] [ORDEN]" #: src/help.c:2627 #, c-format msgid "Usage: %s [[OPTION...] [%cFILE...]] [COMMAND]" msgstr "Modo de empleo: %s [[OPCIÓN...] [%cFICHERO...]] [ORDEN]" #: src/help.c:2703 src/help.c:2849 msgid " 4.0 or 4.02" msgstr " 4.0 o 4.02" #: src/help.c:2711 src/help.c:2857 msgid " later than 5.0" msgstr " posterior a 5.0" #: src/help.c:2722 src/help.c:2864 msgid "++ 3.0 or later" msgstr "++ 3.0 o posterior" #: src/help.c:2749 src/help.c:2970 msgid "5.1 or earlier" msgstr "5.1 o posterior" #: src/help.c:2752 src/help.c:2973 src/help.c:3128 src/help.c:3198 msgid "unknown compiler" msgstr "compilador desconocido" #: src/help.c:2787 src/help.c:2876 src/help.c:3010 src/help.c:3032 #: src/help.c:3101 src/help.c:3138 src/help.c:3156 src/help.c:3213 #: src/help.c:3428 msgid " on " msgstr " activo " #: src/help.c:2826 msgid "(bad version)" msgstr "(versión incorrecta)" #: src/help.c:2873 msgid "unknown compiler (SDK?)" msgstr "compilador desconocido (¿SDK?)" #: src/help.c:2941 msgid " later than 4.5" msgstr " posterior a 4.5" #: src/help.c:2951 msgid "++ 1.0 or later" msgstr "++ 1.0 o posterior" #: src/help.c:2959 msgid " 1.0 or 1.5?" msgstr " ¿1.0 o 1.5?" #: src/help.c:3074 msgid "unknown " msgstr "desconocido/a " #: src/help.c:3086 #, c-format msgid "version %d.%d" msgstr "versión %d.%d" #: src/help.c:3089 src/help.c:3122 src/help.c:3248 #, c-format msgid "version %d" msgstr "versión %d" #: src/help.c:3091 #, c-format msgid "unknown version" msgstr "versión desconocida" #: src/help.c:3205 #, c-format msgid " (%.4s for Alpha)" msgstr " (%.4s para Alpha)" #: src/help.c:3208 #, c-format msgid " (%.4s for VAX)" msgstr " (%.4s para VAX)" #: src/help.c:3359 msgid " (NetBSD before 0.9)" msgstr " (NetBSD anterior a 0.9)" #: src/help.c:3359 msgid " (NetBSD 1.2 or later)" msgstr " (NetBSD 1.2 o posterior" #: src/help.c:3366 msgid " (FreeBSD 2.0 or later)" msgstr " (FreeBSD 2.0 o posterior)" #: src/help.c:3369 msgid " (BSD/386 1.1 or later)" msgstr " (BSD/386 1.1 o posterior)" #: src/print.c:544 src/print.c:978 src/print.c:1033 msgid "CW" msgstr "CS" #: src/print.c:565 msgid "Week" msgstr "Semana" #: src/rc-insert.c:1706 src/rc-insert.c:2824 msgid "pm" msgstr "pm" #: src/rc-insert.c:1715 src/rc-insert.c:2833 msgid "am" msgstr "am" #: src/rc-insert.c:2018 src/rc-insert.c:2028 msgid "d'\"" msgstr "g'\"" #: src/rc-insert.c:2038 msgid "h'\"" msgstr "h'\"" #: src/rc-insert.c:3728 src/rc-utils.c:2585 #, 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:3750 src/rc-utils.c:2609 #, 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:513 msgid "Emo" msgstr "Emo" #: src/rc-use.c:518 msgid "Int" msgstr "Int" #: src/rc-use.c:523 msgid "Phy" msgstr "Fi" #: src/rc-use.c:1086 src/rc-use.c:1177 msgid "`Eternal holiday list'" msgstr "`Lista perpetua de fiestas'" #: src/rc-use.c:1877 src/rc-use.c:1926 src/rc-use.c:2015 src/rc-use.c:2107 msgid "`Internal'" msgstr "`Interno'" #: src/rc-use.c:2339 #, c-format msgid " ; Week %s" msgstr " ; Semana %s" #: src/rc-use.c:2348 #, c-format msgid "Week %s" msgstr "Semana %s" #: src/rc-utils.c:397 src/rc-utils.c:414 #, 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:3269 #, 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:3272 src/rc-utils.c:3686 #, c-format msgid "Line %ld: %s" msgstr "Línea %ld: %s" #: src/rc-utils.c:3633 src/utils.c:274 #, c-format msgid "%s: abort, " msgstr "%s: abortar, " #: src/rc-utils.c:3641 #, c-format msgid "illegal variable definition in file `%s'" msgstr "definición ilegal de variable `%s'" #: src/rc-utils.c:3643 #, c-format msgid "illegal definition of variable `%c'" msgstr "definición ilegal de la variable `%c'" #: src/rc-utils.c:3650 #, c-format msgid "illegal variable operation in file `%s'" msgstr "operación ilegal de variable en el fichero `%s'" #: src/rc-utils.c:3652 #, c-format msgid "illegal operation on variable `%c'" msgstr "operación ilegal en la variable `%c'" #: src/rc-utils.c:3658 #, c-format msgid "variable `%c' undefined in file `%s'" msgstr "variable `%c' no definida en el fichero `%s'" #: src/rc-utils.c:3662 #, 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:3683 #, 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:3695 #, 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:3698 #, c-format msgid "Line %ld ignored: %s" msgstr "Línea %ld descartada: %s" #: src/tty.c:424 #, c-format msgid "%s: for more, <%s> to quit..." msgstr "%s: para más, <%s> para salir..." #: src/tty.c:1019 #, c-format msgid "environment variable `%s' not found" msgstr "no se encuentra la variable de entorno `%s'" #: src/tty.c:1026 #, c-format msgid "environment variable `%s' not set" msgstr "la variable de entorno `%s' no está definida" #: src/tty.c:1066 msgid "`termcap' file not found" msgstr "no se encuentra el fichero `termcap'" #: src/tty.c:1071 #, c-format msgid "unknown terminal type defined in `%s'" msgstr "se desconoce el tipo de terminal definido en `%s'" #: src/tty.c:1080 #, c-format msgid "" "\n" "%s: warning, %s.\n" "\n" msgstr "" "\n" "%s: aviso, %s.\n" "\n" #: src/utils.c:280 #, 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:284 src/tcal.c:324 src/txt2gcal.c:263 src/gcal2txt.c:263 #, c-format msgid "`%s' line %ld: virtual memory exhausted (%s=%d)" msgstr "`%s' línea %ld: memoria virtual agotada (%s=%d)" #: src/utils.c:289 #, 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:294 #, 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:299 #, 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:303 #, 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:308 #, 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:312 #, c-format msgid "file `%s' not found" msgstr "fichero `%s' no encontrado" #: src/utils.c:316 #, 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:322 #, 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:327 #, 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:332 #, c-format msgid "sending eMail to <%s> failed" msgstr "falló al enviar e-mail a <%s>" #: src/utils.c:334 src/utils.c:352 #, c-format msgid "" "\n" "`%s' line %ld: " msgstr "" "\n" "`%s' línea %ld: " #: src/utils.c:341 #, c-format msgid "`%s' line %ld: (`%s') `%s%d' failed" msgstr "`%s' línea %ld: (`%s') `%s%d' falló" #: src/utils.c:350 #, c-format msgid "read error in file `%s'" msgstr "error de lectura en el fichero `%s'" #: src/utils.c:358 #, 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:364 src/tcal.c:330 src/txt2gcal.c:269 src/gcal2txt.c:269 #, 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:369 #, c-format msgid "(`%s') date format `%s' is invalid" msgstr "(`%s') el formato de fecha `%s' no es válido" #: src/utils.c:375 #, c-format msgid "%s in search pattern `%s'" msgstr "%s está en el patrón de búsqueda `%s'" #: src/utils.c:378 #, c-format msgid "invalid search pattern `%s' specified" msgstr "patrón de búsqueda `%s' incorrecto" #: src/utils.c:383 src/tcal.c:338 src/txt2gcal.c:274 src/gcal2txt.c:274 #, c-format msgid "`%s' line %ld: (`%s') unmanaged error (%d)" msgstr "`%s' línea %ld: (`%s') error imprevisto (%d)" #: src/utils.c:403 src/tcal.c:358 src/txt2gcal.c:294 src/gcal2txt.c:294 #, 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:1080 msgid "th" msgstr "º" #: src/utils.c:1084 msgid "st" msgstr "º" #: src/utils.c:1088 msgid "nd" msgstr "º" #: src/utils.c:1092 msgid "rd" msgstr "º" #: src/utils.c:1123 src/utils.c:1174 src/utils.c:1225 msgid "invalid day" msgstr "día no válido" # Esto probablemente debe ir en minúsculas. Lo cambio. sv #: src/utils.c:1128 msgid "Mon" msgstr "lun" #: src/utils.c:1133 msgid "Tue" msgstr "mar" #: src/utils.c:1138 msgid "Wed" msgstr "mié" #: src/utils.c:1143 msgid "Thu" msgstr "jue" #: src/utils.c:1148 msgid "Fri" msgstr "vie" #: src/utils.c:1153 msgid "Sat" msgstr "sáb" #: src/utils.c:1158 msgid "Sun" msgstr "dom" # Ãdem. sv #: src/utils.c:1179 msgid "Mo" msgstr "lu" #: src/utils.c:1184 msgid "Tu" msgstr "ma" #: src/utils.c:1189 msgid "We" msgstr "mi" #: src/utils.c:1194 msgid "Th" msgstr "ju" #: src/utils.c:1199 msgid "Fr" msgstr "vi" #: src/utils.c:1204 msgid "Sa" msgstr "sá" #: src/utils.c:1209 msgid "Su" msgstr "do" # Ãdem. sv #: src/utils.c:1226 msgid "Monday" msgstr "lunes" #: src/utils.c:1226 msgid "Tuesday" msgstr "martes" #: src/utils.c:1226 msgid "Wednesday" msgstr "miércoles" #: src/utils.c:1226 msgid "Thursday" msgstr "jueves" #: src/utils.c:1227 msgid "Friday" msgstr "viernes" #: src/utils.c:1227 msgid "Saturday" msgstr "sábado" #: src/utils.c:1227 msgid "Sunday" msgstr "domingo" #: src/utils.c:1243 src/utils.c:1320 msgid "invalid month" msgstr "mes inválido" # Ãdem. sv #: src/utils.c:1248 msgid "Jan" msgstr "ene" #: src/utils.c:1253 msgid "Feb" msgstr "feb" #: src/utils.c:1258 msgid "Mar" msgstr "mar" #: src/utils.c:1263 msgid "Apr" msgstr "abr" #: src/utils.c:1268 msgid "May" msgstr "may" #: src/utils.c:1273 msgid "Jun" msgstr "jun" #: src/utils.c:1278 msgid "Jul" msgstr "jul" #: src/utils.c:1283 msgid "Aug" msgstr "ago" #: src/utils.c:1288 msgid "Sep" msgstr "sep" #: src/utils.c:1293 msgid "Oct" msgstr "oct" #: src/utils.c:1298 msgid "Nov" msgstr "nov" #: src/utils.c:1303 msgid "Dec" msgstr "dic" #: src/utils.c:1321 msgid "January" msgstr "enero" #: src/utils.c:1321 msgid "February" msgstr "febrero" #: src/utils.c:1322 msgid "March" msgstr "marzo" #: src/utils.c:1322 msgid "April" msgstr "abril" #: src/utils.c:1332 msgid "May " msgstr "mayo" #: src/utils.c:1333 msgid "June" msgstr "junio" #: src/utils.c:1333 msgid "July" msgstr "julio" #: src/utils.c:1334 msgid "August" msgstr "agosto" #: src/utils.c:1334 msgid "September" msgstr "septiembre" #: src/utils.c:1335 msgid "October" msgstr "octubre" #: src/utils.c:1335 msgid "November" msgstr "noviembre" #: src/utils.c:1335 msgid "December" msgstr "diciembre" #: src/tcal.c:191 #, 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:320 src/txt2gcal.c:259 src/gcal2txt.c:259 #, c-format msgid "" "\n" "%s: abort, " msgstr "" "\n" "%s: abortar, " # ¿"shift value"? sv # valor de desplazamiento - cfuga #: src/tcal.c:335 #, c-format msgid "shift value `%s' is invalid" msgstr "el valor de desplazamiento `%s' es inválido" #: src/tcal.c:907 #, c-format msgid "%s: option `--%s' requires an argument" msgstr "%s: la opción `--%s' necesita un argumento" #: src/tcal.c:1071 #, c-format msgid "%s: error during program execution of `%s'\n" msgstr "%s: error durante la ejecución de `%s'\n" #: src/txt2gcal.c:131 #, 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:755 src/gcal2txt.c:754 #, c-format msgid "%s: no regular file\n" msgstr "%s: no es un fichero regular\n" #: src/txt2gcal.c:760 src/gcal2txt.c:759 #, c-format msgid "%s: file not found\n" msgstr "%s: fichero no encontrado\n" #: src/gcal2txt.c:131 #, 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 "regexp too big" #~ msgstr "regexp demasiado grande" #~ msgid "out of space" #~ msgstr "no queda espacio" #~ msgid "too many ()" #~ msgstr "demasiados ()" #~ msgid "unmatched ()" #~ msgstr "() no emparejado" # 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 "invalid [] range" #~ msgstr "rango [] no válido !" #~ 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-3.6.3/po/it.po0000644000175000017500000033206212125376134010756 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: 2013-03-29 21:40+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" #: src/file-io.c:1561 #, c-format msgid "Try to write %s `%s'... %s%s%s" msgstr "" #: src/file-io.c:1564 src/file-io.c:1689 src/file-io.c:1702 msgid "failed" msgstr "" #: src/file-io.c:1564 src/file-io.c:1689 src/file-io.c:1702 msgid "success" msgstr "" #: src/file-io.c:1684 #, c-format msgid "Try to open%sresource file `%s'... %s%s%s" msgstr "" #: src/file-io.c:1685 msgid " `HERE' " msgstr "" #: src/file-io.c:1697 #, c-format msgid "Try to open (level: %02d) include file `%s'... %s%s%s" msgstr "" #: src/gcal.c:352 src/gcal.c:523 src/gcal.c:2028 msgid "ARG" msgstr "" #: src/gcal.c:1080 src/hd-data.c:69 msgid "Germany" msgstr "Germania" #: src/gcal.c:1081 msgid "U.S.A." msgstr "U.S.A." #: src/gcal.c:1082 src/hd-data.c:72 msgid "Great Britain" msgstr "Gran Bretagna" #: src/gcal.c:1858 msgid "default" msgstr "" #: src/gcal.c:1957 msgid ":" msgstr "" #: src/gcal.c:1967 msgid "Y" msgstr "A" #: src/gcal.c:1972 msgid "M" msgstr "M" #: src/gcal.c:1977 msgid "W" msgstr "S" #: src/gcal.c:1982 msgid "D" msgstr "G" #: src/gcal.c:2073 msgid "Fixed date list:" msgstr "" #: src/gcal.c:2090 src/gcal.c:2105 msgid "environment variable" msgstr "variabile ambiente" #: src/gcal.c:2274 #, 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:2461 src/gcal.c:2489 src/gcal.c:6232 src/rc-use.c:1828 #: src/rc-use.c:1888 src/rc-use.c:1937 src/rc-use.c:2207 src/rc-utils.c:390 #: src/rc-utils.c:411 src/utils.c:342 src/utils.c:365 src/utils.c:384 #: src/utils.c:679 src/tcal.c:331 src/tcal.c:339 src/txt2gcal.c:270 #: src/txt2gcal.c:275 src/gcal2txt.c:270 src/gcal2txt.c:275 msgid "Internal" msgstr "" #: src/gcal.c:2870 msgid "response file" msgstr "" #: src/gcal.c:2870 src/gcal.c:2878 msgid "Created" msgstr "" #: src/gcal.c:2878 msgid "shell script" msgstr "" #: src/gcal.c:3089 #, 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:3141 #, c-format msgid "%s: warning, eMail with empty message body not sent to <%s>.\n" msgstr "" #: src/gcal.c:4951 src/gcal.c:4984 msgid "command line" msgstr "riga di comando" #: src/gcal.c:5901 #, c-format msgid "%s: option `%s' is ambiguous" msgstr "%s: l'opzione \"%s\" è ambigua" #: src/gcal.c:5906 src/tcal.c:895 src/txt2gcal.c:716 src/gcal2txt.c:715 #, c-format msgid "%s: unrecognized option `%s'" msgstr "%s: opzione non riconosciuta \"%s\"" #: src/gcal.c:5909 #, c-format msgid "%s: invalid option -- %s" msgstr "%s: opzione non valida -- %s" #: src/gcal.c:5916 #, 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' doesn't allow an argument" msgstr "%s: l'opzione \"%s\" non ammette argomenti" #: src/gcal.c:5927 #, c-format msgid "%s: option `%s' requires an argument" msgstr "%s: l'opzione \"%s\" richiede un argomento" #: src/gcal.c:5931 #, c-format msgid "%s: option requires an argument -- %s" msgstr "%s: l'opzione richiede un argomento -- %s" #: src/gcal.c:5936 src/tcal.c:941 #, c-format msgid "%s: option with invalid argument -- %s" msgstr "%s: opzione con argomento non valido -- %s" #: src/gcal.c:5941 #, c-format msgid "%s: option with ambiguous argument -- %s" msgstr "%s: opzione con argomento ambiguo -- %s" #: src/gcal.c:6001 #, 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:63 msgid "Australia" msgstr "Australia" #: src/hd-data.c:64 src/hd-data.c:112 msgid "Belgium" msgstr "Belgio" #: src/hd-data.c:65 src/hd-data.c:121 msgid "Brazil" msgstr "Brasile" #: src/hd-data.c:66 msgid "Canada" msgstr "Canada" #: src/hd-data.c:67 msgid "Switzerland" msgstr "Svizzera" #: src/hd-data.c:68 src/hd-data.c:174 msgid "China" msgstr "Cina" #: src/hd-data.c:70 src/hd-data.c:208 msgid "Spain" msgstr "Spagna" #: src/hd-data.c:71 src/hd-data.c:215 msgid "France" msgstr "Francia" #: src/hd-data.c:73 src/hd-data.c:244 msgid "Israel" msgstr "Israele" #: src/hd-data.c:74 src/hd-data.c:249 msgid "Italy" msgstr "Italia" #: src/hd-data.c:75 src/hd-data.c:252 msgid "Japan" msgstr "Giappone" #: src/hd-data.c:76 src/hd-data.c:260 msgid "Republic of Korea" msgstr "Repubblica di Corea" #: src/hd-data.c:77 src/hd-data.c:292 msgid "Mexico" msgstr "Messico" #: src/hd-data.c:78 src/hd-data.c:301 msgid "Netherlands" msgstr "Paesi Bassi" #: src/hd-data.c:79 src/hd-data.c:307 msgid "New Zealand" msgstr "Nuova Zelanda" #: src/hd-data.c:80 src/hd-data.c:319 msgid "Portugal" msgstr "Portogallo" #: src/hd-data.c:81 src/hd-data.c:325 msgid "Russian Federation" msgstr "Federazione Russa" #: src/hd-data.c:82 msgid "United States" msgstr "Stati Uniti" #: src/hd-data.c:84 msgid "Andorra" msgstr "Andorra" #: src/hd-data.c:85 msgid "United Arab Emirates" msgstr "Emirati Arabi Uniti" #: src/hd-data.c:86 msgid "Afghanistan" msgstr "Afghanistan" #: src/hd-data.c:87 msgid "Antigua and Barbuda" msgstr "Antigua e Barbuda" #: src/hd-data.c:88 msgid "Anguilla" msgstr "Anguilla" #: src/hd-data.c:89 msgid "Albania" msgstr "Albania" #: src/hd-data.c:90 msgid "Armenia" msgstr "Armenia" #: src/hd-data.c:91 msgid "Netherlands Antilles/Bonaire" msgstr "Antille olandesi/Bonaire" #: src/hd-data.c:92 msgid "Netherlands Antilles/Curaçao" msgstr "Antille olandesi/Curaçao" #: src/hd-data.c:93 msgid "Netherlands Antilles/St Maarten" msgstr "Antille olandesi/Sint Maarten" #: src/hd-data.c:94 msgid "Netherlands Antilles/Saba and Statia" msgstr "Antille olandesi/Saba e Sint Eustatius" #: src/hd-data.c:95 msgid "Angola #" msgstr "Angola #" #: src/hd-data.c:96 msgid "Argentina" msgstr "Argentina" #: src/hd-data.c:97 msgid "American Samoa" msgstr "Samoa americane" #: src/hd-data.c:98 msgid "Austria" msgstr "Austria" #: src/hd-data.c:99 msgid "Australia/Canberra" msgstr "Australia/Canberra" #: src/hd-data.c:100 msgid "Australia/Northern Territory" msgstr "Australia/Territorio del Nord" #: src/hd-data.c:101 msgid "Australia/Queensland" msgstr "Australia/Queensland" #: src/hd-data.c:102 msgid "Australia/Southern Australia" msgstr "Australia/Australia Meridionale" #: src/hd-data.c:103 msgid "Australia/New South Wales" msgstr "Australia/Nuovo Galles del Sud" #: src/hd-data.c:104 msgid "Australia/Tasmania" msgstr "Australia/Tasmania" #: src/hd-data.c:105 msgid "Australia/Victoria" msgstr "Australia/Victoria" #: src/hd-data.c:106 msgid "Australia/Western Australia" msgstr "Australia/Australia Occidentale" #: src/hd-data.c:107 msgid "Aruba" msgstr "Aruba" #: src/hd-data.c:108 msgid "Azerbaijan" msgstr "Azerbaigian" #: src/hd-data.c:109 msgid "Bosnia-Herzegovina" msgstr "Bosnia-Erzegovina" #: src/hd-data.c:110 msgid "Barbados" msgstr "Barbados" #: src/hd-data.c:111 msgid "Bangladesh #" msgstr "Bangladesh #" #: src/hd-data.c:113 msgid "Burkina Faso" msgstr "Burkina Faso" #: src/hd-data.c:114 msgid "Bulgaria" msgstr "Bulgaria" #: src/hd-data.c:115 msgid "Bahrain" msgstr "Bahrain" #: src/hd-data.c:116 msgid "Burundi #" msgstr "Burundi #" #: src/hd-data.c:117 msgid "Benin #" msgstr "Benin #" #: src/hd-data.c:118 msgid "Bermuda" msgstr "Bermuda" #: src/hd-data.c:119 msgid "Brunei" msgstr "Brunei" #: src/hd-data.c:120 msgid "Bolivia" msgstr "Bolivia" #: src/hd-data.c:122 msgid "Bahamas" msgstr "Bahamas" #: src/hd-data.c:123 msgid "Bhutan #" msgstr "Bhutan #" #: src/hd-data.c:124 msgid "Bouvet Island" msgstr "Isola Bouvet" #: src/hd-data.c:125 msgid "Botswana" msgstr "Botswana" #: src/hd-data.c:126 msgid "Belarus" msgstr "Bielorussia" #: src/hd-data.c:127 msgid "Belize" msgstr "Belize" #: src/hd-data.c:128 msgid "Canada/Alberta" msgstr "Canada/Alberta" #: src/hd-data.c:129 msgid "Canada/British Columbia" msgstr "Canada/Columbia Britannica" #: src/hd-data.c:130 msgid "Canada/Manitoba" msgstr "Canada/Manitoba" #: src/hd-data.c:131 msgid "Canada/New Brunswick" msgstr "Canada/Nuovo Brunswick" #: src/hd-data.c:132 msgid "Canada/Newfoundland and Labrador" msgstr "Canada/Terranova e Labrador" #: src/hd-data.c:133 msgid "Canada/Nova Scotia" msgstr "Canada/Nuova Scozia" #: src/hd-data.c:134 msgid "Canada/Nordwest Territories" msgstr "Canada/Territori del Nordovest" #: src/hd-data.c:135 msgid "Canada/Ontario" msgstr "Canada/Ontario" #: src/hd-data.c:136 msgid "Canada/Prince Edward Island" msgstr "Canada/Isola del Principe Edoardo" #: src/hd-data.c:137 msgid "Canada/Québec" msgstr "Canada/Québec" #: src/hd-data.c:138 msgid "Canada/Saskatchewan" msgstr "Canada/Saskatchewan" #: src/hd-data.c:139 msgid "Canada/Yukon" msgstr "Canada/Yukon" #: src/hd-data.c:140 msgid "Cocos Islands (Keeling)" msgstr "Isole Cocos e Keeling" #: src/hd-data.c:141 msgid "Democratic Republic of Congo #" msgstr "Repubblica democratica del Congo #" #: src/hd-data.c:142 msgid "Central African Republic #" msgstr "Repubblica Centrafricana #" #: src/hd-data.c:143 msgid "Republic of Congo #" msgstr "Repubblica del Congo #" #: src/hd-data.c:144 msgid "Switzerland/Aargau" msgstr "Svizzera/Argovia" #: src/hd-data.c:145 msgid "Switzerland/Appenzell Innerrhoden" msgstr "Svizzera/Appenzello Interno" #: src/hd-data.c:146 msgid "Switzerland/Appenzell Ausserrhoden" msgstr "Svizzera/Appenzello Esterno" #: src/hd-data.c:147 msgid "Switzerland/Bern" msgstr "Svizzera/Berna" #: src/hd-data.c:148 msgid "Switzerland/Basel-Land" msgstr "Svizzera/Basilea Campagna" #: src/hd-data.c:149 msgid "Switzerland/Basel-Stadt" msgstr "Svizzera/Basilea Città" #: src/hd-data.c:150 msgid "Switzerland/Fribourg" msgstr "Svizzera/Friburgo" #: src/hd-data.c:151 msgid "Switzerland/Genève" msgstr "Svizzera/Ginevra" #: src/hd-data.c:152 msgid "Switzerland/Glarus" msgstr "Svizzera/Glarona" #: src/hd-data.c:153 msgid "Switzerland/Graubünden" msgstr "Svizzera/Grigioni" #: src/hd-data.c:154 msgid "Switzerland/Jura" msgstr "Svizzera/Giura" #: src/hd-data.c:155 msgid "Switzerland/Luzern" msgstr "Svizzera/Lucerna" #: src/hd-data.c:156 msgid "Switzerland/Neuchâtel" msgstr "Svizzera/Neuchâtel" #: src/hd-data.c:157 msgid "Switzerland/Nidwalden" msgstr "Svizzera/Nidvaldo" #: src/hd-data.c:158 msgid "Switzerland/Obwalden" msgstr "Svizzera/Obvaldo" #: src/hd-data.c:159 msgid "Switzerland/St Gallen" msgstr "Svizzera/San Gallo" #: src/hd-data.c:160 msgid "Switzerland/Schaffhausen" msgstr "Svizzera/Sciaffusa" #: src/hd-data.c:161 msgid "Switzerland/Solothurn" msgstr "Svizzera/Soletta" #: src/hd-data.c:162 msgid "Switzerland/Schwyz" msgstr "Svizzera/Svitto" #: src/hd-data.c:163 msgid "Switzerland/Thurgau" msgstr "Svizzera/Turgovia" #: src/hd-data.c:164 msgid "Switzerland/Ticino" msgstr "Svizzera/Ticino" #: src/hd-data.c:165 msgid "Switzerland/Uri" msgstr "Svizzera/Uri" #: src/hd-data.c:166 msgid "Switzerland/Vaud" msgstr "Svizzera/Vaud" #: src/hd-data.c:167 msgid "Switzerland/Valais" msgstr "Svizzera/Vallese" #: src/hd-data.c:168 msgid "Switzerland/Zug" msgstr "Svizzera/Zugo" #: src/hd-data.c:169 msgid "Switzerland/Zürich" msgstr "Svizzera/Zurigo" #: src/hd-data.c:170 msgid "Côte d'Ivoire" msgstr "Costa d'Avorio" #: src/hd-data.c:171 msgid "Cook Islands" msgstr "Isole Cook" #: src/hd-data.c:172 msgid "Chile" msgstr "Cile" #: src/hd-data.c:173 msgid "Cameroon" msgstr "Camerun" #: src/hd-data.c:175 msgid "Colombia" msgstr "Colombia" #: src/hd-data.c:176 msgid "Costa Rica" msgstr "Costa Rica" #: src/hd-data.c:177 msgid "Cuba" msgstr "Cuba" #: src/hd-data.c:178 msgid "Cape Verde" msgstr "Capo Verde" #: src/hd-data.c:179 msgid "Christmas Islands" msgstr "Isole di Natale" #: src/hd-data.c:180 msgid "Cyprus" msgstr "Cipro" #: src/hd-data.c:181 msgid "Czech Republic" msgstr "Repubblica Ceca" #: src/hd-data.c:182 msgid "Germany/Brandenburg" msgstr "Germania/Brandeburgo" #: src/hd-data.c:183 msgid "Germany/Berlin" msgstr "Germania/Berlino" #: src/hd-data.c:184 msgid "Germany/Baden-Württemberg" msgstr "Germania/Baden-Württemberg" #: src/hd-data.c:185 msgid "Germany/Bavaria" msgstr "Germania/Baviera" #: src/hd-data.c:186 msgid "Germany/Bremen" msgstr "Germania/Brema" #: src/hd-data.c:187 msgid "Germany/Hesse" msgstr "Germania/Assia" #: src/hd-data.c:188 msgid "Germany/Hamburg" msgstr "Germania/Amburgo" #: src/hd-data.c:189 msgid "Germany/Mecklenburg-West Pomerania" msgstr "Germania/Meclemburgo-Pomerania Anteriore" #: src/hd-data.c:190 msgid "Germany/Lower Saxony" msgstr "Germania/Bassa Sassonia" #: src/hd-data.c:191 msgid "Germany/North Rhine-Westphalia" msgstr "Germania/Nord Reno-Westfalia" #: src/hd-data.c:192 msgid "Germany/Rhineland Palatinate" msgstr "Germania/Renania-Palatinato" #: src/hd-data.c:193 msgid "Germany/Schleswig-Holstein" msgstr "Germania/Schleswig-Holstein" #: src/hd-data.c:194 msgid "Germany/Saar" msgstr "Germania/Saarland" #: src/hd-data.c:195 msgid "Germany/Saxony" msgstr "Germania/Sassonia" #: src/hd-data.c:196 msgid "Germany/Saxony-Anhalt" msgstr "Germania/Sassonia-Anhalt" #: src/hd-data.c:197 msgid "Germany/Thuringia" msgstr "Germania/Turingia" #: src/hd-data.c:198 msgid "Djibouti" msgstr "Gibuti" #: src/hd-data.c:199 msgid "Denmark" msgstr "Danimarca" #: src/hd-data.c:200 msgid "Dominica" msgstr "Dominica" #: src/hd-data.c:201 msgid "Dominican Republic" msgstr "Repubblica Dominicana" #: src/hd-data.c:202 msgid "Algeria" msgstr "Algeria" #: src/hd-data.c:203 msgid "Ecuador" msgstr "Ecuador" #: src/hd-data.c:204 msgid "Estonia" msgstr "Estonia" #: src/hd-data.c:205 msgid "Egypt" msgstr "Egitto" #: src/hd-data.c:206 msgid "Western Sahara" msgstr "Sahara Occidentale" #: src/hd-data.c:207 msgid "Eritrea" msgstr "Eritrea" #: src/hd-data.c:209 msgid "Ethiopia" msgstr "Etiopia" #: src/hd-data.c:210 msgid "Finland" msgstr "Finlandia" #: src/hd-data.c:211 msgid "Fiji #" msgstr "Figi #" #: src/hd-data.c:212 msgid "Falkland Islands (Malvinas)" msgstr "Isole Falkland (Malvine)" #: src/hd-data.c:213 msgid "Federated States of Micronesia" msgstr "Stati Federati di Micronesia" #: src/hd-data.c:214 msgid "Faroes" msgstr "Far Oer" #: src/hd-data.c:216 msgid "Gabon #" msgstr "Gabon #" #: src/hd-data.c:217 msgid "Great Britain/England and Wales" msgstr "Gran Bretagna/Inghilterra e Galles" #: src/hd-data.c:218 msgid "Great Britain/Northern Ireland" msgstr "Gran Bretagna/Irlanda del Nord" #: src/hd-data.c:219 msgid "Great Britain/Scotland" msgstr "Gran Bretagna/Scozia" #: src/hd-data.c:220 msgid "Grenada" msgstr "Grenada" #: src/hd-data.c:221 msgid "Georgia" msgstr "Georgia" #: src/hd-data.c:222 msgid "French Guiana" msgstr "Guiana Francese" #: src/hd-data.c:223 msgid "Ghana" msgstr "Ghana" #: src/hd-data.c:224 msgid "Gibraltar" msgstr "Gibilterra" #: src/hd-data.c:225 msgid "Greenland" msgstr "Groenlandia" #: src/hd-data.c:226 msgid "Gambia" msgstr "Gambia" #: src/hd-data.c:227 msgid "Guinea" msgstr "Guinea" #: src/hd-data.c:228 msgid "Guadeloupe" msgstr "Guadalupa" #: src/hd-data.c:229 msgid "Equatorial Guinea" msgstr "Guinea Equatoriale" #: src/hd-data.c:230 msgid "Greece" msgstr "Grecia" #: src/hd-data.c:231 msgid "South Georgia and South Sandwich Islands" msgstr "Georgia del Sud e isole Sandwich meridionali" #: src/hd-data.c:232 msgid "Guatemala" msgstr "Guatemala" #: src/hd-data.c:233 msgid "Guam" msgstr "Guam" #: src/hd-data.c:234 msgid "Guinea-Bissau #" msgstr "Guinea-Bissau #" #: src/hd-data.c:235 msgid "Guyana #" msgstr "Guyana #" #: src/hd-data.c:236 msgid "Hong Kong" msgstr "Hong Kong" #: src/hd-data.c:237 msgid "Heard and Mc Donald Islands" msgstr "Isole Heard e McDonald" #: src/hd-data.c:238 msgid "Honduras" msgstr "Honduras" #: src/hd-data.c:239 msgid "Croatia" msgstr "Croazia" #: src/hd-data.c:240 msgid "Haiti" msgstr "Haiti" #: src/hd-data.c:241 msgid "Hungary" msgstr "Ungheria" #: src/hd-data.c:242 msgid "Indonesia #" msgstr "Indonesia #" #: src/hd-data.c:243 msgid "Ireland" msgstr "Irlanda" #: src/hd-data.c:245 msgid "India #" msgstr "India #" #: src/hd-data.c:246 msgid "Iraq" msgstr "Iraq" #: src/hd-data.c:247 msgid "Islamic Republic of Iran" msgstr "Repubblica Islamica dell'Iran" #: src/hd-data.c:248 msgid "Iceland" msgstr "Islanda" #: src/hd-data.c:250 msgid "Jamaica" msgstr "Giamaica" #: src/hd-data.c:251 msgid "Jordan" msgstr "Giordania" #: src/hd-data.c:253 msgid "Kenya #" msgstr "Kenya #" #: src/hd-data.c:254 msgid "Kyrgyzstan" msgstr "Kirghizistan" #: src/hd-data.c:255 msgid "Cambodia #" msgstr "Cambogia #" #: src/hd-data.c:256 msgid "Kiribati #" msgstr "Kiribati #" #: src/hd-data.c:257 msgid "Comoros" msgstr "Comore" #: src/hd-data.c:258 msgid "St Kitts and Nevis" msgstr "St Kitts e Nevis" #: src/hd-data.c:259 msgid "Democratic People's Republic of Korea" msgstr "Repubblica Democratica Popolare di Corea" #: src/hd-data.c:261 msgid "Kuwait" msgstr "Kuwait" #: src/hd-data.c:262 msgid "Cayman Islands" msgstr "Isole Cayman" #: src/hd-data.c:263 msgid "Kazakhstan" msgstr "Kazakistan" #: src/hd-data.c:264 msgid "Laos People's Democratic Republic #" msgstr "Repubblica Popolare Democratica del Laos #" #: src/hd-data.c:265 msgid "Lebanon" msgstr "Libano" #: src/hd-data.c:266 msgid "St Lucia" msgstr "Santa Lucia" #: src/hd-data.c:267 msgid "Liechtenstein" msgstr "Liechtenstein" #: src/hd-data.c:268 msgid "Sri Lanka #" msgstr "Sri Lanka #" #: src/hd-data.c:269 msgid "Liberia" msgstr "Liberia" #: src/hd-data.c:270 msgid "Lesotho" msgstr "Lesotho" #: src/hd-data.c:271 msgid "Lithuania" msgstr "Lituania" #: src/hd-data.c:272 msgid "Luxembourg" msgstr "Lussemburgo" #: src/hd-data.c:273 msgid "Latvia" msgstr "Lettonia" #: src/hd-data.c:274 msgid "Libyan Arab Jamahiriya (Libya)" msgstr "Libia" #: src/hd-data.c:275 msgid "Morocco" msgstr "Marocco" #: src/hd-data.c:276 msgid "Monaco" msgstr "Monaco" #: src/hd-data.c:277 msgid "Republic of Moldova" msgstr "Repubblica di Moldova" #: src/hd-data.c:278 msgid "Madagascar #" msgstr "Madagascar #" #: src/hd-data.c:279 msgid "Marshall Islands" msgstr "Isole Marshall" #: src/hd-data.c:280 msgid "Former Yugoslav Republic of Macedonia" msgstr "Repubblica di Macedonia" #: src/hd-data.c:281 msgid "Mali" msgstr "Mali" #: src/hd-data.c:282 msgid "Mongolia #" msgstr "Mongolia #" #: src/hd-data.c:283 msgid "Macau" msgstr "Macao" #: src/hd-data.c:284 msgid "Northern Marian Islands (Saipan)" msgstr "Isole Marianne Settentrionali (Saipan)" #: src/hd-data.c:285 msgid "Martinique" msgstr "Martinica" #: src/hd-data.c:286 msgid "Mauritania" msgstr "Mauritania" #: src/hd-data.c:287 msgid "Montserrat" msgstr "Montserrat" #: src/hd-data.c:288 msgid "Malta" msgstr "Malta" #: src/hd-data.c:289 msgid "Mauritius" msgstr "Mauritius" #: src/hd-data.c:290 msgid "Maldives" msgstr "Maldive" #: src/hd-data.c:291 msgid "Malawi" msgstr "Malawi" #: src/hd-data.c:293 msgid "Malaysia #" msgstr "Malesia #" #: src/hd-data.c:294 msgid "Mozambique" msgstr "Mozambico" #: src/hd-data.c:295 msgid "Namibia" msgstr "Namibia" #: src/hd-data.c:296 msgid "New Caledonia" msgstr "Nuova Caledonia" #: src/hd-data.c:297 msgid "Niger" msgstr "Niger" #: src/hd-data.c:298 msgid "Norfolk Islands" msgstr "Isola Norfolk" #: src/hd-data.c:299 msgid "Nigeria" msgstr "Nigeria" #: src/hd-data.c:300 msgid "Nicaragua" msgstr "Nicaragua" #: src/hd-data.c:302 msgid "Myanmar (Burma) #" msgstr "Myanmar (Birmania) #" #: src/hd-data.c:303 msgid "Norway" msgstr "Norvegia" #: src/hd-data.c:304 msgid "Nepal #" msgstr "Nepal #" #: src/hd-data.c:305 msgid "Nauru" msgstr "Nauru" #: src/hd-data.c:306 msgid "Niue" msgstr "Niue" #: src/hd-data.c:308 msgid "Oman" msgstr "Oman" #: src/hd-data.c:309 msgid "Panama" msgstr "Panama" #: src/hd-data.c:310 msgid "Peru" msgstr "Peru" #: src/hd-data.c:311 msgid "French Polynesia" msgstr "Polinesia francese" #: src/hd-data.c:312 msgid "Papua New Guinea" msgstr "Papua Nuova Guinea" #: src/hd-data.c:313 msgid "Philippines" msgstr "Filippine" #: src/hd-data.c:314 msgid "Pakistan" msgstr "Pakistan" #: src/hd-data.c:315 msgid "Poland" msgstr "Polonia" #: src/hd-data.c:316 msgid "Saint-Pierre and Miquelon" msgstr "Saint-Pierre e Miquelon" #: src/hd-data.c:317 msgid "Pitcairn" msgstr "Pitcairn" #: src/hd-data.c:318 msgid "Puerto Rico" msgstr "Porto Rico" #: src/hd-data.c:320 msgid "Palau" msgstr "Palau" #: src/hd-data.c:321 msgid "Paraguay" msgstr "Paraguay" #: src/hd-data.c:322 msgid "Qatar" msgstr "Qatar" #: src/hd-data.c:323 msgid "Réunion" msgstr "Réunion" #: src/hd-data.c:324 msgid "Romania" msgstr "Romania" #: src/hd-data.c:326 msgid "Rwanda" msgstr "Ruanda" #: src/hd-data.c:327 msgid "Saudi Arabia" msgstr "Arabia Saudita" #: src/hd-data.c:328 msgid "Solomon Islands" msgstr "Isole Salomone" #: src/hd-data.c:329 msgid "Seychellen" msgstr "Seychelles" #: src/hd-data.c:330 msgid "Sudan" msgstr "Sudan" #: src/hd-data.c:331 msgid "Sweden" msgstr "Svezia" #: src/hd-data.c:332 msgid "Singapore #" msgstr "Singapore #" #: src/hd-data.c:333 msgid "St Helena" msgstr "Sant'Elena" #: src/hd-data.c:334 msgid "Slovenia" msgstr "Slovenia" #: src/hd-data.c:335 msgid "Svalbard and Jan Mayen Islands" msgstr "Isole Svalbard e di Jan Mayen" #: src/hd-data.c:336 msgid "Slovakia" msgstr "Slovacchia" #: src/hd-data.c:337 msgid "Sierra Leone" msgstr "Sierra Leone" #: src/hd-data.c:338 msgid "San Marino" msgstr "San Marino" #: src/hd-data.c:339 msgid "Senegal" msgstr "Senegal" #: src/hd-data.c:340 msgid "Somalia" msgstr "Somalia" #: src/hd-data.c:341 msgid "Suriname #" msgstr "Suriname #" #: src/hd-data.c:342 msgid "Sao Tomé and Principe" msgstr "Sao Tomé e Principe" #: src/hd-data.c:343 msgid "El Salvador" msgstr "El Salvador" #: src/hd-data.c:344 msgid "Syrian Arab Republic (Syria)" msgstr "Repubblica Araba di Siria (Siria)" #: src/hd-data.c:345 msgid "Swaziland" msgstr "Swaziland" #: src/hd-data.c:346 msgid "Turks and Caicos Islands" msgstr "Isole Turks e Caicos" #: src/hd-data.c:347 msgid "Chad" msgstr "Ciad" #: src/hd-data.c:348 msgid "Togo #" msgstr "Togo #" #: src/hd-data.c:349 msgid "Thailand #" msgstr "Thailandia" #: src/hd-data.c:350 msgid "Tajikistan" msgstr "Tagikistan" #: src/hd-data.c:351 msgid "Tokelau" msgstr "Tokelau" #: src/hd-data.c:352 msgid "Turkmenistan" msgstr "Turkmenistan" #: src/hd-data.c:353 msgid "Tunisia" msgstr "Tunisia" #: src/hd-data.c:354 msgid "Tonga" msgstr "Tonga" #: src/hd-data.c:355 msgid "Turkey" msgstr "Turchia" #: src/hd-data.c:356 msgid "Trinidad and Tobago #" msgstr "Trinidad e Tobago #" #: src/hd-data.c:357 msgid "Tuvalu" msgstr "Tuvalu" #: src/hd-data.c:358 msgid "Taiwan" msgstr "Taiwan" #: src/hd-data.c:359 msgid "Tanzania" msgstr "Tanzania" #: src/hd-data.c:360 msgid "Ukraine" msgstr "Ucraina" #: src/hd-data.c:361 msgid "Uganda" msgstr "Uganda" #: src/hd-data.c:362 msgid "United States/Alaska" msgstr "Stati Uniti/Alaska" #: src/hd-data.c:363 msgid "United States/Alabama" msgstr "Stati Uniti/Alabama" #: src/hd-data.c:364 msgid "United States/Arkansas" msgstr "Stati Uniti/Arkansas" #: src/hd-data.c:365 msgid "United States/Arizona" msgstr "Stati Uniti/Arizona" #: src/hd-data.c:366 msgid "United States/California" msgstr "Stati Uniti/California" #: src/hd-data.c:367 msgid "United States/Colorado" msgstr "Stati Uniti/Colorado" #: src/hd-data.c:368 msgid "United States/Connecticut" msgstr "Stati Uniti/Connecticut" #: src/hd-data.c:369 msgid "United States/District of Columbia" msgstr "Stati Uniti/Distretto di Columbia" #: src/hd-data.c:370 msgid "United States/Delaware" msgstr "Stati Uniti/Delaware" #: src/hd-data.c:371 msgid "United States/Florida" msgstr "Stati Uniti/Florida" #: src/hd-data.c:372 msgid "United States/Georgia" msgstr "Stati Uniti/Georgia" #: src/hd-data.c:373 msgid "United States/Hawaii" msgstr "Stati Uniti/Hawaii" #: src/hd-data.c:374 msgid "United States/Iowa" msgstr "Stati Uniti/Iowa" #: src/hd-data.c:375 msgid "United States/Idaho" msgstr "Stati Uniti/Idaho" #: src/hd-data.c:376 msgid "United States/Illinois" msgstr "Stati Uniti/Illinois" #: src/hd-data.c:377 msgid "United States/Indiana" msgstr "Stati Uniti/Indiana" #: src/hd-data.c:378 msgid "United States/Kansas" msgstr "Stati Uniti/Kansas" #: src/hd-data.c:379 msgid "United States/Kentucky" msgstr "Stati Uniti/Kentucky" #: src/hd-data.c:380 msgid "United States/Louisiana" msgstr "Stati Uniti/Louisiana" #: src/hd-data.c:381 msgid "United States/Massachusetts" msgstr "Stati Uniti/Massachusetts" #: src/hd-data.c:382 msgid "United States/Maryland" msgstr "Stati Uniti/Maryland" #: src/hd-data.c:383 msgid "United States/Maine" msgstr "Stati Uniti/Maine" #: src/hd-data.c:384 msgid "United States/Michigan" msgstr "Stati Uniti/Michigan" #: src/hd-data.c:385 msgid "United States/Minnesota" msgstr "Stati Uniti/Minnesota" #: src/hd-data.c:386 msgid "United States/Missouri" msgstr "Stati Uniti/Missouri" #: src/hd-data.c:387 msgid "United States/Mississippi" msgstr "Stati Uniti/Mississippi" #: src/hd-data.c:388 msgid "United States/Montana" msgstr "Stati Uniti/Montana" #: src/hd-data.c:389 msgid "United States/North Carolina" msgstr "Stati Uniti/Carolina del Nord" #: src/hd-data.c:390 msgid "United States/North Dakota" msgstr "Stati Uniti/Dakota del Nord" #: src/hd-data.c:391 msgid "United States/Nebraska" msgstr "Stati Uniti/Nebraska" #: src/hd-data.c:392 msgid "United States/New Hampshire" msgstr "Stati Uniti/New Hampshire" #: src/hd-data.c:393 msgid "United States/New Jersey" msgstr "Stati Uniti/New Jersey" #: src/hd-data.c:394 msgid "United States/New Mexico" msgstr "Stati Uniti/Nuovo Messico" #: src/hd-data.c:395 msgid "United States/Nevada" msgstr "Stati Uniti/Nevada" #: src/hd-data.c:396 msgid "United States/New York" msgstr "Stati Uniti/New York" #: src/hd-data.c:397 msgid "United States/Ohio" msgstr "Stati Uniti/Ohio" #: src/hd-data.c:398 msgid "United States/Oklahoma" msgstr "Stati Uniti/Oklahoma" #: src/hd-data.c:399 msgid "United States/Oregon" msgstr "Stati Uniti/Oregon" #: src/hd-data.c:400 msgid "United States/Pennsylvania" msgstr "Stati Uniti/Pennsylvania" #: src/hd-data.c:401 msgid "United States/Rhode Island" msgstr "Stati Uniti/Rhode Island" #: src/hd-data.c:402 msgid "United States/South Carolina" msgstr "Stati Uniti/Carolina del Sud" #: src/hd-data.c:403 msgid "United States/South Dakota" msgstr "Stati Uniti/Dakota del Sud" #: src/hd-data.c:404 msgid "United States/Tennessee" msgstr "Stati Uniti/Tennessee" #: src/hd-data.c:405 msgid "United States/Texas" msgstr "Stati Uniti/Texas" #: src/hd-data.c:406 msgid "United States/Utah" msgstr "Stati Uniti/Utah" #: src/hd-data.c:407 msgid "United States/Virginia" msgstr "Stati Uniti/Virginia" #: src/hd-data.c:408 msgid "United States/Vermont" msgstr "Stati Uniti/Vermont" #: src/hd-data.c:409 msgid "United States/Washington" msgstr "Stati Uniti/Washington" #: src/hd-data.c:410 msgid "United States/Wisconsin" msgstr "Stati Uniti/Wisconsin" #: src/hd-data.c:411 msgid "United States/West Virginia" msgstr "Stati Uniti/Virginia Occidentale" #: src/hd-data.c:412 msgid "United States/Wyoming" msgstr "Stati Uniti/Wyoming" #: src/hd-data.c:413 msgid "Uruguay" msgstr "Uruguay" #: src/hd-data.c:414 msgid "Uzbekistan" msgstr "Uzbekistan" #: src/hd-data.c:415 msgid "St Vincent and Grenadines" msgstr "St Vincent e Grenadine" #: src/hd-data.c:416 msgid "Venezuela" msgstr "Venezuela" #: src/hd-data.c:417 msgid "British Virgin Islands" msgstr "Isole Vergini britanniche" #: src/hd-data.c:418 msgid "U.S. Virgin Islands" msgstr "Isole Vergini americane" #: src/hd-data.c:419 msgid "Viet Nam" msgstr "Vietnam" #: src/hd-data.c:420 msgid "Vanuatu" msgstr "Vanuatu" #: src/hd-data.c:421 msgid "Wallis and Futuna Islands" msgstr "Isole Wallis e Futuna" #: src/hd-data.c:422 msgid "Samoa" msgstr "Samoa" #: src/hd-data.c:423 msgid "Yemen" msgstr "Yemen" #: src/hd-data.c:424 msgid "Mayotte" msgstr "Mayotte" #: src/hd-data.c:425 msgid "Serbia and Montenegro" msgstr "Serbia e Montenegro" #: src/hd-data.c:426 msgid "South Africa" msgstr "Sudafrica" #: src/hd-data.c:427 msgid "Zambia" msgstr "Zambia" #: src/hd-data.c:428 msgid "Zimbabwe" msgstr "Zimbabwe" #: src/hd-data.c:458 msgid "1st Advent" msgstr "1ª di Avvento" #: src/hd-data.c:459 msgid "1st Sunday in Lent" msgstr "1ª domenica di Quaresima" #: src/hd-data.c:460 msgid "2nd Advent" msgstr "2ª di Avvento" #: src/hd-data.c:461 msgid "2nd Sunday in Lent" msgstr "2ª domenica di Quaresima" #: src/hd-data.c:462 msgid "3rd Advent" msgstr "3ª di Avvento" #: src/hd-data.c:463 msgid "3rd Sunday in Lent" msgstr "3ª domenica di Quaresima" #: src/hd-data.c:464 msgid "4th Advent" msgstr "4ª di Avvento" #: src/hd-data.c:465 msgid "4th Sunday in Lent" msgstr "4ª domenica di Quaresima" #: src/hd-data.c:466 msgid "7-5-3 Festival" msgstr "Festival 7-5-3" #: src/hd-data.c:467 msgid "Aborigines Day" msgstr "Giorno degli Aborigeni" #: src/hd-data.c:468 msgid "All Fool's Day" msgstr "Pesce d'Aprile" #: src/hd-data.c:469 msgid "All Saints' Day" msgstr "Tutti i Santi" #: src/hd-data.c:470 msgid "All Souls' Day" msgstr "Commemorazione dei defunti" #: src/hd-data.c:471 msgid "Alphabet Day" msgstr "Giorno dell'Alfabeto Coreano" #: src/hd-data.c:472 msgid "Anniversary of Auckland" msgstr "Anniversario di Auckland" #: src/hd-data.c:473 msgid "Anniversary of Canterbury North" msgstr "Anniversario di Canterbury Nord" #: src/hd-data.c:474 msgid "Anniversary of Canterbury South" msgstr "Anniversario di Canterbury Sud" #: src/hd-data.c:475 msgid "Anniversary of Chatham Islands" msgstr "Anniversario delle isole Chatham" #: src/hd-data.c:476 msgid "Anniversary of Hawkes' Bay" msgstr "Anniversario della baia di Hawkes" #: src/hd-data.c:477 msgid "Anniversary of Marlborough" msgstr "Anniversario di Marlborough" #: src/hd-data.c:478 msgid "Anniversary of Nelson" msgstr "Anniversario di Nelson" #: src/hd-data.c:479 msgid "Anniversary of Otago" msgstr "Anniversario di Otago" #: src/hd-data.c:480 msgid "Anniversary of Southland" msgstr "Anniversario di Southland" #: src/hd-data.c:481 msgid "Anniversary of Taranaki" msgstr "Anniversario di Taranaki" #: src/hd-data.c:482 msgid "Anniversary of Wellington" msgstr "Anniversario di Wellington" #: src/hd-data.c:483 msgid "Anniversary of Westland" msgstr "Anniversario di Westland" #: src/hd-data.c:484 msgid "Anzac Day" msgstr "Anzac Day" #: src/hd-data.c:485 msgid "Arbor Day" msgstr "Arbor Day" #: src/hd-data.c:486 msgid "Armed Forces Day" msgstr "Giorno delle Forze Armate" #: src/hd-data.c:487 msgid "Armistice Day" msgstr "Giorno dell'armistizio" #: src/hd-data.c:488 msgid "Ash Monday" msgstr "" #: src/hd-data.c:489 msgid "Ash Wednesday" msgstr "" #: src/hd-data.c:490 msgid "Ascension of Abdu'l-Baha" msgstr "Ascensione di Abdu'l-Baha" #: src/hd-data.c:491 msgid "Ascension of Baha'u'llah" msgstr "Ascensione di Baha'u'llah" #: src/hd-data.c:492 msgid "Birth of Baha'u'llah" msgstr "Nascita di Baha'u'llah" #: src/hd-data.c:493 msgid "Birth of the Bab" msgstr "Nascita del Bab" #: src/hd-data.c:494 msgid "Day of the Covenant" msgstr "" #: src/hd-data.c:495 msgid "Declaration of the Bab" msgstr "" #: src/hd-data.c:496 msgid "First Day of Ridvan" msgstr "" #: src/hd-data.c:497 msgid "Martyrdom of the Bab" msgstr "" #: src/hd-data.c:498 msgid "Bahá'i New Year's Day" msgstr "" #: src/hd-data.c:499 msgid "Ninth Day of Ridvan" msgstr "" #: src/hd-data.c:500 msgid "Twelfth Day of Ridvan" msgstr "" #: src/hd-data.c:501 msgid "Bank Holiday" msgstr "Bank Holiday" #: src/hd-data.c:502 msgid "Basque National Day" msgstr "" #: src/hd-data.c:503 msgid "Battle of Boyne" msgstr "" #: src/hd-data.c:504 msgid "Battle of Puebla" msgstr "" #: src/hd-data.c:505 msgid "Beginning of Financial Year" msgstr "" #: src/hd-data.c:506 msgid "Benito Juárez Day" msgstr "" #: src/hd-data.c:507 msgid "Bodhidharma's Birthday" msgstr "" #: src/hd-data.c:508 msgid "Bosses' Day" msgstr "" #: src/hd-data.c:509 msgid "Boxing Day" msgstr "" #: src/hd-data.c:510 msgid "Bringing Home the Herds Day" msgstr "" #: src/hd-data.c:511 msgid "Bringing in the Harvest Day" msgstr "" #: src/hd-data.c:512 msgid "Buddha's Birthday" msgstr "" #: src/hd-data.c:513 msgid "Burns Night" msgstr "" #: src/hd-data.c:514 msgid "Camoes Day" msgstr "" #: src/hd-data.c:515 msgid "Carnival" msgstr "Carnevale" #: src/hd-data.c:516 msgid "Beltane" msgstr "" #: src/hd-data.c:517 msgid "Imbolg" msgstr "" #: src/hd-data.c:518 msgid "Lughnasa" msgstr "" #: src/hd-data.c:519 msgid "Samhain/Celtic New Year's Day" msgstr "" #: src/hd-data.c:520 msgid "Children's Day" msgstr "" #: src/hd-data.c:521 msgid "Cycle" msgstr "" #: src/hd-data.c:522 msgid "Chinese New Year's Day" msgstr "" #: src/hd-data.c:523 msgid "Chinese New Year's Eve" msgstr "" #: src/hd-data.c:524 msgid "Christmas Day" msgstr "Natale" #: src/hd-data.c:525 msgid "Christmas Eve" msgstr "Vigilia di Natale" #: src/hd-data.c:526 msgid "Christ's Ascension Day" msgstr "" #: src/hd-data.c:527 msgid "Chrysanthenum Day" msgstr "" #: src/hd-data.c:528 msgid "Citizenship Day" msgstr "" #: src/hd-data.c:529 msgid "Civic Holiday" msgstr "" #: src/hd-data.c:530 msgid "Columbus Day" msgstr "" #: src/hd-data.c:531 msgid "Coming of Age Day" msgstr "" #: src/hd-data.c:532 msgid "Confucius' Birthday" msgstr "" #: src/hd-data.c:533 msgid "Constitution Anniversary" msgstr "" #: src/hd-data.c:534 msgid "Coptic New Year's Day" msgstr "" #: src/hd-data.c:535 msgid "Cosmonauts' Day" msgstr "" #: src/hd-data.c:536 msgid "Cross Raising Day" msgstr "" #: src/hd-data.c:537 msgid "Culture Day" msgstr "Giorno della Cultura" #: src/hd-data.c:538 msgid "Day after Mid-Autumn Festival" msgstr "" #: src/hd-data.c:539 msgid "Day after Tomb-Sweeping Day" msgstr "" #: src/hd-data.c:540 msgid "Day of Andalucia" msgstr "" #: src/hd-data.c:541 msgid "Day of Catalonia" msgstr "" #: src/hd-data.c:542 msgid "Day of Galicia" msgstr "" #: src/hd-data.c:543 msgid "Day of Prayer and Repentance" msgstr "" #: src/hd-data.c:544 msgid "Day of Reconciliation" msgstr "" #: src/hd-data.c:545 msgid "Defenders of Motherland Day" msgstr "" #: src/hd-data.c:546 msgid "Double-9 Day" msgstr "" #: src/hd-data.c:547 msgid "Dragon Boat Festival" msgstr "" #: src/hd-data.c:548 msgid "Dynasty Day" msgstr "" #: src/hd-data.c:549 msgid "Easter Monday" msgstr "Lunedì dell'Angelo" #: src/hd-data.c:550 msgid "Easter Sunday" msgstr "" #: src/hd-data.c:551 msgid "Lunar Eclipse" msgstr "Eclisse lunare" #: src/hd-data.c:552 msgid "Solar Eclipse" msgstr "Eclisse solare" #: src/hd-data.c:553 msgid "Annular" msgstr "" #: src/hd-data.c:554 msgid "Partial" msgstr "" #: src/hd-data.c:555 msgid "Penumbral" msgstr "" #: src/hd-data.c:556 msgid "Total" msgstr "" #: src/hd-data.c:557 msgid "Eindhoven's Liberation" msgstr "" #: src/hd-data.c:558 msgid "Election Day" msgstr "" #: src/hd-data.c:559 msgid "Emperor's Birthday" msgstr "" #: src/hd-data.c:560 msgid "Equinox Day" msgstr "Equinozio" #: src/hd-data.c:561 msgid "Ethiopic New Year's Day" msgstr "" #: src/hd-data.c:562 msgid "Father's Day" msgstr "" #: src/hd-data.c:563 msgid "Feast of Corpus Christi" msgstr "" #: src/hd-data.c:564 msgid "Feast of Fortune" msgstr "" #: src/hd-data.c:565 msgid "Feast of Heart Jesus" msgstr "" #: src/hd-data.c:566 msgid "Festival of Lanterns" msgstr "" #: src/hd-data.c:567 msgid "Festival of Sadeh" msgstr "" #: src/hd-data.c:568 msgid "Flag Day" msgstr "" #: src/hd-data.c:569 msgid "Flemish Culture Day" msgstr "" #: src/hd-data.c:570 msgid "Founding of the Communist Party" msgstr "" #: src/hd-data.c:571 msgid "French Culture Day" msgstr "" #: src/hd-data.c:572 msgid "French Revolutionary" msgstr "" #: src/hd-data.c:573 msgid "Friendship Day" msgstr "" #: src/hd-data.c:574 msgid "German Unity Day" msgstr "" #: src/hd-data.c:575 msgid "Good Friday" msgstr "" #: src/hd-data.c:576 msgid "Good Saturday/Easter Eve" msgstr "" #: src/hd-data.c:577 msgid "Grandparents' Day" msgstr "" #: src/hd-data.c:578 msgid "Greenery Day" msgstr "" #: src/hd-data.c:579 msgid "Grotto Day" msgstr "" #: src/hd-data.c:580 msgid "Groundhog Day" msgstr "" #: src/hd-data.c:581 msgid "Guadalupe Virgin's Day" msgstr "" #: src/hd-data.c:582 msgid "Guy Fawke's Day" msgstr "" #: src/hd-data.c:583 msgid "Halloween" msgstr "Halloween" #: src/hd-data.c:584 msgid "Health and Sport's Day" msgstr "" #: src/hd-data.c:585 msgid "Hannukah/Festival of Lights" msgstr "" #: src/hd-data.c:586 msgid "Lag B'Omer" msgstr "" #: src/hd-data.c:587 msgid "Pesach/Passover" msgstr "" #: src/hd-data.c:588 msgid "Purim/Feast of Lots" msgstr "" #: src/hd-data.c:589 msgid "Rosh Hashana/New Year's Day" msgstr "" #: src/hd-data.c:590 msgid "Shavuot/Giving of the Torah" msgstr "" #: src/hd-data.c:591 msgid "Shushan Purim" msgstr "" #: src/hd-data.c:592 msgid "Simchat Torah" msgstr "" #: src/hd-data.c:593 msgid "Sukkot/Feast of Tabernacles" msgstr "" #: src/hd-data.c:594 msgid "Tisha B'Av/Fasting Day" msgstr "" #: src/hd-data.c:595 msgid "Tu B'Shevat/New Year of Trees" msgstr "" #: src/hd-data.c:596 msgid "Yom Hashoah/Holocaust Memorial" msgstr "" #: src/hd-data.c:597 msgid "Yom Hazikaron/Soldiers Memorial" msgstr "" #: src/hd-data.c:598 msgid "Yom Ha Azmaut/Independence Day" msgstr "" #: src/hd-data.c:599 msgid "Yom Kippur/Atonement Day" msgstr "" #: src/hd-data.c:600 msgid "Yom Yerushalayim/Jerusalem Day" msgstr "" #: src/hd-data.c:601 msgid "Holy Innocent's Day" msgstr "" #: src/hd-data.c:602 msgid "Holy Trinity" msgstr "" #: src/hd-data.c:603 msgid "Huravee Day" msgstr "" #: src/hd-data.c:604 msgid "Independence Day" msgstr "" #: src/hd-data.c:605 msgid "Independence Movement Day" msgstr "" #: src/hd-data.c:606 msgid "Independence Proclamation" msgstr "" #: src/hd-data.c:607 msgid "Indian New Year's Day" msgstr "" #: src/hd-data.c:608 msgid "Aga Khan's Birthday" msgstr "" #: src/hd-data.c:609 msgid "Ashura'" msgstr "" #: src/hd-data.c:610 msgid "Eid-al-Adha" msgstr "" #: src/hd-data.c:611 msgid "Eid-al-Fitr" msgstr "" #: src/hd-data.c:612 msgid "Eid-i-Milad-un-Nabi" msgstr "" #: src/hd-data.c:613 msgid "Ghadir" msgstr "" #: src/hd-data.c:614 msgid "Imamat Day" msgstr "" #: src/hd-data.c:615 msgid "Islamic New Year's Day" msgstr "" #: src/hd-data.c:616 msgid "Nuzul-al-Qur'an" msgstr "" #: src/hd-data.c:617 msgid "Quds Day" msgstr "" #: src/hd-data.c:618 msgid "Ramadan" msgstr "" #: src/hd-data.c:619 msgid "Shab-e-Bara't" msgstr "" #: src/hd-data.c:620 msgid "Shab-e-Mi'raj" msgstr "" #: src/hd-data.c:621 msgid "Shab-e Qadr" msgstr "" #: src/hd-data.c:622 msgid "Waqf-al-Arafat" msgstr "" #: src/hd-data.c:623 msgid "Japanese New Year's Day" msgstr "" #: src/hd-data.c:624 msgid "Japanese New Year's Eve" msgstr "" #: src/hd-data.c:625 msgid "Jesus' Circumcision" msgstr "" #: src/hd-data.c:626 msgid "Kwanzaa" msgstr "" #: src/hd-data.c:627 msgid "Labour Day" msgstr "" #: src/hd-data.c:628 msgid "Labour Thanksgiving Day" msgstr "" #: src/hd-data.c:629 msgid "Lao Tze's Birthday" msgstr "" #: src/hd-data.c:630 msgid "Liberation Day" msgstr "" #: src/hd-data.c:631 msgid "Marine Day" msgstr "" #: src/hd-data.c:632 msgid "Martinimas" msgstr "" #: src/hd-data.c:633 msgid "Martin L. King's Day" msgstr "" #: src/hd-data.c:634 msgid "Martyrs' Day" msgstr "" #: src/hd-data.c:635 msgid "Mary's Annunciation Day" msgstr "Annunciazione di Maria" #: src/hd-data.c:636 msgid "Mary's Ascension Day" msgstr "Assunzione di Maria" #: src/hd-data.c:637 msgid "Mary's Candlemas" msgstr "Candelora" #: src/hd-data.c:638 msgid "Mary's Expectation" msgstr "Attesa di Maria" #: src/hd-data.c:639 msgid "Mary's Immaculate Conception" msgstr "Immacolata Concezione di Maria" #: src/hd-data.c:640 msgid "Mary's Maternity" msgstr "Maternità di Maria" #: src/hd-data.c:641 msgid "Mary's Name" msgstr "Nome di Maria" #: src/hd-data.c:642 msgid "Mary's Nativity" msgstr "Natività di Maria" #: src/hd-data.c:643 msgid "Mary's Sacrifice" msgstr "Sacrificio di Maria" #: src/hd-data.c:644 msgid "Mary's Visitation" msgstr "Visitazione della Beata Vergine Maria" #: src/hd-data.c:645 msgid "Mary - Blessed Virgin" msgstr "Maria - Vergine benedetta" #: src/hd-data.c:646 msgid "Maundy Thursday" msgstr "" #: src/hd-data.c:647 msgid "May Day" msgstr "" #: src/hd-data.c:648 msgid "St John's/Midsummer Day" msgstr "" #: src/hd-data.c:649 msgid "Mid-Autumn Festival" msgstr "" #: src/hd-data.c:650 msgid "Mid-Spring Festival" msgstr "" #: src/hd-data.c:651 msgid "Mid-Year Festival" msgstr "" #: src/hd-data.c:652 msgid "Waxing Half Moon" msgstr "" #: src/hd-data.c:653 msgid "Full Moon" msgstr "Luna piena" #: src/hd-data.c:654 msgid "Waning Half Moon" msgstr "" #: src/hd-data.c:655 msgid "New Moon" msgstr "Luna nuova" #: src/hd-data.c:656 msgid "Mother's Day" msgstr "" #: src/hd-data.c:657 msgid "Mother in Law's Day" msgstr "" #: src/hd-data.c:658 msgid "Music Water Banquet" msgstr "" #: src/hd-data.c:659 msgid "National Foundation Day" msgstr "" #: src/hd-data.c:660 msgid "National Holiday" msgstr "" #: src/hd-data.c:661 msgid "National Mourning Day" msgstr "" #: src/hd-data.c:662 msgid "New Year's Day" msgstr "" #: src/hd-data.c:663 msgid "Nurses' Day" msgstr "" #: src/hd-data.c:664 msgid "Old-Armenic New Year" msgstr "" #: src/hd-data.c:665 msgid "Old-Egyptic New Year" msgstr "" #: src/hd-data.c:666 msgid "Orthodox New Year's Day" msgstr "" #: src/hd-data.c:667 msgid "Our Lady Aparecida Day" msgstr "" #: src/hd-data.c:668 msgid "Palm Sunday" msgstr "Domenica delle Palme" #: src/hd-data.c:669 msgid "Parent's Day" msgstr "" #: src/hd-data.c:670 msgid "Passion Sunday" msgstr "Domenica della Passione" #: src/hd-data.c:671 msgid "Peace Festival" msgstr "" #: src/hd-data.c:672 msgid "Peach Festival" msgstr "" #: src/hd-data.c:673 msgid "Whitsunday/Pentecost" msgstr "" #: src/hd-data.c:674 msgid "Noruz/Persian New Year's Day" msgstr "" #: src/hd-data.c:675 msgid "Prayer Day" msgstr "Giorno della preghiera" #: src/hd-data.c:676 msgid "Presidential Inauguration" msgstr "" #: src/hd-data.c:677 msgid "Presidents' Day" msgstr "" #: src/hd-data.c:678 msgid "Presidents' Inform" msgstr "" #: src/hd-data.c:679 msgid "President Lincoln's Birthday" msgstr "" #: src/hd-data.c:680 msgid "Princess' Day" msgstr "" #: src/hd-data.c:681 msgid "Quinquagesima Sunday" msgstr "" #: src/hd-data.c:682 msgid "Reformation Day" msgstr "" #: src/hd-data.c:683 msgid "Remembrance/Memorial Day" msgstr "" #: src/hd-data.c:684 msgid "Republic Day" msgstr "" #: src/hd-data.c:685 msgid "Respect for the Aged Day" msgstr "" #: src/hd-data.c:686 msgid "Revolution Day" msgstr "" #: src/hd-data.c:687 msgid "Rio de Janeiro Anniversary" msgstr "" #: src/hd-data.c:688 msgid "Rogation Sunday" msgstr "" #: src/hd-data.c:689 msgid "Sao Paulo Anniversary" msgstr "" #: src/hd-data.c:690 msgid "Sapporo Snow Festival" msgstr "" #: src/hd-data.c:691 msgid "Season Change/Bean-Festival" msgstr "" #: src/hd-data.c:692 msgid "Septuagesima Sunday" msgstr "" #: src/hd-data.c:693 msgid "Seven Sleepers Day" msgstr "" #: src/hd-data.c:694 msgid "Sexagesima Sunday" msgstr "" #: src/hd-data.c:695 msgid "Shrove Tuesday/Mardi Gras" msgstr "" #: src/hd-data.c:696 msgid "Solstice Day" msgstr "Solstizio" #: src/hd-data.c:697 msgid "Soot-Sweeping Day" msgstr "" #: src/hd-data.c:698 msgid "Spring Festival" msgstr "Festival di primavera" #: src/hd-data.c:699 msgid "Start of common month" msgstr "" #: src/hd-data.c:700 msgid "Start of leap month" msgstr "" #: src/hd-data.c:701 msgid "Star Festival" msgstr "" #: src/hd-data.c:702 msgid "St Andrew's Day" msgstr "Sant'Andrea" #: src/hd-data.c:703 msgid "St Bartholomew Day" msgstr "San Bartolomeo" #: src/hd-data.c:704 msgid "St Berchtold's Day" msgstr "" #: src/hd-data.c:705 msgid "St David's Day" msgstr "" #: src/hd-data.c:706 msgid "St Edward's Day" msgstr "" #: src/hd-data.c:707 msgid "St George's Day" msgstr "San Giorgio" #: src/hd-data.c:708 msgid "St James' Day" msgstr "" #: src/hd-data.c:709 msgid "St Joseph's Day" msgstr "San Giuseppe" #: src/hd-data.c:710 msgid "St Laurentius Day" msgstr "" #: src/hd-data.c:711 msgid "St Nicholas' Day" msgstr "" #: src/hd-data.c:712 msgid "St Nicholas' Eve" msgstr "" #: src/hd-data.c:713 msgid "St Patrick's Day" msgstr "San Patrizio" #: src/hd-data.c:714 msgid "St Peter and St Paul" msgstr "Santi Pietro e Paolo" #: src/hd-data.c:715 msgid "St Stephen's Day" msgstr "Santo Stefano" #: src/hd-data.c:716 msgid "St Valentine's Day" msgstr "San Valentino" #: src/hd-data.c:717 msgid "Sunday of the Dead" msgstr "" #: src/hd-data.c:718 msgid "Swallow Day" msgstr "" #: src/hd-data.c:719 msgid "Sweetest Day" msgstr "" #: src/hd-data.c:720 msgid "Sylvester/New Year's Eve" msgstr "San Silvestro/Capodanno" #: src/hd-data.c:721 msgid "Teacher's Day" msgstr "" #: src/hd-data.c:722 msgid "Thai New Year's Day" msgstr "" #: src/hd-data.c:723 msgid "Thanksgiving Day" msgstr "Giorno del Ringraziamento" #: src/hd-data.c:724 msgid "The King's Birthday" msgstr "" #: src/hd-data.c:725 msgid "The Queen's Birthday" msgstr "" #: src/hd-data.c:726 msgid "Epiphany/Three King's Day" msgstr "" #: src/hd-data.c:727 msgid "Tiradentes Day" msgstr "" #: src/hd-data.c:728 msgid "Tomb-Sweeping Day" msgstr "" #: src/hd-data.c:729 msgid "Transfiguration Day" msgstr "Trasfigurazione di Nostro Signore" #: src/hd-data.c:730 msgid "Tynwald Day" msgstr "" #: src/hd-data.c:731 msgid "Valborg's Eve" msgstr "" #: src/hd-data.c:732 msgid "Venice Carnival" msgstr "" #: src/hd-data.c:733 msgid "Veteran's Day" msgstr "" #: src/hd-data.c:734 msgid "Victoria Day" msgstr "" #: src/hd-data.c:735 msgid "Victory Day" msgstr "" #: src/hd-data.c:736 msgid "Whit Monday" msgstr "" #: src/hd-data.c:737 msgid "Women's Day" msgstr "" #: src/hd-data.c:738 msgid "Women's Shrove Day" msgstr "" #: src/hd-data.c:739 msgid "World Animal Day" msgstr "" #: src/hd-data.c:740 msgid "Youth Day" msgstr "" #: src/hd-data.c:746 msgid "Adelaide Cup Day" msgstr "" #: src/hd-data.c:747 msgid "Admission Day" msgstr "" #: src/hd-data.c:748 msgid "Alaska Day" msgstr "" #: src/hd-data.c:749 msgid "Aleksis Kivi Day" msgstr "" #: src/hd-data.c:750 msgid "Alice-Springs Show Day" msgstr "" #: src/hd-data.c:751 msgid "All Saints' Eve" msgstr "" #: src/hd-data.c:752 msgid "Americas Day" msgstr "" #: src/hd-data.c:753 msgid "Angam Day" msgstr "" #: src/hd-data.c:755 msgid "Anniversary of Amir's Succession" msgstr "" #: src/hd-data.c:756 msgid "Anniversary of Armed Struggle" msgstr "" #: src/hd-data.c:757 msgid "Anniversary of Green March" msgstr "" #: src/hd-data.c:758 msgid "Antillian Day" msgstr "" #: src/hd-data.c:759 msgid "Arab League Day" msgstr "" #: src/hd-data.c:761 msgid "Archbishop Makarios' Memorial Day" msgstr "" #: src/hd-data.c:762 msgid "Archbishop Makarios' Name-Day" msgstr "" #: src/hd-data.c:763 msgid "Arengo Anniversary" msgstr "" #: src/hd-data.c:764 msgid "Army Coup Day" msgstr "" #: src/hd-data.c:765 msgid "Arrival of the Swiss" msgstr "" #: src/hd-data.c:766 msgid "Artigas' Birthday" msgstr "" #: src/hd-data.c:767 msgid "Asuncion Day" msgstr "" #: src/hd-data.c:768 msgid "Ataturk Memorial Day" msgstr "" #: src/hd-data.c:769 msgid "Authority's Power Day" msgstr "" #: src/hd-data.c:770 msgid "Ba'ath Revolution Day" msgstr "" #: src/hd-data.c:771 msgid "Baron Bliss Day" msgstr "" #: src/hd-data.c:772 msgid "Bataan Day" msgstr "" #: src/hd-data.c:773 msgid "Battle of Angamos" msgstr "" #: src/hd-data.c:774 msgid "Battle of Boyacá" msgstr "" #: src/hd-data.c:775 msgid "Battle of Carabobo" msgstr "" #: src/hd-data.c:776 msgid "Battle of Iquique" msgstr "" #: src/hd-data.c:777 msgid "Battle of Las Piedras" msgstr "" #: src/hd-data.c:778 msgid "Battle of Näfels" msgstr "" #: src/hd-data.c:779 msgid "Beginning of Summer" msgstr "" #: src/hd-data.c:780 msgid "Belgrade's Day" msgstr "" #: src/hd-data.c:781 msgid "Bennington Battle Day" msgstr "" #: src/hd-data.c:782 msgid "Blessing of the Water" msgstr "" #: src/hd-data.c:783 msgid "Bloomsday" msgstr "" #: src/hd-data.c:784 msgid "Boganda Day" msgstr "" #: src/hd-data.c:785 msgid "Bonaire Day" msgstr "" #: src/hd-data.c:786 msgid "Boqueron Battle Day" msgstr "" #: src/hd-data.c:787 msgid "Botswana Day" msgstr "" #: src/hd-data.c:788 msgid "Bounty Day" msgstr "" #: src/hd-data.c:789 msgid "Bunker Hill Day" msgstr "" #: src/hd-data.c:790 msgid "Burning of Jan Hus" msgstr "" #: src/hd-data.c:791 msgid "Canberra Day" msgstr "" #: src/hd-data.c:792 msgid "Caricom Day" msgstr "" #: src/hd-data.c:793 msgid "Casimir Pulaski's Birthday" msgstr "" #: src/hd-data.c:794 msgid "Cassinga Day" msgstr "" #: src/hd-data.c:795 msgid "Cayenne Festival" msgstr "" #: src/hd-data.c:796 msgid "Cesar Chavez Day" msgstr "" #: src/hd-data.c:797 msgid "Charter Day" msgstr "" #: src/hd-data.c:798 msgid "Chiang Kai-shek's Birthday" msgstr "" #: src/hd-data.c:799 msgid "Children's White Sunday" msgstr "" #: src/hd-data.c:800 msgid "Colon Day" msgstr "" #: src/hd-data.c:801 msgid "Colorado Day" msgstr "" #: src/hd-data.c:802 msgid "Commonwealth Day" msgstr "" #: src/hd-data.c:803 msgid "Compact Day" msgstr "" #: src/hd-data.c:804 msgid "Confederal Agreement Day" msgstr "" #: src/hd-data.c:805 msgid "Coronation Day" msgstr "" #: src/hd-data.c:806 msgid "Cup Match Day" msgstr "" #: src/hd-data.c:807 msgid "Custom Chief's Day" msgstr "" #: src/hd-data.c:808 msgid "C. Mapinduzi Day" msgstr "" #: src/hd-data.c:809 msgid "Darwin Show Day" msgstr "" #: src/hd-data.c:810 msgid "Day of Goodwill" msgstr "" #: src/hd-data.c:811 msgid "Day of Students Revolt" msgstr "" #: src/hd-data.c:812 msgid "Day of the Free Laos" msgstr "" #: src/hd-data.c:813 msgid "Death of H. Christophe" msgstr "" #: src/hd-data.c:814 msgid "Death of J. Dessalines" msgstr "" #: src/hd-data.c:815 msgid "Death of President Abdallah" msgstr "" #: src/hd-data.c:816 msgid "Death of President Cheikh" msgstr "" #: src/hd-data.c:817 msgid "Death of President Soilih" msgstr "" #: src/hd-data.c:818 msgid "Death of Qaid-i-Azam" msgstr "" #: src/hd-data.c:819 msgid "Death of T. Louverture" msgstr "" #: src/hd-data.c:820 msgid "Defenders Day" msgstr "" #: src/hd-data.c:821 msgid "Dia del Padre" msgstr "" #: src/hd-data.c:822 msgid "Dia de los Maestros" msgstr "" #: src/hd-data.c:823 msgid "Discovery Day" msgstr "" #: src/hd-data.c:824 msgid "Downfall of the Dergue" msgstr "" #: src/hd-data.c:825 msgid "Dry Season Celebration" msgstr "" #: src/hd-data.c:826 msgid "Dr. Sun Yat-sen's Birthday" msgstr "" #: src/hd-data.c:827 msgid "Duarte's Birthday" msgstr "" #: src/hd-data.c:828 msgid "Easter Tuesday" msgstr "" #: src/hd-data.c:829 msgid "Economic Liberation Day" msgstr "" #: src/hd-data.c:830 msgid "Eight Hours Day" msgstr "" #: src/hd-data.c:831 msgid "Elections for National Assembly" msgstr "" #: src/hd-data.c:832 msgid "Errol Barrow Day" msgstr "" #: src/hd-data.c:833 msgid "Evacuation Day" msgstr "" #: src/hd-data.c:834 msgid "Eve of Epiphany" msgstr "" #: src/hd-data.c:835 msgid "Expedition of the 33" msgstr "" #: src/hd-data.c:836 msgid "E. Hostos' Birthday" msgstr "" #: src/hd-data.c:837 msgid "Family Day" msgstr "" #: src/hd-data.c:838 msgid "FAO Day" msgstr "" #: src/hd-data.c:839 msgid "Farmers' Day" msgstr "" #: src/hd-data.c:840 msgid "Father Leval Day" msgstr "" #: src/hd-data.c:841 msgid "Feast of Our Theotokos" msgstr "" #: src/hd-data.c:842 msgid "Fisherman's Day" msgstr "" #: src/hd-data.c:843 msgid "Foundation of NPLA Day" msgstr "" #: src/hd-data.c:844 msgid "Founding of People's Party" msgstr "" #: src/hd-data.c:845 msgid "Garifuna Day" msgstr "" #: src/hd-data.c:847 msgid "General San Martin's Anniversary" msgstr "" #: src/hd-data.c:848 msgid "Gospel Day" msgstr "" #: src/hd-data.c:849 msgid "Guacanaste Day" msgstr "" #: src/hd-data.c:850 msgid "Gustavus Adolphus' Day" msgstr "" #: src/hd-data.c:851 msgid "Heritage Day" msgstr "" #: src/hd-data.c:852 msgid "Heroes Day" msgstr "" #: src/hd-data.c:853 msgid "Hobart Show Day" msgstr "" #: src/hd-data.c:854 msgid "Holy Wednesday" msgstr "" #: src/hd-data.c:855 msgid "Ho Chi Minh's Birthday" msgstr "" #: src/hd-data.c:856 msgid "Human Rights Day" msgstr "" #: src/hd-data.c:857 msgid "Hurricane Supplication Day" msgstr "" #: src/hd-data.c:858 msgid "Hurricane Thanksgiving Day" msgstr "" #: src/hd-data.c:859 msgid "Independence of Cartagena" msgstr "" #: src/hd-data.c:860 msgid "Independence of Cuenca" msgstr "" #: src/hd-data.c:861 msgid "Independence of Guayaquil" msgstr "" #: src/hd-data.c:862 msgid "Independence of Quito" msgstr "" #: src/hd-data.c:863 msgid "Indian Arrival Day" msgstr "" #: src/hd-data.c:864 msgid "Internal Autonomy Day" msgstr "" #: src/hd-data.c:865 msgid "Jefferson Davis' Birthday" msgstr "" #: src/hd-data.c:866 msgid "June Holiday" msgstr "" #: src/hd-data.c:867 msgid "J. Barbosa's Birthday" msgstr "" #: src/hd-data.c:868 msgid "J. Chilembwe Day" msgstr "" #: src/hd-data.c:869 msgid "J. Diego's Birthday" msgstr "" #: src/hd-data.c:870 msgid "J. Robert's Birthday" msgstr "" #: src/hd-data.c:871 msgid "Kamarampaka Day" msgstr "" #: src/hd-data.c:872 msgid "Kartini Day" msgstr "" #: src/hd-data.c:873 msgid "Catherine Show Day" msgstr "" #: src/hd-data.c:874 msgid "Kiev Day" msgstr "" #: src/hd-data.c:875 msgid "Kim Il-Sung's Birthday" msgstr "" #: src/hd-data.c:876 msgid "Kim Jong-Il's Birthday" msgstr "" #: src/hd-data.c:877 msgid "King Kamehameha Day" msgstr "" #: src/hd-data.c:878 msgid "King Rama I Memorial Day/Chakri" msgstr "" #: src/hd-data.c:879 msgid "King Rama V Memorial Day" msgstr "" #: src/hd-data.c:880 msgid "Knabenschiessen" msgstr "" #: src/hd-data.c:881 msgid "Konstantin and Methodius" msgstr "" #: src/hd-data.c:882 msgid "Lapp National Holiday" msgstr "" #: src/hd-data.c:883 msgid "Launceston Cup Day" msgstr "" #: src/hd-data.c:884 msgid "Liberty Day" msgstr "" #: src/hd-data.c:885 msgid "Loss of Muslim Nation" msgstr "" #: src/hd-data.c:886 msgid "Luxembourg City Kermis" msgstr "" #: src/hd-data.c:887 msgid "Lyndon B. Johnson Day" msgstr "" #: src/hd-data.c:888 msgid "L. Rivera's Birthday" msgstr "" #: src/hd-data.c:889 msgid "Madaraka Day" msgstr "" #: src/hd-data.c:890 msgid "Mahatma Gandhi's Birthday" msgstr "" #: src/hd-data.c:891 msgid "Malvinas Day" msgstr "" #: src/hd-data.c:892 msgid "Manila Day" msgstr "" #: src/hd-data.c:893 msgid "Maputo City Day" msgstr "" #: src/hd-data.c:894 msgid "Marien Ngouabi Day" msgstr "" #: src/hd-data.c:895 msgid "Maryland Day" msgstr "" #: src/hd-data.c:896 msgid "Melbourne Cup Day" msgstr "" #: src/hd-data.c:897 msgid "Merchant Day" msgstr "" #: src/hd-data.c:898 msgid "St John's/Midsummers Eve" msgstr "" #: src/hd-data.c:899 msgid "Missionary Day" msgstr "" #: src/hd-data.c:900 msgid "Mi-Carême Day" msgstr "" #: src/hd-data.c:901 msgid "Morazan Day" msgstr "" #: src/hd-data.c:902 msgid "Mosheshoe's Day" msgstr "" #: src/hd-data.c:903 msgid "Motherhood and Beauty Day" msgstr "" #: src/hd-data.c:904 msgid "Naming Day" msgstr "" #: src/hd-data.c:905 msgid "National Bun Day" msgstr "" #: src/hd-data.c:906 msgid "National Heroes Day" msgstr "" #: src/hd-data.c:907 msgid "National Redemption Day" msgstr "" #: src/hd-data.c:908 msgid "National Resistance Day" msgstr "" #: src/hd-data.c:909 msgid "National Revival Day" msgstr "" #: src/hd-data.c:910 msgid "National Unity Day" msgstr "" #: src/hd-data.c:911 msgid "Ndadaye Day" msgstr "" #: src/hd-data.c:912 msgid "Neutrality Day" msgstr "" #: src/hd-data.c:913 msgid "Nevada Day" msgstr "" #: src/hd-data.c:914 msgid "New Regime Anniversary" msgstr "" #: src/hd-data.c:915 msgid "Nobel Day" msgstr "" #: src/hd-data.c:916 msgid "Noi Day" msgstr "" #: src/hd-data.c:917 msgid "OAU Day" msgstr "" #: src/hd-data.c:918 msgid "October Holiday" msgstr "" #: src/hd-data.c:919 msgid "Oil Industry Day" msgstr "" #: src/hd-data.c:920 msgid "Our Lady of Altagracia Day" msgstr "" #: src/hd-data.c:921 msgid "Our Lady of Camarin Day" msgstr "" #: src/hd-data.c:922 msgid "Our Lady of Las Mercedes Day" msgstr "" #: src/hd-data.c:923 msgid "Our Lady of Los Angeles Day" msgstr "" #: src/hd-data.c:924 msgid "Our Lady of Seven Sorrows" msgstr "" #: src/hd-data.c:925 msgid "Our Lady of Victories Day" msgstr "" #: src/hd-data.c:926 msgid "Panama City Day" msgstr "" #: src/hd-data.c:927 msgid "Panamerica Day" msgstr "" #: src/hd-data.c:928 msgid "Paris Peace Agreement Day" msgstr "" #: src/hd-data.c:929 msgid "Patriot's Day" msgstr "" #: src/hd-data.c:930 msgid "People's Uprising Day" msgstr "" #: src/hd-data.c:931 msgid "People Power Day" msgstr "" #: src/hd-data.c:932 msgid "Philippine-American Friendship" msgstr "" #: src/hd-data.c:933 msgid "Pichincha Day" msgstr "" #: src/hd-data.c:934 msgid "Picnic Day" msgstr "" #: src/hd-data.c:935 msgid "Pioneer Day" msgstr "" #: src/hd-data.c:936 msgid "Poya Day" msgstr "" #: src/hd-data.c:937 msgid "Prince Kalanianaole Day" msgstr "" #: src/hd-data.c:938 msgid "Prince of Wales' Birthday" msgstr "" #: src/hd-data.c:939 msgid "Proclamation Day" msgstr "" #: src/hd-data.c:940 msgid "Qaid-i-Azam's Birthday" msgstr "" #: src/hd-data.c:941 msgid "Ratu Sukuma Day" msgstr "" #: src/hd-data.c:942 msgid "Recreation Day" msgstr "" #: src/hd-data.c:943 msgid "Referendum Day" msgstr "" #: src/hd-data.c:944 msgid "Regatta Day" msgstr "" #: src/hd-data.c:945 msgid "Regency Exchange" msgstr "" #: src/hd-data.c:946 msgid "Restoration Day" msgstr "" #: src/hd-data.c:947 msgid "Return Day" msgstr "" #: src/hd-data.c:948 msgid "Reunification Day" msgstr "" #: src/hd-data.c:949 msgid "Rizal Day" msgstr "" #: src/hd-data.c:950 msgid "Rwagasore Day" msgstr "" #: src/hd-data.c:951 msgid "Saba Day" msgstr "" #: src/hd-data.c:952 msgid "San Jacinto Day" msgstr "" #: src/hd-data.c:953 msgid "San José Day" msgstr "" #: src/hd-data.c:954 msgid "SAR Establishment Day" msgstr "" #: src/hd-data.c:955 msgid "School Holiday" msgstr "" #: src/hd-data.c:956 msgid "Sechseläuten" msgstr "" #: src/hd-data.c:957 msgid "Separation Day" msgstr "" #: src/hd-data.c:958 msgid "Seretse Khama Day" msgstr "" #: src/hd-data.c:959 msgid "Settlers Day" msgstr "" #: src/hd-data.c:960 msgid "Seward's Day" msgstr "" #: src/hd-data.c:961 msgid "Shaheed Day" msgstr "" #: src/hd-data.c:962 msgid "Sheep Festival" msgstr "" #: src/hd-data.c:963 msgid "Sheikh Zayed's Ascension Day" msgstr "" #: src/hd-data.c:964 msgid "Simon Bolivar's Day" msgstr "" #: src/hd-data.c:965 msgid "Sinai-Liberation Day" msgstr "" #: src/hd-data.c:966 msgid "Slave-Liberation Day" msgstr "" #: src/hd-data.c:967 msgid "Sniff the Breeze Day" msgstr "" #: src/hd-data.c:968 msgid "Solidarity Day" msgstr "" #: src/hd-data.c:969 msgid "Somers Day" msgstr "" #: src/hd-data.c:970 msgid "Statia-American Day" msgstr "" #: src/hd-data.c:971 msgid "Student's Day" msgstr "" #: src/hd-data.c:972 msgid "St Agata Day" msgstr "" #: src/hd-data.c:973 msgid "St Canute's Day" msgstr "" #: src/hd-data.c:974 msgid "St Cedilia's Day" msgstr "" #: src/hd-data.c:975 msgid "St Charles' Day" msgstr "" #: src/hd-data.c:976 msgid "St Demetrius' Day" msgstr "" #: src/hd-data.c:977 msgid "St Dévote Day" msgstr "" #: src/hd-data.c:978 msgid "St Eliah's Day" msgstr "" #: src/hd-data.c:979 msgid "St Jean Baptiste Day" msgstr "" #: src/hd-data.c:980 msgid "St Lucia's Day" msgstr "" #: src/hd-data.c:981 msgid "St Marguerite's Day" msgstr "" #: src/hd-data.c:982 msgid "St Maroon's Day" msgstr "" #: src/hd-data.c:983 msgid "St Michael's Day" msgstr "" #: src/hd-data.c:984 msgid "St Olav's Day" msgstr "" #: src/hd-data.c:985 msgid "St Olav's Eve" msgstr "" #: src/hd-data.c:986 msgid "St Paul's Shipswreck" msgstr "" #: src/hd-data.c:987 msgid "St Rose of Lima" msgstr "" #: src/hd-data.c:988 msgid "St Ursula's Day" msgstr "" #: src/hd-data.c:989 msgid "St Vincent de Paul's Day" msgstr "" #: src/hd-data.c:990 msgid "Suez Victory Day" msgstr "" #: src/hd-data.c:991 msgid "Sultan Qaboos' Birthday" msgstr "" #: src/hd-data.c:992 msgid "Svetitskhovloba" msgstr "" #: src/hd-data.c:993 msgid "Sweden Day" msgstr "" #: src/hd-data.c:994 msgid "S. Doe's Birthday" msgstr "" #: src/hd-data.c:995 msgid "Tennant-Creek Show Day" msgstr "" #: src/hd-data.c:996 msgid "Territory Day" msgstr "" #: src/hd-data.c:997 msgid "The Crown Princesse's Birthday" msgstr "" #: src/hd-data.c:998 msgid "The Crown Princesse's Name-Day" msgstr "" #: src/hd-data.c:999 msgid "The Crown Prince's Birthday" msgstr "" #: src/hd-data.c:1000 msgid "The King's Name-Day" msgstr "" #: src/hd-data.c:1001 msgid "The Queen's Name-Day" msgstr "" #: src/hd-data.c:1002 msgid "Topou I Day" msgstr "" #: src/hd-data.c:1003 msgid "Town Meeting Day" msgstr "" #: src/hd-data.c:1004 msgid "Traditional Day" msgstr "" #: src/hd-data.c:1005 msgid "Transfer Day" msgstr "" #: src/hd-data.c:1006 msgid "Truman Day" msgstr "" #: src/hd-data.c:1007 msgid "Union Day" msgstr "" #: src/hd-data.c:1008 msgid "Union with Sweden dissolved" msgstr "" #: src/hd-data.c:1009 msgid "United Nations Day" msgstr "" #: src/hd-data.c:1010 msgid "Unity Factory Day" msgstr "" #: src/hd-data.c:1011 msgid "Victor-Schoelcher Day" msgstr "" #: src/hd-data.c:1012 msgid "Vidovdan" msgstr "" #: src/hd-data.c:1013 msgid "West Virginia Day" msgstr "" #: src/hd-data.c:1014 msgid "Whitsun Eve" msgstr "" #: src/hd-data.c:1015 msgid "W. Tubman's Birthday" msgstr "" #: src/hd-data.c:1016 msgid "Yap Day" msgstr "" #: src/hd-data.c:1017 msgid "Day of Czech Statehood" msgstr "" #: src/hd-data.c:1082 msgid "Zi/Rat" msgstr "Zi/Topo" #: src/hd-data.c:1082 msgid "Chou/Ox" msgstr "Chou/Bue" #: src/hd-data.c:1083 msgid "Yin/Tiger" msgstr "Yin/Tigre" #: src/hd-data.c:1083 msgid "Mao/Rabbit" msgstr "Mao/Coniglio" #: src/hd-data.c:1084 msgid "Chen/Dragon" msgstr "Chen/Drago" #: src/hd-data.c:1084 msgid "Si/Snake" msgstr "Si/Serpente" #: src/hd-data.c:1085 msgid "Wu/Horse" msgstr "Wu/Cavallo" #: src/hd-data.c:1085 msgid "Wei/Sheep" msgstr "Wei/Pecora" #: src/hd-data.c:1086 msgid "Shen/Monkey" msgstr "Shen/Scimmia" #: src/hd-data.c:1086 msgid "You/Rooster" msgstr "You/Gallo" #: src/hd-data.c:1087 msgid "Xu/Dog" msgstr "Xu/Cane" #: src/hd-data.c:1087 msgid "Hai/Pig" msgstr "Hai/Maiale" #: src/hd-data.c:1284 msgid "Ast" msgstr "" #: src/hd-data.c:1397 src/hd-data.c:1480 msgid "Bah" msgstr "" #: src/hd-data.c:1547 msgid "Cel" msgstr "" #: src/hd-data.c:1689 src/hd-data.c:2222 msgid "Chi" msgstr "" #: src/hd-data.c:1803 src/hd-data.c:2322 src/hd-data.c:3839 #, c-format msgid "Cannot calculate lunisolar calendar for %d correctly" msgstr "" #: src/hd-data.c:2224 src/hd-data.c:3727 msgid "Jap" msgstr "" #: src/hd-data.c:2420 msgid "Chr" msgstr "" #: src/hd-data.c:2654 src/hd-data.c:4171 msgid "FRR" msgstr "" #: src/hd-data.c:2775 src/hd-data.c:2957 msgid "Heb" msgstr "" #: src/hd-data.c:3187 src/hd-data.c:3616 msgid "Isl" msgstr "" #: src/hd-data.c:4241 src/hd-data.c:4336 msgid "AMO" msgstr "" #: src/hd-data.c:4262 src/hd-data.c:4334 msgid "EGO" msgstr "" #: src/hd-data.c:4444 msgid "OxN" msgstr "" #: src/hd-data.c:4446 msgid "OxO" msgstr "" #: src/hd-data.c:4647 src/hd-data.c:4776 msgid "Per" msgstr "" #: src/hd-data.c:4844 msgid "Zod" msgstr "" #: src/hd-use.c:928 msgid " day" msgstr " giorno" #: src/hd-use.c:1973 src/hd-use.c:1978 src/hd-use.c:1982 src/hd-use.c:1989 #: src/hd-use.c:1993 src/hd-use.c:2089 src/hd-use.c:2273 msgid "Eternal holiday list" msgstr "" #: src/hd-use.c:1977 #, c-format msgid "%s:%*sThe year %0*d is A leap year" msgstr "" #: src/hd-use.c:1981 #, c-format msgid "%s:%*sThe year %0*d is NO leap year" msgstr "" #: src/hd-use.c:1988 #, c-format msgid "%s:%*sThe year %d is A leap year" msgstr "" #: src/hd-use.c:1992 #, c-format msgid "%s:%*sThe year %d is NO leap year" msgstr "" #: src/hd-use.c:2242 #, c-format msgid " = %+4d day" msgstr " = %+4d giorno" #: src/hd-use.c:2244 #, c-format msgid " = %+4d days" msgstr " = %+4d giorni" #: src/hd-use.c:2271 #, c-format msgid "%s%s contains %d maximum entries now!%s" msgstr "" #: src/help.c:64 #, c-format msgid "Compiled with %s%s for %s%s%s%s" msgstr "" #: src/help.c:74 msgid "# Day number (must be defined)" msgstr "" #: src/help.c:75 msgid "# Year number (must be defined)" msgstr "" #: src/help.c:76 msgid "# Weekday name (may be defined)" msgstr "" #: src/help.c:77 msgid "Month group (exactly one member must be defined):" msgstr "" #: src/help.c:78 msgid "# Month number" msgstr "" #: src/help.c:79 msgid "# Month name" msgstr "" #: src/help.c:80 msgid "Highlighting group (all members must be defined):" msgstr "" #: src/help.c:81 msgid "Start of highlighting sequence/marking character" msgstr "" #: src/help.c:83 msgid "End of highlighting sequence/marking character" msgstr "" #: src/help.c:85 msgid "Character replacement:" msgstr "" #: src/help.c:86 #, c-format msgid "Space/blank ('%c') character" msgstr "" #: src/help.c:87 #, c-format msgid "Underscore ('%c') character" msgstr "" #: src/help.c:88 #, c-format msgid "Percent ('%c') character" msgstr "" #: src/help.c:89 #, c-format msgid "Backslash ('%c') character" msgstr "" #: src/help.c:90 msgid "All format elements marked by # may optionally" msgstr "" #: src/help.c:91 msgid "contain a format instruction, which template is like:" msgstr "" #: src/help.c:92 msgid "[ALIGNMENT [SIGN] [ZERO] WIDTH [STYLE] [SUFFIX] FORMAT]" msgstr "" #: src/help.c:93 msgid "ALIGNMENT group (exactly one member must be defined):" msgstr "" #: src/help.c:94 msgid "Field contents placed at the left margin using width WIDTH" msgstr "" #: src/help.c:96 msgid "Field contents placed in centered manner using width WIDTH" msgstr "" #: src/help.c:98 msgid "Field contents placed at the right margin using width WIDTH" msgstr "" #: src/help.c:100 msgid "SIGN (may be defined):" msgstr "" #: src/help.c:101 msgid "Numerical value is provided with leading sign" msgstr "" #: src/help.c:102 msgid "ZERO (may be defined):" msgstr "" #: src/help.c:103 msgid "Numerical value is filled with leading zero(es)" msgstr "" #: src/help.c:104 msgid "WIDTH (must be defined):" msgstr "" #: src/help.c:105 #, c-format msgid "Field has the width N (%d...%d)" msgstr "" #: src/help.c:106 msgid "STYLE group (exactly one member may be defined):" msgstr "" #: src/help.c:107 msgid "Field contents is converted to upper-case letters" msgstr "" #: src/help.c:108 msgid "Field contents is converted to lower-case letters" msgstr "" #: src/help.c:109 msgid "Field contents is converted to capitalized words" msgstr "" #: src/help.c:110 msgid "SUFFIX (may be defined):" msgstr "SUFFISSO (può essere definito):" #: src/help.c:111 msgid "Numerical value is provided with an ordinal number suffix" msgstr "" #: src/help.c:113 msgid "FORMAT group (exactly one member must be defined):" msgstr "" #: src/help.c:114 msgid "Field contents is not cut after position WIDTH" msgstr "" #: src/help.c:115 msgid "Field contents is cut after position WIDTH" msgstr "" #: src/help.c:129 msgid "legal holidays" msgstr "tutte le feste nazionali" #: src/help.c:130 msgid "holidays" msgstr "tutte le ferie" #: src/help.c:131 msgid "Mondays" msgstr "tutti i lunedì" #: src/help.c:132 msgid "Tuesdays" msgstr "tutti i martedì" #: src/help.c:133 msgid "Wednesdays" msgstr "tutti i mercoledì" #: src/help.c:134 msgid "Thursdays" msgstr "tutti i giovedì" #: src/help.c:135 msgid "Fridays" msgstr "tutti i venerdì" #: src/help.c:136 msgid "Saturdays" msgstr "tutti i sabati" #: src/help.c:137 msgid "Sundays" msgstr "tutte le domeniche" #: src/help.c:138 msgid "Mondays...Thursdays" msgstr "tutti i lunedì...giovedì" #: src/help.c:139 msgid "Mondays...Fridays" msgstr "tutti i lunedì...venerdì" #: src/help.c:169 #, 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:242 msgid "OPTION" msgstr "OPZIONE" #: src/help.c:255 msgid " Display help text and quit program" msgstr " Mostra questo aiuto ed esce da programma" #: src/help.c:272 msgid " Display extended help text and quit program" msgstr " Mostra un aiuto esteso ed esce dal programma" #: src/help.c:290 msgid " Display software license and quit program" msgstr " Mostra la licenza ed esce dal programma" #: src/help.c:301 msgid " Display version information and quit program" msgstr " Mostra le informazioni sulla versione ed esce dal programma" #: src/help.c:312 #, c-format msgid " Set EXIT status of program to %d on `%s' etc." msgstr "" #: src/help.c:325 #, c-format msgid " Create response file for the `%cFILE' option" msgstr "" #: src/help.c:329 #, 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:343 #, 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:345 #, c-format msgid " %-3s = File name of the shell script" msgstr " %-3s = Nome file dello script di shell" #: src/help.c:359 msgid " Define global date variable(s) \"DVAR->a...d|f...s|u...|z\"" msgstr "" #: src/help.c:363 #, c-format msgid " %-3s = \"DVAR%s%s%s\" definitions separated by `%s' characters" msgstr "" #: src/help.c:368 #, c-format msgid "" " E.g. %sv a%s1127%sb%s054 Set `a' to Nov 27 and `b' to May 4" msgstr "" #: src/help.c:380 msgid " Export local date variables from file to file" msgstr " Esporta variabili locali della data da file a file" #: src/help.c:392 #, c-format msgid " Define global text variable(s) \"TVAR->%ca...%cz\"" msgstr "" #: src/help.c:397 #, c-format msgid " %-3s = \"TVAR%sTEXT\" definitions separated by `%s' characters" msgstr "" #: src/help.c:402 #, c-format msgid "" " E.g. %sr %ca%sfoo%s%cb%sbar Set `%ca' to `foo' and `%cb' to " "`bar'" msgstr "" #: src/help.c:408 #, c-format msgid "" " = \"TVAR[%s|%c%s]COMMAND\" definitions separated by `%s' characters" msgstr "" #: src/help.c:413 #, c-format msgid "" " E.g. %sr %ca%sfoo Assign output of command `foo' to `%ca'" msgstr "" #: src/help.c:425 msgid " Export local text variables from file to file" msgstr " Esporta variabili locali di testo da file a file" #: src/help.c:437 src/help.c:467 #, c-format msgid "" " Display only those fixed dates, whose date is not excluded by %s" msgstr "" #: src/help.c:442 #, 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:447 msgid " is a LOWER-CASE-LETTER, it means a non-exclusion!" msgstr " è una LETTERA MINUSCOLA, significa non-esclusione." #: src/help.c:451 #, c-format msgid " %c = Exclusion of all %s" msgstr " %c = Esclusione di %s" #: src/help.c:472 #, c-format msgid " %-3s = List of `%c[DATE][%c[DATE]]' and/or `%c[DATE][%c[DATE]]'" msgstr "" #: src/help.c:476 #, c-format msgid " expressions separated by `%s' characters" msgstr " espressioni separate da caratteri \"%s\"" #: src/help.c:489 #, c-format msgid " Display only those fixed dates, whose text is matched by %s" msgstr "" #: src/help.c:494 #, c-format msgid " %-3s = Any text respectively \"regular expression\" you like" msgstr "" #: src/help.c:507 #, c-format msgid " Ignore case distinctions if `%s' option is given" msgstr "" #: src/help.c:519 #, c-format msgid " Revert the sense of matching of the `%s' option" msgstr "" #: src/help.c:530 msgid " Display some debug information" msgstr " Mostra alcune informazioni di debug" #: src/help.c:538 #, c-format msgid "" " [%-3s] = internal Information if program internal maximums are reached" msgstr "" #: src/help.c:547 msgid "" " = handled Like `internal' and file names which are handled" msgstr "" #: src/help.c:555 msgid "" " = unhandled Like `internal' and file names which are unhandled" msgstr "" #: src/help.c:563 msgid " = all Like `handled' and `unhandled' together" msgstr "" #: src/help.c:571 msgid "" " = abort Like `all' and abort if file name can't be handled" msgstr "" #: src/help.c:581 msgid " Use special format for calendar sheet" msgstr "" #: src/help.c:584 msgid " [MOD] = - Use standard format for calendar sheet" msgstr "" #: src/help.c:595 msgid " Use leap year rule of Eastern Orthodox churches" msgstr "" #: src/help.c:605 msgid " Provide calendar sheet with week numbers" msgstr " Fornisce un calendario con in tabella i numeri di settimana" #: src/help.c:616 #, c-format msgid " Determine type of week numbers (actual: %s)" msgstr " Determina il tipo di numeri di settimana (attuale: %s)" #: src/help.c:617 msgid "Standard" msgstr "Standard" #: src/help.c:623 #, c-format msgid " %-3s = yes ISO-8601:1988 week numbers" msgstr " %-3s = sì Numeri di settimana ISO-8601:1988" #: src/help.c:630 msgid " = no Standard week numbers" msgstr " = no Numeri di settimana standard" #: src/help.c:641 msgid " Suppress output of calendar sheet explicitly" msgstr "" #: src/help.c:654 #, c-format msgid " Direct output through external `%s' pager" msgstr "" #: src/help.c:660 src/help.c:662 msgid " Direct output through simple internal pager" msgstr "" #: src/help.c:679 msgid " Disable highlighting of text, holiday resp., actual day" msgstr "" #: src/help.c:694 msgid " Forces highlighting sequences if output is redirected/piped" msgstr "" #: src/help.c:706 msgid "" " Set highlighting sequence pairs 1 (=actual day) and 2 (=holiday)" msgstr "" #: src/help.c:710 #, c-format msgid " %-3s = Highlighting sequence pairs separated by `%s' characters" msgstr "" #: src/help.c:715 #, c-format msgid "" " E.g. %sH \\x2%s\\xAE Use hex values 2 and AE for sequence 1" msgstr "" #: src/help.c:720 #, c-format msgid "" " E.g. %sH %s%s*%s* Use characters `*' and `*' for sequence 2" msgstr "" #: src/help.c:731 msgid " Modify format of year calendar" msgstr "" #: src/help.c:735 #, 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:747 msgid " Use consecutive day of year in calendar sheet" msgstr "" #: src/help.c:751 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:763 msgid " Use consecutive day of year in eternal holiday list" msgstr "" #: src/help.c:767 src/help.c:783 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:779 msgid " Use consecutive day of year in fixed date list" msgstr "" #: src/help.c:794 #, c-format msgid " Set starting day of week (actual: %s)" msgstr " Imposta giorno iniziale della settimana (attuale: %s)" #: src/help.c:827 #, c-format msgid " Send output via `%s' program to user" msgstr "" #: src/help.c:856 msgid "UNKNOWN" msgstr "" #: src/help.c:859 #, 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:877 #, c-format msgid " Display eternal holiday list (Year in range: %d...%d)" msgstr "" #: src/help.c:880 msgid " n = Legal days and memorial days" msgstr "" #: src/help.c:882 msgid " N = Legal days only" msgstr " N = Solo feste nazionali" #: src/help.c:884 src/help.c:1630 #, c-format msgid " [MOD] = %s Descending sort order" msgstr " [MOD] = %s Ordinamento decrescente" #: src/help.c:896 msgid " Suppress leading blank line of eternal holiday list" msgstr "" #: src/help.c:906 msgid " Exclude title of eternal holiday list" msgstr "" #: src/help.c:918 msgid " Provide eternal holiday list with astronomical data" msgstr "" #: src/help.c:930 msgid " Provide eternal holiday list with Bahá'i calendar holidays" msgstr "" #: src/help.c:942 msgid " Provide eternal holiday list with Bahá'i calendar months" msgstr "" #: src/help.c:954 msgid " Provide eternal holiday list with Celtic calendar holidays" msgstr "" #: src/help.c:966 msgid "" " Provide eternal holiday list with Chinese flexible calendar " "holidays" msgstr "" #: src/help.c:978 msgid "" " Provide eternal holiday list with Chinese flexible calendar months" msgstr "" #: src/help.c:990 msgid " Provide eternal holiday list with Chinese calendar holidays" msgstr "" #: src/help.c:1002 msgid " Provide eternal holiday list with Chinese calendar months" msgstr "" #: src/help.c:1014 msgid "" " Provide eternal holiday list with Christian Western calendar " "holidays" msgstr "" #: src/help.c:1026 msgid " Provide eternal holiday list with Coptic calendar months" msgstr "" #: src/help.c:1038 msgid " Provide eternal holiday list with Ethiopic calendar months" msgstr "" #: src/help.c:1050 msgid "" " Provide eternal holiday list with French Revolutionary calendar " "months" msgstr "" #: src/help.c:1062 msgid " Provide eternal holiday list with Hebrew calendar holidays" msgstr "" #: src/help.c:1074 msgid " Provide eternal holiday list with Hebrew calendar months" msgstr "" #: src/help.c:1086 msgid "" " Provide eternal holiday list with Indian civil-calendar months" msgstr "" #: src/help.c:1098 msgid "" " Provide eternal holiday list with Islamic civil-calendar holidays" msgstr "" #: src/help.c:1110 msgid "" " Provide eternal holiday list with Islamic civil-calendar months" msgstr "" #: src/help.c:1122 msgid "" " Provide eternal holiday list with Japanese flexible calendar " "holidays" msgstr "" #: src/help.c:1134 msgid "" " Provide eternal holiday list with Japanese flexible calendar months" msgstr "" #: src/help.c:1146 msgid " Provide eternal holiday list with Japanese calendar holidays" msgstr "" #: src/help.c:1158 msgid " Provide eternal holiday list with Japanese calendar months" msgstr "" #: src/help.c:1171 msgid "" " Provide eternal holiday list with multicultural New Year holidays" msgstr "" #: src/help.c:1183 msgid " Provide eternal holiday list with Old-Armenic calendar months" msgstr "" #: src/help.c:1195 msgid " Provide eternal holiday list with Old-Egyptic calendar months" msgstr "" #: src/help.c:1207 msgid "" " Provide eternal holiday list with Orthodox new-calendar holidays" msgstr "" #: src/help.c:1219 msgid "" " Provide eternal holiday list with Orthodox old-calendar holidays" msgstr "" #: src/help.c:1231 msgid "" " Provide eternal holiday list with Persian Jalaali-calendar holidays" msgstr "" #: src/help.c:1243 msgid "" " Provide eternal holiday list with Persian Jalaali-calendar months" msgstr "" #: src/help.c:1255 msgid " Provide eternal holiday list with zodiacal marker data" msgstr "" #: src/help.c:1267 msgid " Provide eternal holiday list with country specific holidays" msgstr "" #: src/help.c:1271 #, c-format msgid " %-3s = Single country resp., territory code or a list of these," msgstr "" #: src/help.c:1276 #, c-format msgid "" " which are connected by `%s' characters. Countries/territories," msgstr "" #: src/help.c:1281 msgid " marked by # have an incomplete recording of holidays" msgstr "" #: src/help.c:1285 #, c-format msgid " %-*s = Holidays in %s" msgstr " %-*s = Ferie in %s" #: src/help.c:1306 msgid "" " Set reference value for rise/set time respectively shadow length" msgstr "" #: src/help.c:1310 #, c-format msgid " %-3s = Angular value respectively factor in range: %+.1f...%+.1f" msgstr "" #: src/help.c:1321 msgid " Set base data of Earth's atmosphere" msgstr "" #: src/help.c:1325 #, 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:1328 #, c-format msgid " Air pressure in Millibar (actual: %.3f)" msgstr " Pressione atmosferica in Millibar (attuale: %.3f)" #: src/help.c:1333 #, c-format msgid " Air temperature in degrees Celsius (actual: %+.3f)" msgstr " Temperatura dell'aria in gradi Celsius (attuale: %+.3f)" #: src/help.c:1343 msgid " Limit rise/set times of Sun to the day" msgstr "" #: src/help.c:1355 msgid " Represent astronomical times and data with utmost precision" msgstr "" #: src/help.c:1365 #, c-format msgid " Execute `%c%c[%s]' shell commands" msgstr "" #: src/help.c:1368 #, c-format msgid " and \"TVAR[%s|%c%s]COMMAND\" assignments" msgstr "" #: src/help.c:1380 msgid " Change base time of astronomical functions" msgstr "" #: src/help.c:1383 msgid " respectively, change cycle-starting time" msgstr "" #: src/help.c:1393 #, 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:1401 #, 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:1417 msgid " Change cycle-ending time" msgstr "" #: src/help.c:1421 #, 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:1435 msgid " Change cycle-timestep" msgstr "" #: src/help.c:1439 #, c-format msgid " %-3s = MMMM|HH%s[MM] Timestep value (actual: %02d%s%02d)" msgstr "" #: src/help.c:1452 msgid " Change base year of calendar" msgstr "" #: src/help.c:1456 #, c-format msgid " %-3s = [%s|%s]YYYY Year offset value (actual: %d)" msgstr "" #: src/help.c:1468 msgid " Set period of Gregorian Reformation" msgstr "" #: src/help.c:1470 #, c-format msgid " Actual respected period: %02d-%02d %s %0*d" msgstr "" #: src/help.c:1476 #, c-format msgid " %-*d%*s = Set period to: %02d-%02d %s %0*d" msgstr "" #: src/help.c:1484 #, c-format msgid " %-3s = %s%c%s%s%s%s%s%s Set period explicitly" msgstr "" #: src/help.c:1498 #, c-format msgid " Set order of date elements using the %s format text" msgstr "" #: src/help.c:1501 #, c-format msgid " Actual: (%s) `%s' (%s)" msgstr " Attuale: (%s) \"%s\" (%s)" #: src/help.c:1503 msgid "self-defined" msgstr "" #: src/help.c:1508 #, c-format msgid " %-6s = Format is: `%s' (%s)" msgstr " %-6s = Il formato è: \"%s\" (%s)" #: src/help.c:1516 #, c-format msgid " %-3s = Define individual format. Respected format elements are:" msgstr "" #: src/help.c:1559 msgid " Define translatable country specific special character pairs" msgstr "" #: src/help.c:1563 #, c-format msgid " %-3s = UPPER-CASE-LETTER\"\"LOWER-CASE-LETTER... definitions" msgstr "" #: src/help.c:1568 #, c-format msgid "" " E.g. a `%s%s%s%s%s%s%s%s' %-3s causes the correct conversion of" msgstr "" #: src/help.c:1573 msgid "" " the preceding special characters in an individual date format," msgstr "" #: src/help.c:1577 msgid "" " which has a STYLE format instruction component, and that, how" msgstr "" #: src/help.c:1581 msgid " they are used by the character set used in Germany" msgstr "" #: src/help.c:1590 #, c-format msgid "+++ FIXED DATES +++" msgstr "+++ DATE FISSE +++" #: src/help.c:1611 #, c-format msgid " Use standard resource file `.%s%s' for fixed date list" msgstr "" #: src/help.c:1616 #, c-format msgid " Use standard resource file `%s%s' for fixed date list" msgstr "" #: src/help.c:1620 src/help.c:2160 msgid " Implies period: Today" msgstr "" #: src/help.c:1624 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:1628 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:1640 msgid "" " [MOD] = One or more of the following modifiers which are marked by #" msgstr "" #: src/help.c:1653 #, c-format msgid " %-3s = Heading/Title text used for fixed date list" msgstr "" #: src/help.c:1656 #, c-format msgid " Actual: `%s'" msgstr " Attuale: \"%s\"" #: src/help.c:1669 msgid " # g[MOD] = Group fixed dates by day using text MOD" msgstr "" #: src/help.c:1681 msgid " 1. Representation of text" msgstr " 1. Rappresentazione del testo" #: src/help.c:1693 msgid " = Set width of the biorhythm text graphics" msgstr "" #: src/help.c:1697 #, c-format msgid " %-3s = %d...%d Length of a single axis" msgstr "" #: src/help.c:1710 msgid " = Set height of the Moon phase text graphics" msgstr "" #: src/help.c:1714 #, c-format msgid " %-3s = %d...%d Total number of lines" msgstr "" #: src/help.c:1726 msgid " # a = Display origin of fixed date" msgstr "" #: src/help.c:1738 msgid " # A = Display using alternative list format" msgstr "" #: src/help.c:1750 msgid " # e = Include legal days and memorial days" msgstr "" #: src/help.c:1752 msgid " # E = Include legal days only" msgstr "" #: src/help.c:1762 msgid " # k = Display week number" msgstr "" #: src/help.c:1774 msgid " # o = Omit repeating date part of fixed dates" msgstr "" #: src/help.c:1786 msgid "" " # Q = Suppress leading blank line of fixed dates list" msgstr "" #: src/help.c:1798 msgid " # U = Suppress date part of fixed dates" msgstr "" #: src/help.c:1810 msgid " # J = Suppress text part of fixed dates" msgstr "" #: src/help.c:1822 msgid " # x = Exclude title of fixed date list" msgstr "" #: src/help.c:1834 msgid " # z = Display consecutive number of fixed date" msgstr "" #: src/help.c:1846 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:1854 msgid " 2. Respected period" msgstr "" #: src/help.c:1866 msgid " = Manage `29-FEBRUARY' in non-leap years" msgstr "" #: src/help.c:1874 #, c-format msgid " %-3s = february Respect at `28-FEBRUARY'" msgstr "" #: src/help.c:1883 #, c-format msgid " %-3s = march Respect at `01-MARCH'" msgstr "" #: src/help.c:1896 msgid "" " # d = Include actual date if list of periods is " "generated" msgstr "" #: src/help.c:1908 msgid "" " # l = Generate list of periods instead of a single " "period" msgstr "" #: src/help.c:1924 msgid " # Nd = Single absolute day N" msgstr "" #: src/help.c:1926 #, c-format msgid " # %cdN = Single absolute day N" msgstr "" #: src/help.c:1931 msgid " # NMOD = Single day N relative to today" msgstr "" #: src/help.c:1933 #, c-format msgid " MOD = %s Forwards" msgstr "" #: src/help.c:1935 #, c-format msgid " = %s Backwards" msgstr "" #: src/help.c:1938 msgid " # Nw = Complete week N" msgstr "" #: src/help.c:1942 msgid "" " N = 0 1st week / last week of previous year" msgstr "" " N = 0 1ª / ultima settimana dell'anno " "precedente" #: src/help.c:1946 msgid " N = 1...52 1st...52nd week (always)" msgstr " N = 1...52 1ª...52ª settimana (sempre)" #: src/help.c:1950 msgid " N = 53 53rd week (sometimes)" msgstr " N = 53 53ª settimana (qualche volta)" #: src/help.c:1952 msgid " N = 99 Last week" msgstr " N = 99 Ultima settimana" #: src/help.c:1955 #, c-format msgid " # %s%s = Single day %s of month %s" msgstr "" #: src/help.c:1961 #, c-format msgid " # %s%sN = Single N'th weekday %s of month %s" msgstr "" #: src/help.c:1966 #, 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:1971 #, c-format msgid " N = 5 5th weekday %s (sometimes)" msgstr "" " N = 5 5° giorno della settimana %s (qualche " "volta)" #: src/help.c:1975 #, c-format msgid " N = 9 Last weekday %s" msgstr "" " N = 9 Ultimo giorno della settimana %s" #: src/help.c:1979 #, c-format msgid " # %cdN%s = Single N'th weekday %s" msgstr "" #: src/help.c:1984 #, 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:1989 #, 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:1993 #, c-format msgid " N = 99 Last weekday %s" msgstr "" " N = 99 Ultimo giorno della settimana %s" #: src/help.c:1998 #, c-format msgid " # %cwN%s = Single weekday %s of N'th week" msgstr "" #: src/help.c:2003 #, c-format msgid "" " N = 0 %s which isn't located in 1st week" msgstr "" #: src/help.c:2008 #, 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:2013 #, 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:2017 #, c-format msgid " N = 99 %s of last week" msgstr " N = 99 %s dell'ultima settimana" #: src/help.c:2023 #, c-format msgid " # %c%c[[%s|%s]N] = Single day N relative to Easter Sunday" msgstr "" #: src/help.c:2029 #, c-format msgid "" " # %c%c[%s|%s]N%s = Single N'th weekday relative to Easter Sunday" msgstr "" #: src/help.c:2035 #, c-format msgid " # %c%c[[%s|%s]N] = Single day N relative to today's date" msgstr "" #: src/help.c:2041 #, c-format msgid "" " # %c%c[%s|%s]N%s = Single N'th weekday relative to today's date" msgstr "" #: src/help.c:2047 #, c-format msgid " # %c?[[%s|%s]N] = Single day N relative to date variable" msgstr "" #: src/help.c:2053 #, c-format msgid "" " # %c?[%s|%s]N%s = Single N'th weekday relative to date variable" msgstr "" #: src/help.c:2061 msgid " # t|T = List tomorrow" msgstr " # t|T = Elenca domani" #: src/help.c:2078 msgid " # w|W[MOD] = List complete week" msgstr " # w|W[MOD] = Elenca l'intera settimana" #: src/help.c:2082 #, c-format msgid "" " [MOD] = %s List tomorrow until ending day of week" msgstr "" #: src/help.c:2087 #, c-format msgid "" " = %s List yesterday until starting day of week" msgstr "" #: src/help.c:2107 msgid " # m|M[MOD] = List complete month" msgstr " # m|M[MOD] = Elenca l'intero mese" #: src/help.c:2111 #, c-format msgid "" " [MOD] = %s List tomorrow until ending day of month" msgstr "" #: src/help.c:2116 #, c-format msgid "" " = %s List yesterday until starting day of month" msgstr "" #: src/help.c:2136 msgid " # y|Y[MOD] = List complete year" msgstr " # y|Y[MOD] = Elenca l'intero anno" #: src/help.c:2140 #, c-format msgid "" " [MOD] = %s List tomorrow until ending day of year" msgstr "" #: src/help.c:2145 #, c-format msgid "" " = %s List yesterday until starting day of year" msgstr "" #: src/help.c:2158 msgid " Use alternative file(s) instead of standard resource file" msgstr "" #: src/help.c:2164 msgid " f = Display only those dates, for which fixed dates exists" msgstr "" #: src/help.c:2168 msgid "" " F = Display those dates, for which fixed dates doesn't exist, too" msgstr "" #: src/help.c:2172 #, c-format msgid " %-3s = Single file or list of files connected by `%s' characters" msgstr "" #: src/help.c:2183 msgid " Define additional resource file line" msgstr "" #: src/help.c:2185 #, c-format msgid " %-3s = Any possible resource file line" msgstr "" #: src/help.c:2195 #, c-format msgid "%cDATE" msgstr "%cDATA" #: src/help.c:2197 msgid "Use given `DATE' instead of today's date" msgstr "" #: src/help.c:2201 #, 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:2208 #, c-format msgid " %s%cwN[%s], month name[%s], weekday name[N] or %s" msgstr "" #: src/help.c:2217 #, c-format msgid "%cFILE" msgstr "%cFILE" #: src/help.c:2219 msgid "Preload options and commands from `FILE'" msgstr "Precarica le opzioni e i comandi da \"FILE\"" #: src/help.c:2223 msgid "COMMAND" msgstr "COMANDO" #: src/help.c:2225 #, c-format msgid "%s = Month in range: %d...%d" msgstr "" #: src/help.c:2230 #, c-format msgid " or: month name | %s | %s%s | %s%s | %s%s" msgstr "" #: src/help.c:2235 #, c-format msgid " List: %s[%s%s]%s...%s%s[%s%s]" msgstr "" #: src/help.c:2241 #, c-format msgid " Range: %s[%s%s]%s%s[%s%s] | %s%s%s%s%s | %s %s%s%s" msgstr "" #: src/help.c:2247 #, c-format msgid "%s%*s = Year in range: %d...%d" msgstr "" #: src/help.c:2251 #, c-format msgid " List: [%s%s]%s%s...%s[%s%s]%s" msgstr "" #: src/help.c:2256 #, c-format msgid " Range: [%s%s]%s%s[%s%s]%s | %s%s%s %s%s%s" msgstr "" #: src/help.c:2282 #, 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:2285 #, 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:2289 #, c-format msgid " %sL, %s Display software license and quit program" msgstr " %sL, %s Mostra la licenza ed esce dal programma" #: src/help.c:2293 #, 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:2301 #, c-format msgid " %sp, %s Direct output through external `%s' pager" msgstr "" #: src/help.c:2308 src/help.c:2313 #, c-format msgid " %sp, %s Direct output through simple internal pager" msgstr "" #: src/help.c:2338 msgid "This software doesn't claim completeness, correctness or usability." msgstr "" #: src/help.c:2342 msgid "On principle I will not be liable for ANY damages or losses (implicit" msgstr "" #: src/help.c:2346 msgid "or explicit), which result from using or handling my software." msgstr "" #: src/help.c:2350 msgid "If you use this software, you agree without any exception to this" msgstr "" #: src/help.c:2352 msgid "agreement, which binds you LEGALLY !!" msgstr "" #: src/help.c:2357 msgid "This program is free software; you can redistribute it and/or modify" msgstr "" #: src/help.c:2361 msgid "it under the terms of the `GNU General Public License' as published by" msgstr "" #: src/help.c:2365 msgid "the `Free Software Foundation'; either version 3, or (at your option)" msgstr "" #: src/help.c:2367 msgid "any later version." msgstr "" #: src/help.c:2372 msgid "You should have received a copy of the `GNU General Public License'" msgstr "" #: src/help.c:2374 msgid "along with this program; if not, write to the:" msgstr "" #: src/help.c:2423 #, c-format msgid "" "Usage: %s [%s|%s{[?|h|??|hh|L|V]|{%sHKNOR%sXb%sijn%sq%ssu%s}}] [[%s] [%s]]" msgstr "" #: src/help.c:2451 #, c-format msgid "Use `%s %s|[%s?]" msgstr "Usare \"%s %s|[%s?]" #: src/help.c:2460 msgid "for more information." msgstr "per maggiori informazioni." #: src/help.c:2564 src/tcal.c:197 src/txt2gcal.c:136 src/gcal2txt.c:136 #, c-format msgid "Email bug reports to <%s>" msgstr "Segnalare i bug via email a <%s>" #: src/help.c:2566 #, c-format msgid "GNU gcal home page: <%s>" msgstr "" #: src/help.c:2568 #, c-format msgid "General help using GNU software: <%s>" msgstr "" #: src/help.c:2594 src/tcal.c:219 src/txt2gcal.c:158 src/gcal2txt.c:158 #, c-format msgid "This is free software; see the source for copying conditions." msgstr "" #: src/help.c:2598 src/tcal.c:222 src/txt2gcal.c:161 src/gcal2txt.c:161 #, c-format msgid "There is NO warranty, without even the implied warranty of" msgstr "" #: src/help.c:2600 src/tcal.c:224 src/txt2gcal.c:163 src/gcal2txt.c:163 #, c-format msgid "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." msgstr "" #: src/help.c:2616 #, c-format msgid "%s: The Gregorian calendar program (GNU cal) %s" msgstr "" #: src/help.c:2624 #, c-format msgid "Usage: %s [[OPTION...] [%cDATE] [%cFILE...]] [COMMAND]" msgstr "Uso: %s [[OPZIONE...] [%cDATA] [%cFILE...]] [COMANDO]" #: src/help.c:2627 #, c-format msgid "Usage: %s [[OPTION...] [%cFILE...]] [COMMAND]" msgstr "Uso: %s [[OPZIONE...] [%cFILE...]] [COMANDO]" #: src/help.c:2703 src/help.c:2849 msgid " 4.0 or 4.02" msgstr " 4.0 oppure 4.02" #: src/help.c:2711 src/help.c:2857 msgid " later than 5.0" msgstr " successiva alla 5.0" #: src/help.c:2722 src/help.c:2864 msgid "++ 3.0 or later" msgstr "++ 3.0 o successiva" #: src/help.c:2749 src/help.c:2970 msgid "5.1 or earlier" msgstr "5.1 o precedente" #: src/help.c:2752 src/help.c:2973 src/help.c:3128 src/help.c:3198 msgid "unknown compiler" msgstr "compilatore sconosciuto" #: src/help.c:2787 src/help.c:2876 src/help.c:3010 src/help.c:3032 #: src/help.c:3101 src/help.c:3138 src/help.c:3156 src/help.c:3213 #: src/help.c:3428 msgid " on " msgstr "" #: src/help.c:2826 msgid "(bad version)" msgstr "(versione errata)" #: src/help.c:2873 msgid "unknown compiler (SDK?)" msgstr "compilatore sconosciuto (SDK?)" #: src/help.c:2941 msgid " later than 4.5" msgstr " successiva alla 4.5" #: src/help.c:2951 msgid "++ 1.0 or later" msgstr "++ 1.0 o successiva" #: src/help.c:2959 msgid " 1.0 or 1.5?" msgstr " 1.0 oppure 1.5?" #: src/help.c:3074 msgid "unknown " msgstr "" #: src/help.c:3086 #, c-format msgid "version %d.%d" msgstr "versione %d.%d" #: src/help.c:3089 src/help.c:3122 src/help.c:3248 #, c-format msgid "version %d" msgstr "versione %d" #: src/help.c:3091 #, c-format msgid "unknown version" msgstr "versione sconosciuta" #: src/help.c:3205 #, c-format msgid " (%.4s for Alpha)" msgstr " (%.4s per Alpha)" #: src/help.c:3208 #, c-format msgid " (%.4s for VAX)" msgstr " (%.4s per VAX)" #: src/help.c:3359 msgid " (NetBSD before 0.9)" msgstr " (NetBSD prima della 0.9)" #: src/help.c:3359 msgid " (NetBSD 1.2 or later)" msgstr " (NetBSD 1.2 o successiva)" #: src/help.c:3366 msgid " (FreeBSD 2.0 or later)" msgstr " (FreeBSD 2.0 o successiva)" #: src/help.c:3369 msgid " (BSD/386 1.1 or later)" msgstr " (BSD/386 1.1 o successiva)" #: src/print.c:544 src/print.c:978 src/print.c:1033 msgid "CW" msgstr "" #: src/print.c:565 msgid "Week" msgstr "Settimana" #: src/rc-insert.c:1706 src/rc-insert.c:2824 msgid "pm" msgstr "pm" #: src/rc-insert.c:1715 src/rc-insert.c:2833 msgid "am" msgstr "am" #: src/rc-insert.c:2018 src/rc-insert.c:2028 msgid "d'\"" msgstr "" #: src/rc-insert.c:2038 msgid "h'\"" msgstr "" #: src/rc-insert.c:3728 src/rc-utils.c:2585 #, 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:3750 src/rc-utils.c:2609 #, 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:513 msgid "Emo" msgstr "" #: src/rc-use.c:518 msgid "Int" msgstr "" #: src/rc-use.c:523 msgid "Phy" msgstr "" #: src/rc-use.c:1086 src/rc-use.c:1177 msgid "`Eternal holiday list'" msgstr "" #: src/rc-use.c:1877 src/rc-use.c:1926 src/rc-use.c:2015 src/rc-use.c:2107 msgid "`Internal'" msgstr "" #: src/rc-use.c:2339 #, c-format msgid " ; Week %s" msgstr " ; Settimana %s" #: src/rc-use.c:2348 #, c-format msgid "Week %s" msgstr "Settimana %s" #: src/rc-utils.c:397 src/rc-utils.c:414 #, 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:3269 #, c-format msgid "Leap-day set to `%02d-%s' in file `%s'." msgstr "" #: src/rc-utils.c:3272 src/rc-utils.c:3686 #, c-format msgid "Line %ld: %s" msgstr "Riga %ld: %s" #: src/rc-utils.c:3633 src/utils.c:274 #, c-format msgid "%s: abort, " msgstr "" #: src/rc-utils.c:3641 #, c-format msgid "illegal variable definition in file `%s'" msgstr "definizione non valida della variabile nel file \"%s\"" #: src/rc-utils.c:3643 #, c-format msgid "illegal definition of variable `%c'" msgstr "definizione non valida della variabile \"%c\"" #: src/rc-utils.c:3650 #, c-format msgid "illegal variable operation in file `%s'" msgstr "operazione non valida sulla variabile nel file \"%s\"" #: src/rc-utils.c:3652 #, c-format msgid "illegal operation on variable `%c'" msgstr "operazione non valida sulla variabile \"%c\"" #: src/rc-utils.c:3658 #, c-format msgid "variable `%c' undefined in file `%s'" msgstr "variabile \"%c\" non definita nel file \"%s\"" #: src/rc-utils.c:3662 #, 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:3683 #, c-format msgid "Invalid argument in command line given -- %s" msgstr "Fornito argomento non valido nella riga di comando -- %s" #: src/rc-utils.c:3695 #, c-format msgid "Argument `%s' of command line ignored." msgstr "Ignorato argomento \"%s\" della riga di comando." #: src/rc-utils.c:3698 #, c-format msgid "Line %ld ignored: %s" msgstr "Riga %ld ignorata: %s" #: src/tty.c:424 #, c-format msgid "%s: for more, <%s> to quit..." msgstr "" #: src/tty.c:1019 #, c-format msgid "environment variable `%s' not found" msgstr "variabile ambiente \"%s\" non trovata" #: src/tty.c:1026 #, c-format msgid "environment variable `%s' not set" msgstr "variabile ambiente \"%s\" non impostata" #: src/tty.c:1066 msgid "`termcap' file not found" msgstr "file \"termcap\" non trovato" #: src/tty.c:1071 #, c-format msgid "unknown terminal type defined in `%s'" msgstr "tipo di terminale sconosciuto definito in \"%s\"" #: src/tty.c:1080 #, c-format msgid "" "\n" "%s: warning, %s.\n" "\n" msgstr "" "\n" "%s: attenzione, %s.\n" "\n" #: src/utils.c:280 #, c-format msgid "" "invalid year for computing Easter Sundays date\n" "Year must be in range (%d...%d)" msgstr "" #: src/utils.c:284 src/tcal.c:324 src/txt2gcal.c:263 src/gcal2txt.c:263 #, c-format msgid "`%s' line %ld: virtual memory exhausted (%s=%d)" msgstr "" #: src/utils.c:289 #, c-format msgid "" "invalid date part in file `%s'\n" "Line %ld: %s" msgstr "" #: src/utils.c:294 #, c-format msgid "" "invalid month field(%02d) in file `%s'\n" "Line %ld: %s" msgstr "" #: src/utils.c:299 #, c-format msgid "" "invalid day field(%02d) in file `%s'\n" "Line %ld: %s" msgstr "" #: src/utils.c:303 #, c-format msgid "" "malformed %s in file `%s'\n" "Line %ld: %s" msgstr "" #: src/utils.c:308 #, c-format msgid "" "invalid recursive/cyclic %s in file `%s'\n" "Line %ld: %s" msgstr "" #: src/utils.c:312 #, c-format msgid "file `%s' not found" msgstr "file \"%s\" non trovato" #: src/utils.c:316 #, c-format msgid "" "invalid N'th weekday field(%d) in file `%s'\n" "Line %ld: %s" msgstr "" #: src/utils.c:322 #, c-format msgid "" "missing `whitespace' character after date part in file `%s'\n" "Line %ld: %s" msgstr "" #: src/utils.c:327 #, 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:332 #, c-format msgid "sending eMail to <%s> failed" msgstr "invio dell'email a <%s> non riuscito" #: src/utils.c:334 src/utils.c:352 #, c-format msgid "" "\n" "`%s' line %ld: " msgstr "" "\n" "\"%s\" riga %ld: " #: src/utils.c:341 #, c-format msgid "`%s' line %ld: (`%s') `%s%d' failed" msgstr "\"%s\" riga %ld: (\"%s\") \"%s%d\" non riuscito" #: src/utils.c:350 #, c-format msgid "read error in file `%s'" msgstr "errore di lettura nel file \"%s\"" #: src/utils.c:358 #, c-format msgid "" "illegal character in response file `%s'\n" "Line %ld: %s" msgstr "" #: src/utils.c:364 src/tcal.c:330 src/txt2gcal.c:269 src/gcal2txt.c:269 #, c-format msgid "`%s' line %ld: (`%s') invalid value for table size `sizeof %s>%d'" msgstr "" #: src/utils.c:369 #, c-format msgid "(`%s') date format `%s' is invalid" msgstr "" #: src/utils.c:375 #, c-format msgid "%s in search pattern `%s'" msgstr "" #: src/utils.c:378 #, c-format msgid "invalid search pattern `%s' specified" msgstr "" #: src/utils.c:383 src/tcal.c:338 src/txt2gcal.c:274 src/gcal2txt.c:274 #, c-format msgid "`%s' line %ld: (`%s') unmanaged error (%d)" msgstr "" #: src/utils.c:403 src/tcal.c:358 src/txt2gcal.c:294 src/gcal2txt.c:294 #, c-format msgid "" "\n" "%s: program aborted by signal %d\n" msgstr "" #: src/utils.c:1080 msgid "th" msgstr "°" #: src/utils.c:1084 msgid "st" msgstr "°" #: src/utils.c:1088 msgid "nd" msgstr "°" #: src/utils.c:1092 msgid "rd" msgstr "°" #: src/utils.c:1123 src/utils.c:1174 src/utils.c:1225 msgid "invalid day" msgstr "giorno non valido" #: src/utils.c:1128 msgid "Mon" msgstr "Lun" #: src/utils.c:1133 msgid "Tue" msgstr "Mar" #: src/utils.c:1138 msgid "Wed" msgstr "Mer" #: src/utils.c:1143 msgid "Thu" msgstr "Gio" #: src/utils.c:1148 msgid "Fri" msgstr "Ven" #: src/utils.c:1153 msgid "Sat" msgstr "Sab" #: src/utils.c:1158 msgid "Sun" msgstr "Dom" #: src/utils.c:1179 msgid "Mo" msgstr "Lu" #: src/utils.c:1184 msgid "Tu" msgstr "Ma" #: src/utils.c:1189 msgid "We" msgstr "Me" #: src/utils.c:1194 msgid "Th" msgstr "Gi" #: src/utils.c:1199 msgid "Fr" msgstr "Ve" #: src/utils.c:1204 msgid "Sa" msgstr "Sa" #: src/utils.c:1209 msgid "Su" msgstr "Do" #: src/utils.c:1226 msgid "Monday" msgstr "Lunedì" #: src/utils.c:1226 msgid "Tuesday" msgstr "Martedì" #: src/utils.c:1226 msgid "Wednesday" msgstr "Mercoledì" #: src/utils.c:1226 msgid "Thursday" msgstr "Giovedì" #: src/utils.c:1227 msgid "Friday" msgstr "Venerdì" #: src/utils.c:1227 msgid "Saturday" msgstr "Sabato" #: src/utils.c:1227 msgid "Sunday" msgstr "Domenica" #: src/utils.c:1243 src/utils.c:1320 msgid "invalid month" msgstr "mese non valido" #: src/utils.c:1248 msgid "Jan" msgstr "Gen" #: src/utils.c:1253 msgid "Feb" msgstr "Feb" #: src/utils.c:1258 msgid "Mar" msgstr "Mar" #: src/utils.c:1263 msgid "Apr" msgstr "Apr" #: src/utils.c:1268 msgid "May" msgstr "Mag" #: src/utils.c:1273 msgid "Jun" msgstr "Giu" #: src/utils.c:1278 msgid "Jul" msgstr "Lug" #: src/utils.c:1283 msgid "Aug" msgstr "Ago" #: src/utils.c:1288 msgid "Sep" msgstr "Set" #: src/utils.c:1293 msgid "Oct" msgstr "Ott" #: src/utils.c:1298 msgid "Nov" msgstr "Nov" #: src/utils.c:1303 msgid "Dec" msgstr "Dic" #: src/utils.c:1321 msgid "January" msgstr "Gennaio" #: src/utils.c:1321 msgid "February" msgstr "Febbraio" #: src/utils.c:1322 msgid "March" msgstr "Marzo" #: src/utils.c:1322 msgid "April" msgstr "Aprile" #: src/utils.c:1332 msgid "May " msgstr "Maggio" #: src/utils.c:1333 msgid "June" msgstr "Giugno" #: src/utils.c:1333 msgid "July" msgstr "Luglio" #: src/utils.c:1334 msgid "August" msgstr "Agosto" #: src/utils.c:1334 msgid "September" msgstr "Settembre" #: src/utils.c:1335 msgid "October" msgstr "Ottobre" #: src/utils.c:1335 msgid "November" msgstr "Novembre" #: src/utils.c:1335 msgid "December" msgstr "Dicembre" #: src/tcal.c:191 #, c-format msgid "Usage: %s [--%s | --%s] | [--%s=[+|-]NUMBER] [ARGUMENT...]\n" msgstr "Uso: %s [--%s | --%s] | [--%s=[+|-]NUMERO] [ARGOMENTO...]\n" #: src/tcal.c:320 src/txt2gcal.c:259 src/gcal2txt.c:259 #, c-format msgid "" "\n" "%s: abort, " msgstr "" #: src/tcal.c:335 #, c-format msgid "shift value `%s' is invalid" msgstr "" #: src/tcal.c:907 #, c-format msgid "%s: option `--%s' requires an argument" msgstr "%s: l'opzione \"--%s\" richiede un argomento" #: src/tcal.c:1071 #, c-format msgid "%s: error during program execution of `%s'\n" msgstr "%s: errore durante l'esecuzione del programma \"%s\"\n" #: src/txt2gcal.c:131 #, c-format msgid "Usage: %s [--%s | --%s] | [TEXT-FILE | -] [DATE-PART]\n" msgstr "" #: src/txt2gcal.c:755 src/gcal2txt.c:754 #, c-format msgid "%s: no regular file\n" msgstr "" #: src/txt2gcal.c:760 src/gcal2txt.c:759 #, c-format msgid "%s: file not found\n" msgstr "%s: file non trovato\n" #: src/gcal2txt.c:131 #, c-format msgid "Usage: %s [--%s | --%s] | [RESOURCE-FILE | -]\n" msgstr "" gcal-3.6.3/po/lt.po0000644000175000017500000030530412125376134010760 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: 2013-03-29 21:40+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-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" #: src/file-io.c:1561 #, c-format msgid "Try to write %s `%s'... %s%s%s" msgstr "" #: src/file-io.c:1564 src/file-io.c:1689 src/file-io.c:1702 msgid "failed" msgstr "" #: src/file-io.c:1564 src/file-io.c:1689 src/file-io.c:1702 msgid "success" msgstr "" #: src/file-io.c:1684 #, c-format msgid "Try to open%sresource file `%s'... %s%s%s" msgstr "" #: src/file-io.c:1685 msgid " `HERE' " msgstr "" #: src/file-io.c:1697 #, c-format msgid "Try to open (level: %02d) include file `%s'... %s%s%s" msgstr "" #: src/gcal.c:352 src/gcal.c:523 src/gcal.c:2028 msgid "ARG" msgstr "" #: src/gcal.c:1080 src/hd-data.c:69 msgid "Germany" msgstr "Vokietija" #: src/gcal.c:1081 msgid "U.S.A." msgstr "JAV" #: src/gcal.c:1082 src/hd-data.c:72 msgid "Great Britain" msgstr "Didžioji Britanija" #: src/gcal.c:1858 msgid "default" msgstr "" #: src/gcal.c:1957 msgid ":" msgstr ":" #: src/gcal.c:1967 msgid "Y" msgstr "Y" #: src/gcal.c:1972 msgid "M" msgstr "M" #: src/gcal.c:1977 msgid "W" msgstr "S" #: src/gcal.c:1982 msgid "D" msgstr "D" #: src/gcal.c:2073 msgid "Fixed date list:" msgstr "" #: src/gcal.c:2090 src/gcal.c:2105 msgid "environment variable" msgstr "" #: src/gcal.c:2274 #, c-format msgid "" "%s: command in environment variable `%s' found -- %s\n" "%s\n" "%s\n" msgstr "" #: src/gcal.c:2461 src/gcal.c:2489 src/gcal.c:6232 src/rc-use.c:1828 #: src/rc-use.c:1888 src/rc-use.c:1937 src/rc-use.c:2207 src/rc-utils.c:390 #: src/rc-utils.c:411 src/utils.c:342 src/utils.c:365 src/utils.c:384 #: src/utils.c:679 src/tcal.c:331 src/tcal.c:339 src/txt2gcal.c:270 #: src/txt2gcal.c:275 src/gcal2txt.c:270 src/gcal2txt.c:275 msgid "Internal" msgstr "" #: src/gcal.c:2870 msgid "response file" msgstr "" #: src/gcal.c:2870 src/gcal.c:2878 msgid "Created" msgstr "Sukurta" #: src/gcal.c:2878 msgid "shell script" msgstr "" #: src/gcal.c:3089 #, c-format msgid "Mail from \\`%s' (%02d-%s-%04d %02d%s%02d%s%02d" msgstr "" #: src/gcal.c:3141 #, c-format msgid "%s: warning, eMail with empty message body not sent to <%s>.\n" msgstr "" #: src/gcal.c:4951 src/gcal.c:4984 msgid "command line" msgstr "" #: src/gcal.c:5901 #, c-format msgid "%s: option `%s' is ambiguous" msgstr "" #: src/gcal.c:5906 src/tcal.c:895 src/txt2gcal.c:716 src/gcal2txt.c:715 #, c-format msgid "%s: unrecognized option `%s'" msgstr "" #: src/gcal.c:5909 #, c-format msgid "%s: invalid option -- %s" msgstr "" #: src/gcal.c:5916 #, c-format msgid "%s: option `--%s' doesn't allow an argument" msgstr "" #: src/gcal.c:5921 #, c-format msgid "%s: option `%s' doesn't allow an argument" msgstr "" #: src/gcal.c:5927 #, c-format msgid "%s: option `%s' requires an argument" msgstr "" #: src/gcal.c:5931 #, c-format msgid "%s: option requires an argument -- %s" msgstr "" #: src/gcal.c:5936 src/tcal.c:941 #, c-format msgid "%s: option with invalid argument -- %s" msgstr "" #: src/gcal.c:5941 #, c-format msgid "%s: option with ambiguous argument -- %s" msgstr "" #: src/gcal.c:6001 #, c-format msgid "" "%s: invalid date given -- %c%s\n" "%s\n" "%s\n" msgstr "" #: src/hd-data.c:63 msgid "Australia" msgstr "Australija" #: src/hd-data.c:64 src/hd-data.c:112 msgid "Belgium" msgstr "Belgija" #: src/hd-data.c:65 src/hd-data.c:121 msgid "Brazil" msgstr "Brazilija" #: src/hd-data.c:66 msgid "Canada" msgstr "Kanada" #: src/hd-data.c:67 msgid "Switzerland" msgstr "Å veicarija" #: src/hd-data.c:68 src/hd-data.c:174 msgid "China" msgstr "Kinija" #: src/hd-data.c:70 src/hd-data.c:208 msgid "Spain" msgstr "Ispanija" #: src/hd-data.c:71 src/hd-data.c:215 msgid "France" msgstr "PrancÅ«zija" #: src/hd-data.c:73 src/hd-data.c:244 msgid "Israel" msgstr "Izraelis" #: src/hd-data.c:74 src/hd-data.c:249 msgid "Italy" msgstr "Italija" #: src/hd-data.c:75 src/hd-data.c:252 msgid "Japan" msgstr "Japonija" #: src/hd-data.c:76 src/hd-data.c:260 msgid "Republic of Korea" msgstr "" #: src/hd-data.c:77 src/hd-data.c:292 msgid "Mexico" msgstr "Meksika" #: src/hd-data.c:78 src/hd-data.c:301 msgid "Netherlands" msgstr "Olandija" #: src/hd-data.c:79 src/hd-data.c:307 msgid "New Zealand" msgstr "Naujoji Zelandija" #: src/hd-data.c:80 src/hd-data.c:319 msgid "Portugal" msgstr "Portugalija" #: src/hd-data.c:81 src/hd-data.c:325 msgid "Russian Federation" msgstr "Rusijos federacija" #: src/hd-data.c:82 msgid "United States" msgstr "JungtinÄ—s Valstijos" #: src/hd-data.c:84 msgid "Andorra" msgstr "Andora" #: src/hd-data.c:85 msgid "United Arab Emirates" msgstr "Jungtiniai Arabų Emyratai" #: src/hd-data.c:86 msgid "Afghanistan" msgstr "Afganistanas" #: src/hd-data.c:87 msgid "Antigua and Barbuda" msgstr "" #: src/hd-data.c:88 msgid "Anguilla" msgstr "Angvila" #: src/hd-data.c:89 msgid "Albania" msgstr "Albanija" #: src/hd-data.c:90 msgid "Armenia" msgstr "ArmÄ—nija" #: src/hd-data.c:91 msgid "Netherlands Antilles/Bonaire" msgstr "" #: src/hd-data.c:92 #, fuzzy msgid "Netherlands Antilles/Curaçao" msgstr "Olandų Antilai" #: src/hd-data.c:93 msgid "Netherlands Antilles/St Maarten" msgstr "" #: src/hd-data.c:94 msgid "Netherlands Antilles/Saba and Statia" msgstr "" #: src/hd-data.c:95 msgid "Angola #" msgstr "" #: src/hd-data.c:96 msgid "Argentina" msgstr "Argentina" #: src/hd-data.c:97 msgid "American Samoa" msgstr "Amerikos Samoa" #: src/hd-data.c:98 msgid "Austria" msgstr "Austrija" #: src/hd-data.c:99 msgid "Australia/Canberra" msgstr "" #: src/hd-data.c:100 msgid "Australia/Northern Territory" msgstr "" #: src/hd-data.c:101 msgid "Australia/Queensland" msgstr "" #: src/hd-data.c:102 msgid "Australia/Southern Australia" msgstr "" #: src/hd-data.c:103 msgid "Australia/New South Wales" msgstr "" #: src/hd-data.c:104 msgid "Australia/Tasmania" msgstr "" #: src/hd-data.c:105 msgid "Australia/Victoria" msgstr "" #: src/hd-data.c:106 msgid "Australia/Western Australia" msgstr "" #: src/hd-data.c:107 msgid "Aruba" msgstr "Aruba" #: src/hd-data.c:108 msgid "Azerbaijan" msgstr "Azerbaidžanas" #: src/hd-data.c:109 msgid "Bosnia-Herzegovina" msgstr "" #: src/hd-data.c:110 msgid "Barbados" msgstr "Barbadosas" #: src/hd-data.c:111 msgid "Bangladesh #" msgstr "" #: src/hd-data.c:113 msgid "Burkina Faso" msgstr "Burkina Fasas" #: src/hd-data.c:114 msgid "Bulgaria" msgstr "Bulgarija" #: src/hd-data.c:115 msgid "Bahrain" msgstr "Bahreinas" #: src/hd-data.c:116 msgid "Burundi #" msgstr "" #: src/hd-data.c:117 msgid "Benin #" msgstr "" #: src/hd-data.c:118 msgid "Bermuda" msgstr "Bermudai" #: src/hd-data.c:119 msgid "Brunei" msgstr "" #: src/hd-data.c:120 msgid "Bolivia" msgstr "Bolivija" #: src/hd-data.c:122 msgid "Bahamas" msgstr "Bahamai" #: src/hd-data.c:123 msgid "Bhutan #" msgstr "" #: src/hd-data.c:124 msgid "Bouvet Island" msgstr "BuvÄ— sala" #: src/hd-data.c:125 msgid "Botswana" msgstr "Botsvana" #: src/hd-data.c:126 msgid "Belarus" msgstr "Gudija" #: src/hd-data.c:127 msgid "Belize" msgstr "Belizas" #: src/hd-data.c:128 msgid "Canada/Alberta" msgstr "" #: src/hd-data.c:129 msgid "Canada/British Columbia" msgstr "" #: src/hd-data.c:130 msgid "Canada/Manitoba" msgstr "" #: src/hd-data.c:131 msgid "Canada/New Brunswick" msgstr "" #: src/hd-data.c:132 msgid "Canada/Newfoundland and Labrador" msgstr "" #: src/hd-data.c:133 msgid "Canada/Nova Scotia" msgstr "" #: src/hd-data.c:134 msgid "Canada/Nordwest Territories" msgstr "" #: src/hd-data.c:135 msgid "Canada/Ontario" msgstr "" #: src/hd-data.c:136 msgid "Canada/Prince Edward Island" msgstr "" #: src/hd-data.c:137 #, fuzzy msgid "Canada/Québec" msgstr "Kanada" #: src/hd-data.c:138 msgid "Canada/Saskatchewan" msgstr "" #: src/hd-data.c:139 msgid "Canada/Yukon" msgstr "" #: src/hd-data.c:140 msgid "Cocos Islands (Keeling)" msgstr "" #: src/hd-data.c:141 msgid "Democratic Republic of Congo #" msgstr "" #: src/hd-data.c:142 msgid "Central African Republic #" msgstr "" #: src/hd-data.c:143 msgid "Republic of Congo #" msgstr "" #: src/hd-data.c:144 msgid "Switzerland/Aargau" msgstr "" #: src/hd-data.c:145 msgid "Switzerland/Appenzell Innerrhoden" msgstr "" #: src/hd-data.c:146 msgid "Switzerland/Appenzell Ausserrhoden" msgstr "" #: src/hd-data.c:147 msgid "Switzerland/Bern" msgstr "" #: src/hd-data.c:148 msgid "Switzerland/Basel-Land" msgstr "" #: src/hd-data.c:149 msgid "Switzerland/Basel-Stadt" msgstr "" #: src/hd-data.c:150 msgid "Switzerland/Fribourg" msgstr "" #: src/hd-data.c:151 #, fuzzy msgid "Switzerland/Genève" msgstr "Å veicarija" #: src/hd-data.c:152 msgid "Switzerland/Glarus" msgstr "" #: src/hd-data.c:153 #, fuzzy msgid "Switzerland/Graubünden" msgstr "Å veicarija" #: src/hd-data.c:154 msgid "Switzerland/Jura" msgstr "" #: src/hd-data.c:155 msgid "Switzerland/Luzern" msgstr "" #: src/hd-data.c:156 #, fuzzy msgid "Switzerland/Neuchâtel" msgstr "Å veicarija" #: src/hd-data.c:157 msgid "Switzerland/Nidwalden" msgstr "" #: src/hd-data.c:158 msgid "Switzerland/Obwalden" msgstr "" #: src/hd-data.c:159 msgid "Switzerland/St Gallen" msgstr "" #: src/hd-data.c:160 #, fuzzy msgid "Switzerland/Schaffhausen" msgstr "Å veicarija" #: src/hd-data.c:161 msgid "Switzerland/Solothurn" msgstr "" #: src/hd-data.c:162 msgid "Switzerland/Schwyz" msgstr "" #: src/hd-data.c:163 msgid "Switzerland/Thurgau" msgstr "" #: src/hd-data.c:164 msgid "Switzerland/Ticino" msgstr "" #: src/hd-data.c:165 msgid "Switzerland/Uri" msgstr "" #: src/hd-data.c:166 msgid "Switzerland/Vaud" msgstr "" #: src/hd-data.c:167 msgid "Switzerland/Valais" msgstr "" #: src/hd-data.c:168 msgid "Switzerland/Zug" msgstr "" #: src/hd-data.c:169 #, fuzzy msgid "Switzerland/Zürich" msgstr "Å veicarija" #: src/hd-data.c:170 #, fuzzy msgid "Côte d'Ivoire" msgstr "Dramblio Kaulo Krantas" #: src/hd-data.c:171 msgid "Cook Islands" msgstr "Kuko Salynas" #: src/hd-data.c:172 msgid "Chile" msgstr "ÄŒilÄ—" #: src/hd-data.c:173 msgid "Cameroon" msgstr "KamerÅ«nas" #: src/hd-data.c:175 msgid "Colombia" msgstr "Kolumbija" #: src/hd-data.c:176 msgid "Costa Rica" msgstr "Kosta Rika" #: src/hd-data.c:177 msgid "Cuba" msgstr "Kuba" #: src/hd-data.c:178 msgid "Cape Verde" msgstr "Žaliasis kyÅ¡ulys" #: src/hd-data.c:179 msgid "Christmas Islands" msgstr "" #: src/hd-data.c:180 msgid "Cyprus" msgstr "Kipras" #: src/hd-data.c:181 msgid "Czech Republic" msgstr "ÄŒekijos respublika" #: src/hd-data.c:182 msgid "Germany/Brandenburg" msgstr "" #: src/hd-data.c:183 msgid "Germany/Berlin" msgstr "" #: src/hd-data.c:184 msgid "Germany/Baden-Württemberg" msgstr "" #: src/hd-data.c:185 msgid "Germany/Bavaria" msgstr "" #: src/hd-data.c:186 msgid "Germany/Bremen" msgstr "" #: src/hd-data.c:187 msgid "Germany/Hesse" msgstr "" #: src/hd-data.c:188 msgid "Germany/Hamburg" msgstr "" #: src/hd-data.c:189 msgid "Germany/Mecklenburg-West Pomerania" msgstr "" #: src/hd-data.c:190 msgid "Germany/Lower Saxony" msgstr "" #: src/hd-data.c:191 msgid "Germany/North Rhine-Westphalia" msgstr "" #: src/hd-data.c:192 msgid "Germany/Rhineland Palatinate" msgstr "" #: src/hd-data.c:193 msgid "Germany/Schleswig-Holstein" msgstr "" #: src/hd-data.c:194 msgid "Germany/Saar" msgstr "" #: src/hd-data.c:195 msgid "Germany/Saxony" msgstr "" #: src/hd-data.c:196 msgid "Germany/Saxony-Anhalt" msgstr "" #: src/hd-data.c:197 msgid "Germany/Thuringia" msgstr "" #: src/hd-data.c:198 msgid "Djibouti" msgstr "Džibutis" #: src/hd-data.c:199 msgid "Denmark" msgstr "Danija" #: src/hd-data.c:200 msgid "Dominica" msgstr "Dominika" #: src/hd-data.c:201 msgid "Dominican Republic" msgstr "Dominikos respublika" #: src/hd-data.c:202 msgid "Algeria" msgstr "Alžyras" #: src/hd-data.c:203 msgid "Ecuador" msgstr "Ekvadoras" #: src/hd-data.c:204 msgid "Estonia" msgstr "Estija" #: src/hd-data.c:205 msgid "Egypt" msgstr "Egiptas" #: src/hd-data.c:206 msgid "Western Sahara" msgstr "Vakarų Sachara" #: src/hd-data.c:207 msgid "Eritrea" msgstr "EritrÄ—ja" #: src/hd-data.c:209 msgid "Ethiopia" msgstr "Etiopija" #: src/hd-data.c:210 msgid "Finland" msgstr "Suomija" #: src/hd-data.c:211 msgid "Fiji #" msgstr "" #: src/hd-data.c:212 msgid "Falkland Islands (Malvinas)" msgstr "" #: src/hd-data.c:213 msgid "Federated States of Micronesia" msgstr "" #: src/hd-data.c:214 msgid "Faroes" msgstr "Farerai" #: src/hd-data.c:216 msgid "Gabon #" msgstr "" #: src/hd-data.c:217 msgid "Great Britain/England and Wales" msgstr "Didžioji Britanija/Anglija ir Velsas" #: src/hd-data.c:218 msgid "Great Britain/Northern Ireland" msgstr "Didžioji Britanija/Å iaurÄ—s Airija" #: src/hd-data.c:219 msgid "Great Britain/Scotland" msgstr "Didžioji Britanija/Å kotija" #: src/hd-data.c:220 msgid "Grenada" msgstr "Grenada" #: src/hd-data.c:221 msgid "Georgia" msgstr "Gruzija" #: src/hd-data.c:222 msgid "French Guiana" msgstr "PrancÅ«zų Gviana" #: src/hd-data.c:223 msgid "Ghana" msgstr "Gana" #: src/hd-data.c:224 msgid "Gibraltar" msgstr "Gibraltaras" #: src/hd-data.c:225 msgid "Greenland" msgstr "Grenlandija" #: src/hd-data.c:226 msgid "Gambia" msgstr "Gambija" #: src/hd-data.c:227 msgid "Guinea" msgstr "GvinÄ—ja" #: src/hd-data.c:228 msgid "Guadeloupe" msgstr "GvadelupÄ—" #: src/hd-data.c:229 msgid "Equatorial Guinea" msgstr "Pusiaujo GvinÄ—ja" #: src/hd-data.c:230 msgid "Greece" msgstr "Graikija" #: src/hd-data.c:231 msgid "South Georgia and South Sandwich Islands" msgstr "" #: src/hd-data.c:232 msgid "Guatemala" msgstr "Gvatemala" #: src/hd-data.c:233 msgid "Guam" msgstr "Guamas" #: src/hd-data.c:234 msgid "Guinea-Bissau #" msgstr "" #: src/hd-data.c:235 msgid "Guyana #" msgstr "" #: src/hd-data.c:236 msgid "Hong Kong" msgstr "Honkongas" #: src/hd-data.c:237 msgid "Heard and Mc Donald Islands" msgstr "" #: src/hd-data.c:238 msgid "Honduras" msgstr "HondÅ«ras" #: src/hd-data.c:239 msgid "Croatia" msgstr "Kroatija" #: src/hd-data.c:240 msgid "Haiti" msgstr "Haitis" #: src/hd-data.c:241 msgid "Hungary" msgstr "Vengrija" #: src/hd-data.c:242 msgid "Indonesia #" msgstr "" #: src/hd-data.c:243 msgid "Ireland" msgstr "Airija" #: src/hd-data.c:245 msgid "India #" msgstr "" #: src/hd-data.c:246 msgid "Iraq" msgstr "Irakas" #: src/hd-data.c:247 msgid "Islamic Republic of Iran" msgstr "" #: src/hd-data.c:248 msgid "Iceland" msgstr "Islandija" #: src/hd-data.c:250 msgid "Jamaica" msgstr "Jamaika" #: src/hd-data.c:251 msgid "Jordan" msgstr "Jordanas" #: src/hd-data.c:253 msgid "Kenya #" msgstr "" #: src/hd-data.c:254 msgid "Kyrgyzstan" msgstr "Kirgistanas" #: src/hd-data.c:255 msgid "Cambodia #" msgstr "" #: src/hd-data.c:256 msgid "Kiribati #" msgstr "" #: src/hd-data.c:257 msgid "Comoros" msgstr "Komorai" #: src/hd-data.c:258 msgid "St Kitts and Nevis" msgstr "" #: src/hd-data.c:259 msgid "Democratic People's Republic of Korea" msgstr "" #: src/hd-data.c:261 msgid "Kuwait" msgstr "Kuveitas" #: src/hd-data.c:262 msgid "Cayman Islands" msgstr "Kaimanų salos" #: src/hd-data.c:263 msgid "Kazakhstan" msgstr "Kazachstanas" #: src/hd-data.c:264 msgid "Laos People's Democratic Republic #" msgstr "" #: src/hd-data.c:265 msgid "Lebanon" msgstr "Libanas" #: src/hd-data.c:266 msgid "St Lucia" msgstr "" #: src/hd-data.c:267 msgid "Liechtenstein" msgstr "LichtenÅ¡teinas" #: src/hd-data.c:268 msgid "Sri Lanka #" msgstr "" #: src/hd-data.c:269 msgid "Liberia" msgstr "Liberija" #: src/hd-data.c:270 msgid "Lesotho" msgstr "Lesotas" #: src/hd-data.c:271 msgid "Lithuania" msgstr "Lietuva" #: src/hd-data.c:272 msgid "Luxembourg" msgstr "Liuksemburgas" #: src/hd-data.c:273 msgid "Latvia" msgstr "Latvija" #: src/hd-data.c:274 msgid "Libyan Arab Jamahiriya (Libya)" msgstr "" #: src/hd-data.c:275 msgid "Morocco" msgstr "Marokas" #: src/hd-data.c:276 msgid "Monaco" msgstr "Monakas" #: src/hd-data.c:277 msgid "Republic of Moldova" msgstr "" #: src/hd-data.c:278 msgid "Madagascar #" msgstr "" #: src/hd-data.c:279 msgid "Marshall Islands" msgstr "MarÅ¡alo salos" #: src/hd-data.c:280 msgid "Former Yugoslav Republic of Macedonia" msgstr "" #: src/hd-data.c:281 msgid "Mali" msgstr "Malis" #: src/hd-data.c:282 msgid "Mongolia #" msgstr "" #: src/hd-data.c:283 msgid "Macau" msgstr "" #: src/hd-data.c:284 msgid "Northern Marian Islands (Saipan)" msgstr "" #: src/hd-data.c:285 msgid "Martinique" msgstr "Martinika" #: src/hd-data.c:286 msgid "Mauritania" msgstr "Mauritanija" #: src/hd-data.c:287 msgid "Montserrat" msgstr "Montseratas" #: src/hd-data.c:288 msgid "Malta" msgstr "Malta" #: src/hd-data.c:289 msgid "Mauritius" msgstr "Mauricijus" #: src/hd-data.c:290 msgid "Maldives" msgstr "Maldyvai" #: src/hd-data.c:291 msgid "Malawi" msgstr "Malavis" #: src/hd-data.c:293 msgid "Malaysia #" msgstr "" #: src/hd-data.c:294 msgid "Mozambique" msgstr "Mozambikas" #: src/hd-data.c:295 msgid "Namibia" msgstr "Namibija" #: src/hd-data.c:296 msgid "New Caledonia" msgstr "Naujoji Kaledonija" #: src/hd-data.c:297 msgid "Niger" msgstr "Nigeris" #: src/hd-data.c:298 msgid "Norfolk Islands" msgstr "" #: src/hd-data.c:299 msgid "Nigeria" msgstr "Nigerija" #: src/hd-data.c:300 msgid "Nicaragua" msgstr "Nikaragva" #: src/hd-data.c:302 msgid "Myanmar (Burma) #" msgstr "Mianmaras (Birma) #" #: src/hd-data.c:303 msgid "Norway" msgstr "Norvegija" #: src/hd-data.c:304 msgid "Nepal #" msgstr "Nepalas #" #: src/hd-data.c:305 msgid "Nauru" msgstr "Nauru" #: src/hd-data.c:306 msgid "Niue" msgstr "NiujÄ—" #: src/hd-data.c:308 msgid "Oman" msgstr "Omanas" #: src/hd-data.c:309 msgid "Panama" msgstr "Panama" #: src/hd-data.c:310 msgid "Peru" msgstr "Peru" #: src/hd-data.c:311 msgid "French Polynesia" msgstr "PrancÅ«zijos Polinezija" #: src/hd-data.c:312 msgid "Papua New Guinea" msgstr "Papua Naujoji GvinÄ—ja" #: src/hd-data.c:313 msgid "Philippines" msgstr "Filipinai" #: src/hd-data.c:314 msgid "Pakistan" msgstr "Pakistanas" #: src/hd-data.c:315 msgid "Poland" msgstr "Lenkija" #: src/hd-data.c:316 msgid "Saint-Pierre and Miquelon" msgstr "" #: src/hd-data.c:317 msgid "Pitcairn" msgstr "Pitkernas" #: src/hd-data.c:318 msgid "Puerto Rico" msgstr "Puerto Rikas" #: src/hd-data.c:320 msgid "Palau" msgstr "Palau" #: src/hd-data.c:321 msgid "Paraguay" msgstr "Paragvajus" #: src/hd-data.c:322 msgid "Qatar" msgstr "Kvataras" #: src/hd-data.c:323 #, fuzzy msgid "Réunion" msgstr "Rejunjonas" #: src/hd-data.c:324 msgid "Romania" msgstr "Rumunija" #: src/hd-data.c:326 msgid "Rwanda" msgstr "Ruanda" #: src/hd-data.c:327 msgid "Saudi Arabia" msgstr "Saudo Arabija" #: src/hd-data.c:328 msgid "Solomon Islands" msgstr "Saliamono salos" #: src/hd-data.c:329 msgid "Seychellen" msgstr "SeiÅ¡eliai" #: src/hd-data.c:330 msgid "Sudan" msgstr "Sudanas" #: src/hd-data.c:331 msgid "Sweden" msgstr "Å vedija" #: src/hd-data.c:332 msgid "Singapore #" msgstr "" #: src/hd-data.c:333 msgid "St Helena" msgstr "" #: src/hd-data.c:334 msgid "Slovenia" msgstr "SlovÄ—nija" #: src/hd-data.c:335 msgid "Svalbard and Jan Mayen Islands" msgstr "" #: src/hd-data.c:336 msgid "Slovakia" msgstr "Slovakija" #: src/hd-data.c:337 msgid "Sierra Leone" msgstr "Siera LeonÄ—" #: src/hd-data.c:338 msgid "San Marino" msgstr "San Marinas" #: src/hd-data.c:339 msgid "Senegal" msgstr "Senegalas" #: src/hd-data.c:340 msgid "Somalia" msgstr "Somalis" #: src/hd-data.c:341 msgid "Suriname #" msgstr "Surinamas #" #: src/hd-data.c:342 #, fuzzy msgid "Sao Tomé and Principe" msgstr "San TomÄ— ir PrinsipÄ—" #: src/hd-data.c:343 msgid "El Salvador" msgstr "El Salvadoras" #: src/hd-data.c:344 msgid "Syrian Arab Republic (Syria)" msgstr "Sirija" #: src/hd-data.c:345 msgid "Swaziland" msgstr "Svazilendas" #: src/hd-data.c:346 msgid "Turks and Caicos Islands" msgstr "" #: src/hd-data.c:347 msgid "Chad" msgstr "ÄŒadas" #: src/hd-data.c:348 msgid "Togo #" msgstr "" #: src/hd-data.c:349 msgid "Thailand #" msgstr "Tailandas #" #: src/hd-data.c:350 msgid "Tajikistan" msgstr "Tadžikistanas" #: src/hd-data.c:351 msgid "Tokelau" msgstr "Tokelau" #: src/hd-data.c:352 msgid "Turkmenistan" msgstr "TurkmÄ—nistanas" #: src/hd-data.c:353 msgid "Tunisia" msgstr "Tunisas" #: src/hd-data.c:354 msgid "Tonga" msgstr "Tonga" #: src/hd-data.c:355 msgid "Turkey" msgstr "Turkija" #: src/hd-data.c:356 msgid "Trinidad and Tobago #" msgstr "" #: src/hd-data.c:357 msgid "Tuvalu" msgstr "Tuvalu" #: src/hd-data.c:358 msgid "Taiwan" msgstr "Taivanas" #: src/hd-data.c:359 msgid "Tanzania" msgstr "Tanzanija" #: src/hd-data.c:360 msgid "Ukraine" msgstr "Ukraina" #: src/hd-data.c:361 msgid "Uganda" msgstr "Uganda" #: src/hd-data.c:362 msgid "United States/Alaska" msgstr "" #: src/hd-data.c:363 msgid "United States/Alabama" msgstr "" #: src/hd-data.c:364 msgid "United States/Arkansas" msgstr "" #: src/hd-data.c:365 msgid "United States/Arizona" msgstr "" #: src/hd-data.c:366 msgid "United States/California" msgstr "" #: src/hd-data.c:367 msgid "United States/Colorado" msgstr "" #: src/hd-data.c:368 msgid "United States/Connecticut" msgstr "" #: src/hd-data.c:369 msgid "United States/District of Columbia" msgstr "" #: src/hd-data.c:370 msgid "United States/Delaware" msgstr "" #: src/hd-data.c:371 msgid "United States/Florida" msgstr "" #: src/hd-data.c:372 msgid "United States/Georgia" msgstr "" #: src/hd-data.c:373 msgid "United States/Hawaii" msgstr "" #: src/hd-data.c:374 msgid "United States/Iowa" msgstr "" #: src/hd-data.c:375 msgid "United States/Idaho" msgstr "" #: src/hd-data.c:376 msgid "United States/Illinois" msgstr "" #: src/hd-data.c:377 msgid "United States/Indiana" msgstr "" #: src/hd-data.c:378 msgid "United States/Kansas" msgstr "" #: src/hd-data.c:379 msgid "United States/Kentucky" msgstr "" #: src/hd-data.c:380 msgid "United States/Louisiana" msgstr "" #: src/hd-data.c:381 msgid "United States/Massachusetts" msgstr "" #: src/hd-data.c:382 msgid "United States/Maryland" msgstr "" #: src/hd-data.c:383 msgid "United States/Maine" msgstr "" #: src/hd-data.c:384 msgid "United States/Michigan" msgstr "" #: src/hd-data.c:385 msgid "United States/Minnesota" msgstr "" #: src/hd-data.c:386 msgid "United States/Missouri" msgstr "" #: src/hd-data.c:387 msgid "United States/Mississippi" msgstr "" #: src/hd-data.c:388 msgid "United States/Montana" msgstr "" #: src/hd-data.c:389 msgid "United States/North Carolina" msgstr "" #: src/hd-data.c:390 msgid "United States/North Dakota" msgstr "" #: src/hd-data.c:391 msgid "United States/Nebraska" msgstr "" #: src/hd-data.c:392 msgid "United States/New Hampshire" msgstr "" #: src/hd-data.c:393 msgid "United States/New Jersey" msgstr "" #: src/hd-data.c:394 msgid "United States/New Mexico" msgstr "" #: src/hd-data.c:395 msgid "United States/Nevada" msgstr "" #: src/hd-data.c:396 msgid "United States/New York" msgstr "" #: src/hd-data.c:397 msgid "United States/Ohio" msgstr "" #: src/hd-data.c:398 msgid "United States/Oklahoma" msgstr "" #: src/hd-data.c:399 msgid "United States/Oregon" msgstr "" #: src/hd-data.c:400 msgid "United States/Pennsylvania" msgstr "" #: src/hd-data.c:401 msgid "United States/Rhode Island" msgstr "" #: src/hd-data.c:402 msgid "United States/South Carolina" msgstr "" #: src/hd-data.c:403 msgid "United States/South Dakota" msgstr "" #: src/hd-data.c:404 msgid "United States/Tennessee" msgstr "" #: src/hd-data.c:405 msgid "United States/Texas" msgstr "" #: src/hd-data.c:406 msgid "United States/Utah" msgstr "" #: src/hd-data.c:407 msgid "United States/Virginia" msgstr "" #: src/hd-data.c:408 msgid "United States/Vermont" msgstr "" #: src/hd-data.c:409 msgid "United States/Washington" msgstr "" #: src/hd-data.c:410 msgid "United States/Wisconsin" msgstr "" #: src/hd-data.c:411 msgid "United States/West Virginia" msgstr "" #: src/hd-data.c:412 msgid "United States/Wyoming" msgstr "" #: src/hd-data.c:413 msgid "Uruguay" msgstr "Urugvajus" #: src/hd-data.c:414 msgid "Uzbekistan" msgstr "Uzbekistanas" #: src/hd-data.c:415 msgid "St Vincent and Grenadines" msgstr "" #: src/hd-data.c:416 msgid "Venezuela" msgstr "Venesuela" #: src/hd-data.c:417 msgid "British Virgin Islands" msgstr "" #: src/hd-data.c:418 msgid "U.S. Virgin Islands" msgstr "" #: src/hd-data.c:419 msgid "Viet Nam" msgstr "Vietnamas" #: src/hd-data.c:420 msgid "Vanuatu" msgstr "Vanuatu" #: src/hd-data.c:421 msgid "Wallis and Futuna Islands" msgstr "" #: src/hd-data.c:422 msgid "Samoa" msgstr "Samoa" #: src/hd-data.c:423 msgid "Yemen" msgstr "Jemenas" #: src/hd-data.c:424 msgid "Mayotte" msgstr "Majotas" #: src/hd-data.c:425 msgid "Serbia and Montenegro" msgstr "" #: src/hd-data.c:426 msgid "South Africa" msgstr "Pietų Afrikos respublika" #: src/hd-data.c:427 msgid "Zambia" msgstr "Zambija" #: src/hd-data.c:428 msgid "Zimbabwe" msgstr "ZimbabvÄ—" #: src/hd-data.c:458 msgid "1st Advent" msgstr "" #: src/hd-data.c:459 msgid "1st Sunday in Lent" msgstr "" #: src/hd-data.c:460 msgid "2nd Advent" msgstr "" #: src/hd-data.c:461 msgid "2nd Sunday in Lent" msgstr "" #: src/hd-data.c:462 msgid "3rd Advent" msgstr "" #: src/hd-data.c:463 msgid "3rd Sunday in Lent" msgstr "" #: src/hd-data.c:464 msgid "4th Advent" msgstr "" #: src/hd-data.c:465 msgid "4th Sunday in Lent" msgstr "" #: src/hd-data.c:466 msgid "7-5-3 Festival" msgstr "" #: src/hd-data.c:467 msgid "Aborigines Day" msgstr "" #: src/hd-data.c:468 msgid "All Fool's Day" msgstr "" #: src/hd-data.c:469 msgid "All Saints' Day" msgstr "" #: src/hd-data.c:470 msgid "All Souls' Day" msgstr "" #: src/hd-data.c:471 msgid "Alphabet Day" msgstr "" #: src/hd-data.c:472 msgid "Anniversary of Auckland" msgstr "" #: src/hd-data.c:473 msgid "Anniversary of Canterbury North" msgstr "" #: src/hd-data.c:474 msgid "Anniversary of Canterbury South" msgstr "" #: src/hd-data.c:475 msgid "Anniversary of Chatham Islands" msgstr "" #: src/hd-data.c:476 msgid "Anniversary of Hawkes' Bay" msgstr "" #: src/hd-data.c:477 msgid "Anniversary of Marlborough" msgstr "" #: src/hd-data.c:478 msgid "Anniversary of Nelson" msgstr "" #: src/hd-data.c:479 msgid "Anniversary of Otago" msgstr "" #: src/hd-data.c:480 msgid "Anniversary of Southland" msgstr "" #: src/hd-data.c:481 msgid "Anniversary of Taranaki" msgstr "" #: src/hd-data.c:482 msgid "Anniversary of Wellington" msgstr "" #: src/hd-data.c:483 msgid "Anniversary of Westland" msgstr "" #: src/hd-data.c:484 msgid "Anzac Day" msgstr "" #: src/hd-data.c:485 msgid "Arbor Day" msgstr "" #: src/hd-data.c:486 msgid "Armed Forces Day" msgstr "" #: src/hd-data.c:487 msgid "Armistice Day" msgstr "" #: src/hd-data.c:488 msgid "Ash Monday" msgstr "" #: src/hd-data.c:489 msgid "Ash Wednesday" msgstr "" #: src/hd-data.c:490 msgid "Ascension of Abdu'l-Baha" msgstr "" #: src/hd-data.c:491 msgid "Ascension of Baha'u'llah" msgstr "" #: src/hd-data.c:492 msgid "Birth of Baha'u'llah" msgstr "" #: src/hd-data.c:493 msgid "Birth of the Bab" msgstr "" #: src/hd-data.c:494 msgid "Day of the Covenant" msgstr "" #: src/hd-data.c:495 msgid "Declaration of the Bab" msgstr "" #: src/hd-data.c:496 msgid "First Day of Ridvan" msgstr "" #: src/hd-data.c:497 msgid "Martyrdom of the Bab" msgstr "" #: src/hd-data.c:498 msgid "Bahá'i New Year's Day" msgstr "" #: src/hd-data.c:499 msgid "Ninth Day of Ridvan" msgstr "" #: src/hd-data.c:500 msgid "Twelfth Day of Ridvan" msgstr "" #: src/hd-data.c:501 msgid "Bank Holiday" msgstr "" #: src/hd-data.c:502 msgid "Basque National Day" msgstr "" #: src/hd-data.c:503 msgid "Battle of Boyne" msgstr "" #: src/hd-data.c:504 msgid "Battle of Puebla" msgstr "" #: src/hd-data.c:505 msgid "Beginning of Financial Year" msgstr "" #: src/hd-data.c:506 msgid "Benito Juárez Day" msgstr "" #: src/hd-data.c:507 msgid "Bodhidharma's Birthday" msgstr "" #: src/hd-data.c:508 msgid "Bosses' Day" msgstr "" #: src/hd-data.c:509 msgid "Boxing Day" msgstr "" #: src/hd-data.c:510 msgid "Bringing Home the Herds Day" msgstr "" #: src/hd-data.c:511 msgid "Bringing in the Harvest Day" msgstr "" #: src/hd-data.c:512 msgid "Buddha's Birthday" msgstr "" #: src/hd-data.c:513 msgid "Burns Night" msgstr "" #: src/hd-data.c:514 msgid "Camoes Day" msgstr "" #: src/hd-data.c:515 msgid "Carnival" msgstr "" #: src/hd-data.c:516 msgid "Beltane" msgstr "" #: src/hd-data.c:517 msgid "Imbolg" msgstr "" #: src/hd-data.c:518 msgid "Lughnasa" msgstr "" #: src/hd-data.c:519 msgid "Samhain/Celtic New Year's Day" msgstr "" #: src/hd-data.c:520 msgid "Children's Day" msgstr "" #: src/hd-data.c:521 msgid "Cycle" msgstr "" #: src/hd-data.c:522 msgid "Chinese New Year's Day" msgstr "" #: src/hd-data.c:523 msgid "Chinese New Year's Eve" msgstr "" #: src/hd-data.c:524 msgid "Christmas Day" msgstr "" #: src/hd-data.c:525 msgid "Christmas Eve" msgstr "" #: src/hd-data.c:526 msgid "Christ's Ascension Day" msgstr "" #: src/hd-data.c:527 msgid "Chrysanthenum Day" msgstr "" #: src/hd-data.c:528 msgid "Citizenship Day" msgstr "" #: src/hd-data.c:529 msgid "Civic Holiday" msgstr "" #: src/hd-data.c:530 msgid "Columbus Day" msgstr "" #: src/hd-data.c:531 msgid "Coming of Age Day" msgstr "" #: src/hd-data.c:532 msgid "Confucius' Birthday" msgstr "" #: src/hd-data.c:533 msgid "Constitution Anniversary" msgstr "" #: src/hd-data.c:534 msgid "Coptic New Year's Day" msgstr "" #: src/hd-data.c:535 msgid "Cosmonauts' Day" msgstr "" #: src/hd-data.c:536 msgid "Cross Raising Day" msgstr "" #: src/hd-data.c:537 msgid "Culture Day" msgstr "" #: src/hd-data.c:538 msgid "Day after Mid-Autumn Festival" msgstr "" #: src/hd-data.c:539 msgid "Day after Tomb-Sweeping Day" msgstr "" #: src/hd-data.c:540 msgid "Day of Andalucia" msgstr "" #: src/hd-data.c:541 msgid "Day of Catalonia" msgstr "" #: src/hd-data.c:542 msgid "Day of Galicia" msgstr "" #: src/hd-data.c:543 msgid "Day of Prayer and Repentance" msgstr "" #: src/hd-data.c:544 msgid "Day of Reconciliation" msgstr "" #: src/hd-data.c:545 msgid "Defenders of Motherland Day" msgstr "" #: src/hd-data.c:546 msgid "Double-9 Day" msgstr "" #: src/hd-data.c:547 msgid "Dragon Boat Festival" msgstr "" #: src/hd-data.c:548 msgid "Dynasty Day" msgstr "" #: src/hd-data.c:549 msgid "Easter Monday" msgstr "" #: src/hd-data.c:550 msgid "Easter Sunday" msgstr "" #: src/hd-data.c:551 msgid "Lunar Eclipse" msgstr "" #: src/hd-data.c:552 msgid "Solar Eclipse" msgstr "" #: src/hd-data.c:553 msgid "Annular" msgstr "" #: src/hd-data.c:554 msgid "Partial" msgstr "" #: src/hd-data.c:555 msgid "Penumbral" msgstr "" #: src/hd-data.c:556 msgid "Total" msgstr "" #: src/hd-data.c:557 msgid "Eindhoven's Liberation" msgstr "" #: src/hd-data.c:558 msgid "Election Day" msgstr "" #: src/hd-data.c:559 msgid "Emperor's Birthday" msgstr "" #: src/hd-data.c:560 msgid "Equinox Day" msgstr "" #: src/hd-data.c:561 msgid "Ethiopic New Year's Day" msgstr "" #: src/hd-data.c:562 msgid "Father's Day" msgstr "" #: src/hd-data.c:563 msgid "Feast of Corpus Christi" msgstr "" #: src/hd-data.c:564 msgid "Feast of Fortune" msgstr "" #: src/hd-data.c:565 msgid "Feast of Heart Jesus" msgstr "" #: src/hd-data.c:566 msgid "Festival of Lanterns" msgstr "" #: src/hd-data.c:567 msgid "Festival of Sadeh" msgstr "" #: src/hd-data.c:568 msgid "Flag Day" msgstr "" #: src/hd-data.c:569 msgid "Flemish Culture Day" msgstr "" #: src/hd-data.c:570 msgid "Founding of the Communist Party" msgstr "" #: src/hd-data.c:571 msgid "French Culture Day" msgstr "" #: src/hd-data.c:572 msgid "French Revolutionary" msgstr "" #: src/hd-data.c:573 msgid "Friendship Day" msgstr "" #: src/hd-data.c:574 msgid "German Unity Day" msgstr "" #: src/hd-data.c:575 msgid "Good Friday" msgstr "" #: src/hd-data.c:576 msgid "Good Saturday/Easter Eve" msgstr "" #: src/hd-data.c:577 msgid "Grandparents' Day" msgstr "" #: src/hd-data.c:578 msgid "Greenery Day" msgstr "" #: src/hd-data.c:579 msgid "Grotto Day" msgstr "" #: src/hd-data.c:580 msgid "Groundhog Day" msgstr "" #: src/hd-data.c:581 msgid "Guadalupe Virgin's Day" msgstr "" #: src/hd-data.c:582 msgid "Guy Fawke's Day" msgstr "" #: src/hd-data.c:583 msgid "Halloween" msgstr "" #: src/hd-data.c:584 msgid "Health and Sport's Day" msgstr "" #: src/hd-data.c:585 msgid "Hannukah/Festival of Lights" msgstr "" #: src/hd-data.c:586 msgid "Lag B'Omer" msgstr "" #: src/hd-data.c:587 msgid "Pesach/Passover" msgstr "" #: src/hd-data.c:588 msgid "Purim/Feast of Lots" msgstr "" #: src/hd-data.c:589 msgid "Rosh Hashana/New Year's Day" msgstr "" #: src/hd-data.c:590 msgid "Shavuot/Giving of the Torah" msgstr "" #: src/hd-data.c:591 msgid "Shushan Purim" msgstr "" #: src/hd-data.c:592 msgid "Simchat Torah" msgstr "" #: src/hd-data.c:593 msgid "Sukkot/Feast of Tabernacles" msgstr "" #: src/hd-data.c:594 msgid "Tisha B'Av/Fasting Day" msgstr "" #: src/hd-data.c:595 msgid "Tu B'Shevat/New Year of Trees" msgstr "" #: src/hd-data.c:596 msgid "Yom Hashoah/Holocaust Memorial" msgstr "" #: src/hd-data.c:597 msgid "Yom Hazikaron/Soldiers Memorial" msgstr "" #: src/hd-data.c:598 msgid "Yom Ha Azmaut/Independence Day" msgstr "" #: src/hd-data.c:599 msgid "Yom Kippur/Atonement Day" msgstr "" #: src/hd-data.c:600 msgid "Yom Yerushalayim/Jerusalem Day" msgstr "" #: src/hd-data.c:601 msgid "Holy Innocent's Day" msgstr "" #: src/hd-data.c:602 msgid "Holy Trinity" msgstr "" #: src/hd-data.c:603 msgid "Huravee Day" msgstr "" #: src/hd-data.c:604 msgid "Independence Day" msgstr "" #: src/hd-data.c:605 msgid "Independence Movement Day" msgstr "" #: src/hd-data.c:606 msgid "Independence Proclamation" msgstr "" #: src/hd-data.c:607 msgid "Indian New Year's Day" msgstr "" #: src/hd-data.c:608 msgid "Aga Khan's Birthday" msgstr "" #: src/hd-data.c:609 msgid "Ashura'" msgstr "" #: src/hd-data.c:610 msgid "Eid-al-Adha" msgstr "" #: src/hd-data.c:611 msgid "Eid-al-Fitr" msgstr "" #: src/hd-data.c:612 msgid "Eid-i-Milad-un-Nabi" msgstr "" #: src/hd-data.c:613 msgid "Ghadir" msgstr "" #: src/hd-data.c:614 msgid "Imamat Day" msgstr "" #: src/hd-data.c:615 msgid "Islamic New Year's Day" msgstr "" #: src/hd-data.c:616 msgid "Nuzul-al-Qur'an" msgstr "" #: src/hd-data.c:617 msgid "Quds Day" msgstr "" #: src/hd-data.c:618 msgid "Ramadan" msgstr "" #: src/hd-data.c:619 msgid "Shab-e-Bara't" msgstr "" #: src/hd-data.c:620 msgid "Shab-e-Mi'raj" msgstr "" #: src/hd-data.c:621 msgid "Shab-e Qadr" msgstr "" #: src/hd-data.c:622 msgid "Waqf-al-Arafat" msgstr "" #: src/hd-data.c:623 msgid "Japanese New Year's Day" msgstr "" #: src/hd-data.c:624 msgid "Japanese New Year's Eve" msgstr "" #: src/hd-data.c:625 msgid "Jesus' Circumcision" msgstr "" #: src/hd-data.c:626 msgid "Kwanzaa" msgstr "" #: src/hd-data.c:627 msgid "Labour Day" msgstr "" #: src/hd-data.c:628 msgid "Labour Thanksgiving Day" msgstr "" #: src/hd-data.c:629 msgid "Lao Tze's Birthday" msgstr "" #: src/hd-data.c:630 msgid "Liberation Day" msgstr "" #: src/hd-data.c:631 msgid "Marine Day" msgstr "" #: src/hd-data.c:632 msgid "Martinimas" msgstr "" #: src/hd-data.c:633 msgid "Martin L. King's Day" msgstr "" #: src/hd-data.c:634 msgid "Martyrs' Day" msgstr "" #: src/hd-data.c:635 msgid "Mary's Annunciation Day" msgstr "" #: src/hd-data.c:636 msgid "Mary's Ascension Day" msgstr "" #: src/hd-data.c:637 msgid "Mary's Candlemas" msgstr "" #: src/hd-data.c:638 msgid "Mary's Expectation" msgstr "" #: src/hd-data.c:639 msgid "Mary's Immaculate Conception" msgstr "" #: src/hd-data.c:640 msgid "Mary's Maternity" msgstr "" #: src/hd-data.c:641 msgid "Mary's Name" msgstr "" #: src/hd-data.c:642 msgid "Mary's Nativity" msgstr "" #: src/hd-data.c:643 msgid "Mary's Sacrifice" msgstr "" #: src/hd-data.c:644 msgid "Mary's Visitation" msgstr "" #: src/hd-data.c:645 msgid "Mary - Blessed Virgin" msgstr "" #: src/hd-data.c:646 msgid "Maundy Thursday" msgstr "" #: src/hd-data.c:647 msgid "May Day" msgstr "" #: src/hd-data.c:648 msgid "St John's/Midsummer Day" msgstr "" #: src/hd-data.c:649 msgid "Mid-Autumn Festival" msgstr "" #: src/hd-data.c:650 msgid "Mid-Spring Festival" msgstr "" #: src/hd-data.c:651 msgid "Mid-Year Festival" msgstr "" #: src/hd-data.c:652 msgid "Waxing Half Moon" msgstr "" #: src/hd-data.c:653 msgid "Full Moon" msgstr "" #: src/hd-data.c:654 msgid "Waning Half Moon" msgstr "" #: src/hd-data.c:655 msgid "New Moon" msgstr "" #: src/hd-data.c:656 msgid "Mother's Day" msgstr "" #: src/hd-data.c:657 msgid "Mother in Law's Day" msgstr "" #: src/hd-data.c:658 msgid "Music Water Banquet" msgstr "" #: src/hd-data.c:659 msgid "National Foundation Day" msgstr "" #: src/hd-data.c:660 msgid "National Holiday" msgstr "" #: src/hd-data.c:661 msgid "National Mourning Day" msgstr "" #: src/hd-data.c:662 msgid "New Year's Day" msgstr "" #: src/hd-data.c:663 msgid "Nurses' Day" msgstr "" #: src/hd-data.c:664 msgid "Old-Armenic New Year" msgstr "" #: src/hd-data.c:665 msgid "Old-Egyptic New Year" msgstr "" #: src/hd-data.c:666 msgid "Orthodox New Year's Day" msgstr "" #: src/hd-data.c:667 msgid "Our Lady Aparecida Day" msgstr "" #: src/hd-data.c:668 msgid "Palm Sunday" msgstr "" #: src/hd-data.c:669 msgid "Parent's Day" msgstr "" #: src/hd-data.c:670 msgid "Passion Sunday" msgstr "" #: src/hd-data.c:671 msgid "Peace Festival" msgstr "" #: src/hd-data.c:672 msgid "Peach Festival" msgstr "" #: src/hd-data.c:673 msgid "Whitsunday/Pentecost" msgstr "" #: src/hd-data.c:674 msgid "Noruz/Persian New Year's Day" msgstr "" #: src/hd-data.c:675 msgid "Prayer Day" msgstr "" #: src/hd-data.c:676 msgid "Presidential Inauguration" msgstr "" #: src/hd-data.c:677 msgid "Presidents' Day" msgstr "" #: src/hd-data.c:678 msgid "Presidents' Inform" msgstr "" #: src/hd-data.c:679 msgid "President Lincoln's Birthday" msgstr "" #: src/hd-data.c:680 msgid "Princess' Day" msgstr "" #: src/hd-data.c:681 msgid "Quinquagesima Sunday" msgstr "" #: src/hd-data.c:682 msgid "Reformation Day" msgstr "" #: src/hd-data.c:683 msgid "Remembrance/Memorial Day" msgstr "" #: src/hd-data.c:684 msgid "Republic Day" msgstr "" #: src/hd-data.c:685 msgid "Respect for the Aged Day" msgstr "" #: src/hd-data.c:686 msgid "Revolution Day" msgstr "" #: src/hd-data.c:687 msgid "Rio de Janeiro Anniversary" msgstr "" #: src/hd-data.c:688 msgid "Rogation Sunday" msgstr "" #: src/hd-data.c:689 msgid "Sao Paulo Anniversary" msgstr "" #: src/hd-data.c:690 msgid "Sapporo Snow Festival" msgstr "" #: src/hd-data.c:691 msgid "Season Change/Bean-Festival" msgstr "" #: src/hd-data.c:692 msgid "Septuagesima Sunday" msgstr "" #: src/hd-data.c:693 msgid "Seven Sleepers Day" msgstr "" #: src/hd-data.c:694 msgid "Sexagesima Sunday" msgstr "" #: src/hd-data.c:695 msgid "Shrove Tuesday/Mardi Gras" msgstr "" #: src/hd-data.c:696 msgid "Solstice Day" msgstr "" #: src/hd-data.c:697 msgid "Soot-Sweeping Day" msgstr "" #: src/hd-data.c:698 msgid "Spring Festival" msgstr "" #: src/hd-data.c:699 msgid "Start of common month" msgstr "" #: src/hd-data.c:700 msgid "Start of leap month" msgstr "" #: src/hd-data.c:701 msgid "Star Festival" msgstr "" #: src/hd-data.c:702 msgid "St Andrew's Day" msgstr "" #: src/hd-data.c:703 msgid "St Bartholomew Day" msgstr "" #: src/hd-data.c:704 msgid "St Berchtold's Day" msgstr "" #: src/hd-data.c:705 msgid "St David's Day" msgstr "" #: src/hd-data.c:706 msgid "St Edward's Day" msgstr "" #: src/hd-data.c:707 msgid "St George's Day" msgstr "" #: src/hd-data.c:708 msgid "St James' Day" msgstr "" #: src/hd-data.c:709 msgid "St Joseph's Day" msgstr "" #: src/hd-data.c:710 msgid "St Laurentius Day" msgstr "" #: src/hd-data.c:711 msgid "St Nicholas' Day" msgstr "" #: src/hd-data.c:712 msgid "St Nicholas' Eve" msgstr "" #: src/hd-data.c:713 msgid "St Patrick's Day" msgstr "" #: src/hd-data.c:714 msgid "St Peter and St Paul" msgstr "" #: src/hd-data.c:715 msgid "St Stephen's Day" msgstr "" #: src/hd-data.c:716 msgid "St Valentine's Day" msgstr "" #: src/hd-data.c:717 msgid "Sunday of the Dead" msgstr "" #: src/hd-data.c:718 msgid "Swallow Day" msgstr "" #: src/hd-data.c:719 msgid "Sweetest Day" msgstr "" #: src/hd-data.c:720 msgid "Sylvester/New Year's Eve" msgstr "" #: src/hd-data.c:721 msgid "Teacher's Day" msgstr "" #: src/hd-data.c:722 msgid "Thai New Year's Day" msgstr "" #: src/hd-data.c:723 msgid "Thanksgiving Day" msgstr "" #: src/hd-data.c:724 msgid "The King's Birthday" msgstr "" #: src/hd-data.c:725 msgid "The Queen's Birthday" msgstr "" #: src/hd-data.c:726 msgid "Epiphany/Three King's Day" msgstr "" #: src/hd-data.c:727 msgid "Tiradentes Day" msgstr "" #: src/hd-data.c:728 msgid "Tomb-Sweeping Day" msgstr "" #: src/hd-data.c:729 msgid "Transfiguration Day" msgstr "" #: src/hd-data.c:730 msgid "Tynwald Day" msgstr "" #: src/hd-data.c:731 msgid "Valborg's Eve" msgstr "" #: src/hd-data.c:732 msgid "Venice Carnival" msgstr "" #: src/hd-data.c:733 msgid "Veteran's Day" msgstr "" #: src/hd-data.c:734 msgid "Victoria Day" msgstr "" #: src/hd-data.c:735 msgid "Victory Day" msgstr "" #: src/hd-data.c:736 msgid "Whit Monday" msgstr "" #: src/hd-data.c:737 msgid "Women's Day" msgstr "" #: src/hd-data.c:738 msgid "Women's Shrove Day" msgstr "" #: src/hd-data.c:739 msgid "World Animal Day" msgstr "" #: src/hd-data.c:740 msgid "Youth Day" msgstr "" #: src/hd-data.c:746 msgid "Adelaide Cup Day" msgstr "" #: src/hd-data.c:747 msgid "Admission Day" msgstr "" #: src/hd-data.c:748 msgid "Alaska Day" msgstr "" #: src/hd-data.c:749 msgid "Aleksis Kivi Day" msgstr "" #: src/hd-data.c:750 msgid "Alice-Springs Show Day" msgstr "" #: src/hd-data.c:751 msgid "All Saints' Eve" msgstr "" #: src/hd-data.c:752 msgid "Americas Day" msgstr "" #: src/hd-data.c:753 msgid "Angam Day" msgstr "" #: src/hd-data.c:755 msgid "Anniversary of Amir's Succession" msgstr "" #: src/hd-data.c:756 msgid "Anniversary of Armed Struggle" msgstr "" #: src/hd-data.c:757 msgid "Anniversary of Green March" msgstr "" #: src/hd-data.c:758 msgid "Antillian Day" msgstr "" #: src/hd-data.c:759 msgid "Arab League Day" msgstr "" #: src/hd-data.c:761 msgid "Archbishop Makarios' Memorial Day" msgstr "" #: src/hd-data.c:762 msgid "Archbishop Makarios' Name-Day" msgstr "" #: src/hd-data.c:763 msgid "Arengo Anniversary" msgstr "" #: src/hd-data.c:764 msgid "Army Coup Day" msgstr "" #: src/hd-data.c:765 msgid "Arrival of the Swiss" msgstr "" #: src/hd-data.c:766 msgid "Artigas' Birthday" msgstr "" #: src/hd-data.c:767 msgid "Asuncion Day" msgstr "" #: src/hd-data.c:768 msgid "Ataturk Memorial Day" msgstr "" #: src/hd-data.c:769 msgid "Authority's Power Day" msgstr "" #: src/hd-data.c:770 msgid "Ba'ath Revolution Day" msgstr "" #: src/hd-data.c:771 msgid "Baron Bliss Day" msgstr "" #: src/hd-data.c:772 msgid "Bataan Day" msgstr "" #: src/hd-data.c:773 msgid "Battle of Angamos" msgstr "" #: src/hd-data.c:774 msgid "Battle of Boyacá" msgstr "" #: src/hd-data.c:775 msgid "Battle of Carabobo" msgstr "" #: src/hd-data.c:776 msgid "Battle of Iquique" msgstr "" #: src/hd-data.c:777 msgid "Battle of Las Piedras" msgstr "" #: src/hd-data.c:778 msgid "Battle of Näfels" msgstr "" #: src/hd-data.c:779 msgid "Beginning of Summer" msgstr "" #: src/hd-data.c:780 msgid "Belgrade's Day" msgstr "" #: src/hd-data.c:781 msgid "Bennington Battle Day" msgstr "" #: src/hd-data.c:782 msgid "Blessing of the Water" msgstr "" #: src/hd-data.c:783 msgid "Bloomsday" msgstr "" #: src/hd-data.c:784 msgid "Boganda Day" msgstr "" #: src/hd-data.c:785 msgid "Bonaire Day" msgstr "" #: src/hd-data.c:786 msgid "Boqueron Battle Day" msgstr "" #: src/hd-data.c:787 #, fuzzy msgid "Botswana Day" msgstr "Botsvana" #: src/hd-data.c:788 msgid "Bounty Day" msgstr "" #: src/hd-data.c:789 msgid "Bunker Hill Day" msgstr "" #: src/hd-data.c:790 msgid "Burning of Jan Hus" msgstr "" #: src/hd-data.c:791 msgid "Canberra Day" msgstr "" #: src/hd-data.c:792 msgid "Caricom Day" msgstr "" #: src/hd-data.c:793 msgid "Casimir Pulaski's Birthday" msgstr "" #: src/hd-data.c:794 msgid "Cassinga Day" msgstr "" #: src/hd-data.c:795 msgid "Cayenne Festival" msgstr "" #: src/hd-data.c:796 msgid "Cesar Chavez Day" msgstr "" #: src/hd-data.c:797 msgid "Charter Day" msgstr "" #: src/hd-data.c:798 msgid "Chiang Kai-shek's Birthday" msgstr "" #: src/hd-data.c:799 msgid "Children's White Sunday" msgstr "" #: src/hd-data.c:800 msgid "Colon Day" msgstr "" #: src/hd-data.c:801 msgid "Colorado Day" msgstr "" #: src/hd-data.c:802 msgid "Commonwealth Day" msgstr "" #: src/hd-data.c:803 msgid "Compact Day" msgstr "" #: src/hd-data.c:804 msgid "Confederal Agreement Day" msgstr "" #: src/hd-data.c:805 msgid "Coronation Day" msgstr "" #: src/hd-data.c:806 msgid "Cup Match Day" msgstr "" #: src/hd-data.c:807 msgid "Custom Chief's Day" msgstr "" #: src/hd-data.c:808 msgid "C. Mapinduzi Day" msgstr "" #: src/hd-data.c:809 msgid "Darwin Show Day" msgstr "" #: src/hd-data.c:810 msgid "Day of Goodwill" msgstr "" #: src/hd-data.c:811 msgid "Day of Students Revolt" msgstr "" #: src/hd-data.c:812 msgid "Day of the Free Laos" msgstr "" #: src/hd-data.c:813 msgid "Death of H. Christophe" msgstr "" #: src/hd-data.c:814 msgid "Death of J. Dessalines" msgstr "" #: src/hd-data.c:815 msgid "Death of President Abdallah" msgstr "" #: src/hd-data.c:816 msgid "Death of President Cheikh" msgstr "" #: src/hd-data.c:817 msgid "Death of President Soilih" msgstr "" #: src/hd-data.c:818 msgid "Death of Qaid-i-Azam" msgstr "" #: src/hd-data.c:819 msgid "Death of T. Louverture" msgstr "" #: src/hd-data.c:820 msgid "Defenders Day" msgstr "" #: src/hd-data.c:821 msgid "Dia del Padre" msgstr "" #: src/hd-data.c:822 msgid "Dia de los Maestros" msgstr "" #: src/hd-data.c:823 msgid "Discovery Day" msgstr "" #: src/hd-data.c:824 msgid "Downfall of the Dergue" msgstr "" #: src/hd-data.c:825 msgid "Dry Season Celebration" msgstr "" #: src/hd-data.c:826 msgid "Dr. Sun Yat-sen's Birthday" msgstr "" #: src/hd-data.c:827 msgid "Duarte's Birthday" msgstr "" #: src/hd-data.c:828 msgid "Easter Tuesday" msgstr "" #: src/hd-data.c:829 msgid "Economic Liberation Day" msgstr "" #: src/hd-data.c:830 msgid "Eight Hours Day" msgstr "" #: src/hd-data.c:831 msgid "Elections for National Assembly" msgstr "" #: src/hd-data.c:832 msgid "Errol Barrow Day" msgstr "" #: src/hd-data.c:833 msgid "Evacuation Day" msgstr "" #: src/hd-data.c:834 msgid "Eve of Epiphany" msgstr "" #: src/hd-data.c:835 msgid "Expedition of the 33" msgstr "" #: src/hd-data.c:836 msgid "E. Hostos' Birthday" msgstr "" #: src/hd-data.c:837 msgid "Family Day" msgstr "" #: src/hd-data.c:838 msgid "FAO Day" msgstr "" #: src/hd-data.c:839 msgid "Farmers' Day" msgstr "" #: src/hd-data.c:840 msgid "Father Leval Day" msgstr "" #: src/hd-data.c:841 msgid "Feast of Our Theotokos" msgstr "" #: src/hd-data.c:842 msgid "Fisherman's Day" msgstr "" #: src/hd-data.c:843 msgid "Foundation of NPLA Day" msgstr "" #: src/hd-data.c:844 msgid "Founding of People's Party" msgstr "" #: src/hd-data.c:845 msgid "Garifuna Day" msgstr "" #: src/hd-data.c:847 msgid "General San Martin's Anniversary" msgstr "" #: src/hd-data.c:848 msgid "Gospel Day" msgstr "" #: src/hd-data.c:849 msgid "Guacanaste Day" msgstr "" #: src/hd-data.c:850 msgid "Gustavus Adolphus' Day" msgstr "" #: src/hd-data.c:851 msgid "Heritage Day" msgstr "" #: src/hd-data.c:852 msgid "Heroes Day" msgstr "" #: src/hd-data.c:853 msgid "Hobart Show Day" msgstr "" #: src/hd-data.c:854 msgid "Holy Wednesday" msgstr "" #: src/hd-data.c:855 msgid "Ho Chi Minh's Birthday" msgstr "" #: src/hd-data.c:856 msgid "Human Rights Day" msgstr "" #: src/hd-data.c:857 msgid "Hurricane Supplication Day" msgstr "" #: src/hd-data.c:858 msgid "Hurricane Thanksgiving Day" msgstr "" #: src/hd-data.c:859 msgid "Independence of Cartagena" msgstr "" #: src/hd-data.c:860 msgid "Independence of Cuenca" msgstr "" #: src/hd-data.c:861 msgid "Independence of Guayaquil" msgstr "" #: src/hd-data.c:862 msgid "Independence of Quito" msgstr "" #: src/hd-data.c:863 msgid "Indian Arrival Day" msgstr "" #: src/hd-data.c:864 msgid "Internal Autonomy Day" msgstr "" #: src/hd-data.c:865 msgid "Jefferson Davis' Birthday" msgstr "" #: src/hd-data.c:866 msgid "June Holiday" msgstr "" #: src/hd-data.c:867 msgid "J. Barbosa's Birthday" msgstr "" #: src/hd-data.c:868 msgid "J. Chilembwe Day" msgstr "" #: src/hd-data.c:869 msgid "J. Diego's Birthday" msgstr "" #: src/hd-data.c:870 msgid "J. Robert's Birthday" msgstr "" #: src/hd-data.c:871 msgid "Kamarampaka Day" msgstr "" #: src/hd-data.c:872 msgid "Kartini Day" msgstr "" #: src/hd-data.c:873 msgid "Catherine Show Day" msgstr "" #: src/hd-data.c:874 msgid "Kiev Day" msgstr "" #: src/hd-data.c:875 msgid "Kim Il-Sung's Birthday" msgstr "" #: src/hd-data.c:876 msgid "Kim Jong-Il's Birthday" msgstr "" #: src/hd-data.c:877 msgid "King Kamehameha Day" msgstr "" #: src/hd-data.c:878 msgid "King Rama I Memorial Day/Chakri" msgstr "" #: src/hd-data.c:879 msgid "King Rama V Memorial Day" msgstr "" #: src/hd-data.c:880 msgid "Knabenschiessen" msgstr "" #: src/hd-data.c:881 msgid "Konstantin and Methodius" msgstr "" #: src/hd-data.c:882 msgid "Lapp National Holiday" msgstr "" #: src/hd-data.c:883 msgid "Launceston Cup Day" msgstr "" #: src/hd-data.c:884 #, fuzzy msgid "Liberty Day" msgstr "Liberija" #: src/hd-data.c:885 msgid "Loss of Muslim Nation" msgstr "" #: src/hd-data.c:886 #, fuzzy msgid "Luxembourg City Kermis" msgstr "Liuksemburgas" #: src/hd-data.c:887 msgid "Lyndon B. Johnson Day" msgstr "" #: src/hd-data.c:888 msgid "L. Rivera's Birthday" msgstr "" #: src/hd-data.c:889 msgid "Madaraka Day" msgstr "" #: src/hd-data.c:890 msgid "Mahatma Gandhi's Birthday" msgstr "" #: src/hd-data.c:891 msgid "Malvinas Day" msgstr "" #: src/hd-data.c:892 msgid "Manila Day" msgstr "" #: src/hd-data.c:893 msgid "Maputo City Day" msgstr "" #: src/hd-data.c:894 msgid "Marien Ngouabi Day" msgstr "" #: src/hd-data.c:895 msgid "Maryland Day" msgstr "" #: src/hd-data.c:896 msgid "Melbourne Cup Day" msgstr "" #: src/hd-data.c:897 msgid "Merchant Day" msgstr "" #: src/hd-data.c:898 msgid "St John's/Midsummers Eve" msgstr "" #: src/hd-data.c:899 msgid "Missionary Day" msgstr "" #: src/hd-data.c:900 msgid "Mi-Carême Day" msgstr "" #: src/hd-data.c:901 msgid "Morazan Day" msgstr "" #: src/hd-data.c:902 msgid "Mosheshoe's Day" msgstr "" #: src/hd-data.c:903 msgid "Motherhood and Beauty Day" msgstr "" #: src/hd-data.c:904 msgid "Naming Day" msgstr "" #: src/hd-data.c:905 msgid "National Bun Day" msgstr "" #: src/hd-data.c:906 msgid "National Heroes Day" msgstr "" #: src/hd-data.c:907 msgid "National Redemption Day" msgstr "" #: src/hd-data.c:908 msgid "National Resistance Day" msgstr "" #: src/hd-data.c:909 msgid "National Revival Day" msgstr "" #: src/hd-data.c:910 msgid "National Unity Day" msgstr "" #: src/hd-data.c:911 msgid "Ndadaye Day" msgstr "" #: src/hd-data.c:912 #, fuzzy msgid "Neutrality Day" msgstr "Australija" #: src/hd-data.c:913 msgid "Nevada Day" msgstr "" #: src/hd-data.c:914 msgid "New Regime Anniversary" msgstr "" #: src/hd-data.c:915 msgid "Nobel Day" msgstr "" #: src/hd-data.c:916 msgid "Noi Day" msgstr "" #: src/hd-data.c:917 msgid "OAU Day" msgstr "" #: src/hd-data.c:918 msgid "October Holiday" msgstr "" #: src/hd-data.c:919 msgid "Oil Industry Day" msgstr "" #: src/hd-data.c:920 msgid "Our Lady of Altagracia Day" msgstr "" #: src/hd-data.c:921 msgid "Our Lady of Camarin Day" msgstr "" #: src/hd-data.c:922 msgid "Our Lady of Las Mercedes Day" msgstr "" #: src/hd-data.c:923 msgid "Our Lady of Los Angeles Day" msgstr "" #: src/hd-data.c:924 msgid "Our Lady of Seven Sorrows" msgstr "" #: src/hd-data.c:925 msgid "Our Lady of Victories Day" msgstr "" #: src/hd-data.c:926 msgid "Panama City Day" msgstr "" #: src/hd-data.c:927 #, fuzzy msgid "Panamerica Day" msgstr "Panama" #: src/hd-data.c:928 msgid "Paris Peace Agreement Day" msgstr "" #: src/hd-data.c:929 msgid "Patriot's Day" msgstr "" #: src/hd-data.c:930 msgid "People's Uprising Day" msgstr "" #: src/hd-data.c:931 msgid "People Power Day" msgstr "" #: src/hd-data.c:932 msgid "Philippine-American Friendship" msgstr "" #: src/hd-data.c:933 msgid "Pichincha Day" msgstr "" #: src/hd-data.c:934 msgid "Picnic Day" msgstr "" #: src/hd-data.c:935 msgid "Pioneer Day" msgstr "" #: src/hd-data.c:936 msgid "Poya Day" msgstr "" #: src/hd-data.c:937 msgid "Prince Kalanianaole Day" msgstr "" #: src/hd-data.c:938 msgid "Prince of Wales' Birthday" msgstr "" #: src/hd-data.c:939 msgid "Proclamation Day" msgstr "" #: src/hd-data.c:940 msgid "Qaid-i-Azam's Birthday" msgstr "" #: src/hd-data.c:941 msgid "Ratu Sukuma Day" msgstr "" #: src/hd-data.c:942 msgid "Recreation Day" msgstr "" #: src/hd-data.c:943 msgid "Referendum Day" msgstr "" #: src/hd-data.c:944 msgid "Regatta Day" msgstr "" #: src/hd-data.c:945 msgid "Regency Exchange" msgstr "" #: src/hd-data.c:946 msgid "Restoration Day" msgstr "" #: src/hd-data.c:947 msgid "Return Day" msgstr "" #: src/hd-data.c:948 msgid "Reunification Day" msgstr "" #: src/hd-data.c:949 msgid "Rizal Day" msgstr "" #: src/hd-data.c:950 msgid "Rwagasore Day" msgstr "" #: src/hd-data.c:951 msgid "Saba Day" msgstr "" #: src/hd-data.c:952 #, fuzzy msgid "San Jacinto Day" msgstr "San Marinas" #: src/hd-data.c:953 msgid "San José Day" msgstr "" #: src/hd-data.c:954 msgid "SAR Establishment Day" msgstr "" #: src/hd-data.c:955 msgid "School Holiday" msgstr "" #: src/hd-data.c:956 msgid "Sechseläuten" msgstr "" #: src/hd-data.c:957 msgid "Separation Day" msgstr "" #: src/hd-data.c:958 msgid "Seretse Khama Day" msgstr "" #: src/hd-data.c:959 msgid "Settlers Day" msgstr "" #: src/hd-data.c:960 msgid "Seward's Day" msgstr "" #: src/hd-data.c:961 msgid "Shaheed Day" msgstr "" #: src/hd-data.c:962 msgid "Sheep Festival" msgstr "" #: src/hd-data.c:963 msgid "Sheikh Zayed's Ascension Day" msgstr "" #: src/hd-data.c:964 msgid "Simon Bolivar's Day" msgstr "" #: src/hd-data.c:965 msgid "Sinai-Liberation Day" msgstr "" #: src/hd-data.c:966 msgid "Slave-Liberation Day" msgstr "" #: src/hd-data.c:967 msgid "Sniff the Breeze Day" msgstr "" #: src/hd-data.c:968 msgid "Solidarity Day" msgstr "" #: src/hd-data.c:969 msgid "Somers Day" msgstr "" #: src/hd-data.c:970 #, fuzzy msgid "Statia-American Day" msgstr "Amerikos Samoa" #: src/hd-data.c:971 msgid "Student's Day" msgstr "" #: src/hd-data.c:972 msgid "St Agata Day" msgstr "" #: src/hd-data.c:973 msgid "St Canute's Day" msgstr "" #: src/hd-data.c:974 msgid "St Cedilia's Day" msgstr "" #: src/hd-data.c:975 msgid "St Charles' Day" msgstr "" #: src/hd-data.c:976 msgid "St Demetrius' Day" msgstr "" #: src/hd-data.c:977 msgid "St Dévote Day" msgstr "" #: src/hd-data.c:978 msgid "St Eliah's Day" msgstr "" #: src/hd-data.c:979 msgid "St Jean Baptiste Day" msgstr "" #: src/hd-data.c:980 msgid "St Lucia's Day" msgstr "" #: src/hd-data.c:981 msgid "St Marguerite's Day" msgstr "" #: src/hd-data.c:982 msgid "St Maroon's Day" msgstr "" #: src/hd-data.c:983 msgid "St Michael's Day" msgstr "" #: src/hd-data.c:984 msgid "St Olav's Day" msgstr "" #: src/hd-data.c:985 msgid "St Olav's Eve" msgstr "" #: src/hd-data.c:986 msgid "St Paul's Shipswreck" msgstr "" #: src/hd-data.c:987 msgid "St Rose of Lima" msgstr "" #: src/hd-data.c:988 msgid "St Ursula's Day" msgstr "" #: src/hd-data.c:989 msgid "St Vincent de Paul's Day" msgstr "" #: src/hd-data.c:990 msgid "Suez Victory Day" msgstr "" #: src/hd-data.c:991 msgid "Sultan Qaboos' Birthday" msgstr "" #: src/hd-data.c:992 msgid "Svetitskhovloba" msgstr "" #: src/hd-data.c:993 #, fuzzy msgid "Sweden Day" msgstr "Å vedija" #: src/hd-data.c:994 msgid "S. Doe's Birthday" msgstr "" #: src/hd-data.c:995 msgid "Tennant-Creek Show Day" msgstr "" #: src/hd-data.c:996 msgid "Territory Day" msgstr "" #: src/hd-data.c:997 msgid "The Crown Princesse's Birthday" msgstr "" #: src/hd-data.c:998 msgid "The Crown Princesse's Name-Day" msgstr "" #: src/hd-data.c:999 msgid "The Crown Prince's Birthday" msgstr "" #: src/hd-data.c:1000 msgid "The King's Name-Day" msgstr "" #: src/hd-data.c:1001 msgid "The Queen's Name-Day" msgstr "" #: src/hd-data.c:1002 msgid "Topou I Day" msgstr "" #: src/hd-data.c:1003 msgid "Town Meeting Day" msgstr "" #: src/hd-data.c:1004 msgid "Traditional Day" msgstr "" #: src/hd-data.c:1005 msgid "Transfer Day" msgstr "" #: src/hd-data.c:1006 msgid "Truman Day" msgstr "" #: src/hd-data.c:1007 msgid "Union Day" msgstr "" #: src/hd-data.c:1008 msgid "Union with Sweden dissolved" msgstr "" #: src/hd-data.c:1009 #, fuzzy msgid "United Nations Day" msgstr "JungtinÄ—s Valstijos" #: src/hd-data.c:1010 msgid "Unity Factory Day" msgstr "" #: src/hd-data.c:1011 msgid "Victor-Schoelcher Day" msgstr "" #: src/hd-data.c:1012 msgid "Vidovdan" msgstr "" #: src/hd-data.c:1013 msgid "West Virginia Day" msgstr "" #: src/hd-data.c:1014 msgid "Whitsun Eve" msgstr "" #: src/hd-data.c:1015 msgid "W. Tubman's Birthday" msgstr "" #: src/hd-data.c:1016 msgid "Yap Day" msgstr "" #: src/hd-data.c:1017 msgid "Day of Czech Statehood" msgstr "" #: src/hd-data.c:1082 msgid "Zi/Rat" msgstr "" #: src/hd-data.c:1082 msgid "Chou/Ox" msgstr "" #: src/hd-data.c:1083 msgid "Yin/Tiger" msgstr "" #: src/hd-data.c:1083 msgid "Mao/Rabbit" msgstr "" #: src/hd-data.c:1084 msgid "Chen/Dragon" msgstr "" #: src/hd-data.c:1084 msgid "Si/Snake" msgstr "" #: src/hd-data.c:1085 msgid "Wu/Horse" msgstr "" #: src/hd-data.c:1085 msgid "Wei/Sheep" msgstr "" #: src/hd-data.c:1086 msgid "Shen/Monkey" msgstr "" #: src/hd-data.c:1086 msgid "You/Rooster" msgstr "" #: src/hd-data.c:1087 msgid "Xu/Dog" msgstr "" #: src/hd-data.c:1087 msgid "Hai/Pig" msgstr "" #: src/hd-data.c:1284 #, fuzzy msgid "Ast" msgstr "Austrija" #: src/hd-data.c:1397 src/hd-data.c:1480 #, fuzzy msgid "Bah" msgstr "Bahreinas" #: src/hd-data.c:1547 msgid "Cel" msgstr "" #: src/hd-data.c:1689 src/hd-data.c:2222 #, fuzzy msgid "Chi" msgstr "Kinija" #: src/hd-data.c:1803 src/hd-data.c:2322 src/hd-data.c:3839 #, c-format msgid "Cannot calculate lunisolar calendar for %d correctly" msgstr "" #: src/hd-data.c:2224 src/hd-data.c:3727 #, fuzzy msgid "Jap" msgstr "Japonija" #: src/hd-data.c:2420 msgid "Chr" msgstr "" #: src/hd-data.c:2654 src/hd-data.c:4171 msgid "FRR" msgstr "" #: src/hd-data.c:2775 src/hd-data.c:2957 msgid "Heb" msgstr "" #: src/hd-data.c:3187 src/hd-data.c:3616 #, fuzzy msgid "Isl" msgstr "Izraelis" #: src/hd-data.c:4241 src/hd-data.c:4336 msgid "AMO" msgstr "" #: src/hd-data.c:4262 src/hd-data.c:4334 msgid "EGO" msgstr "" #: src/hd-data.c:4444 msgid "OxN" msgstr "" #: src/hd-data.c:4446 msgid "OxO" msgstr "" #: src/hd-data.c:4647 src/hd-data.c:4776 #, fuzzy msgid "Per" msgstr "Peru" #: src/hd-data.c:4844 msgid "Zod" msgstr "" #: src/hd-use.c:928 msgid " day" msgstr "" #: src/hd-use.c:1973 src/hd-use.c:1978 src/hd-use.c:1982 src/hd-use.c:1989 #: src/hd-use.c:1993 src/hd-use.c:2089 src/hd-use.c:2273 msgid "Eternal holiday list" msgstr "" #: src/hd-use.c:1977 #, c-format msgid "%s:%*sThe year %0*d is A leap year" msgstr "" #: src/hd-use.c:1981 #, c-format msgid "%s:%*sThe year %0*d is NO leap year" msgstr "" #: src/hd-use.c:1988 #, c-format msgid "%s:%*sThe year %d is A leap year" msgstr "" #: src/hd-use.c:1992 #, c-format msgid "%s:%*sThe year %d is NO leap year" msgstr "" #: src/hd-use.c:2242 #, c-format msgid " = %+4d day" msgstr "" #: src/hd-use.c:2244 #, c-format msgid " = %+4d days" msgstr "" #: src/hd-use.c:2271 #, c-format msgid "%s%s contains %d maximum entries now!%s" msgstr "" #: src/help.c:64 #, c-format msgid "Compiled with %s%s for %s%s%s%s" msgstr "" #: src/help.c:74 msgid "# Day number (must be defined)" msgstr "" #: src/help.c:75 msgid "# Year number (must be defined)" msgstr "" #: src/help.c:76 msgid "# Weekday name (may be defined)" msgstr "" #: src/help.c:77 msgid "Month group (exactly one member must be defined):" msgstr "" #: src/help.c:78 msgid "# Month number" msgstr "" #: src/help.c:79 msgid "# Month name" msgstr "" #: src/help.c:80 msgid "Highlighting group (all members must be defined):" msgstr "" #: src/help.c:81 msgid "Start of highlighting sequence/marking character" msgstr "" #: src/help.c:83 msgid "End of highlighting sequence/marking character" msgstr "" #: src/help.c:85 msgid "Character replacement:" msgstr "" #: src/help.c:86 #, c-format msgid "Space/blank ('%c') character" msgstr "" #: src/help.c:87 #, c-format msgid "Underscore ('%c') character" msgstr "" #: src/help.c:88 #, c-format msgid "Percent ('%c') character" msgstr "" #: src/help.c:89 #, c-format msgid "Backslash ('%c') character" msgstr "" #: src/help.c:90 msgid "All format elements marked by # may optionally" msgstr "" #: src/help.c:91 msgid "contain a format instruction, which template is like:" msgstr "" #: src/help.c:92 msgid "[ALIGNMENT [SIGN] [ZERO] WIDTH [STYLE] [SUFFIX] FORMAT]" msgstr "" #: src/help.c:93 msgid "ALIGNMENT group (exactly one member must be defined):" msgstr "" #: src/help.c:94 msgid "Field contents placed at the left margin using width WIDTH" msgstr "" #: src/help.c:96 msgid "Field contents placed in centered manner using width WIDTH" msgstr "" #: src/help.c:98 msgid "Field contents placed at the right margin using width WIDTH" msgstr "" #: src/help.c:100 msgid "SIGN (may be defined):" msgstr "" #: src/help.c:101 msgid "Numerical value is provided with leading sign" msgstr "" #: src/help.c:102 msgid "ZERO (may be defined):" msgstr "" #: src/help.c:103 msgid "Numerical value is filled with leading zero(es)" msgstr "" #: src/help.c:104 msgid "WIDTH (must be defined):" msgstr "" #: src/help.c:105 #, c-format msgid "Field has the width N (%d...%d)" msgstr "" #: src/help.c:106 msgid "STYLE group (exactly one member may be defined):" msgstr "" #: src/help.c:107 msgid "Field contents is converted to upper-case letters" msgstr "" #: src/help.c:108 msgid "Field contents is converted to lower-case letters" msgstr "" #: src/help.c:109 msgid "Field contents is converted to capitalized words" msgstr "" #: src/help.c:110 msgid "SUFFIX (may be defined):" msgstr "" #: src/help.c:111 msgid "Numerical value is provided with an ordinal number suffix" msgstr "" #: src/help.c:113 msgid "FORMAT group (exactly one member must be defined):" msgstr "" #: src/help.c:114 msgid "Field contents is not cut after position WIDTH" msgstr "" #: src/help.c:115 msgid "Field contents is cut after position WIDTH" msgstr "" #: src/help.c:129 msgid "legal holidays" msgstr "" #: src/help.c:130 msgid "holidays" msgstr "" #: src/help.c:131 msgid "Mondays" msgstr "" #: src/help.c:132 msgid "Tuesdays" msgstr "" #: src/help.c:133 msgid "Wednesdays" msgstr "" #: src/help.c:134 msgid "Thursdays" msgstr "" #: src/help.c:135 msgid "Fridays" msgstr "" #: src/help.c:136 msgid "Saturdays" msgstr "" #: src/help.c:137 msgid "Sundays" msgstr "" #: src/help.c:138 msgid "Mondays...Thursdays" msgstr "" #: src/help.c:139 msgid "Mondays...Fridays" msgstr "" #: src/help.c:169 #, c-format msgid "%s: Use `%s %s' with one of these arguments" msgstr "" #: src/help.c:242 msgid "OPTION" msgstr "" #: src/help.c:255 msgid " Display help text and quit program" msgstr "" #: src/help.c:272 msgid " Display extended help text and quit program" msgstr "" #: src/help.c:290 msgid " Display software license and quit program" msgstr "" #: src/help.c:301 msgid " Display version information and quit program" msgstr "" #: src/help.c:312 #, c-format msgid " Set EXIT status of program to %d on `%s' etc." msgstr "" #: src/help.c:325 #, c-format msgid " Create response file for the `%cFILE' option" msgstr "" #: src/help.c:329 #, c-format msgid " %-3s = Store arguments of command line in file %s" msgstr "" #: src/help.c:343 #, c-format msgid "" " Create shell script which contains the arguments of command line" msgstr "" #: src/help.c:345 #, c-format msgid " %-3s = File name of the shell script" msgstr "" #: src/help.c:359 msgid " Define global date variable(s) \"DVAR->a...d|f...s|u...|z\"" msgstr "" #: src/help.c:363 #, c-format msgid " %-3s = \"DVAR%s%s%s\" definitions separated by `%s' characters" msgstr "" #: src/help.c:368 #, c-format msgid "" " E.g. %sv a%s1127%sb%s054 Set `a' to Nov 27 and `b' to May 4" msgstr "" #: src/help.c:380 msgid " Export local date variables from file to file" msgstr "" #: src/help.c:392 #, c-format msgid " Define global text variable(s) \"TVAR->%ca...%cz\"" msgstr "" #: src/help.c:397 #, c-format msgid " %-3s = \"TVAR%sTEXT\" definitions separated by `%s' characters" msgstr "" #: src/help.c:402 #, c-format msgid "" " E.g. %sr %ca%sfoo%s%cb%sbar Set `%ca' to `foo' and `%cb' to " "`bar'" msgstr "" #: src/help.c:408 #, c-format msgid "" " = \"TVAR[%s|%c%s]COMMAND\" definitions separated by `%s' characters" msgstr "" #: src/help.c:413 #, c-format msgid "" " E.g. %sr %ca%sfoo Assign output of command `foo' to `%ca'" msgstr "" #: src/help.c:425 msgid " Export local text variables from file to file" msgstr "" #: src/help.c:437 src/help.c:467 #, c-format msgid "" " Display only those fixed dates, whose date is not excluded by %s" msgstr "" #: src/help.c:442 #, c-format msgid " %-3s = One or more of the following characters. If character" msgstr "" #: src/help.c:447 msgid " is a LOWER-CASE-LETTER, it means a non-exclusion!" msgstr "" #: src/help.c:451 #, c-format msgid " %c = Exclusion of all %s" msgstr "" #: src/help.c:472 #, c-format msgid " %-3s = List of `%c[DATE][%c[DATE]]' and/or `%c[DATE][%c[DATE]]'" msgstr "" #: src/help.c:476 #, c-format msgid " expressions separated by `%s' characters" msgstr "" #: src/help.c:489 #, c-format msgid " Display only those fixed dates, whose text is matched by %s" msgstr "" #: src/help.c:494 #, c-format msgid " %-3s = Any text respectively \"regular expression\" you like" msgstr "" #: src/help.c:507 #, c-format msgid " Ignore case distinctions if `%s' option is given" msgstr "" #: src/help.c:519 #, c-format msgid " Revert the sense of matching of the `%s' option" msgstr "" #: src/help.c:530 msgid " Display some debug information" msgstr "" #: src/help.c:538 #, c-format msgid "" " [%-3s] = internal Information if program internal maximums are reached" msgstr "" #: src/help.c:547 msgid "" " = handled Like `internal' and file names which are handled" msgstr "" #: src/help.c:555 msgid "" " = unhandled Like `internal' and file names which are unhandled" msgstr "" #: src/help.c:563 msgid " = all Like `handled' and `unhandled' together" msgstr "" #: src/help.c:571 msgid "" " = abort Like `all' and abort if file name can't be handled" msgstr "" #: src/help.c:581 msgid " Use special format for calendar sheet" msgstr "" #: src/help.c:584 msgid " [MOD] = - Use standard format for calendar sheet" msgstr "" #: src/help.c:595 msgid " Use leap year rule of Eastern Orthodox churches" msgstr "" #: src/help.c:605 msgid " Provide calendar sheet with week numbers" msgstr "" #: src/help.c:616 #, c-format msgid " Determine type of week numbers (actual: %s)" msgstr "" #: src/help.c:617 msgid "Standard" msgstr "" #: src/help.c:623 #, c-format msgid " %-3s = yes ISO-8601:1988 week numbers" msgstr "" #: src/help.c:630 msgid " = no Standard week numbers" msgstr "" #: src/help.c:641 msgid " Suppress output of calendar sheet explicitly" msgstr "" #: src/help.c:654 #, c-format msgid " Direct output through external `%s' pager" msgstr "" #: src/help.c:660 src/help.c:662 msgid " Direct output through simple internal pager" msgstr "" #: src/help.c:679 msgid " Disable highlighting of text, holiday resp., actual day" msgstr "" #: src/help.c:694 msgid " Forces highlighting sequences if output is redirected/piped" msgstr "" #: src/help.c:706 msgid "" " Set highlighting sequence pairs 1 (=actual day) and 2 (=holiday)" msgstr "" #: src/help.c:710 #, c-format msgid " %-3s = Highlighting sequence pairs separated by `%s' characters" msgstr "" #: src/help.c:715 #, c-format msgid "" " E.g. %sH \\x2%s\\xAE Use hex values 2 and AE for sequence 1" msgstr "" #: src/help.c:720 #, c-format msgid "" " E.g. %sH %s%s*%s* Use characters `*' and `*' for sequence 2" msgstr "" #: src/help.c:731 msgid " Modify format of year calendar" msgstr "" #: src/help.c:735 #, c-format msgid " %-3s = 1|2|3|4|6|12 Number of blocks (actual: %d)" msgstr "" #: src/help.c:747 msgid " Use consecutive day of year in calendar sheet" msgstr "" #: src/help.c:751 msgid " [MOD] = b Use both date notations (day of month+year)" msgstr "" #: src/help.c:763 msgid " Use consecutive day of year in eternal holiday list" msgstr "" #: src/help.c:767 src/help.c:783 msgid " [MOD] = b Use both date notations (day of month+year)" msgstr "" #: src/help.c:779 msgid " Use consecutive day of year in fixed date list" msgstr "" #: src/help.c:794 #, c-format msgid " Set starting day of week (actual: %s)" msgstr "" #: src/help.c:827 #, c-format msgid " Send output via `%s' program to user" msgstr "" #: src/help.c:856 msgid "UNKNOWN" msgstr "" #: src/help.c:859 #, c-format msgid " [%-3s] = Email address, otherwise eMail is send to user `%s'" msgstr "" #: src/help.c:877 #, c-format msgid " Display eternal holiday list (Year in range: %d...%d)" msgstr "" #: src/help.c:880 msgid " n = Legal days and memorial days" msgstr "" #: src/help.c:882 msgid " N = Legal days only" msgstr "" #: src/help.c:884 src/help.c:1630 #, c-format msgid " [MOD] = %s Descending sort order" msgstr "" #: src/help.c:896 msgid " Suppress leading blank line of eternal holiday list" msgstr "" #: src/help.c:906 msgid " Exclude title of eternal holiday list" msgstr "" #: src/help.c:918 msgid " Provide eternal holiday list with astronomical data" msgstr "" #: src/help.c:930 msgid " Provide eternal holiday list with Bahá'i calendar holidays" msgstr "" #: src/help.c:942 msgid " Provide eternal holiday list with Bahá'i calendar months" msgstr "" #: src/help.c:954 msgid " Provide eternal holiday list with Celtic calendar holidays" msgstr "" #: src/help.c:966 msgid "" " Provide eternal holiday list with Chinese flexible calendar " "holidays" msgstr "" #: src/help.c:978 msgid "" " Provide eternal holiday list with Chinese flexible calendar months" msgstr "" #: src/help.c:990 msgid " Provide eternal holiday list with Chinese calendar holidays" msgstr "" #: src/help.c:1002 msgid " Provide eternal holiday list with Chinese calendar months" msgstr "" #: src/help.c:1014 msgid "" " Provide eternal holiday list with Christian Western calendar " "holidays" msgstr "" #: src/help.c:1026 msgid " Provide eternal holiday list with Coptic calendar months" msgstr "" #: src/help.c:1038 msgid " Provide eternal holiday list with Ethiopic calendar months" msgstr "" #: src/help.c:1050 msgid "" " Provide eternal holiday list with French Revolutionary calendar " "months" msgstr "" #: src/help.c:1062 msgid " Provide eternal holiday list with Hebrew calendar holidays" msgstr "" #: src/help.c:1074 msgid " Provide eternal holiday list with Hebrew calendar months" msgstr "" #: src/help.c:1086 msgid "" " Provide eternal holiday list with Indian civil-calendar months" msgstr "" #: src/help.c:1098 msgid "" " Provide eternal holiday list with Islamic civil-calendar holidays" msgstr "" #: src/help.c:1110 msgid "" " Provide eternal holiday list with Islamic civil-calendar months" msgstr "" #: src/help.c:1122 msgid "" " Provide eternal holiday list with Japanese flexible calendar " "holidays" msgstr "" #: src/help.c:1134 msgid "" " Provide eternal holiday list with Japanese flexible calendar months" msgstr "" #: src/help.c:1146 msgid " Provide eternal holiday list with Japanese calendar holidays" msgstr "" #: src/help.c:1158 msgid " Provide eternal holiday list with Japanese calendar months" msgstr "" #: src/help.c:1171 msgid "" " Provide eternal holiday list with multicultural New Year holidays" msgstr "" #: src/help.c:1183 msgid " Provide eternal holiday list with Old-Armenic calendar months" msgstr "" #: src/help.c:1195 msgid " Provide eternal holiday list with Old-Egyptic calendar months" msgstr "" #: src/help.c:1207 msgid "" " Provide eternal holiday list with Orthodox new-calendar holidays" msgstr "" #: src/help.c:1219 msgid "" " Provide eternal holiday list with Orthodox old-calendar holidays" msgstr "" #: src/help.c:1231 msgid "" " Provide eternal holiday list with Persian Jalaali-calendar holidays" msgstr "" #: src/help.c:1243 msgid "" " Provide eternal holiday list with Persian Jalaali-calendar months" msgstr "" #: src/help.c:1255 msgid " Provide eternal holiday list with zodiacal marker data" msgstr "" #: src/help.c:1267 msgid " Provide eternal holiday list with country specific holidays" msgstr "" #: src/help.c:1271 #, c-format msgid " %-3s = Single country resp., territory code or a list of these," msgstr "" #: src/help.c:1276 #, c-format msgid "" " which are connected by `%s' characters. Countries/territories," msgstr "" #: src/help.c:1281 msgid " marked by # have an incomplete recording of holidays" msgstr "" #: src/help.c:1285 #, c-format msgid " %-*s = Holidays in %s" msgstr "" #: src/help.c:1306 msgid "" " Set reference value for rise/set time respectively shadow length" msgstr "" #: src/help.c:1310 #, c-format msgid " %-3s = Angular value respectively factor in range: %+.1f...%+.1f" msgstr "" #: src/help.c:1321 msgid " Set base data of Earth's atmosphere" msgstr "" #: src/help.c:1325 #, c-format msgid " %-3s = Air pressure and temperature separated by `%s' character" msgstr "" #: src/help.c:1328 #, c-format msgid " Air pressure in Millibar (actual: %.3f)" msgstr "" #: src/help.c:1333 #, c-format msgid " Air temperature in degrees Celsius (actual: %+.3f)" msgstr "" #: src/help.c:1343 msgid " Limit rise/set times of Sun to the day" msgstr "" #: src/help.c:1355 msgid " Represent astronomical times and data with utmost precision" msgstr "" #: src/help.c:1365 #, c-format msgid " Execute `%c%c[%s]' shell commands" msgstr "" #: src/help.c:1368 #, c-format msgid " and \"TVAR[%s|%c%s]COMMAND\" assignments" msgstr "" #: src/help.c:1380 msgid " Change base time of astronomical functions" msgstr "" #: src/help.c:1383 msgid " respectively, change cycle-starting time" msgstr "" #: src/help.c:1393 #, 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:1401 #, 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:1417 msgid " Change cycle-ending time" msgstr "" #: src/help.c:1421 #, 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:1435 msgid " Change cycle-timestep" msgstr "" #: src/help.c:1439 #, c-format msgid " %-3s = MMMM|HH%s[MM] Timestep value (actual: %02d%s%02d)" msgstr "" #: src/help.c:1452 msgid " Change base year of calendar" msgstr "" #: src/help.c:1456 #, c-format msgid " %-3s = [%s|%s]YYYY Year offset value (actual: %d)" msgstr "" #: src/help.c:1468 msgid " Set period of Gregorian Reformation" msgstr "" #: src/help.c:1470 #, c-format msgid " Actual respected period: %02d-%02d %s %0*d" msgstr "" #: src/help.c:1476 #, c-format msgid " %-*d%*s = Set period to: %02d-%02d %s %0*d" msgstr "" #: src/help.c:1484 #, c-format msgid " %-3s = %s%c%s%s%s%s%s%s Set period explicitly" msgstr "" #: src/help.c:1498 #, c-format msgid " Set order of date elements using the %s format text" msgstr "" #: src/help.c:1501 #, c-format msgid " Actual: (%s) `%s' (%s)" msgstr "" #: src/help.c:1503 msgid "self-defined" msgstr "" #: src/help.c:1508 #, c-format msgid " %-6s = Format is: `%s' (%s)" msgstr "" #: src/help.c:1516 #, c-format msgid " %-3s = Define individual format. Respected format elements are:" msgstr "" #: src/help.c:1559 msgid " Define translatable country specific special character pairs" msgstr "" #: src/help.c:1563 #, c-format msgid " %-3s = UPPER-CASE-LETTER\"\"LOWER-CASE-LETTER... definitions" msgstr "" #: src/help.c:1568 #, c-format msgid "" " E.g. a `%s%s%s%s%s%s%s%s' %-3s causes the correct conversion of" msgstr "" #: src/help.c:1573 msgid "" " the preceding special characters in an individual date format," msgstr "" #: src/help.c:1577 msgid "" " which has a STYLE format instruction component, and that, how" msgstr "" #: src/help.c:1581 msgid " they are used by the character set used in Germany" msgstr "" #: src/help.c:1590 #, c-format msgid "+++ FIXED DATES +++" msgstr "" #: src/help.c:1611 #, c-format msgid " Use standard resource file `.%s%s' for fixed date list" msgstr "" #: src/help.c:1616 #, c-format msgid " Use standard resource file `%s%s' for fixed date list" msgstr "" #: src/help.c:1620 src/help.c:2160 msgid " Implies period: Today" msgstr "" #: src/help.c:1624 msgid " c = Display only those dates, for which fixed dates exists" msgstr "" #: src/help.c:1628 msgid "" " C = Display those dates, for which fixed dates doesn't exist, too" msgstr "" #: src/help.c:1640 msgid "" " [MOD] = One or more of the following modifiers which are marked by #" msgstr "" #: src/help.c:1653 #, c-format msgid " %-3s = Heading/Title text used for fixed date list" msgstr "" #: src/help.c:1656 #, c-format msgid " Actual: `%s'" msgstr "" #: src/help.c:1669 msgid " # g[MOD] = Group fixed dates by day using text MOD" msgstr "" #: src/help.c:1681 msgid " 1. Representation of text" msgstr "" #: src/help.c:1693 msgid " = Set width of the biorhythm text graphics" msgstr "" #: src/help.c:1697 #, c-format msgid " %-3s = %d...%d Length of a single axis" msgstr "" #: src/help.c:1710 msgid " = Set height of the Moon phase text graphics" msgstr "" #: src/help.c:1714 #, c-format msgid " %-3s = %d...%d Total number of lines" msgstr "" #: src/help.c:1726 msgid " # a = Display origin of fixed date" msgstr "" #: src/help.c:1738 msgid " # A = Display using alternative list format" msgstr "" #: src/help.c:1750 msgid " # e = Include legal days and memorial days" msgstr "" #: src/help.c:1752 msgid " # E = Include legal days only" msgstr "" #: src/help.c:1762 msgid " # k = Display week number" msgstr "" #: src/help.c:1774 msgid " # o = Omit repeating date part of fixed dates" msgstr "" #: src/help.c:1786 msgid "" " # Q = Suppress leading blank line of fixed dates list" msgstr "" #: src/help.c:1798 msgid " # U = Suppress date part of fixed dates" msgstr "" #: src/help.c:1810 msgid " # J = Suppress text part of fixed dates" msgstr "" #: src/help.c:1822 msgid " # x = Exclude title of fixed date list" msgstr "" #: src/help.c:1834 msgid " # z = Display consecutive number of fixed date" msgstr "" #: src/help.c:1846 msgid "" " # Z = Display dates, for which fixed dates doesn't exist" msgstr "" #: src/help.c:1854 msgid " 2. Respected period" msgstr "" #: src/help.c:1866 msgid " = Manage `29-FEBRUARY' in non-leap years" msgstr "" #: src/help.c:1874 #, c-format msgid " %-3s = february Respect at `28-FEBRUARY'" msgstr "" #: src/help.c:1883 #, c-format msgid " %-3s = march Respect at `01-MARCH'" msgstr "" #: src/help.c:1896 msgid "" " # d = Include actual date if list of periods is " "generated" msgstr "" #: src/help.c:1908 msgid "" " # l = Generate list of periods instead of a single " "period" msgstr "" #: src/help.c:1924 msgid " # Nd = Single absolute day N" msgstr "" #: src/help.c:1926 #, c-format msgid " # %cdN = Single absolute day N" msgstr "" #: src/help.c:1931 msgid " # NMOD = Single day N relative to today" msgstr "" #: src/help.c:1933 #, c-format msgid " MOD = %s Forwards" msgstr "" #: src/help.c:1935 #, c-format msgid " = %s Backwards" msgstr "" #: src/help.c:1938 msgid " # Nw = Complete week N" msgstr "" #: src/help.c:1942 msgid "" " N = 0 1st week / last week of previous year" msgstr "" #: src/help.c:1946 msgid " N = 1...52 1st...52nd week (always)" msgstr "" #: src/help.c:1950 msgid " N = 53 53rd week (sometimes)" msgstr "" #: src/help.c:1952 msgid " N = 99 Last week" msgstr "" #: src/help.c:1955 #, c-format msgid " # %s%s = Single day %s of month %s" msgstr "" #: src/help.c:1961 #, c-format msgid " # %s%sN = Single N'th weekday %s of month %s" msgstr "" #: src/help.c:1966 #, c-format msgid " N = 1...4 1st...4th weekday %s (always)" msgstr "" #: src/help.c:1971 #, c-format msgid " N = 5 5th weekday %s (sometimes)" msgstr "" #: src/help.c:1975 #, c-format msgid " N = 9 Last weekday %s" msgstr "" #: src/help.c:1979 #, c-format msgid " # %cdN%s = Single N'th weekday %s" msgstr "" #: src/help.c:1984 #, c-format msgid " N = 1...51 1st...51st weekday %s (always)" msgstr "" #: src/help.c:1989 #, c-format msgid " N = 52|53 52|53rd weekday %s (sometimes)" msgstr "" #: src/help.c:1993 #, c-format msgid " N = 99 Last weekday %s" msgstr "" #: src/help.c:1998 #, c-format msgid " # %cwN%s = Single weekday %s of N'th week" msgstr "" #: src/help.c:2003 #, c-format msgid "" " N = 0 %s which isn't located in 1st week" msgstr "" #: src/help.c:2008 #, c-format msgid " N = 1...51 %s of 1st...51st week (always)" msgstr "" #: src/help.c:2013 #, c-format msgid " N = 52|53 %s of 52|53rd week (sometimes)" msgstr "" #: src/help.c:2017 #, c-format msgid " N = 99 %s of last week" msgstr "" #: src/help.c:2023 #, c-format msgid " # %c%c[[%s|%s]N] = Single day N relative to Easter Sunday" msgstr "" #: src/help.c:2029 #, c-format msgid "" " # %c%c[%s|%s]N%s = Single N'th weekday relative to Easter Sunday" msgstr "" #: src/help.c:2035 #, c-format msgid " # %c%c[[%s|%s]N] = Single day N relative to today's date" msgstr "" #: src/help.c:2041 #, c-format msgid "" " # %c%c[%s|%s]N%s = Single N'th weekday relative to today's date" msgstr "" #: src/help.c:2047 #, c-format msgid " # %c?[[%s|%s]N] = Single day N relative to date variable" msgstr "" #: src/help.c:2053 #, c-format msgid "" " # %c?[%s|%s]N%s = Single N'th weekday relative to date variable" msgstr "" #: src/help.c:2061 msgid " # t|T = List tomorrow" msgstr "" #: src/help.c:2078 msgid " # w|W[MOD] = List complete week" msgstr "" #: src/help.c:2082 #, c-format msgid "" " [MOD] = %s List tomorrow until ending day of week" msgstr "" #: src/help.c:2087 #, c-format msgid "" " = %s List yesterday until starting day of week" msgstr "" #: src/help.c:2107 msgid " # m|M[MOD] = List complete month" msgstr "" #: src/help.c:2111 #, c-format msgid "" " [MOD] = %s List tomorrow until ending day of month" msgstr "" #: src/help.c:2116 #, c-format msgid "" " = %s List yesterday until starting day of month" msgstr "" #: src/help.c:2136 msgid " # y|Y[MOD] = List complete year" msgstr "" #: src/help.c:2140 #, c-format msgid "" " [MOD] = %s List tomorrow until ending day of year" msgstr "" #: src/help.c:2145 #, c-format msgid "" " = %s List yesterday until starting day of year" msgstr "" #: src/help.c:2158 msgid " Use alternative file(s) instead of standard resource file" msgstr "" #: src/help.c:2164 msgid " f = Display only those dates, for which fixed dates exists" msgstr "" #: src/help.c:2168 msgid "" " F = Display those dates, for which fixed dates doesn't exist, too" msgstr "" #: src/help.c:2172 #, c-format msgid " %-3s = Single file or list of files connected by `%s' characters" msgstr "" #: src/help.c:2183 msgid " Define additional resource file line" msgstr "" #: src/help.c:2185 #, c-format msgid " %-3s = Any possible resource file line" msgstr "" #: src/help.c:2195 #, c-format msgid "%cDATE" msgstr "" #: src/help.c:2197 msgid "Use given `DATE' instead of today's date" msgstr "" #: src/help.c:2201 #, 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:2208 #, c-format msgid " %s%cwN[%s], month name[%s], weekday name[N] or %s" msgstr "" #: src/help.c:2217 #, c-format msgid "%cFILE" msgstr "" #: src/help.c:2219 msgid "Preload options and commands from `FILE'" msgstr "" #: src/help.c:2223 msgid "COMMAND" msgstr "" #: src/help.c:2225 #, c-format msgid "%s = Month in range: %d...%d" msgstr "" #: src/help.c:2230 #, c-format msgid " or: month name | %s | %s%s | %s%s | %s%s" msgstr "" #: src/help.c:2235 #, c-format msgid " List: %s[%s%s]%s...%s%s[%s%s]" msgstr "" #: src/help.c:2241 #, c-format msgid " Range: %s[%s%s]%s%s[%s%s] | %s%s%s%s%s | %s %s%s%s" msgstr "" #: src/help.c:2247 #, c-format msgid "%s%*s = Year in range: %d...%d" msgstr "" #: src/help.c:2251 #, c-format msgid " List: [%s%s]%s%s...%s[%s%s]%s" msgstr "" #: src/help.c:2256 #, c-format msgid " Range: [%s%s]%s%s[%s%s]%s | %s%s%s %s%s%s" msgstr "" #: src/help.c:2282 #, c-format msgid " %sh, %s Display this help text and quit program" msgstr "" #: src/help.c:2285 #, c-format msgid " %shh, %s Display extended help text and quit program" msgstr "" #: src/help.c:2289 #, c-format msgid " %sL, %s Display software license and quit program" msgstr "" #: src/help.c:2293 #, c-format msgid " %sV, %s Display version information and quit program" msgstr "" #: src/help.c:2301 #, c-format msgid " %sp, %s Direct output through external `%s' pager" msgstr "" #: src/help.c:2308 src/help.c:2313 #, c-format msgid " %sp, %s Direct output through simple internal pager" msgstr "" #: src/help.c:2338 msgid "This software doesn't claim completeness, correctness or usability." msgstr "" #: src/help.c:2342 msgid "On principle I will not be liable for ANY damages or losses (implicit" msgstr "" #: src/help.c:2346 msgid "or explicit), which result from using or handling my software." msgstr "" #: src/help.c:2350 msgid "If you use this software, you agree without any exception to this" msgstr "" #: src/help.c:2352 msgid "agreement, which binds you LEGALLY !!" msgstr "" #: src/help.c:2357 msgid "This program is free software; you can redistribute it and/or modify" msgstr "" #: src/help.c:2361 msgid "it under the terms of the `GNU General Public License' as published by" msgstr "" #: src/help.c:2365 msgid "the `Free Software Foundation'; either version 3, or (at your option)" msgstr "" #: src/help.c:2367 msgid "any later version." msgstr "" #: src/help.c:2372 msgid "You should have received a copy of the `GNU General Public License'" msgstr "" #: src/help.c:2374 msgid "along with this program; if not, write to the:" msgstr "" #: src/help.c:2423 #, c-format msgid "" "Usage: %s [%s|%s{[?|h|??|hh|L|V]|{%sHKNOR%sXb%sijn%sq%ssu%s}}] [[%s] [%s]]" msgstr "" #: src/help.c:2451 #, c-format msgid "Use `%s %s|[%s?]" msgstr "" #: src/help.c:2460 msgid "for more information." msgstr "" #: src/help.c:2564 src/tcal.c:197 src/txt2gcal.c:136 src/gcal2txt.c:136 #, c-format msgid "Email bug reports to <%s>" msgstr "" #: src/help.c:2566 #, c-format msgid "GNU gcal home page: <%s>" msgstr "" #: src/help.c:2568 #, c-format msgid "General help using GNU software: <%s>" msgstr "" #: src/help.c:2594 src/tcal.c:219 src/txt2gcal.c:158 src/gcal2txt.c:158 #, c-format msgid "This is free software; see the source for copying conditions." msgstr "" #: src/help.c:2598 src/tcal.c:222 src/txt2gcal.c:161 src/gcal2txt.c:161 #, c-format msgid "There is NO warranty, without even the implied warranty of" msgstr "" #: src/help.c:2600 src/tcal.c:224 src/txt2gcal.c:163 src/gcal2txt.c:163 #, c-format msgid "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." msgstr "" #: src/help.c:2616 #, c-format msgid "%s: The Gregorian calendar program (GNU cal) %s" msgstr "" #: src/help.c:2624 #, c-format msgid "Usage: %s [[OPTION...] [%cDATE] [%cFILE...]] [COMMAND]" msgstr "" #: src/help.c:2627 #, c-format msgid "Usage: %s [[OPTION...] [%cFILE...]] [COMMAND]" msgstr "" #: src/help.c:2703 src/help.c:2849 msgid " 4.0 or 4.02" msgstr "" #: src/help.c:2711 src/help.c:2857 msgid " later than 5.0" msgstr "" #: src/help.c:2722 src/help.c:2864 msgid "++ 3.0 or later" msgstr "" #: src/help.c:2749 src/help.c:2970 msgid "5.1 or earlier" msgstr "" #: src/help.c:2752 src/help.c:2973 src/help.c:3128 src/help.c:3198 msgid "unknown compiler" msgstr "" #: src/help.c:2787 src/help.c:2876 src/help.c:3010 src/help.c:3032 #: src/help.c:3101 src/help.c:3138 src/help.c:3156 src/help.c:3213 #: src/help.c:3428 msgid " on " msgstr "" #: src/help.c:2826 msgid "(bad version)" msgstr "" #: src/help.c:2873 msgid "unknown compiler (SDK?)" msgstr "" #: src/help.c:2941 msgid " later than 4.5" msgstr "" #: src/help.c:2951 msgid "++ 1.0 or later" msgstr "" #: src/help.c:2959 msgid " 1.0 or 1.5?" msgstr "" #: src/help.c:3074 msgid "unknown " msgstr "" #: src/help.c:3086 #, c-format msgid "version %d.%d" msgstr "" #: src/help.c:3089 src/help.c:3122 src/help.c:3248 #, c-format msgid "version %d" msgstr "" #: src/help.c:3091 #, c-format msgid "unknown version" msgstr "" #: src/help.c:3205 #, c-format msgid " (%.4s for Alpha)" msgstr "" #: src/help.c:3208 #, c-format msgid " (%.4s for VAX)" msgstr "" #: src/help.c:3359 msgid " (NetBSD before 0.9)" msgstr "" #: src/help.c:3359 msgid " (NetBSD 1.2 or later)" msgstr "" #: src/help.c:3366 msgid " (FreeBSD 2.0 or later)" msgstr "" #: src/help.c:3369 msgid " (BSD/386 1.1 or later)" msgstr "" #: src/print.c:544 src/print.c:978 src/print.c:1033 #, fuzzy msgid "CW" msgstr "S" #: src/print.c:565 msgid "Week" msgstr "" #: src/rc-insert.c:1706 src/rc-insert.c:2824 msgid "pm" msgstr "" #: src/rc-insert.c:1715 src/rc-insert.c:2833 #, fuzzy msgid "am" msgstr "Guamas" #: src/rc-insert.c:2018 src/rc-insert.c:2028 msgid "d'\"" msgstr "" #: src/rc-insert.c:2038 msgid "h'\"" msgstr "" #: src/rc-insert.c:3728 src/rc-utils.c:2585 #, c-format msgid "" "Cannot execute command in file `%s'\n" "Line: %ld %s" msgstr "" #: src/rc-insert.c:3750 src/rc-utils.c:2609 #, c-format msgid "" "Command executed (exit code=%d) in file `%s'\n" "Line %ld: %s" msgstr "" #: src/rc-use.c:513 msgid "Emo" msgstr "" #: src/rc-use.c:518 msgid "Int" msgstr "" #: src/rc-use.c:523 msgid "Phy" msgstr "" #: src/rc-use.c:1086 src/rc-use.c:1177 msgid "`Eternal holiday list'" msgstr "" #: src/rc-use.c:1877 src/rc-use.c:1926 src/rc-use.c:2015 src/rc-use.c:2107 msgid "`Internal'" msgstr "" #: src/rc-use.c:2339 #, c-format msgid " ; Week %s" msgstr "" #: src/rc-use.c:2348 #, c-format msgid "Week %s" msgstr "" #: src/rc-utils.c:397 src/rc-utils.c:414 #, c-format msgid "" "%s: invalid date given -- %s\n" "%s\n" "%s\n" msgstr "" #: src/rc-utils.c:3269 #, c-format msgid "Leap-day set to `%02d-%s' in file `%s'." msgstr "" #: src/rc-utils.c:3272 src/rc-utils.c:3686 #, c-format msgid "Line %ld: %s" msgstr "" #: src/rc-utils.c:3633 src/utils.c:274 #, c-format msgid "%s: abort, " msgstr "" #: src/rc-utils.c:3641 #, c-format msgid "illegal variable definition in file `%s'" msgstr "" #: src/rc-utils.c:3643 #, c-format msgid "illegal definition of variable `%c'" msgstr "" #: src/rc-utils.c:3650 #, c-format msgid "illegal variable operation in file `%s'" msgstr "" #: src/rc-utils.c:3652 #, c-format msgid "illegal operation on variable `%c'" msgstr "" #: src/rc-utils.c:3658 #, c-format msgid "variable `%c' undefined in file `%s'" msgstr "" #: src/rc-utils.c:3662 #, c-format msgid "invalid value assigned to variable `%c' in file `%s'" msgstr "" #: src/rc-utils.c:3683 #, c-format msgid "Invalid argument in command line given -- %s" msgstr "" #: src/rc-utils.c:3695 #, c-format msgid "Argument `%s' of command line ignored." msgstr "" #: src/rc-utils.c:3698 #, c-format msgid "Line %ld ignored: %s" msgstr "" #: src/tty.c:424 #, c-format msgid "%s: for more, <%s> to quit..." msgstr "" #: src/tty.c:1019 #, c-format msgid "environment variable `%s' not found" msgstr "" #: src/tty.c:1026 #, c-format msgid "environment variable `%s' not set" msgstr "" #: src/tty.c:1066 msgid "`termcap' file not found" msgstr "" #: src/tty.c:1071 #, c-format msgid "unknown terminal type defined in `%s'" msgstr "" #: src/tty.c:1080 #, c-format msgid "" "\n" "%s: warning, %s.\n" "\n" msgstr "" #: src/utils.c:280 #, c-format msgid "" "invalid year for computing Easter Sundays date\n" "Year must be in range (%d...%d)" msgstr "" #: src/utils.c:284 src/tcal.c:324 src/txt2gcal.c:263 src/gcal2txt.c:263 #, c-format msgid "`%s' line %ld: virtual memory exhausted (%s=%d)" msgstr "" #: src/utils.c:289 #, c-format msgid "" "invalid date part in file `%s'\n" "Line %ld: %s" msgstr "" #: src/utils.c:294 #, c-format msgid "" "invalid month field(%02d) in file `%s'\n" "Line %ld: %s" msgstr "" #: src/utils.c:299 #, c-format msgid "" "invalid day field(%02d) in file `%s'\n" "Line %ld: %s" msgstr "" #: src/utils.c:303 #, c-format msgid "" "malformed %s in file `%s'\n" "Line %ld: %s" msgstr "" #: src/utils.c:308 #, c-format msgid "" "invalid recursive/cyclic %s in file `%s'\n" "Line %ld: %s" msgstr "" #: src/utils.c:312 #, c-format msgid "file `%s' not found" msgstr "" #: src/utils.c:316 #, c-format msgid "" "invalid N'th weekday field(%d) in file `%s'\n" "Line %ld: %s" msgstr "" #: src/utils.c:322 #, c-format msgid "" "missing `whitespace' character after date part in file `%s'\n" "Line %ld: %s" msgstr "" #: src/utils.c:327 #, c-format msgid "" "file `%s' can't be written\n" "Storage media full!" msgstr "" #: src/utils.c:332 #, c-format msgid "sending eMail to <%s> failed" msgstr "" #: src/utils.c:334 src/utils.c:352 #, c-format msgid "" "\n" "`%s' line %ld: " msgstr "" #: src/utils.c:341 #, c-format msgid "`%s' line %ld: (`%s') `%s%d' failed" msgstr "" #: src/utils.c:350 #, c-format msgid "read error in file `%s'" msgstr "" #: src/utils.c:358 #, c-format msgid "" "illegal character in response file `%s'\n" "Line %ld: %s" msgstr "" #: src/utils.c:364 src/tcal.c:330 src/txt2gcal.c:269 src/gcal2txt.c:269 #, c-format msgid "`%s' line %ld: (`%s') invalid value for table size `sizeof %s>%d'" msgstr "" #: src/utils.c:369 #, c-format msgid "(`%s') date format `%s' is invalid" msgstr "" #: src/utils.c:375 #, c-format msgid "%s in search pattern `%s'" msgstr "" #: src/utils.c:378 #, c-format msgid "invalid search pattern `%s' specified" msgstr "" #: src/utils.c:383 src/tcal.c:338 src/txt2gcal.c:274 src/gcal2txt.c:274 #, c-format msgid "`%s' line %ld: (`%s') unmanaged error (%d)" msgstr "" #: src/utils.c:403 src/tcal.c:358 src/txt2gcal.c:294 src/gcal2txt.c:294 #, c-format msgid "" "\n" "%s: program aborted by signal %d\n" msgstr "" #: src/utils.c:1080 msgid "th" msgstr "" #: src/utils.c:1084 msgid "st" msgstr "" #: src/utils.c:1088 msgid "nd" msgstr "" #: src/utils.c:1092 msgid "rd" msgstr "" #: src/utils.c:1123 src/utils.c:1174 src/utils.c:1225 msgid "invalid day" msgstr "" #: src/utils.c:1128 #, fuzzy msgid "Mon" msgstr "Monakas" #: src/utils.c:1133 #, fuzzy msgid "Tue" msgstr "Turkija" #: src/utils.c:1138 msgid "Wed" msgstr "" #: src/utils.c:1143 msgid "Thu" msgstr "" #: src/utils.c:1148 msgid "Fri" msgstr "" #: src/utils.c:1153 msgid "Sat" msgstr "" #: src/utils.c:1158 #, fuzzy msgid "Sun" msgstr "Sudanas" #: src/utils.c:1179 #, fuzzy msgid "Mo" msgstr "M" #: src/utils.c:1184 msgid "Tu" msgstr "" #: src/utils.c:1189 #, fuzzy msgid "We" msgstr "S" #: src/utils.c:1194 msgid "Th" msgstr "" #: src/utils.c:1199 msgid "Fr" msgstr "" #: src/utils.c:1204 msgid "Sa" msgstr "" #: src/utils.c:1209 msgid "Su" msgstr "" #: src/utils.c:1226 msgid "Monday" msgstr "" #: src/utils.c:1226 msgid "Tuesday" msgstr "" #: src/utils.c:1226 msgid "Wednesday" msgstr "" #: src/utils.c:1226 msgid "Thursday" msgstr "" #: src/utils.c:1227 msgid "Friday" msgstr "" #: src/utils.c:1227 msgid "Saturday" msgstr "" #: src/utils.c:1227 msgid "Sunday" msgstr "" #: src/utils.c:1243 src/utils.c:1320 msgid "invalid month" msgstr "" #: src/utils.c:1248 #, fuzzy msgid "Jan" msgstr "Japonija" #: src/utils.c:1253 msgid "Feb" msgstr "" #: src/utils.c:1258 msgid "Mar" msgstr "" #: src/utils.c:1263 msgid "Apr" msgstr "" #: src/utils.c:1268 #, fuzzy msgid "May" msgstr "Majotas" #: src/utils.c:1273 msgid "Jun" msgstr "" #: src/utils.c:1278 msgid "Jul" msgstr "" #: src/utils.c:1283 msgid "Aug" msgstr "" #: src/utils.c:1288 msgid "Sep" msgstr "" #: src/utils.c:1293 msgid "Oct" msgstr "" #: src/utils.c:1298 msgid "Nov" msgstr "" #: src/utils.c:1303 msgid "Dec" msgstr "" #: src/utils.c:1321 msgid "January" msgstr "" #: src/utils.c:1321 msgid "February" msgstr "" #: src/utils.c:1322 msgid "March" msgstr "" #: src/utils.c:1322 msgid "April" msgstr "" #: src/utils.c:1332 msgid "May " msgstr "" #: src/utils.c:1333 msgid "June" msgstr "" #: src/utils.c:1333 msgid "July" msgstr "" #: src/utils.c:1334 msgid "August" msgstr "" #: src/utils.c:1334 msgid "September" msgstr "" #: src/utils.c:1335 msgid "October" msgstr "" #: src/utils.c:1335 msgid "November" msgstr "" #: src/utils.c:1335 msgid "December" msgstr "" #: src/tcal.c:191 #, c-format msgid "Usage: %s [--%s | --%s] | [--%s=[+|-]NUMBER] [ARGUMENT...]\n" msgstr "" #: src/tcal.c:320 src/txt2gcal.c:259 src/gcal2txt.c:259 #, c-format msgid "" "\n" "%s: abort, " msgstr "" #: src/tcal.c:335 #, c-format msgid "shift value `%s' is invalid" msgstr "" #: src/tcal.c:907 #, c-format msgid "%s: option `--%s' requires an argument" msgstr "" #: src/tcal.c:1071 #, c-format msgid "%s: error during program execution of `%s'\n" msgstr "" #: src/txt2gcal.c:131 #, c-format msgid "Usage: %s [--%s | --%s] | [TEXT-FILE | -] [DATE-PART]\n" msgstr "" #: src/txt2gcal.c:755 src/gcal2txt.c:754 #, c-format msgid "%s: no regular file\n" msgstr "" #: src/txt2gcal.c:760 src/gcal2txt.c:759 #, c-format msgid "%s: file not found\n" msgstr "" #: src/gcal2txt.c:131 #, c-format msgid "Usage: %s [--%s | --%s] | [RESOURCE-FILE | -]\n" msgstr "" #~ msgid "Brunei Darussalam" #~ msgstr "BrunÄ—jaus sultonatas" gcal-3.6.3/po/ru.gmo0000644000175000017500000011656712125376136011150 00000000000000Þ•a$ ß,¨ ©"¶ÙCêA.EpB¶+ùL%KrK¾M @X =™ 1× A !CK!A!IÑ!H"Hd"?­"*í"$#+=#+i#?•#4Õ#E $DP$D•$1Ú$@ %2M%9€%0º%*ë%<&MS&7¡&NÙ&?('Bh'N«'.ú'B)((l(-•(;Ã(-ÿ(C-)#q)•)J³)?þ)H>*J‡*5Ò*6+J?+.Š+3¹+5í+A#,?e,5¥,,Û,J-ES-3™-/Í-7ý-75.Em. ³.(Ô.Eý..C/Jr/=½/-û/6)0C`07¤0=Ü081/S1?ƒ1@Ã1F2&K2Hr2.»2,ê2@3*X3Eƒ3EÉ3C47S4I‹4IÕ45;;56w5;®5ê5ü5 6$6<6S6 h6 u6 ‚6 6 ™6¦6B¯6ò6B÷6:7J7(Z7ƒ7ˆ77$–7»7#Õ7'ù7+!8+M8y88¦8)»8å8$9%'9(M9&v99"º9#Ý9 :!":"D: g:u:…:•: ©: ´: ¿: Ê:Õ:ä:è:÷:;;; ; .; 9;G;K;R;e;m;0p;¡;¸;Ç;Ë; â; ð; þ;9 <E<e<~<< •<¡<¾<Õ<Ù< â< î< ü< ==.=J= _=l=„=ˆ=‘=š=®=±=Ä=È=Ï=×=è= ð=þ=> %>1/>Aa>£>´>¸>Á>Å>Í>Ñ>Ö>Ú> ß>'ê>?!? 6?4C?.x?§?«?±? Æ?Ñ?é?þ?@@@@!@(@0@B@1V@ ˆ@•@¦@µ@¹@Â@É@Í@EÕ@ A'A +A(6A _AmA }AŠA™AœA A ©A³A ·A0ÁAòAõAùAB BBB-B:BB=}BD»BCCDCHC QC5[C)‘C»CÚCÝCáCéCòCùCK D7XD.D(¿D èD öD EEE E E+E0E 8E DEPEeECvEAºE*üE/'FWF%nF.”FÃF ÖFãFëFG.G6GJG4SG8ˆG+ÁG íG1ùG +H39H%mHN“HFâH)IH8I>IÀI ØI æI óIJJ$J-J>JVJ fJ qJ`JàK3öK*L=CLLLOÎLKM,jMŸ—MŸ7N›×N¬sOU PJvPHÁPh Q^sQXÒQ¢+R¢ÎRžqSpT1T+³T3ßT3UNGUM–U{äUm`VjÎVV9WuWbXuiXUßX85YanYtÐY\EZ~¢Z]![ª[f*\L‘\zÞ\OY]N©]tø]Hm^y¶^40_8e_¢ž_DA`h†`lï`f\aOÃaƒbh—b|cŒ}co dqzdJìd77eoe…ïe9uf`¯fsg}„ghFhK×h|#i_ i£j|¤jS!kCuk£¹kN]lj¬l…mmm› nœ§nlDoL±o†þoV…pWÜpS4q@ˆqÉq]Krg©rcsmusmãs6Qttˆtvýtrtuçuüu/v/?v.ov'žvÆv×vèvûv ww{,w ¨w{²w&.x&Ux=|xºx ¼x Çx8Òx- y39yTmySÂyNzez#…z6©zUàz,6{Rc{S¶{E |;P|(Œ|)µ|.ß|'},6}2c}3–}'Ê}'ò}+~!F~!h~!Š~'¬~"Ô~÷~þ~7P Wd)€ªÈ Ï Üý €^€"p€“€§€%À€æ€ù€p/1 )Òü ‚%‚+?‚6k‚¢‚©‚¸‚+Ò‚+þ‚*ƒBƒQIƒ.›ƒʃ*Þƒ „„„03„d„0i„š„¡„°„0¿„ð„…&…E…^…_o…Ï…#_†ƒ†ІŸ† ¦†³†º†ÆʆÓ†Uç†!=‡-_‡‡m¢‡4ˆEˆLˆ&Uˆ|ˆ,–ˆ)Èíˆ ‰‰&‰+‰2‰I‰)b‰+Œ‰f¸‰Š)7ŠaŠsŠ zŠ‡ŠŠ—Š”¦Š%;‹a‹h‹A€‹‹Þ‹ü‹Œ6Œ;ŒBŒQŒ`ŒgŒSxŒÌŒÑŒØŒïŒ &%*Lpw†è|oŽ•ìŽ‚‰˜g©O1a“˜Ÿ®¿,Æ[ó]O‘P­‘Xþ‘W’s’’£’¨’ ¯’ º’ Å’Ò’â’"ö’“,1“^“lÞ“NK”Sš”0î”P•np•2ß•–2–J–j–c}–á–—\—eq—L×—$˜P>˜˜T«˜C™²D™Œ÷™)„š}®š,›)Ê›ô› œB-œ1pœ¢œ±œ/Éœ6ùœ#0Tdb´ä½ YH”Ð>Fû;Ë7/V)XŠ"ÁgÙUÑóhFNͪ—#Ø5ôalºëwÚeQZøßYIsRr9¿%Ò2æ•Üã\'c$©²4[ˆ¦(»Rañ?âEj§k6vG:êʆ PáÌÛ3]A D ®!-N>i.\7¹ÕV+;É*4?<¬[à3òìÎ&*¯·ŽpùÀd¡¾¼9Cú|`ÓMCÖ05…°ïKG=-!S OMH‘Oîy^0^÷Ô‰J_šÝ&Å–’¶ƒz8é›ü/ð‹J¸mx@X¥,™ÏÞÄ%Âf,~Dož£(L_ÿ±¤ÃŸ ¢tœ€W«þUŒ)PèöLnSB1µEå =³Æ2 `Z]‡8$+ýT'“‚¨< „:#×BAI˜"uíç­.õÇQ {K }Tq 16WÈ @ %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' DayGuy Fawke's 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: 2013-03-29 21:40+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 %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-3.6.3/po/ru.po0000644000175000017500000045742312125376135011002 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: 2013-03-29 21:40+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" #: src/file-io.c:1561 #, c-format msgid "Try to write %s `%s'... %s%s%s" msgstr "Попытка запиÑать %s `%s'... %s%s%s" #: src/file-io.c:1564 src/file-io.c:1689 src/file-io.c:1702 msgid "failed" msgstr "неуÑпешна" #: src/file-io.c:1564 src/file-io.c:1689 src/file-io.c:1702 msgid "success" msgstr "уÑпешна" #: src/file-io.c:1684 #, c-format msgid "Try to open%sresource file `%s'... %s%s%s" msgstr "Попытка открытиÑ%sреÑурÑного файла `%s'... %s%s%s" #: src/file-io.c:1685 msgid " `HERE' " msgstr " `ЗДЕСЬ' " #: src/file-io.c:1697 #, c-format msgid "Try to open (level: %02d) include file `%s'... %s%s%s" msgstr "Попытка Ð¾Ñ‚ÐºÑ€Ñ‹Ñ‚Ð¸Ñ (уровень: %02d) включаемого файла `%s'... %s%s%s" #: src/gcal.c:352 src/gcal.c:523 src/gcal.c:2028 msgid "ARG" msgstr "ÐРГ" #: src/gcal.c:1080 src/hd-data.c:69 msgid "Germany" msgstr "ГерманиÑ" #: src/gcal.c:1081 msgid "U.S.A." msgstr "СШÐ" #: src/gcal.c:1082 src/hd-data.c:72 msgid "Great Britain" msgstr "ВеликобританиÑ" #: src/gcal.c:1858 msgid "default" msgstr "по умолчанию" #: src/gcal.c:1957 msgid ":" msgstr "" #: src/gcal.c:1967 msgid "Y" msgstr "" #: src/gcal.c:1972 #, fuzzy msgid "M" msgstr "Пн" # Это двухбуквенное Ñокращение Ð´Ð»Ñ "неделÑ" #: src/gcal.c:1977 #, fuzzy msgid "W" msgstr "Ðд" #: src/gcal.c:1982 msgid "D" msgstr "" #: src/gcal.c:2073 #, fuzzy msgid "Fixed date list:" msgstr "СпиÑок фикÑированных дат" #: src/gcal.c:2090 src/gcal.c:2105 msgid "environment variable" msgstr "Ð¿ÐµÑ€ÐµÐ¼ÐµÐ½Ð½Ð°Ñ Ñреды" #: src/gcal.c:2274 #, 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:2461 src/gcal.c:2489 src/gcal.c:6232 src/rc-use.c:1828 #: src/rc-use.c:1888 src/rc-use.c:1937 src/rc-use.c:2207 src/rc-utils.c:390 #: src/rc-utils.c:411 src/utils.c:342 src/utils.c:365 src/utils.c:384 #: src/utils.c:679 src/tcal.c:331 src/tcal.c:339 src/txt2gcal.c:270 #: src/txt2gcal.c:275 src/gcal2txt.c:270 src/gcal2txt.c:275 msgid "Internal" msgstr "Внутренний" #: src/gcal.c:2870 msgid "response file" msgstr "файл отклика" #: src/gcal.c:2870 src/gcal.c:2878 msgid "Created" msgstr "Создан" #: src/gcal.c:2878 msgid "shell script" msgstr "Ñценарий командного интерпретатора" #: src/gcal.c:3089 #, 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:3141 #, c-format msgid "%s: warning, eMail with empty message body not sent to <%s>.\n" msgstr "" #: src/gcal.c:4951 src/gcal.c:4984 msgid "command line" msgstr "ÐºÐ¾Ð¼Ð°Ð½Ð´Ð½Ð°Ñ Ñтрока" #: src/gcal.c:5901 #, c-format msgid "%s: option `%s' is ambiguous" msgstr "%s: неоднозначный ключ `%s'" #: src/gcal.c:5906 src/tcal.c:895 src/txt2gcal.c:716 src/gcal2txt.c:715 #, c-format msgid "%s: unrecognized option `%s'" msgstr "%s: неизвеÑтный ключ `%s'" #: src/gcal.c:5909 #, c-format msgid "%s: invalid option -- %s" msgstr "%s: неверный ключ -- %s" #: src/gcal.c:5916 #, fuzzy, c-format msgid "%s: option `--%s' doesn't allow an argument" msgstr "%s: ключ `%s' должен иÑпользоватьÑÑ Ð±ÐµÐ· аргумента" #: src/gcal.c:5921 #, c-format msgid "%s: option `%s' doesn't allow an argument" msgstr "%s: ключ `%s' должен иÑпользоватьÑÑ Ð±ÐµÐ· аргумента" #: src/gcal.c:5927 #, c-format msgid "%s: option `%s' requires an argument" msgstr "%s: ключ `%s' должен иÑпользоватьÑÑ c аргументом" #: src/gcal.c:5931 #, c-format msgid "%s: option requires an argument -- %s" msgstr "%s: ключ должен иÑпользоватьÑÑ c аргументом -- %s" #: src/gcal.c:5936 src/tcal.c:941 #, c-format msgid "%s: option with invalid argument -- %s" msgstr "%s: ключ Ñ Ð½ÐµÐ²ÐµÑ€Ð½Ñ‹Ð¼ аргументом -- %s" #: src/gcal.c:5941 #, c-format msgid "%s: option with ambiguous argument -- %s" msgstr "%s: ключ Ñ Ð½ÐµÐ¾Ð´Ð½Ð¾Ð·Ð½Ð°Ñ‡Ð½Ñ‹Ð¼ аргументом -- %s" #: src/gcal.c:6001 #, 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:63 #, fuzzy msgid "Australia" msgstr "ÐвÑтралийÑкий" #: src/hd-data.c:64 src/hd-data.c:112 #, fuzzy msgid "Belgium" msgstr "БельгийÑкий" #: src/hd-data.c:65 src/hd-data.c:121 msgid "Brazil" msgstr "" #: src/hd-data.c:66 #, fuzzy msgid "Canada" msgstr "КанадÑкий" #: src/hd-data.c:67 msgid "Switzerland" msgstr "" #: src/hd-data.c:68 src/hd-data.c:174 msgid "China" msgstr "" #: src/hd-data.c:70 src/hd-data.c:208 msgid "Spain" msgstr "" #: src/hd-data.c:71 src/hd-data.c:215 msgid "France" msgstr "" #: src/hd-data.c:73 src/hd-data.c:244 msgid "Israel" msgstr "" #: src/hd-data.c:74 src/hd-data.c:249 #, fuzzy msgid "Italy" msgstr "ИтальÑнÑкий" #: src/hd-data.c:75 src/hd-data.c:252 msgid "Japan" msgstr "" #: src/hd-data.c:76 src/hd-data.c:260 #, fuzzy msgid "Republic of Korea" msgstr "День реÑпублики" #: src/hd-data.c:77 src/hd-data.c:292 #, fuzzy msgid "Mexico" msgstr "МекÑиканÑкий" #: src/hd-data.c:78 src/hd-data.c:301 msgid "Netherlands" msgstr "" #: src/hd-data.c:79 src/hd-data.c:307 msgid "New Zealand" msgstr "" #: src/hd-data.c:80 src/hd-data.c:319 #, fuzzy msgid "Portugal" msgstr "ПортугальÑкий" #: src/hd-data.c:81 src/hd-data.c:325 msgid "Russian Federation" msgstr "" #: src/hd-data.c:82 #, fuzzy msgid "United States" msgstr "День Объединенных Ðаций" #: src/hd-data.c:84 msgid "Andorra" msgstr "" #: src/hd-data.c:85 msgid "United Arab Emirates" msgstr "" #: src/hd-data.c:86 msgid "Afghanistan" msgstr "" #: src/hd-data.c:87 msgid "Antigua and Barbuda" msgstr "" #: src/hd-data.c:88 msgid "Anguilla" msgstr "" #: src/hd-data.c:89 msgid "Albania" msgstr "" #: src/hd-data.c:90 msgid "Armenia" msgstr "" #: src/hd-data.c:91 msgid "Netherlands Antilles/Bonaire" msgstr "" #: src/hd-data.c:92 msgid "Netherlands Antilles/Curaçao" msgstr "" #: src/hd-data.c:93 msgid "Netherlands Antilles/St Maarten" msgstr "" #: src/hd-data.c:94 msgid "Netherlands Antilles/Saba and Statia" msgstr "" #: src/hd-data.c:95 msgid "Angola #" msgstr "" #: src/hd-data.c:96 msgid "Argentina" msgstr "" #: src/hd-data.c:97 msgid "American Samoa" msgstr "" #: src/hd-data.c:98 #, fuzzy msgid "Austria" msgstr "ÐвÑтрийÑкий" #: src/hd-data.c:99 #, fuzzy msgid "Australia/Canberra" msgstr "ÐвÑтралийÑкий" #: src/hd-data.c:100 msgid "Australia/Northern Territory" msgstr "" #: src/hd-data.c:101 #, fuzzy msgid "Australia/Queensland" msgstr "ÐвÑтралийÑкий" #: src/hd-data.c:102 msgid "Australia/Southern Australia" msgstr "" #: src/hd-data.c:103 msgid "Australia/New South Wales" msgstr "" #: src/hd-data.c:104 #, fuzzy msgid "Australia/Tasmania" msgstr "ÐвÑтралийÑкий" #: src/hd-data.c:105 #, fuzzy msgid "Australia/Victoria" msgstr "ÐвÑтралийÑкий" #: src/hd-data.c:106 msgid "Australia/Western Australia" msgstr "" #: src/hd-data.c:107 msgid "Aruba" msgstr "" #: src/hd-data.c:108 msgid "Azerbaijan" msgstr "" #: src/hd-data.c:109 msgid "Bosnia-Herzegovina" msgstr "" #: src/hd-data.c:110 msgid "Barbados" msgstr "" #: src/hd-data.c:111 msgid "Bangladesh #" msgstr "" #: src/hd-data.c:113 msgid "Burkina Faso" msgstr "" #: src/hd-data.c:114 #, fuzzy msgid "Bulgaria" msgstr "ВенгерÑкий" #: src/hd-data.c:115 msgid "Bahrain" msgstr "" #: src/hd-data.c:116 msgid "Burundi #" msgstr "" #: src/hd-data.c:117 msgid "Benin #" msgstr "" #: src/hd-data.c:118 msgid "Bermuda" msgstr "" #: src/hd-data.c:119 msgid "Brunei" msgstr "" #: src/hd-data.c:120 msgid "Bolivia" msgstr "" #: src/hd-data.c:122 msgid "Bahamas" msgstr "" #: src/hd-data.c:123 msgid "Bhutan #" msgstr "" #: src/hd-data.c:124 msgid "Bouvet Island" msgstr "" #: src/hd-data.c:125 msgid "Botswana" msgstr "" #: src/hd-data.c:126 msgid "Belarus" msgstr "" #: src/hd-data.c:127 msgid "Belize" msgstr "" #: src/hd-data.c:128 msgid "Canada/Alberta" msgstr "" #: src/hd-data.c:129 msgid "Canada/British Columbia" msgstr "" #: src/hd-data.c:130 #, fuzzy msgid "Canada/Manitoba" msgstr "КанадÑкий" #: src/hd-data.c:131 msgid "Canada/New Brunswick" msgstr "" #: src/hd-data.c:132 msgid "Canada/Newfoundland and Labrador" msgstr "" #: src/hd-data.c:133 msgid "Canada/Nova Scotia" msgstr "" #: src/hd-data.c:134 msgid "Canada/Nordwest Territories" msgstr "" #: src/hd-data.c:135 #, fuzzy msgid "Canada/Ontario" msgstr "КанадÑкий" #: src/hd-data.c:136 msgid "Canada/Prince Edward Island" msgstr "" #: src/hd-data.c:137 msgid "Canada/Québec" msgstr "" #: src/hd-data.c:138 msgid "Canada/Saskatchewan" msgstr "" #: src/hd-data.c:139 #, fuzzy msgid "Canada/Yukon" msgstr "КанадÑкий" #: src/hd-data.c:140 msgid "Cocos Islands (Keeling)" msgstr "" #: src/hd-data.c:141 msgid "Democratic Republic of Congo #" msgstr "" #: src/hd-data.c:142 msgid "Central African Republic #" msgstr "" #: src/hd-data.c:143 msgid "Republic of Congo #" msgstr "" #: src/hd-data.c:144 msgid "Switzerland/Aargau" msgstr "" #: src/hd-data.c:145 msgid "Switzerland/Appenzell Innerrhoden" msgstr "" #: src/hd-data.c:146 msgid "Switzerland/Appenzell Ausserrhoden" msgstr "" #: src/hd-data.c:147 msgid "Switzerland/Bern" msgstr "" #: src/hd-data.c:148 msgid "Switzerland/Basel-Land" msgstr "" #: src/hd-data.c:149 msgid "Switzerland/Basel-Stadt" msgstr "" #: src/hd-data.c:150 msgid "Switzerland/Fribourg" msgstr "" #: src/hd-data.c:151 msgid "Switzerland/Genève" msgstr "" #: src/hd-data.c:152 msgid "Switzerland/Glarus" msgstr "" #: src/hd-data.c:153 msgid "Switzerland/Graubünden" msgstr "" #: src/hd-data.c:154 msgid "Switzerland/Jura" msgstr "" #: src/hd-data.c:155 msgid "Switzerland/Luzern" msgstr "" #: src/hd-data.c:156 msgid "Switzerland/Neuchâtel" msgstr "" #: src/hd-data.c:157 msgid "Switzerland/Nidwalden" msgstr "" #: src/hd-data.c:158 msgid "Switzerland/Obwalden" msgstr "" #: src/hd-data.c:159 msgid "Switzerland/St Gallen" msgstr "" #: src/hd-data.c:160 msgid "Switzerland/Schaffhausen" msgstr "" #: src/hd-data.c:161 msgid "Switzerland/Solothurn" msgstr "" #: src/hd-data.c:162 msgid "Switzerland/Schwyz" msgstr "" #: src/hd-data.c:163 msgid "Switzerland/Thurgau" msgstr "" #: src/hd-data.c:164 msgid "Switzerland/Ticino" msgstr "" #: src/hd-data.c:165 msgid "Switzerland/Uri" msgstr "" #: src/hd-data.c:166 msgid "Switzerland/Vaud" msgstr "" #: src/hd-data.c:167 msgid "Switzerland/Valais" msgstr "" #: src/hd-data.c:168 msgid "Switzerland/Zug" msgstr "" #: src/hd-data.c:169 msgid "Switzerland/Zürich" msgstr "" #: src/hd-data.c:170 msgid "Côte d'Ivoire" msgstr "" #: src/hd-data.c:171 msgid "Cook Islands" msgstr "" #: src/hd-data.c:172 msgid "Chile" msgstr "" #: src/hd-data.c:173 msgid "Cameroon" msgstr "" #: src/hd-data.c:175 msgid "Colombia" msgstr "" #: src/hd-data.c:176 msgid "Costa Rica" msgstr "" #: src/hd-data.c:177 msgid "Cuba" msgstr "" #: src/hd-data.c:178 msgid "Cape Verde" msgstr "" #: src/hd-data.c:179 #, fuzzy msgid "Christmas Islands" msgstr "РождеÑтво" #: src/hd-data.c:180 msgid "Cyprus" msgstr "" #: src/hd-data.c:181 #, fuzzy msgid "Czech Republic" msgstr "День реÑпублики" #: src/hd-data.c:182 msgid "Germany/Brandenburg" msgstr "" #: src/hd-data.c:183 #, fuzzy msgid "Germany/Berlin" msgstr "ГерманиÑ" #: src/hd-data.c:184 msgid "Germany/Baden-Württemberg" msgstr "" #: src/hd-data.c:185 #, fuzzy msgid "Germany/Bavaria" msgstr "ГерманиÑ" #: src/hd-data.c:186 #, fuzzy msgid "Germany/Bremen" msgstr "ГерманиÑ" #: src/hd-data.c:187 #, fuzzy msgid "Germany/Hesse" msgstr "ГерманиÑ" #: src/hd-data.c:188 #, fuzzy msgid "Germany/Hamburg" msgstr "ГерманиÑ" #: src/hd-data.c:189 msgid "Germany/Mecklenburg-West Pomerania" msgstr "" #: src/hd-data.c:190 msgid "Germany/Lower Saxony" msgstr "" #: src/hd-data.c:191 msgid "Germany/North Rhine-Westphalia" msgstr "" #: src/hd-data.c:192 msgid "Germany/Rhineland Palatinate" msgstr "" #: src/hd-data.c:193 msgid "Germany/Schleswig-Holstein" msgstr "" #: src/hd-data.c:194 #, fuzzy msgid "Germany/Saar" msgstr "ГерманиÑ" #: src/hd-data.c:195 #, fuzzy msgid "Germany/Saxony" msgstr "ГерманиÑ" #: src/hd-data.c:196 msgid "Germany/Saxony-Anhalt" msgstr "" #: src/hd-data.c:197 msgid "Germany/Thuringia" msgstr "" #: src/hd-data.c:198 msgid "Djibouti" msgstr "" #: src/hd-data.c:199 msgid "Denmark" msgstr "" #: src/hd-data.c:200 msgid "Dominica" msgstr "" #: src/hd-data.c:201 msgid "Dominican Republic" msgstr "" #: src/hd-data.c:202 msgid "Algeria" msgstr "" #: src/hd-data.c:203 msgid "Ecuador" msgstr "" #: src/hd-data.c:204 msgid "Estonia" msgstr "" #: src/hd-data.c:205 msgid "Egypt" msgstr "" #: src/hd-data.c:206 msgid "Western Sahara" msgstr "" #: src/hd-data.c:207 msgid "Eritrea" msgstr "" #: src/hd-data.c:209 msgid "Ethiopia" msgstr "" #: src/hd-data.c:210 msgid "Finland" msgstr "" #: src/hd-data.c:211 msgid "Fiji #" msgstr "" #: src/hd-data.c:212 msgid "Falkland Islands (Malvinas)" msgstr "" #: src/hd-data.c:213 msgid "Federated States of Micronesia" msgstr "" #: src/hd-data.c:214 msgid "Faroes" msgstr "" #: src/hd-data.c:216 msgid "Gabon #" msgstr "" #: src/hd-data.c:217 msgid "Great Britain/England and Wales" msgstr "" #: src/hd-data.c:218 #, fuzzy msgid "Great Britain/Northern Ireland" msgstr "ВеликобританиÑ" #: src/hd-data.c:219 #, fuzzy msgid "Great Britain/Scotland" msgstr "ВеликобританиÑ" #: src/hd-data.c:220 msgid "Grenada" msgstr "" #: src/hd-data.c:221 msgid "Georgia" msgstr "" #: src/hd-data.c:222 #, fuzzy msgid "French Guiana" msgstr "ФранцузÑкий" #: src/hd-data.c:223 msgid "Ghana" msgstr "" #: src/hd-data.c:224 msgid "Gibraltar" msgstr "" #: src/hd-data.c:225 msgid "Greenland" msgstr "" #: src/hd-data.c:226 msgid "Gambia" msgstr "" #: src/hd-data.c:227 msgid "Guinea" msgstr "" #: src/hd-data.c:228 msgid "Guadeloupe" msgstr "" #: src/hd-data.c:229 msgid "Equatorial Guinea" msgstr "" #: src/hd-data.c:230 #, fuzzy msgid "Greece" msgstr "ГречеÑкий" #: src/hd-data.c:231 msgid "South Georgia and South Sandwich Islands" msgstr "" #: src/hd-data.c:232 msgid "Guatemala" msgstr "" #: src/hd-data.c:233 msgid "Guam" msgstr "" #: src/hd-data.c:234 msgid "Guinea-Bissau #" msgstr "" #: src/hd-data.c:235 msgid "Guyana #" msgstr "" #: src/hd-data.c:236 msgid "Hong Kong" msgstr "" #: src/hd-data.c:237 msgid "Heard and Mc Donald Islands" msgstr "" #: src/hd-data.c:238 msgid "Honduras" msgstr "" #: src/hd-data.c:239 msgid "Croatia" msgstr "" #: src/hd-data.c:240 msgid "Haiti" msgstr "" #: src/hd-data.c:241 #, fuzzy msgid "Hungary" msgstr "ВенгерÑкий" #: src/hd-data.c:242 msgid "Indonesia #" msgstr "" #: src/hd-data.c:243 msgid "Ireland" msgstr "" #: src/hd-data.c:245 msgid "India #" msgstr "" #: src/hd-data.c:246 msgid "Iraq" msgstr "" #: src/hd-data.c:247 msgid "Islamic Republic of Iran" msgstr "" #: src/hd-data.c:248 msgid "Iceland" msgstr "" #: src/hd-data.c:250 msgid "Jamaica" msgstr "" #: src/hd-data.c:251 msgid "Jordan" msgstr "" #: src/hd-data.c:253 msgid "Kenya #" msgstr "" #: src/hd-data.c:254 msgid "Kyrgyzstan" msgstr "" #: src/hd-data.c:255 msgid "Cambodia #" msgstr "" #: src/hd-data.c:256 msgid "Kiribati #" msgstr "" #: src/hd-data.c:257 msgid "Comoros" msgstr "" #: src/hd-data.c:258 msgid "St Kitts and Nevis" msgstr "" #: src/hd-data.c:259 msgid "Democratic People's Republic of Korea" msgstr "" #: src/hd-data.c:261 msgid "Kuwait" msgstr "" #: src/hd-data.c:262 msgid "Cayman Islands" msgstr "" #: src/hd-data.c:263 msgid "Kazakhstan" msgstr "" #: src/hd-data.c:264 msgid "Laos People's Democratic Republic #" msgstr "" #: src/hd-data.c:265 msgid "Lebanon" msgstr "" #: src/hd-data.c:266 #, fuzzy msgid "St Lucia" msgstr "День Св. Лючии" #: src/hd-data.c:267 msgid "Liechtenstein" msgstr "" #: src/hd-data.c:268 msgid "Sri Lanka #" msgstr "" #: src/hd-data.c:269 #, fuzzy msgid "Liberia" msgstr "День оÑвобождениÑ" #: src/hd-data.c:270 msgid "Lesotho" msgstr "" #: src/hd-data.c:271 msgid "Lithuania" msgstr "" #: src/hd-data.c:272 msgid "Luxembourg" msgstr "" #: src/hd-data.c:273 msgid "Latvia" msgstr "" #: src/hd-data.c:274 msgid "Libyan Arab Jamahiriya (Libya)" msgstr "" #: src/hd-data.c:275 msgid "Morocco" msgstr "" #: src/hd-data.c:276 msgid "Monaco" msgstr "" #: src/hd-data.c:277 #, fuzzy msgid "Republic of Moldova" msgstr "День реÑпублики" #: src/hd-data.c:278 msgid "Madagascar #" msgstr "" #: src/hd-data.c:279 msgid "Marshall Islands" msgstr "" #: src/hd-data.c:280 msgid "Former Yugoslav Republic of Macedonia" msgstr "" #: src/hd-data.c:281 msgid "Mali" msgstr "" #: src/hd-data.c:282 msgid "Mongolia #" msgstr "" #: src/hd-data.c:283 msgid "Macau" msgstr "" #: src/hd-data.c:284 msgid "Northern Marian Islands (Saipan)" msgstr "" #: src/hd-data.c:285 #, fuzzy msgid "Martinique" msgstr "Мартынов день" #: src/hd-data.c:286 msgid "Mauritania" msgstr "" #: src/hd-data.c:287 msgid "Montserrat" msgstr "" #: src/hd-data.c:288 msgid "Malta" msgstr "" #: src/hd-data.c:289 #, fuzzy msgid "Mauritius" msgstr "БританÑкий" #: src/hd-data.c:290 msgid "Maldives" msgstr "" #: src/hd-data.c:291 msgid "Malawi" msgstr "" #: src/hd-data.c:293 msgid "Malaysia #" msgstr "" #: src/hd-data.c:294 msgid "Mozambique" msgstr "" #: src/hd-data.c:295 msgid "Namibia" msgstr "" #: src/hd-data.c:296 msgid "New Caledonia" msgstr "" #: src/hd-data.c:297 msgid "Niger" msgstr "" #: src/hd-data.c:298 msgid "Norfolk Islands" msgstr "" #: src/hd-data.c:299 msgid "Nigeria" msgstr "" #: src/hd-data.c:300 msgid "Nicaragua" msgstr "" #: src/hd-data.c:302 msgid "Myanmar (Burma) #" msgstr "" #: src/hd-data.c:303 #, fuzzy msgid "Norway" msgstr "ÐорвежÑкий" #: src/hd-data.c:304 msgid "Nepal #" msgstr "" #: src/hd-data.c:305 msgid "Nauru" msgstr "" #: src/hd-data.c:306 msgid "Niue" msgstr "" #: src/hd-data.c:308 msgid "Oman" msgstr "" #: src/hd-data.c:309 msgid "Panama" msgstr "" #: src/hd-data.c:310 msgid "Peru" msgstr "" #: src/hd-data.c:311 msgid "French Polynesia" msgstr "" #: src/hd-data.c:312 msgid "Papua New Guinea" msgstr "" #: src/hd-data.c:313 msgid "Philippines" msgstr "" #: src/hd-data.c:314 msgid "Pakistan" msgstr "" #: src/hd-data.c:315 msgid "Poland" msgstr "" #: src/hd-data.c:316 msgid "Saint-Pierre and Miquelon" msgstr "" #: src/hd-data.c:317 msgid "Pitcairn" msgstr "" #: src/hd-data.c:318 msgid "Puerto Rico" msgstr "" #: src/hd-data.c:320 msgid "Palau" msgstr "" #: src/hd-data.c:321 msgid "Paraguay" msgstr "" #: src/hd-data.c:322 msgid "Qatar" msgstr "" #: src/hd-data.c:323 msgid "Réunion" msgstr "" #: src/hd-data.c:324 msgid "Romania" msgstr "" #: src/hd-data.c:326 msgid "Rwanda" msgstr "" #: src/hd-data.c:327 msgid "Saudi Arabia" msgstr "" #: src/hd-data.c:328 msgid "Solomon Islands" msgstr "" #: src/hd-data.c:329 msgid "Seychellen" msgstr "" #: src/hd-data.c:330 msgid "Sudan" msgstr "" #: src/hd-data.c:331 #, fuzzy msgid "Sweden" msgstr "ШведÑкий" #: src/hd-data.c:332 msgid "Singapore #" msgstr "" #: src/hd-data.c:333 msgid "St Helena" msgstr "" #: src/hd-data.c:334 #, fuzzy msgid "Slovenia" msgstr "СловенÑкий" #: src/hd-data.c:335 msgid "Svalbard and Jan Mayen Islands" msgstr "" #: src/hd-data.c:336 #, fuzzy msgid "Slovakia" msgstr "СловенÑкий" #: src/hd-data.c:337 msgid "Sierra Leone" msgstr "" #: src/hd-data.c:338 msgid "San Marino" msgstr "" #: src/hd-data.c:339 msgid "Senegal" msgstr "" #: src/hd-data.c:340 msgid "Somalia" msgstr "" #: src/hd-data.c:341 msgid "Suriname #" msgstr "" #: src/hd-data.c:342 msgid "Sao Tomé and Principe" msgstr "" #: src/hd-data.c:343 msgid "El Salvador" msgstr "" #: src/hd-data.c:344 msgid "Syrian Arab Republic (Syria)" msgstr "" #: src/hd-data.c:345 msgid "Swaziland" msgstr "" #: src/hd-data.c:346 msgid "Turks and Caicos Islands" msgstr "" #: src/hd-data.c:347 msgid "Chad" msgstr "" #: src/hd-data.c:348 msgid "Togo #" msgstr "" #: src/hd-data.c:349 msgid "Thailand #" msgstr "" #: src/hd-data.c:350 msgid "Tajikistan" msgstr "" #: src/hd-data.c:351 msgid "Tokelau" msgstr "" #: src/hd-data.c:352 msgid "Turkmenistan" msgstr "" #: src/hd-data.c:353 msgid "Tunisia" msgstr "" #: src/hd-data.c:354 msgid "Tonga" msgstr "" #: src/hd-data.c:355 msgid "Turkey" msgstr "" #: src/hd-data.c:356 msgid "Trinidad and Tobago #" msgstr "" #: src/hd-data.c:357 msgid "Tuvalu" msgstr "" #: src/hd-data.c:358 msgid "Taiwan" msgstr "" #: src/hd-data.c:359 msgid "Tanzania" msgstr "" #: src/hd-data.c:360 msgid "Ukraine" msgstr "" #: src/hd-data.c:361 msgid "Uganda" msgstr "" #: src/hd-data.c:362 msgid "United States/Alaska" msgstr "" #: src/hd-data.c:363 msgid "United States/Alabama" msgstr "" #: src/hd-data.c:364 #, fuzzy msgid "United States/Arkansas" msgstr "День Объединенных Ðаций" #: src/hd-data.c:365 #, fuzzy msgid "United States/Arizona" msgstr "День Объединенных Ðаций" #: src/hd-data.c:366 #, fuzzy msgid "United States/California" msgstr "День Объединенных Ðаций" #: src/hd-data.c:367 msgid "United States/Colorado" msgstr "" #: src/hd-data.c:368 msgid "United States/Connecticut" msgstr "" #: src/hd-data.c:369 msgid "United States/District of Columbia" msgstr "" #: src/hd-data.c:370 #, fuzzy msgid "United States/Delaware" msgstr "День Объединенных Ðаций" #: src/hd-data.c:371 msgid "United States/Florida" msgstr "" #: src/hd-data.c:372 msgid "United States/Georgia" msgstr "" #: src/hd-data.c:373 msgid "United States/Hawaii" msgstr "" #: src/hd-data.c:374 #, fuzzy msgid "United States/Iowa" msgstr "День Объединенных Ðаций" #: src/hd-data.c:375 msgid "United States/Idaho" msgstr "" #: src/hd-data.c:376 #, fuzzy msgid "United States/Illinois" msgstr "День Объединенных Ðаций" #: src/hd-data.c:377 #, fuzzy msgid "United States/Indiana" msgstr "День Объединенных Ðаций" #: src/hd-data.c:378 #, fuzzy msgid "United States/Kansas" msgstr "День Объединенных Ðаций" #: src/hd-data.c:379 msgid "United States/Kentucky" msgstr "" #: src/hd-data.c:380 msgid "United States/Louisiana" msgstr "" #: src/hd-data.c:381 msgid "United States/Massachusetts" msgstr "" #: src/hd-data.c:382 #, fuzzy msgid "United States/Maryland" msgstr "День Объединенных Ðаций" #: src/hd-data.c:383 msgid "United States/Maine" msgstr "" #: src/hd-data.c:384 msgid "United States/Michigan" msgstr "" #: src/hd-data.c:385 #, fuzzy msgid "United States/Minnesota" msgstr "День Объединенных Ðаций" #: src/hd-data.c:386 msgid "United States/Missouri" msgstr "" #: src/hd-data.c:387 msgid "United States/Mississippi" msgstr "" #: src/hd-data.c:388 #, fuzzy msgid "United States/Montana" msgstr "День Объединенных Ðаций" #: src/hd-data.c:389 msgid "United States/North Carolina" msgstr "" #: src/hd-data.c:390 msgid "United States/North Dakota" msgstr "" #: src/hd-data.c:391 msgid "United States/Nebraska" msgstr "" #: src/hd-data.c:392 msgid "United States/New Hampshire" msgstr "" #: src/hd-data.c:393 msgid "United States/New Jersey" msgstr "" #: src/hd-data.c:394 msgid "United States/New Mexico" msgstr "" #: src/hd-data.c:395 msgid "United States/Nevada" msgstr "" #: src/hd-data.c:396 msgid "United States/New York" msgstr "" #: src/hd-data.c:397 #, fuzzy msgid "United States/Ohio" msgstr "День Объединенных Ðаций" #: src/hd-data.c:398 msgid "United States/Oklahoma" msgstr "" #: src/hd-data.c:399 msgid "United States/Oregon" msgstr "" #: src/hd-data.c:400 msgid "United States/Pennsylvania" msgstr "" #: src/hd-data.c:401 msgid "United States/Rhode Island" msgstr "" #: src/hd-data.c:402 msgid "United States/South Carolina" msgstr "" #: src/hd-data.c:403 msgid "United States/South Dakota" msgstr "" #: src/hd-data.c:404 msgid "United States/Tennessee" msgstr "" #: src/hd-data.c:405 msgid "United States/Texas" msgstr "" #: src/hd-data.c:406 #, fuzzy msgid "United States/Utah" msgstr "День Объединенных Ðаций" #: src/hd-data.c:407 #, fuzzy msgid "United States/Virginia" msgstr "День Объединенных Ðаций" #: src/hd-data.c:408 msgid "United States/Vermont" msgstr "" #: src/hd-data.c:409 msgid "United States/Washington" msgstr "" #: src/hd-data.c:410 #, fuzzy msgid "United States/Wisconsin" msgstr "День Объединенных Ðаций" #: src/hd-data.c:411 msgid "United States/West Virginia" msgstr "" #: src/hd-data.c:412 msgid "United States/Wyoming" msgstr "" #: src/hd-data.c:413 msgid "Uruguay" msgstr "" #: src/hd-data.c:414 msgid "Uzbekistan" msgstr "" #: src/hd-data.c:415 msgid "St Vincent and Grenadines" msgstr "" #: src/hd-data.c:416 msgid "Venezuela" msgstr "" #: src/hd-data.c:417 msgid "British Virgin Islands" msgstr "" #: src/hd-data.c:418 msgid "U.S. Virgin Islands" msgstr "" #: src/hd-data.c:419 msgid "Viet Nam" msgstr "" #: src/hd-data.c:420 msgid "Vanuatu" msgstr "" #: src/hd-data.c:421 msgid "Wallis and Futuna Islands" msgstr "" #: src/hd-data.c:422 msgid "Samoa" msgstr "" #: src/hd-data.c:423 msgid "Yemen" msgstr "" #: src/hd-data.c:424 msgid "Mayotte" msgstr "" #: src/hd-data.c:425 msgid "Serbia and Montenegro" msgstr "" #: src/hd-data.c:426 msgid "South Africa" msgstr "" #: src/hd-data.c:427 msgid "Zambia" msgstr "" #: src/hd-data.c:428 msgid "Zimbabwe" msgstr "" #: src/hd-data.c:458 msgid "1st Advent" msgstr "Первое ПришеÑтвие" #: src/hd-data.c:459 msgid "1st Sunday in Lent" msgstr "" #: src/hd-data.c:460 msgid "2nd Advent" msgstr "Второе ПришеÑтвие" #: src/hd-data.c:461 msgid "2nd Sunday in Lent" msgstr "" #: src/hd-data.c:462 msgid "3rd Advent" msgstr "Третье ПришеÑтвие" #: src/hd-data.c:463 msgid "3rd Sunday in Lent" msgstr "" #: src/hd-data.c:464 msgid "4th Advent" msgstr "Четвертое ПришеÑтвие" #: src/hd-data.c:465 msgid "4th Sunday in Lent" msgstr "" #: src/hd-data.c:466 msgid "7-5-3 Festival" msgstr "" #: src/hd-data.c:467 #, fuzzy msgid "Aborigines Day" msgstr "День ПринцеÑÑÑ‹" #: src/hd-data.c:468 msgid "All Fool's Day" msgstr "Первое апрелÑ" #: src/hd-data.c:469 msgid "All Saints' Day" msgstr "День Ñвех ÑвÑтых" #: src/hd-data.c:470 msgid "All Souls' Day" msgstr "День вÑех душ" #: src/hd-data.c:471 #, fuzzy msgid "Alphabet Day" msgstr "День флага" #: src/hd-data.c:472 msgid "Anniversary of Auckland" msgstr "" #: src/hd-data.c:473 msgid "Anniversary of Canterbury North" msgstr "" #: src/hd-data.c:474 msgid "Anniversary of Canterbury South" msgstr "" #: src/hd-data.c:475 msgid "Anniversary of Chatham Islands" msgstr "" #: src/hd-data.c:476 msgid "Anniversary of Hawkes' Bay" msgstr "" #: src/hd-data.c:477 msgid "Anniversary of Marlborough" msgstr "" #: src/hd-data.c:478 msgid "Anniversary of Nelson" msgstr "" #: src/hd-data.c:479 msgid "Anniversary of Otago" msgstr "" #: src/hd-data.c:480 msgid "Anniversary of Southland" msgstr "" #: src/hd-data.c:481 msgid "Anniversary of Taranaki" msgstr "" #: src/hd-data.c:482 msgid "Anniversary of Wellington" msgstr "" #: src/hd-data.c:483 msgid "Anniversary of Westland" msgstr "" #: src/hd-data.c:484 msgid "Anzac Day" msgstr "" #: src/hd-data.c:485 #, fuzzy msgid "Arbor Day" msgstr "День труда" #: src/hd-data.c:486 #, fuzzy msgid "Armed Forces Day" msgstr "День вооруженных Ñил" #: src/hd-data.c:487 msgid "Armistice Day" msgstr "День перемириÑ" #: src/hd-data.c:488 msgid "Ash Monday" msgstr "Пепельный понедельник" #: src/hd-data.c:489 msgid "Ash Wednesday" msgstr "ÐŸÐµÐ¿ÐµÐ»ÑŒÐ½Ð°Ñ Ñреда" #: src/hd-data.c:490 msgid "Ascension of Abdu'l-Baha" msgstr "" #: src/hd-data.c:491 msgid "Ascension of Baha'u'llah" msgstr "" #: src/hd-data.c:492 msgid "Birth of Baha'u'llah" msgstr "" #: src/hd-data.c:493 msgid "Birth of the Bab" msgstr "" #: src/hd-data.c:494 msgid "Day of the Covenant" msgstr "" #: src/hd-data.c:495 msgid "Declaration of the Bab" msgstr "" #: src/hd-data.c:496 msgid "First Day of Ridvan" msgstr "" #: src/hd-data.c:497 msgid "Martyrdom of the Bab" msgstr "" #: src/hd-data.c:498 #, fuzzy msgid "Bahá'i New Year's Day" msgstr "Ðовый Год" #: src/hd-data.c:499 msgid "Ninth Day of Ridvan" msgstr "" #: src/hd-data.c:500 msgid "Twelfth Day of Ridvan" msgstr "" #: src/hd-data.c:501 msgid "Bank Holiday" msgstr "" #: src/hd-data.c:502 #, fuzzy msgid "Basque National Day" msgstr "День Объединенных Ðаций" #: src/hd-data.c:503 msgid "Battle of Boyne" msgstr "" #: src/hd-data.c:504 msgid "Battle of Puebla" msgstr "" #: src/hd-data.c:505 msgid "Beginning of Financial Year" msgstr "" #: src/hd-data.c:506 msgid "Benito Juárez Day" msgstr "" #: src/hd-data.c:507 #, fuzzy msgid "Bodhidharma's Birthday" msgstr "День Ñ€Ð¾Ð¶Ð´ÐµÐ½Ð¸Ñ ÐºÐ¾Ñ€Ð¾Ð»Ñ" #: src/hd-data.c:508 #, fuzzy msgid "Bosses' Day" msgstr "День Св. ИоÑифа" #: src/hd-data.c:509 msgid "Boxing Day" msgstr "" #: src/hd-data.c:510 msgid "Bringing Home the Herds Day" msgstr "" #: src/hd-data.c:511 msgid "Bringing in the Harvest Day" msgstr "" #: src/hd-data.c:512 #, fuzzy msgid "Buddha's Birthday" msgstr "День Ñ€Ð¾Ð¶Ð´ÐµÐ½Ð¸Ñ ÐºÐ¾Ñ€Ð¾Ð»Ñ" #: src/hd-data.c:513 msgid "Burns Night" msgstr "" #: src/hd-data.c:514 #, fuzzy msgid "Camoes Day" msgstr "День Св. ДжеймÑа" #: src/hd-data.c:515 msgid "Carnival" msgstr "" #: src/hd-data.c:516 msgid "Beltane" msgstr "" #: src/hd-data.c:517 msgid "Imbolg" msgstr "" #: src/hd-data.c:518 msgid "Lughnasa" msgstr "" #: src/hd-data.c:519 #, fuzzy msgid "Samhain/Celtic New Year's Day" msgstr "Ðовый Год" #: src/hd-data.c:520 msgid "Children's Day" msgstr "День детей" #: src/hd-data.c:521 msgid "Cycle" msgstr "" #: src/hd-data.c:522 #, fuzzy msgid "Chinese New Year's Day" msgstr "Ðовый Год" #: src/hd-data.c:523 #, fuzzy msgid "Chinese New Year's Eve" msgstr "Ðовый Год" #: src/hd-data.c:524 msgid "Christmas Day" msgstr "РождеÑтво" #: src/hd-data.c:525 msgid "Christmas Eve" msgstr "Канун рождеÑтва" #: src/hd-data.c:526 msgid "Christ's Ascension Day" msgstr "ВознеÑение ХриÑтово" #: src/hd-data.c:527 #, fuzzy msgid "Chrysanthenum Day" msgstr "РождеÑтво" #: src/hd-data.c:528 #, fuzzy msgid "Citizenship Day" msgstr "День детей" #: src/hd-data.c:529 #, fuzzy msgid "Civic Holiday" msgstr "Ðациональный праздник" #: src/hd-data.c:530 msgid "Columbus Day" msgstr "День Колумба" #: src/hd-data.c:531 msgid "Coming of Age Day" msgstr "" #: src/hd-data.c:532 #, fuzzy msgid "Confucius' Birthday" msgstr "День Ñ€Ð¾Ð¶Ð´ÐµÐ½Ð¸Ñ ÐŸÑ€Ð¸Ð½Ñ†ÐµÑÑÑ‹ Короны" #: src/hd-data.c:533 msgid "Constitution Anniversary" msgstr "Годовщина конÑтитуции" #: src/hd-data.c:534 #, fuzzy msgid "Coptic New Year's Day" msgstr "Ðовый Год" #: src/hd-data.c:535 #, fuzzy msgid "Cosmonauts' Day" msgstr "День коронации" #: src/hd-data.c:536 #, fuzzy msgid "Cross Raising Day" msgstr "День коронации" #: src/hd-data.c:537 msgid "Culture Day" msgstr "День культуры" #: src/hd-data.c:538 msgid "Day after Mid-Autumn Festival" msgstr "" #: src/hd-data.c:539 msgid "Day after Tomb-Sweeping Day" msgstr "" #: src/hd-data.c:540 msgid "Day of Andalucia" msgstr "" #: src/hd-data.c:541 msgid "Day of Catalonia" msgstr "" #: src/hd-data.c:542 msgid "Day of Galicia" msgstr "" #: src/hd-data.c:543 msgid "Day of Prayer and Repentance" msgstr "День молитвы и покаÑниÑ" #: src/hd-data.c:544 msgid "Day of Reconciliation" msgstr "" #: src/hd-data.c:545 msgid "Defenders of Motherland Day" msgstr "" #: src/hd-data.c:546 #, fuzzy msgid "Double-9 Day" msgstr "День ÐобелÑ" #: src/hd-data.c:547 msgid "Dragon Boat Festival" msgstr "" #: src/hd-data.c:548 msgid "Dynasty Day" msgstr "День динаÑтии" #: src/hd-data.c:549 msgid "Easter Monday" msgstr "ПаÑхальный понедельник" #: src/hd-data.c:550 msgid "Easter Sunday" msgstr "ПаÑхальное воÑкреÑенье" #: src/hd-data.c:551 msgid "Lunar Eclipse" msgstr "" #: src/hd-data.c:552 msgid "Solar Eclipse" msgstr "" #: src/hd-data.c:553 msgid "Annular" msgstr "" #: src/hd-data.c:554 msgid "Partial" msgstr "" #: src/hd-data.c:555 msgid "Penumbral" msgstr "" #: src/hd-data.c:556 msgid "Total" msgstr "" #: src/hd-data.c:557 msgid "Eindhoven's Liberation" msgstr "" #: src/hd-data.c:558 msgid "Election Day" msgstr "День выборов" #: src/hd-data.c:559 #, fuzzy msgid "Emperor's Birthday" msgstr "День Ñ€Ð¾Ð¶Ð´ÐµÐ½Ð¸Ñ ÐºÐ¾Ñ€Ð¾Ð»Ñ" #: src/hd-data.c:560 #, fuzzy msgid "Equinox Day" msgstr "День выборов" #: src/hd-data.c:561 #, fuzzy msgid "Ethiopic New Year's Day" msgstr "Ðовый Год" #: src/hd-data.c:562 msgid "Father's Day" msgstr "День отцов" #: src/hd-data.c:563 msgid "Feast of Corpus Christi" msgstr "Праздник Тела ХриÑтова" #: src/hd-data.c:564 #, fuzzy msgid "Feast of Fortune" msgstr "Праздник Тела ХриÑтова" #: src/hd-data.c:565 msgid "Feast of Heart Jesus" msgstr "" #: src/hd-data.c:566 msgid "Festival of Lanterns" msgstr "" #: src/hd-data.c:567 msgid "Festival of Sadeh" msgstr "" #: src/hd-data.c:568 msgid "Flag Day" msgstr "День флага" #: src/hd-data.c:569 msgid "Flemish Culture Day" msgstr "День фламандÑкой культуры" #: src/hd-data.c:570 msgid "Founding of the Communist Party" msgstr "" #: src/hd-data.c:571 msgid "French Culture Day" msgstr "День французÑкой культуры" #: src/hd-data.c:572 #, fuzzy msgid "French Revolutionary" msgstr "День революции" #: src/hd-data.c:573 #, fuzzy msgid "Friendship Day" msgstr "День Президента" #: src/hd-data.c:574 msgid "German Unity Day" msgstr "День Ð¾Ð±ÑŠÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ Ð“ÐµÑ€Ð¼Ð°Ð½Ð¸Ð¸" #: src/hd-data.c:575 #, fuzzy msgid "Good Friday" msgstr "Ð”Ð¾Ð±Ñ€Ð°Ñ Ð¿Ñтница" #: src/hd-data.c:576 #, fuzzy msgid "Good Saturday/Easter Eve" msgstr "Ð”Ð¾Ð±Ñ€Ð°Ñ Ñуббота/канун ПаÑхи" #: src/hd-data.c:577 #, fuzzy msgid "Grandparents' Day" msgstr "День Президента" #: src/hd-data.c:578 #, fuzzy msgid "Greenery Day" msgstr "День молитвы" #: src/hd-data.c:579 msgid "Grotto Day" msgstr "" #: src/hd-data.c:580 msgid "Groundhog Day" msgstr "" #: src/hd-data.c:581 msgid "Guadalupe Virgin's Day" msgstr "" #: src/hd-data.c:582 msgid "Guy Fawke's Day" msgstr "День Ð“Ð°Ñ Ð¤Ð¾ÐºÐ°" #: src/hd-data.c:583 msgid "Halloween" msgstr "Ð¥Ñллоуин" #: src/hd-data.c:584 msgid "Health and Sport's Day" msgstr "" #: src/hd-data.c:585 msgid "Hannukah/Festival of Lights" msgstr "" #: src/hd-data.c:586 msgid "Lag B'Omer" msgstr "" #: src/hd-data.c:587 msgid "Pesach/Passover" msgstr "" #: src/hd-data.c:588 msgid "Purim/Feast of Lots" msgstr "" #: src/hd-data.c:589 #, fuzzy msgid "Rosh Hashana/New Year's Day" msgstr "Ðовый Год" #: src/hd-data.c:590 msgid "Shavuot/Giving of the Torah" msgstr "" #: src/hd-data.c:591 msgid "Shushan Purim" msgstr "" #: src/hd-data.c:592 msgid "Simchat Torah" msgstr "" #: src/hd-data.c:593 msgid "Sukkot/Feast of Tabernacles" msgstr "" #: src/hd-data.c:594 msgid "Tisha B'Av/Fasting Day" msgstr "" #: src/hd-data.c:595 msgid "Tu B'Shevat/New Year of Trees" msgstr "" #: src/hd-data.c:596 msgid "Yom Hashoah/Holocaust Memorial" msgstr "" #: src/hd-data.c:597 msgid "Yom Hazikaron/Soldiers Memorial" msgstr "" #: src/hd-data.c:598 #, fuzzy msgid "Yom Ha Azmaut/Independence Day" msgstr "День незавиÑимоÑти" #: src/hd-data.c:599 msgid "Yom Kippur/Atonement Day" msgstr "" #: src/hd-data.c:600 msgid "Yom Yerushalayim/Jerusalem Day" msgstr "" #: src/hd-data.c:601 #, fuzzy msgid "Holy Innocent's Day" msgstr "День ÑвÑтых младенцев" #: src/hd-data.c:602 msgid "Holy Trinity" msgstr "" #: src/hd-data.c:603 #, fuzzy msgid "Huravee Day" msgstr "День молитвы" #: src/hd-data.c:604 msgid "Independence Day" msgstr "День незавиÑимоÑти" #: src/hd-data.c:605 #, fuzzy msgid "Independence Movement Day" msgstr "День незавиÑимоÑти" #: src/hd-data.c:606 #, fuzzy msgid "Independence Proclamation" msgstr "ОбъÑвление незавиÑимоÑти" #: src/hd-data.c:607 #, fuzzy msgid "Indian New Year's Day" msgstr "Ðовый Год" #: src/hd-data.c:608 #, fuzzy msgid "Aga Khan's Birthday" msgstr "День Ñ€Ð¾Ð¶Ð´ÐµÐ½Ð¸Ñ ÐºÐ¾Ñ€Ð¾Ð»Ñ" #: src/hd-data.c:609 msgid "Ashura'" msgstr "" #: src/hd-data.c:610 msgid "Eid-al-Adha" msgstr "" #: src/hd-data.c:611 msgid "Eid-al-Fitr" msgstr "" #: src/hd-data.c:612 msgid "Eid-i-Milad-un-Nabi" msgstr "" #: src/hd-data.c:613 msgid "Ghadir" msgstr "" #: src/hd-data.c:614 msgid "Imamat Day" msgstr "" #: src/hd-data.c:615 #, fuzzy msgid "Islamic New Year's Day" msgstr "Ðовый Год" #: src/hd-data.c:616 msgid "Nuzul-al-Qur'an" msgstr "" #: src/hd-data.c:617 #, fuzzy msgid "Quds Day" msgstr "День Колумба" #: src/hd-data.c:618 msgid "Ramadan" msgstr "" #: src/hd-data.c:619 msgid "Shab-e-Bara't" msgstr "" #: src/hd-data.c:620 msgid "Shab-e-Mi'raj" msgstr "" #: src/hd-data.c:621 msgid "Shab-e Qadr" msgstr "" #: src/hd-data.c:622 msgid "Waqf-al-Arafat" msgstr "" #: src/hd-data.c:623 #, fuzzy msgid "Japanese New Year's Day" msgstr "Ðовый Год" #: src/hd-data.c:624 msgid "Japanese New Year's Eve" msgstr "" #: src/hd-data.c:625 msgid "Jesus' Circumcision" msgstr "" #: src/hd-data.c:626 msgid "Kwanzaa" msgstr "" #: src/hd-data.c:627 msgid "Labour Day" msgstr "День труда" #: src/hd-data.c:628 #, fuzzy msgid "Labour Thanksgiving Day" msgstr "День благодарениÑ" #: src/hd-data.c:629 #, fuzzy msgid "Lao Tze's Birthday" msgstr "День Ñ€Ð¾Ð¶Ð´ÐµÐ½Ð¸Ñ ÐºÐ¾Ñ€Ð¾Ð»Ñ" #: src/hd-data.c:630 msgid "Liberation Day" msgstr "День оÑвобождениÑ" #: src/hd-data.c:631 #, fuzzy msgid "Marine Day" msgstr "Первое МаÑ" #: src/hd-data.c:632 msgid "Martinimas" msgstr "Мартынов день" #: src/hd-data.c:633 msgid "Martin L. King's Day" msgstr "День Мартина Л. Кинга" #: src/hd-data.c:634 #, fuzzy msgid "Martyrs' Day" msgstr "Первое МаÑ" #: src/hd-data.c:635 msgid "Mary's Annunciation Day" msgstr "День Ð±Ð»Ð°Ð³Ð¾Ð²ÐµÑ‰ÐµÐ½Ð¸Ñ ÐœÐ°Ñ€Ð¸Ð¸" #: src/hd-data.c:636 msgid "Mary's Ascension Day" msgstr "ВознеÑение Богородицы" #: src/hd-data.c:637 msgid "Mary's Candlemas" msgstr "" #: src/hd-data.c:638 #, fuzzy msgid "Mary's Expectation" msgstr "День Ð±Ð»Ð°Ð³Ð¾Ð²ÐµÑ‰ÐµÐ½Ð¸Ñ ÐœÐ°Ñ€Ð¸Ð¸" #: src/hd-data.c:639 #, fuzzy msgid "Mary's Immaculate Conception" msgstr "Ðепорочное зачатие" #: src/hd-data.c:640 #, fuzzy msgid "Mary's Maternity" msgstr "ВознеÑение Богородицы" #: src/hd-data.c:641 msgid "Mary's Name" msgstr "" #: src/hd-data.c:642 msgid "Mary's Nativity" msgstr "" #: src/hd-data.c:643 msgid "Mary's Sacrifice" msgstr "" #: src/hd-data.c:644 #, fuzzy msgid "Mary's Visitation" msgstr "День Ð±Ð»Ð°Ð³Ð¾Ð²ÐµÑ‰ÐµÐ½Ð¸Ñ ÐœÐ°Ñ€Ð¸Ð¸" #: src/hd-data.c:645 msgid "Mary - Blessed Virgin" msgstr "" #: src/hd-data.c:646 msgid "Maundy Thursday" msgstr "Великий четверг" #: src/hd-data.c:647 msgid "May Day" msgstr "Первое МаÑ" #: src/hd-data.c:648 #, fuzzy msgid "St John's/Midsummer Day" msgstr "День Св. Иоанна" #: src/hd-data.c:649 msgid "Mid-Autumn Festival" msgstr "" #: src/hd-data.c:650 msgid "Mid-Spring Festival" msgstr "" #: src/hd-data.c:651 msgid "Mid-Year Festival" msgstr "" #: src/hd-data.c:652 msgid "Waxing Half Moon" msgstr "" #: src/hd-data.c:653 msgid "Full Moon" msgstr "" #: src/hd-data.c:654 msgid "Waning Half Moon" msgstr "" #: src/hd-data.c:655 msgid "New Moon" msgstr "" #: src/hd-data.c:656 msgid "Mother's Day" msgstr "День матерей" #: src/hd-data.c:657 #, fuzzy msgid "Mother in Law's Day" msgstr "День матерей" #: src/hd-data.c:658 msgid "Music Water Banquet" msgstr "" #: src/hd-data.c:659 #, fuzzy msgid "National Foundation Day" msgstr "Ðациональный праздник" #: src/hd-data.c:660 msgid "National Holiday" msgstr "Ðациональный праздник" #: src/hd-data.c:661 #, fuzzy msgid "National Mourning Day" msgstr "Ðациональный праздник" #: src/hd-data.c:662 msgid "New Year's Day" msgstr "Ðовый Год" #: src/hd-data.c:663 #, fuzzy msgid "Nurses' Day" msgstr "День ПринцеÑÑÑ‹" #: src/hd-data.c:664 msgid "Old-Armenic New Year" msgstr "" #: src/hd-data.c:665 msgid "Old-Egyptic New Year" msgstr "" #: src/hd-data.c:666 #, fuzzy msgid "Orthodox New Year's Day" msgstr "Ðовый Год" #: src/hd-data.c:667 msgid "Our Lady Aparecida Day" msgstr "" #: src/hd-data.c:668 msgid "Palm Sunday" msgstr "Вербное воÑкреÑенье" #: src/hd-data.c:669 #, fuzzy msgid "Parent's Day" msgstr "День Президента" #: src/hd-data.c:670 #, fuzzy msgid "Passion Sunday" msgstr "Вербное воÑкреÑенье" #: src/hd-data.c:671 msgid "Peace Festival" msgstr "" #: src/hd-data.c:672 msgid "Peach Festival" msgstr "" #: src/hd-data.c:673 msgid "Whitsunday/Pentecost" msgstr "Троицын день" #: src/hd-data.c:674 #, fuzzy msgid "Noruz/Persian New Year's Day" msgstr "Ðовый Год" #: src/hd-data.c:675 msgid "Prayer Day" msgstr "День молитвы" #: src/hd-data.c:676 msgid "Presidential Inauguration" msgstr "" #: src/hd-data.c:677 #, fuzzy msgid "Presidents' Day" msgstr "День Президента" #: src/hd-data.c:678 #, fuzzy msgid "Presidents' Inform" msgstr "День Президента" #: src/hd-data.c:679 #, fuzzy msgid "President Lincoln's Birthday" msgstr "День Президента" #: src/hd-data.c:680 msgid "Princess' Day" msgstr "День ПринцеÑÑÑ‹" #: src/hd-data.c:681 msgid "Quinquagesima Sunday" msgstr "" #: src/hd-data.c:682 msgid "Reformation Day" msgstr "День Реформации" #: src/hd-data.c:683 msgid "Remembrance/Memorial Day" msgstr "" #: src/hd-data.c:684 msgid "Republic Day" msgstr "День реÑпублики" #: src/hd-data.c:685 msgid "Respect for the Aged Day" msgstr "" #: src/hd-data.c:686 msgid "Revolution Day" msgstr "День революции" #: src/hd-data.c:687 #, fuzzy msgid "Rio de Janeiro Anniversary" msgstr "Годовщина конÑтитуции" #: src/hd-data.c:688 #, fuzzy msgid "Rogation Sunday" msgstr "День Реформации" #: src/hd-data.c:689 #, fuzzy msgid "Sao Paulo Anniversary" msgstr "Годовщина конÑтитуции" #: src/hd-data.c:690 msgid "Sapporo Snow Festival" msgstr "" #: src/hd-data.c:691 msgid "Season Change/Bean-Festival" msgstr "" #: src/hd-data.c:692 #, fuzzy msgid "Septuagesima Sunday" msgstr "Вербное воÑкреÑенье" #: src/hd-data.c:693 #, fuzzy msgid "Seven Sleepers Day" msgstr "День Св. Стефана" #: src/hd-data.c:694 #, fuzzy msgid "Sexagesima Sunday" msgstr "Вербное воÑкреÑенье" #: src/hd-data.c:695 msgid "Shrove Tuesday/Mardi Gras" msgstr "" #: src/hd-data.c:696 #, fuzzy msgid "Solstice Day" msgstr "День перемириÑ" #: src/hd-data.c:697 msgid "Soot-Sweeping Day" msgstr "" #: src/hd-data.c:698 msgid "Spring Festival" msgstr "" #: src/hd-data.c:699 msgid "Start of common month" msgstr "" #: src/hd-data.c:700 msgid "Start of leap month" msgstr "" #: src/hd-data.c:701 msgid "Star Festival" msgstr "" #: src/hd-data.c:702 #, fuzzy msgid "St Andrew's Day" msgstr "День Св. ГеоргиÑ" #: src/hd-data.c:703 #, fuzzy msgid "St Bartholomew Day" msgstr "День Св. Берхтольда" #: src/hd-data.c:704 #, fuzzy msgid "St Berchtold's Day" msgstr "День Св. Берхтольда" #: src/hd-data.c:705 #, fuzzy msgid "St David's Day" msgstr "День Св. Давида" #: src/hd-data.c:706 #, fuzzy msgid "St Edward's Day" msgstr "День Св. Эдварда" #: src/hd-data.c:707 #, fuzzy msgid "St George's Day" msgstr "День Св. ГеоргиÑ" #: src/hd-data.c:708 #, fuzzy msgid "St James' Day" msgstr "День Св. ДжеймÑа" #: src/hd-data.c:709 #, fuzzy msgid "St Joseph's Day" msgstr "День Св. ИоÑифа" #: src/hd-data.c:710 #, fuzzy msgid "St Laurentius Day" msgstr "День Св. Валентина" #: src/hd-data.c:711 #, fuzzy msgid "St Nicholas' Day" msgstr "День Св. ÐиколаÑ" #: src/hd-data.c:712 #, fuzzy msgid "St Nicholas' Eve" msgstr "День Св. ÐиколаÑ" #: src/hd-data.c:713 #, fuzzy msgid "St Patrick's Day" msgstr "День Св. Патрика" #: src/hd-data.c:714 msgid "St Peter and St Paul" msgstr "" #: src/hd-data.c:715 #, fuzzy msgid "St Stephen's Day" msgstr "День Св. Стефана" #: src/hd-data.c:716 #, fuzzy msgid "St Valentine's Day" msgstr "День Св. Валентина" #: src/hd-data.c:717 msgid "Sunday of the Dead" msgstr "" #: src/hd-data.c:718 msgid "Swallow Day" msgstr "" #: src/hd-data.c:719 #, fuzzy msgid "Sweetest Day" msgstr "День ветеранов" #: src/hd-data.c:720 msgid "Sylvester/New Year's Eve" msgstr "" #: src/hd-data.c:721 msgid "Teacher's Day" msgstr "День учителей" #: src/hd-data.c:722 #, fuzzy msgid "Thai New Year's Day" msgstr "Ðовый Год" #: src/hd-data.c:723 #, fuzzy msgid "Thanksgiving Day" msgstr "День благодарениÑ" #: src/hd-data.c:724 msgid "The King's Birthday" msgstr "День Ñ€Ð¾Ð¶Ð´ÐµÐ½Ð¸Ñ ÐºÐ¾Ñ€Ð¾Ð»Ñ" #: src/hd-data.c:725 msgid "The Queen's Birthday" msgstr "День Ñ€Ð¾Ð¶Ð´ÐµÐ½Ð¸Ñ ÐºÐ¾Ñ€Ð¾Ð»ÐµÐ²Ñ‹" #: src/hd-data.c:726 msgid "Epiphany/Three King's Day" msgstr "" #: src/hd-data.c:727 #, fuzzy msgid "Tiradentes Day" msgstr "День Президента" #: src/hd-data.c:728 msgid "Tomb-Sweeping Day" msgstr "" #: src/hd-data.c:729 #, fuzzy msgid "Transfiguration Day" msgstr "День оÑвобождениÑ" #: src/hd-data.c:730 #, fuzzy msgid "Tynwald Day" msgstr "День динаÑтии" #: src/hd-data.c:731 msgid "Valborg's Eve" msgstr "" #: src/hd-data.c:732 msgid "Venice Carnival" msgstr "" #: src/hd-data.c:733 msgid "Veteran's Day" msgstr "День ветеранов" #: src/hd-data.c:734 msgid "Victoria Day" msgstr "День Виктории" #: src/hd-data.c:735 msgid "Victory Day" msgstr "День Победы" #: src/hd-data.c:736 msgid "Whit Monday" msgstr "Духов день" #: src/hd-data.c:737 #, fuzzy msgid "Women's Day" msgstr "День матерей" #: src/hd-data.c:738 #, fuzzy msgid "Women's Shrove Day" msgstr "День иÑÐ¿Ð¾Ð²ÐµÐ´Ð°Ð½Ð¸Ñ Ð¶ÐµÐ½Ñ‰Ð¸Ð½" #: src/hd-data.c:739 msgid "World Animal Day" msgstr "Ð’Ñемирный день животных" #: src/hd-data.c:740 #, fuzzy msgid "Youth Day" msgstr "День матерей" #: src/hd-data.c:746 msgid "Adelaide Cup Day" msgstr "" #: src/hd-data.c:747 #, fuzzy msgid "Admission Day" msgstr "День перемириÑ" #: src/hd-data.c:748 #, fuzzy msgid "Alaska Day" msgstr "День флага" #: src/hd-data.c:749 msgid "Aleksis Kivi Day" msgstr "" #: src/hd-data.c:750 msgid "Alice-Springs Show Day" msgstr "" #: src/hd-data.c:751 #, fuzzy msgid "All Saints' Eve" msgstr "День Ñвех ÑвÑтых" #: src/hd-data.c:752 #, fuzzy msgid "Americas Day" msgstr "День вооруженных Ñил" #: src/hd-data.c:753 #, fuzzy msgid "Angam Day" msgstr "Первое МаÑ" #: src/hd-data.c:755 msgid "Anniversary of Amir's Succession" msgstr "" #: src/hd-data.c:756 msgid "Anniversary of Armed Struggle" msgstr "" #: src/hd-data.c:757 msgid "Anniversary of Green March" msgstr "" #: src/hd-data.c:758 #, fuzzy msgid "Antillian Day" msgstr "День Ñвех ÑвÑтых" #: src/hd-data.c:759 msgid "Arab League Day" msgstr "" #: src/hd-data.c:761 msgid "Archbishop Makarios' Memorial Day" msgstr "" #: src/hd-data.c:762 msgid "Archbishop Makarios' Name-Day" msgstr "" #: src/hd-data.c:763 #, fuzzy msgid "Arengo Anniversary" msgstr "Годовщина конÑтитуции" #: src/hd-data.c:764 #, fuzzy msgid "Army Coup Day" msgstr "День вооруженных Ñил" #: src/hd-data.c:765 msgid "Arrival of the Swiss" msgstr "" #: src/hd-data.c:766 #, fuzzy msgid "Artigas' Birthday" msgstr "День Ñ€Ð¾Ð¶Ð´ÐµÐ½Ð¸Ñ ÐºÐ¾Ñ€Ð¾Ð»Ñ" #: src/hd-data.c:767 #, fuzzy msgid "Asuncion Day" msgstr "День выборов" #: src/hd-data.c:768 msgid "Ataturk Memorial Day" msgstr "" #: src/hd-data.c:769 msgid "Authority's Power Day" msgstr "" #: src/hd-data.c:770 #, fuzzy msgid "Ba'ath Revolution Day" msgstr "День революции" #: src/hd-data.c:771 msgid "Baron Bliss Day" msgstr "" #: src/hd-data.c:772 #, fuzzy msgid "Bataan Day" msgstr "День ветеранов" #: src/hd-data.c:773 msgid "Battle of Angamos" msgstr "" #: src/hd-data.c:774 msgid "Battle of Boyacá" msgstr "" #: src/hd-data.c:775 msgid "Battle of Carabobo" msgstr "" #: src/hd-data.c:776 msgid "Battle of Iquique" msgstr "" #: src/hd-data.c:777 msgid "Battle of Las Piedras" msgstr "" #: src/hd-data.c:778 msgid "Battle of Näfels" msgstr "" #: src/hd-data.c:779 msgid "Beginning of Summer" msgstr "" #: src/hd-data.c:780 #, fuzzy msgid "Belgrade's Day" msgstr "День учителей" #: src/hd-data.c:781 msgid "Bennington Battle Day" msgstr "" #: src/hd-data.c:782 msgid "Blessing of the Water" msgstr "" #: src/hd-data.c:783 msgid "Bloomsday" msgstr "" #: src/hd-data.c:784 msgid "Boganda Day" msgstr "" #: src/hd-data.c:785 #, fuzzy msgid "Bonaire Day" msgstr "День коронации" #: src/hd-data.c:786 #, fuzzy msgid "Boqueron Battle Day" msgstr "День коронации" #: src/hd-data.c:787 msgid "Botswana Day" msgstr "" #: src/hd-data.c:788 #, fuzzy msgid "Bounty Day" msgstr "День динаÑтии" #: src/hd-data.c:789 msgid "Bunker Hill Day" msgstr "" #: src/hd-data.c:790 msgid "Burning of Jan Hus" msgstr "Сожжение Яна ГуÑа" #: src/hd-data.c:791 #, fuzzy msgid "Canberra Day" msgstr "День молитвы" #: src/hd-data.c:792 #, fuzzy msgid "Caricom Day" msgstr "РождеÑтво" #: src/hd-data.c:793 msgid "Casimir Pulaski's Birthday" msgstr "" #: src/hd-data.c:794 #, fuzzy msgid "Cassinga Day" msgstr "День коронации" #: src/hd-data.c:795 msgid "Cayenne Festival" msgstr "" #: src/hd-data.c:796 msgid "Cesar Chavez Day" msgstr "" #: src/hd-data.c:797 #, fuzzy msgid "Charter Day" msgstr "День отцов" #: src/hd-data.c:798 #, fuzzy msgid "Chiang Kai-shek's Birthday" msgstr "День Ñ€Ð¾Ð¶Ð´ÐµÐ½Ð¸Ñ ÐºÐ¾Ñ€Ð¾Ð»Ñ" #: src/hd-data.c:799 #, fuzzy msgid "Children's White Sunday" msgstr "День детей" #: src/hd-data.c:800 #, fuzzy msgid "Colon Day" msgstr "День революции" #: src/hd-data.c:801 #, fuzzy msgid "Colorado Day" msgstr "День коронации" #: src/hd-data.c:802 #, fuzzy msgid "Commonwealth Day" msgstr "День коронации" #: src/hd-data.c:803 #, fuzzy msgid "Compact Day" msgstr "День коронации" #: src/hd-data.c:804 msgid "Confederal Agreement Day" msgstr "" #: src/hd-data.c:805 msgid "Coronation Day" msgstr "День коронации" #: src/hd-data.c:806 #, fuzzy msgid "Cup Match Day" msgstr "Первое МаÑ" #: src/hd-data.c:807 #, fuzzy msgid "Custom Chief's Day" msgstr "День детей" #: src/hd-data.c:808 msgid "C. Mapinduzi Day" msgstr "" #: src/hd-data.c:809 msgid "Darwin Show Day" msgstr "" #: src/hd-data.c:810 msgid "Day of Goodwill" msgstr "" #: src/hd-data.c:811 msgid "Day of Students Revolt" msgstr "День ÑтуденчеÑкого воÑÑтаниÑ" #: src/hd-data.c:812 msgid "Day of the Free Laos" msgstr "" #: src/hd-data.c:813 #, fuzzy msgid "Death of H. Christophe" msgstr "Праздник Тела ХриÑтова" #: src/hd-data.c:814 msgid "Death of J. Dessalines" msgstr "" #: src/hd-data.c:815 msgid "Death of President Abdallah" msgstr "" #: src/hd-data.c:816 msgid "Death of President Cheikh" msgstr "" #: src/hd-data.c:817 msgid "Death of President Soilih" msgstr "" #: src/hd-data.c:818 msgid "Death of Qaid-i-Azam" msgstr "" #: src/hd-data.c:819 msgid "Death of T. Louverture" msgstr "" #: src/hd-data.c:820 #, fuzzy msgid "Defenders Day" msgstr "День незавиÑимоÑти" #: src/hd-data.c:821 msgid "Dia del Padre" msgstr "" #: src/hd-data.c:822 msgid "Dia de los Maestros" msgstr "" #: src/hd-data.c:823 #, fuzzy msgid "Discovery Day" msgstr "День Победы" #: src/hd-data.c:824 msgid "Downfall of the Dergue" msgstr "" #: src/hd-data.c:825 msgid "Dry Season Celebration" msgstr "" #: src/hd-data.c:826 #, fuzzy msgid "Dr. Sun Yat-sen's Birthday" msgstr "День Ñ€Ð¾Ð¶Ð´ÐµÐ½Ð¸Ñ ÐºÐ¾Ñ€Ð¾Ð»ÐµÐ²Ñ‹" #: src/hd-data.c:827 #, fuzzy msgid "Duarte's Birthday" msgstr "День Ñ€Ð¾Ð¶Ð´ÐµÐ½Ð¸Ñ ÐºÐ¾Ñ€Ð¾Ð»ÐµÐ²Ñ‹" #: src/hd-data.c:828 #, fuzzy msgid "Easter Tuesday" msgstr "ПаÑхальное воÑкреÑенье" #: src/hd-data.c:829 #, fuzzy msgid "Economic Liberation Day" msgstr "День оÑвобождениÑ" #: src/hd-data.c:830 #, fuzzy msgid "Eight Hours Day" msgstr "День Победы" #: src/hd-data.c:831 msgid "Elections for National Assembly" msgstr "" #: src/hd-data.c:832 msgid "Errol Barrow Day" msgstr "" #: src/hd-data.c:833 #, fuzzy msgid "Evacuation Day" msgstr "День выборов" #: src/hd-data.c:834 msgid "Eve of Epiphany" msgstr "" #: src/hd-data.c:835 msgid "Expedition of the 33" msgstr "" #: src/hd-data.c:836 msgid "E. Hostos' Birthday" msgstr "" #: src/hd-data.c:837 #, fuzzy msgid "Family Day" msgstr "Первое МаÑ" #: src/hd-data.c:838 #, fuzzy msgid "FAO Day" msgstr "День флага" #: src/hd-data.c:839 #, fuzzy msgid "Farmers' Day" msgstr "День отцов" #: src/hd-data.c:840 #, fuzzy msgid "Father Leval Day" msgstr "День отцов" #: src/hd-data.c:841 msgid "Feast of Our Theotokos" msgstr "" #: src/hd-data.c:842 #, fuzzy msgid "Fisherman's Day" msgstr "День отцов" #: src/hd-data.c:843 #, fuzzy msgid "Foundation of NPLA Day" msgstr "День коронации" #: src/hd-data.c:844 msgid "Founding of People's Party" msgstr "" #: src/hd-data.c:845 msgid "Garifuna Day" msgstr "" #: src/hd-data.c:847 msgid "General San Martin's Anniversary" msgstr "" #: src/hd-data.c:848 #, fuzzy msgid "Gospel Day" msgstr "День ÐобелÑ" #: src/hd-data.c:849 #, fuzzy msgid "Guacanaste Day" msgstr "День динаÑтии" #: src/hd-data.c:850 msgid "Gustavus Adolphus' Day" msgstr "День ГуÑтава Ðдольфа" #: src/hd-data.c:851 #, fuzzy msgid "Heritage Day" msgstr "День перемириÑ" #: src/hd-data.c:852 #, fuzzy msgid "Heroes Day" msgstr "День отцов" #: src/hd-data.c:853 msgid "Hobart Show Day" msgstr "" #: src/hd-data.c:854 #, fuzzy msgid "Holy Wednesday" msgstr "Среда" #: src/hd-data.c:855 #, fuzzy msgid "Ho Chi Minh's Birthday" msgstr "День Ñ€Ð¾Ð¶Ð´ÐµÐ½Ð¸Ñ ÐºÐ¾Ñ€Ð¾Ð»Ñ" #: src/hd-data.c:856 #, fuzzy msgid "Human Rights Day" msgstr "День Ð¾Ð±ÑŠÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ Ð“ÐµÑ€Ð¼Ð°Ð½Ð¸Ð¸" #: src/hd-data.c:857 msgid "Hurricane Supplication Day" msgstr "" #: src/hd-data.c:858 #, fuzzy msgid "Hurricane Thanksgiving Day" msgstr "День благодарениÑ" #: src/hd-data.c:859 #, fuzzy msgid "Independence of Cartagena" msgstr "День незавиÑимоÑти" #: src/hd-data.c:860 #, fuzzy msgid "Independence of Cuenca" msgstr "День незавиÑимоÑти" #: src/hd-data.c:861 #, fuzzy msgid "Independence of Guayaquil" msgstr "День незавиÑимоÑти" #: src/hd-data.c:862 #, fuzzy msgid "Independence of Quito" msgstr "День незавиÑимоÑти" #: src/hd-data.c:863 msgid "Indian Arrival Day" msgstr "" #: src/hd-data.c:864 #, fuzzy msgid "Internal Autonomy Day" msgstr "Международный женÑкий день" #: src/hd-data.c:865 #, fuzzy msgid "Jefferson Davis' Birthday" msgstr "День Ñ€Ð¾Ð¶Ð´ÐµÐ½Ð¸Ñ ÐŸÑ€Ð¸Ð½Ñ†ÐµÑÑÑ‹ Короны" #: src/hd-data.c:866 #, fuzzy msgid "June Holiday" msgstr "Ðациональный праздник" #: src/hd-data.c:867 #, fuzzy msgid "J. Barbosa's Birthday" msgstr "День Ñ€Ð¾Ð¶Ð´ÐµÐ½Ð¸Ñ ÐºÐ¾Ñ€Ð¾Ð»Ñ" #: src/hd-data.c:868 #, fuzzy msgid "J. Chilembwe Day" msgstr "День детей" #: src/hd-data.c:869 #, fuzzy msgid "J. Diego's Birthday" msgstr "День Ñ€Ð¾Ð¶Ð´ÐµÐ½Ð¸Ñ ÐºÐ¾Ñ€Ð¾Ð»Ñ" #: src/hd-data.c:870 #, fuzzy msgid "J. Robert's Birthday" msgstr "День Ñ€Ð¾Ð¶Ð´ÐµÐ½Ð¸Ñ ÐºÐ¾Ñ€Ð¾Ð»ÐµÐ²Ñ‹" #: src/hd-data.c:871 msgid "Kamarampaka Day" msgstr "" #: src/hd-data.c:872 #, fuzzy msgid "Kartini Day" msgstr "Мартынов день" #: src/hd-data.c:873 #, fuzzy msgid "Catherine Show Day" msgstr "День отцов" #: src/hd-data.c:874 msgid "Kiev Day" msgstr "" #: src/hd-data.c:875 #, fuzzy msgid "Kim Il-Sung's Birthday" msgstr "День Ñ€Ð¾Ð¶Ð´ÐµÐ½Ð¸Ñ ÐºÐ¾Ñ€Ð¾Ð»Ñ" #: src/hd-data.c:876 #, fuzzy msgid "Kim Jong-Il's Birthday" msgstr "День Ñ€Ð¾Ð¶Ð´ÐµÐ½Ð¸Ñ ÐºÐ¾Ñ€Ð¾Ð»Ñ" #: src/hd-data.c:877 msgid "King Kamehameha Day" msgstr "" #: src/hd-data.c:878 msgid "King Rama I Memorial Day/Chakri" msgstr "" #: src/hd-data.c:879 msgid "King Rama V Memorial Day" msgstr "" #: src/hd-data.c:880 msgid "Knabenschiessen" msgstr "" #: src/hd-data.c:881 msgid "Konstantin and Methodius" msgstr "" #: src/hd-data.c:882 msgid "Lapp National Holiday" msgstr "" #: src/hd-data.c:883 msgid "Launceston Cup Day" msgstr "" #: src/hd-data.c:884 #, fuzzy msgid "Liberty Day" msgstr "День оÑвобождениÑ" #: src/hd-data.c:885 msgid "Loss of Muslim Nation" msgstr "" #: src/hd-data.c:886 msgid "Luxembourg City Kermis" msgstr "" #: src/hd-data.c:887 #, fuzzy msgid "Lyndon B. Johnson Day" msgstr "День Св. Иоанна" #: src/hd-data.c:888 #, fuzzy msgid "L. Rivera's Birthday" msgstr "День Ñ€Ð¾Ð¶Ð´ÐµÐ½Ð¸Ñ ÐºÐ¾Ñ€Ð¾Ð»Ñ" #: src/hd-data.c:889 #, fuzzy msgid "Madaraka Day" msgstr "Первое МаÑ" #: src/hd-data.c:890 #, fuzzy msgid "Mahatma Gandhi's Birthday" msgstr "День Ñ€Ð¾Ð¶Ð´ÐµÐ½Ð¸Ñ ÐºÐ¾Ñ€Ð¾Ð»Ñ" #: src/hd-data.c:891 #, fuzzy msgid "Malvinas Day" msgstr "Первое МаÑ" #: src/hd-data.c:892 #, fuzzy msgid "Manila Day" msgstr "Первое МаÑ" #: src/hd-data.c:893 #, fuzzy msgid "Maputo City Day" msgstr "Первое МаÑ" #: src/hd-data.c:894 msgid "Marien Ngouabi Day" msgstr "" #: src/hd-data.c:895 #, fuzzy msgid "Maryland Day" msgstr "Первое МаÑ" #: src/hd-data.c:896 msgid "Melbourne Cup Day" msgstr "" #: src/hd-data.c:897 #, fuzzy msgid "Merchant Day" msgstr "День Ð¾Ð±ÑŠÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ Ð“ÐµÑ€Ð¼Ð°Ð½Ð¸Ð¸" #: src/hd-data.c:898 #, fuzzy msgid "St John's/Midsummers Eve" msgstr "Канун летнего ÑолнцеÑтоÑниÑ" #: src/hd-data.c:899 #, fuzzy msgid "Missionary Day" msgstr "Первое МаÑ" #: src/hd-data.c:900 msgid "Mi-Carême Day" msgstr "" #: src/hd-data.c:901 #, fuzzy msgid "Morazan Day" msgstr "Первое МаÑ" #: src/hd-data.c:902 #, fuzzy msgid "Mosheshoe's Day" msgstr "День матерей" #: src/hd-data.c:903 msgid "Motherhood and Beauty Day" msgstr "" #: src/hd-data.c:904 #, fuzzy msgid "Naming Day" msgstr "День флага" #: src/hd-data.c:905 #, fuzzy msgid "National Bun Day" msgstr "Ðациональный праздник" #: src/hd-data.c:906 #, fuzzy msgid "National Heroes Day" msgstr "Ðациональный праздник" #: src/hd-data.c:907 #, fuzzy msgid "National Redemption Day" msgstr "Ðациональный праздник" #: src/hd-data.c:908 msgid "National Resistance Day" msgstr "" #: src/hd-data.c:909 #, fuzzy msgid "National Revival Day" msgstr "Ðациональный праздник" #: src/hd-data.c:910 #, fuzzy msgid "National Unity Day" msgstr "День Ð¾Ð±ÑŠÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ Ð“ÐµÑ€Ð¼Ð°Ð½Ð¸Ð¸" #: src/hd-data.c:911 #, fuzzy msgid "Ndadaye Day" msgstr "День молитвы" #: src/hd-data.c:912 #, fuzzy msgid "Neutrality Day" msgstr "День Ð¾Ð±ÑŠÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ Ð“ÐµÑ€Ð¼Ð°Ð½Ð¸Ð¸" #: src/hd-data.c:913 #, fuzzy msgid "Nevada Day" msgstr "День ÐобелÑ" #: src/hd-data.c:914 msgid "New Regime Anniversary" msgstr "" #: src/hd-data.c:915 #, fuzzy msgid "Nobel Day" msgstr "День ÐобелÑ" #: src/hd-data.c:916 #, fuzzy msgid "Noi Day" msgstr "День ÐобелÑ" #: src/hd-data.c:917 msgid "OAU Day" msgstr "" #: src/hd-data.c:918 #, fuzzy msgid "October Holiday" msgstr "Ðациональный праздник" #: src/hd-data.c:919 msgid "Oil Industry Day" msgstr "" #: src/hd-data.c:920 msgid "Our Lady of Altagracia Day" msgstr "" #: src/hd-data.c:921 msgid "Our Lady of Camarin Day" msgstr "" #: src/hd-data.c:922 msgid "Our Lady of Las Mercedes Day" msgstr "" #: src/hd-data.c:923 msgid "Our Lady of Los Angeles Day" msgstr "" #: src/hd-data.c:924 msgid "Our Lady of Seven Sorrows" msgstr "" #: src/hd-data.c:925 msgid "Our Lady of Victories Day" msgstr "" #: src/hd-data.c:926 #, fuzzy msgid "Panama City Day" msgstr "День Ð¾Ð±ÑŠÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ Ð“ÐµÑ€Ð¼Ð°Ð½Ð¸Ð¸" #: src/hd-data.c:927 #, fuzzy msgid "Panamerica Day" msgstr "День молитвы" #: src/hd-data.c:928 msgid "Paris Peace Agreement Day" msgstr "" #: src/hd-data.c:929 #, fuzzy msgid "Patriot's Day" msgstr "День Св. Патрика" #: src/hd-data.c:930 msgid "People's Uprising Day" msgstr "" #: src/hd-data.c:931 msgid "People Power Day" msgstr "" #: src/hd-data.c:932 msgid "Philippine-American Friendship" msgstr "" #: src/hd-data.c:933 #, fuzzy msgid "Pichincha Day" msgstr "День Виктории" #: src/hd-data.c:934 #, fuzzy msgid "Picnic Day" msgstr "День ПринцеÑÑÑ‹" #: src/hd-data.c:935 #, fuzzy msgid "Pioneer Day" msgstr "День молитвы" #: src/hd-data.c:936 #, fuzzy msgid "Poya Day" msgstr "День молитвы" #: src/hd-data.c:937 msgid "Prince Kalanianaole Day" msgstr "" #: src/hd-data.c:938 #, fuzzy msgid "Prince of Wales' Birthday" msgstr "День Ñ€Ð¾Ð¶Ð´ÐµÐ½Ð¸Ñ ÐŸÑ€Ð¸Ð½Ñ†ÐµÑÑÑ‹ Короны" #: src/hd-data.c:939 #, fuzzy msgid "Proclamation Day" msgstr "День коронации" #: src/hd-data.c:940 msgid "Qaid-i-Azam's Birthday" msgstr "" #: src/hd-data.c:941 msgid "Ratu Sukuma Day" msgstr "" #: src/hd-data.c:942 #, fuzzy msgid "Recreation Day" msgstr "День Реформации" #: src/hd-data.c:943 #, fuzzy msgid "Referendum Day" msgstr "День Реформации" #: src/hd-data.c:944 #, fuzzy msgid "Regatta Day" msgstr "День Реформации" #: src/hd-data.c:945 msgid "Regency Exchange" msgstr "" #: src/hd-data.c:946 #, fuzzy msgid "Restoration Day" msgstr "День Реформации" #: src/hd-data.c:947 #, fuzzy msgid "Return Day" msgstr "День ветеранов" #: src/hd-data.c:948 #, fuzzy msgid "Reunification Day" msgstr "День Реформации" #: src/hd-data.c:949 #, fuzzy msgid "Rizal Day" msgstr "Первое МаÑ" #: src/hd-data.c:950 #, fuzzy msgid "Rwagasore Day" msgstr "День труда" #: src/hd-data.c:951 #, fuzzy msgid "Saba Day" msgstr "День труда" #: src/hd-data.c:952 #, fuzzy msgid "San Jacinto Day" msgstr "День Св. Иоанна КреÑтителÑ" #: src/hd-data.c:953 #, fuzzy msgid "San José Day" msgstr "День Св. Иоанна" #: src/hd-data.c:954 msgid "SAR Establishment Day" msgstr "" #: src/hd-data.c:955 #, fuzzy msgid "School Holiday" msgstr "Ðациональный праздник" #: src/hd-data.c:956 msgid "Sechseläuten" msgstr "" #: src/hd-data.c:957 #, fuzzy msgid "Separation Day" msgstr "День оÑвобождениÑ" #: src/hd-data.c:958 msgid "Seretse Khama Day" msgstr "" #: src/hd-data.c:959 #, fuzzy msgid "Settlers Day" msgstr "День ветеранов" #: src/hd-data.c:960 #, fuzzy msgid "Seward's Day" msgstr "День Св. Эдварда" #: src/hd-data.c:961 #, fuzzy msgid "Shaheed Day" msgstr "День отцов" #: src/hd-data.c:962 msgid "Sheep Festival" msgstr "" #: src/hd-data.c:963 #, fuzzy msgid "Sheikh Zayed's Ascension Day" msgstr "ВознеÑение Богородицы" #: src/hd-data.c:964 msgid "Simon Bolivar's Day" msgstr "" #: src/hd-data.c:965 #, fuzzy msgid "Sinai-Liberation Day" msgstr "День оÑвобождениÑ" #: src/hd-data.c:966 #, fuzzy msgid "Slave-Liberation Day" msgstr "День оÑвобождениÑ" #: src/hd-data.c:967 msgid "Sniff the Breeze Day" msgstr "" #: src/hd-data.c:968 msgid "Solidarity Day" msgstr "" #: src/hd-data.c:969 #, fuzzy msgid "Somers Day" msgstr "День матерей" #: src/hd-data.c:970 #, fuzzy msgid "Statia-American Day" msgstr "День Св. Патрика" #: src/hd-data.c:971 #, fuzzy msgid "Student's Day" msgstr "День Президента" #: src/hd-data.c:972 #, fuzzy msgid "St Agata Day" msgstr "День Св. Патрика" #: src/hd-data.c:973 #, fuzzy msgid "St Canute's Day" msgstr "День Св. Валентина" #: src/hd-data.c:974 #, fuzzy msgid "St Cedilia's Day" msgstr "День Св. Лючии" #: src/hd-data.c:975 #, fuzzy msgid "St Charles' Day" msgstr "День Св. ДжеймÑа" #: src/hd-data.c:976 #, fuzzy msgid "St Demetrius' Day" msgstr "День Св. ДжеймÑа" #: src/hd-data.c:977 #, fuzzy msgid "St Dévote Day" msgstr "День Св. ИоÑифа" #: src/hd-data.c:978 #, fuzzy msgid "St Eliah's Day" msgstr "День Св. Лючии" #: src/hd-data.c:979 #, fuzzy msgid "St Jean Baptiste Day" msgstr "День Св. Иоанна КреÑтителÑ" #: src/hd-data.c:980 #, fuzzy msgid "St Lucia's Day" msgstr "День Св. Лючии" #: src/hd-data.c:981 #, fuzzy msgid "St Marguerite's Day" msgstr "День Св. ГеоргиÑ" #: src/hd-data.c:982 #, fuzzy msgid "St Maroon's Day" msgstr "День Св. Иоанна" #: src/hd-data.c:983 #, fuzzy msgid "St Michael's Day" msgstr "День Св. ÐиколаÑ" #: src/hd-data.c:984 #, fuzzy msgid "St Olav's Day" msgstr "День Св. Давида" #: src/hd-data.c:985 #, fuzzy msgid "St Olav's Eve" msgstr "Канун Ð´Ð½Ñ Ð¡Ð². Иоанна" #: src/hd-data.c:986 msgid "St Paul's Shipswreck" msgstr "" #: src/hd-data.c:987 msgid "St Rose of Lima" msgstr "" #: src/hd-data.c:988 #, fuzzy msgid "St Ursula's Day" msgstr "День Св. Лючии" #: src/hd-data.c:989 #, fuzzy msgid "St Vincent de Paul's Day" msgstr "День Св. Валентина" #: src/hd-data.c:990 #, fuzzy msgid "Suez Victory Day" msgstr "День Победы" #: src/hd-data.c:991 msgid "Sultan Qaboos' Birthday" msgstr "" #: src/hd-data.c:992 msgid "Svetitskhovloba" msgstr "" #: src/hd-data.c:993 #, fuzzy msgid "Sweden Day" msgstr "День Президента" #: src/hd-data.c:994 #, fuzzy msgid "S. Doe's Birthday" msgstr "День Ñ€Ð¾Ð¶Ð´ÐµÐ½Ð¸Ñ ÐºÐ¾Ñ€Ð¾Ð»ÐµÐ²Ñ‹" #: src/hd-data.c:995 msgid "Tennant-Creek Show Day" msgstr "" #: src/hd-data.c:996 #, fuzzy msgid "Territory Day" msgstr "День Победы" #: src/hd-data.c:997 #, fuzzy msgid "The Crown Princesse's Birthday" msgstr "День Ñ€Ð¾Ð¶Ð´ÐµÐ½Ð¸Ñ ÐŸÑ€Ð¸Ð½Ñ†ÐµÑÑÑ‹ Короны" #: src/hd-data.c:998 #, fuzzy msgid "The Crown Princesse's Name-Day" msgstr "Именины ПринцеÑÑÑ‹ Короны" #: src/hd-data.c:999 #, fuzzy msgid "The Crown Prince's Birthday" msgstr "День Ñ€Ð¾Ð¶Ð´ÐµÐ½Ð¸Ñ ÐŸÑ€Ð¸Ð½Ñ†ÐµÑÑÑ‹ Короны" #: src/hd-data.c:1000 #, fuzzy msgid "The King's Name-Day" msgstr "Именины КоролÑ" #: src/hd-data.c:1001 #, fuzzy msgid "The Queen's Name-Day" msgstr "Именины Королевы" #: src/hd-data.c:1002 msgid "Topou I Day" msgstr "" #: src/hd-data.c:1003 #, fuzzy msgid "Town Meeting Day" msgstr "День коронации" #: src/hd-data.c:1004 #, fuzzy msgid "Traditional Day" msgstr "День коронации" #: src/hd-data.c:1005 #, fuzzy msgid "Transfer Day" msgstr "День молитвы" #: src/hd-data.c:1006 #, fuzzy msgid "Truman Day" msgstr "День Реформации" #: src/hd-data.c:1007 #, fuzzy msgid "Union Day" msgstr "День коронации" #: src/hd-data.c:1008 msgid "Union with Sweden dissolved" msgstr "" #: src/hd-data.c:1009 msgid "United Nations Day" msgstr "День Объединенных Ðаций" #: src/hd-data.c:1010 #, fuzzy msgid "Unity Factory Day" msgstr "День Победы" #: src/hd-data.c:1011 #, fuzzy msgid "Victor-Schoelcher Day" msgstr "День Победы" #: src/hd-data.c:1012 msgid "Vidovdan" msgstr "" #: src/hd-data.c:1013 #, fuzzy msgid "West Virginia Day" msgstr "День Виктории" #: src/hd-data.c:1014 msgid "Whitsun Eve" msgstr "Канун троицына днÑ" #: src/hd-data.c:1015 #, fuzzy msgid "W. Tubman's Birthday" msgstr "День Ñ€Ð¾Ð¶Ð´ÐµÐ½Ð¸Ñ ÐºÐ¾Ñ€Ð¾Ð»ÐµÐ²Ñ‹" #: src/hd-data.c:1016 #, fuzzy msgid "Yap Day" msgstr "Первое МаÑ" #: src/hd-data.c:1017 msgid "Day of Czech Statehood" msgstr "" #: src/hd-data.c:1082 msgid "Zi/Rat" msgstr "" #: src/hd-data.c:1082 msgid "Chou/Ox" msgstr "" #: src/hd-data.c:1083 msgid "Yin/Tiger" msgstr "" #: src/hd-data.c:1083 msgid "Mao/Rabbit" msgstr "" #: src/hd-data.c:1084 msgid "Chen/Dragon" msgstr "" #: src/hd-data.c:1084 msgid "Si/Snake" msgstr "" #: src/hd-data.c:1085 msgid "Wu/Horse" msgstr "" #: src/hd-data.c:1085 msgid "Wei/Sheep" msgstr "" #: src/hd-data.c:1086 msgid "Shen/Monkey" msgstr "" #: src/hd-data.c:1086 msgid "You/Rooster" msgstr "" #: src/hd-data.c:1087 msgid "Xu/Dog" msgstr "" #: src/hd-data.c:1087 msgid "Hai/Pig" msgstr "" #: src/hd-data.c:1284 #, fuzzy msgid "Ast" msgstr "ÐвгуÑÑ‚" #: src/hd-data.c:1397 src/hd-data.c:1480 msgid "Bah" msgstr "" #: src/hd-data.c:1547 msgid "Cel" msgstr "" #: src/hd-data.c:1689 src/hd-data.c:2222 #, fuzzy msgid "Chi" msgstr "ХриÑтианÑкий" #: src/hd-data.c:1803 src/hd-data.c:2322 src/hd-data.c:3839 #, c-format msgid "Cannot calculate lunisolar calendar for %d correctly" msgstr "" #: src/hd-data.c:2224 src/hd-data.c:3727 #, fuzzy msgid "Jap" msgstr "Янв" #: src/hd-data.c:2420 msgid "Chr" msgstr "ХриÑтианÑкий" #: src/hd-data.c:2654 src/hd-data.c:4171 msgid "FRR" msgstr "" #: src/hd-data.c:2775 src/hd-data.c:2957 #, fuzzy msgid "Heb" msgstr "Фев" #: src/hd-data.c:3187 src/hd-data.c:3616 msgid "Isl" msgstr "" #: src/hd-data.c:4241 src/hd-data.c:4336 msgid "AMO" msgstr "" #: src/hd-data.c:4262 src/hd-data.c:4334 msgid "EGO" msgstr "" #: src/hd-data.c:4444 msgid "OxN" msgstr "" #: src/hd-data.c:4446 msgid "OxO" msgstr "" #: src/hd-data.c:4647 src/hd-data.c:4776 msgid "Per" msgstr "" #: src/hd-data.c:4844 msgid "Zod" msgstr "" #: src/hd-use.c:928 msgid " day" msgstr " день" #: src/hd-use.c:1973 src/hd-use.c:1978 src/hd-use.c:1982 src/hd-use.c:1989 #: src/hd-use.c:1993 src/hd-use.c:2089 src/hd-use.c:2273 msgid "Eternal holiday list" msgstr "Вечный ÑпиÑок праздников" #: src/hd-use.c:1977 #, c-format msgid "%s:%*sThe year %0*d is A leap year" msgstr "%s:%*sГод %0*d -- виÑокоÑный" #: src/hd-use.c:1981 #, c-format msgid "%s:%*sThe year %0*d is NO leap year" msgstr "%s:%*sГод %0*d -- ÐЕ виÑокоÑный" #: src/hd-use.c:1988 #, c-format msgid "%s:%*sThe year %d is A leap year" msgstr "%s:%*sГод %d -- виÑокоÑный" #: src/hd-use.c:1992 #, c-format msgid "%s:%*sThe year %d is NO leap year" msgstr "%s:%*sГод %d -- ÐЕ виÑокоÑный" #: src/hd-use.c:2242 #, c-format msgid " = %+4d day" msgstr " = %+4d день" #: src/hd-use.c:2244 #, c-format msgid " = %+4d days" msgstr " = %+4d дней" #: src/hd-use.c:2271 #, c-format msgid "%s%s contains %d maximum entries now!%s" msgstr "%s%s Ñодержит макÑимальное чиÑло (%d) вхождений!%s" #: src/help.c:64 #, c-format msgid "Compiled with %s%s for %s%s%s%s" msgstr "Скомпилирована %s%s Ð´Ð»Ñ %s%s%s%s" #: src/help.c:74 #, fuzzy msgid "# Day number (must be defined)" msgstr "Группа дней (должен быть определен только один член):" #: src/help.c:75 #, fuzzy msgid "# Year number (must be defined)" msgstr "Группа лет (должен быть определен только один член):" #: src/help.c:76 #, fuzzy msgid "# Weekday name (may be defined)" msgstr "Группа названий дней недели (может быть определен один член):" #: src/help.c:77 msgid "Month group (exactly one member must be defined):" msgstr "Группа меÑÑцев (должен быть определен только один член):" #: src/help.c:78 msgid "# Month number" msgstr "" #: src/help.c:79 #, fuzzy msgid "# Month name" msgstr "Полное название меÑÑца" #: src/help.c:80 msgid "Highlighting group (all members must be defined):" msgstr "Группа Ð²Ñ‹Ð´ÐµÐ»ÐµÐ½Ð¸Ñ (должны быть определены вÑе члены):" #: src/help.c:81 msgid "Start of highlighting sequence/marking character" msgstr "Символ начала выделÑющей поÑледовательноÑти" #: src/help.c:83 msgid "End of highlighting sequence/marking character" msgstr "Символ конца выделÑющей поÑледовательноÑти" #: src/help.c:85 msgid "Character replacement:" msgstr "Замещение Ñимвола:" #: src/help.c:86 #, fuzzy, c-format msgid "Space/blank ('%c') character" msgstr "Символ пробела (' ')" #: src/help.c:87 #, fuzzy, c-format msgid "Underscore ('%c') character" msgstr "Символ Ð¿Ð¾Ð´Ñ‡ÐµÑ€ÐºÐ¸Ð²Ð°Ð½Ð¸Ñ ('_')" #: src/help.c:88 #, fuzzy, c-format msgid "Percent ('%c') character" msgstr "Символ процента ('%')" #: src/help.c:89 #, fuzzy, c-format msgid "Backslash ('%c') character" msgstr "Символ пробела (' ')" #: src/help.c:90 msgid "All format elements marked by # may optionally" msgstr "" #: src/help.c:91 msgid "contain a format instruction, which template is like:" msgstr "" #: src/help.c:92 msgid "[ALIGNMENT [SIGN] [ZERO] WIDTH [STYLE] [SUFFIX] FORMAT]" msgstr "" #: src/help.c:93 #, fuzzy msgid "ALIGNMENT group (exactly one member must be defined):" msgstr "Группа меÑÑцев (должен быть определен только один член):" #: src/help.c:94 msgid "Field contents placed at the left margin using width WIDTH" msgstr "" #: src/help.c:96 msgid "Field contents placed in centered manner using width WIDTH" msgstr "" #: src/help.c:98 msgid "Field contents placed at the right margin using width WIDTH" msgstr "" #: src/help.c:100 msgid "SIGN (may be defined):" msgstr "" #: src/help.c:101 msgid "Numerical value is provided with leading sign" msgstr "" #: src/help.c:102 msgid "ZERO (may be defined):" msgstr "" #: src/help.c:103 #, fuzzy msgid "Numerical value is filled with leading zero(es)" msgstr "Ðомер Ð´Ð½Ñ Ñ Ð½ÑƒÐ»Ñми в начале" #: src/help.c:104 msgid "WIDTH (must be defined):" msgstr "" #: src/help.c:105 #, c-format msgid "Field has the width N (%d...%d)" msgstr "" #: src/help.c:106 #, fuzzy msgid "STYLE group (exactly one member may be defined):" msgstr "Группа лет (должен быть определен только один член):" #: src/help.c:107 msgid "Field contents is converted to upper-case letters" msgstr "" #: src/help.c:108 msgid "Field contents is converted to lower-case letters" msgstr "" #: src/help.c:109 msgid "Field contents is converted to capitalized words" msgstr "" #: src/help.c:110 msgid "SUFFIX (may be defined):" msgstr "" #: src/help.c:111 msgid "Numerical value is provided with an ordinal number suffix" msgstr "" #: src/help.c:113 #, fuzzy msgid "FORMAT group (exactly one member must be defined):" msgstr "Группа меÑÑцев (должен быть определен только один член):" #: src/help.c:114 msgid "Field contents is not cut after position WIDTH" msgstr "" #: src/help.c:115 msgid "Field contents is cut after position WIDTH" msgstr "" #: src/help.c:129 msgid "legal holidays" msgstr "официальные праздники" #: src/help.c:130 msgid "holidays" msgstr "праздники" #: src/help.c:131 msgid "Mondays" msgstr "понедельники" #: src/help.c:132 msgid "Tuesdays" msgstr "вторники" #: src/help.c:133 msgid "Wednesdays" msgstr "Ñреды" #: src/help.c:134 msgid "Thursdays" msgstr "четверги" #: src/help.c:135 msgid "Fridays" msgstr "пÑтницы" #: src/help.c:136 msgid "Saturdays" msgstr "Ñубботы" #: src/help.c:137 msgid "Sundays" msgstr "воÑкреÑеньÑ" #: src/help.c:138 msgid "Mondays...Thursdays" msgstr "понедельники...четверги" #: src/help.c:139 msgid "Mondays...Fridays" msgstr "понедельники...пÑтницы" #: src/help.c:169 #, c-format msgid "%s: Use `%s %s' with one of these arguments" msgstr "%s: ИÑпользуйте `%s %s' Ñ Ð¾Ð´Ð½Ð¸Ð¼ из Ñтих аргументов" #: src/help.c:242 msgid "OPTION" msgstr "КЛЮЧ" #: src/help.c:255 msgid " Display help text and quit program" msgstr " Показать Ñправку и выйти" #: src/help.c:272 msgid " Display extended help text and quit program" msgstr " Показать подробную Ñправку и выйти" #: src/help.c:290 msgid " Display software license and quit program" msgstr " Показать лицензию и выйти" #: src/help.c:301 #, fuzzy msgid " Display version information and quit program" msgstr " Показать информацию о верÑии и выйти" #: src/help.c:312 #, fuzzy, c-format msgid " Set EXIT status of program to %d on `%s' etc." msgstr "" " УÑтановить выходное значение программы равным 127 при\n" " заданных ключах --help, --version и подобных." #: src/help.c:325 #, c-format msgid " Create response file for the `%cFILE' option" msgstr " Создать файл отклика Ð´Ð»Ñ ÐºÐ»ÑŽÑ‡Ð° `%cФÐЙЛ'" #: src/help.c:329 #, c-format msgid " %-3s = Store arguments of command line in file %s" msgstr " %-3s = Сохранить аргументы командной Ñтроки в файле %s" #: src/help.c:343 #, c-format msgid "" " Create shell script which contains the arguments of command line" msgstr "" " Создать Ñценарий оболочки, Ñодержащий аргументы командной Ñтроки" #: src/help.c:345 #, c-format msgid " %-3s = File name of the shell script" msgstr " %-3s = Ð˜Ð¼Ñ Ñ„Ð°Ð¹Ð»Ð° ÑÑ†ÐµÐ½Ð°Ñ€Ð¸Ñ Ð¾Ð±Ð¾Ð»Ð¾Ñ‡ÐºÐ¸" #: src/help.c:359 #, 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:363 #, fuzzy, c-format msgid " %-3s = \"DVAR%s%s%s\" definitions separated by `%s' characters" msgstr "" " %-3s = ÐžÐ¿Ñ€ÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ñ Ð¿ÐµÑ€ÐµÐ¼ÐµÐ½Ð½Ñ‹Ñ… \"dvar%s`%s%s'\", разделенные Ñимволами `" "%s'" #: src/help.c:368 #, 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:380 msgid " Export local date variables from file to file" msgstr " ЭкÑпортировать локальные переменные даты из файла в файл" #: src/help.c:392 #, fuzzy, c-format msgid " Define global text variable(s) \"TVAR->%ca...%cz\"" msgstr "" " Определить глобальные текÑтовые переменные \"tvar->%ca...%cz\"" #: src/help.c:397 #, fuzzy, c-format msgid " %-3s = \"TVAR%sTEXT\" definitions separated by `%s' characters" msgstr "" " %-3s = ÐžÐ¿Ñ€ÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ñ Ð¿ÐµÑ€ÐµÐ¼ÐµÐ½Ð½Ñ‹Ñ… \"dvar%s`%s%s'\", разделенные Ñимволами `" "%s'" #: src/help.c:402 #, 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:408 #, fuzzy, c-format msgid "" " = \"TVAR[%s|%c%s]COMMAND\" definitions separated by `%s' characters" msgstr " Ð²Ñ‹Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ Ñ€Ð°Ð·Ð´ÐµÐ»ÑÑŽÑ‚ÑÑ Ñимволами `%s'" #: src/help.c:413 #, 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:425 msgid " Export local text variables from file to file" msgstr "" " ЭкÑпортировать локальные текÑтовые переменные из файла в файл" #: src/help.c:437 src/help.c:467 #, c-format msgid "" " Display only those fixed dates, whose date is not excluded by %s" msgstr "" " Показывать только те фикÑированные даты, которые не иÑключены %s" #: src/help.c:442 #, c-format msgid " %-3s = One or more of the following characters. If character" msgstr " %-3s = Один или более поÑледующих Ñимволов. ЕÑли Ñимвол" #: src/help.c:447 #, fuzzy msgid " is a LOWER-CASE-LETTER, it means a non-exclusion!" msgstr " СТРОЧÐÐЯ БУКВÐ, Ñто означает `не'-иÑключение!" #: src/help.c:451 #, c-format msgid " %c = Exclusion of all %s" msgstr " %c = ИÑÐºÐ»ÑŽÑ‡Ð°Ñ Ð²Ñе %s" #: src/help.c:472 #, 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:476 #, c-format msgid " expressions separated by `%s' characters" msgstr " Ð²Ñ‹Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ Ñ€Ð°Ð·Ð´ÐµÐ»ÑÑŽÑ‚ÑÑ Ñимволами `%s'" #: src/help.c:489 #, c-format msgid " Display only those fixed dates, whose text is matched by %s" msgstr "" " Показывать только те фикÑированные даты, чей текÑÑ‚ ÑоответÑтвует %s" #: src/help.c:494 #, c-format msgid " %-3s = Any text respectively \"regular expression\" you like" msgstr " %-3s = Любой текÑÑ‚ или \"регулÑрное выражение\"" #: src/help.c:507 #, c-format msgid " Ignore case distinctions if `%s' option is given" msgstr "" #: src/help.c:519 #, fuzzy, c-format msgid " Revert the sense of matching of the `%s' option" msgstr " Создать файл отклика Ð´Ð»Ñ ÐºÐ»ÑŽÑ‡Ð° `%cФÐЙЛ'" #: src/help.c:530 #, fuzzy msgid " Display some debug information" msgstr " Выводить некоторую отладлчную информацию" #: src/help.c:538 #, fuzzy, c-format msgid "" " [%-3s] = internal Information if program internal maximums are reached" msgstr "" " [%-3s] = internal ДоÑтигнуты внутренние макÑимальные пределы программы" #: src/help.c:547 msgid "" " = handled Like `internal' and file names which are handled" msgstr "" " = handled Как при `internal' и имена обрабатываемых файлов" #: src/help.c:555 msgid "" " = unhandled Like `internal' and file names which are unhandled" msgstr "" " = unhandled Как при `internal' и имена необрабатываемых файлов" #: src/help.c:563 msgid " = all Like `handled' and `unhandled' together" msgstr " = all Как `handled' и `unhandled' вмеÑте" #: src/help.c:571 msgid "" " = abort Like `all' and abort if file name can't be handled" msgstr "" " = abort Как `all' и оÑтановитьÑÑ, еÑли Ð¸Ð¼Ñ Ñ„Ð°Ð¹Ð»Ð° не\n" " может быть обработано" #: src/help.c:581 msgid " Use special format for calendar sheet" msgstr " ИÑпользовать Ñпециальный формат Ð´Ð»Ñ Ð²Ñ‹Ð²Ð¾Ð´Ð° календарÑ" #: src/help.c:584 msgid " [MOD] = - Use standard format for calendar sheet" msgstr " [МОД] = - ИÑпользовать Ñтандартный формат Ð´Ð»Ñ Ð²Ñ‹Ð²Ð¾Ð´Ð° календарÑ" #: src/help.c:595 #, fuzzy msgid " Use leap year rule of Eastern Orthodox churches" msgstr "" " ИÑпользовать правила правоÑлавной церкви Ð´Ð»Ñ Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ñ\n" " виÑокоÑного года" #: src/help.c:605 #, fuzzy msgid " Provide calendar sheet with week numbers" msgstr " ВывеÑти календарь Ñ Ð½Ð¾Ð¼ÐµÑ€Ð°Ð¼Ð¸ недель Ñтандарта ISO" #: src/help.c:616 #, c-format msgid " Determine type of week numbers (actual: %s)" msgstr "" #: src/help.c:617 msgid "Standard" msgstr "" #: src/help.c:623 #, c-format msgid " %-3s = yes ISO-8601:1988 week numbers" msgstr "" #: src/help.c:630 #, fuzzy msgid " = no Standard week numbers" msgstr " ВывеÑти календарь Ñ Ð½Ð¾Ð¼ÐµÑ€Ð°Ð¼Ð¸ недель Ñтандарта ISO" #: src/help.c:641 msgid " Suppress output of calendar sheet explicitly" msgstr " Явно подавить печать календарÑ" #: src/help.c:654 #, c-format msgid " Direct output through external `%s' pager" msgstr "" " Ðаправить вывод внешней программе поÑтраничного проÑмотра `%s'" #: src/help.c:660 src/help.c:662 msgid " Direct output through simple internal pager" msgstr "" " Ðаправить вывод проÑтой внутренней программе поÑтраничного " "проÑмотра" #: src/help.c:679 msgid " Disable highlighting of text, holiday resp., actual day" msgstr " Отменить Ð²Ñ‹Ð´ÐµÐ»ÐµÐ½Ð¸Ñ Ñ‚ÐµÐºÑта, праздников или текущего днÑ" #: src/help.c:694 msgid " Forces highlighting sequences if output is redirected/piped" msgstr "" " Печатать выделÑющие поÑледовательноÑти, даже еÑли вывод " "перенаправлен" #: src/help.c:706 msgid "" " Set highlighting sequence pairs 1 (=actual day) and 2 (=holiday)" msgstr "" " УÑтановить пары выделÑющих поÑледовательноÑтей\n" " 1 (=текущий день) и 2 (=праздник)" #: src/help.c:710 #, c-format msgid " %-3s = Highlighting sequence pairs separated by `%s' characters" msgstr "" " %-3s = Пары выделÑющих поÑледовательноÑтей, разделенные Ñимволами `%s'" #: src/help.c:715 #, 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:720 #, 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:731 msgid " Modify format of year calendar" msgstr " Изменить формат годового календарÑ" #: src/help.c:735 #, 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:747 msgid " Use consecutive day of year in calendar sheet" msgstr " Выводить в календаре номер Ð´Ð½Ñ Ð² году" #: src/help.c:751 msgid " [MOD] = b Use both date notations (day of month+year)" msgstr " [МОД] = b ИÑпользовать обе формы запиÑи Ð´Ð½Ñ (день меÑÑца+года)" #: src/help.c:763 msgid " Use consecutive day of year in eternal holiday list" msgstr " Выводить в вечном ÑпиÑке праздников номер Ð´Ð½Ñ Ð² году" #: src/help.c:767 src/help.c:783 msgid " [MOD] = b Use both date notations (day of month+year)" msgstr " [МОД] = b ИÑпользовать обе формы запиÑи даты (день меÑÑца+года)" #: src/help.c:779 msgid " Use consecutive day of year in fixed date list" msgstr "" " ИÑпользовать поÑледовательные дни года в ÑпиÑке фикÑированных дат" #: src/help.c:794 #, fuzzy, c-format msgid " Set starting day of week (actual: %s)" msgstr " Задает первый день недели" #: src/help.c:827 #, c-format msgid " Send output via `%s' program to user" msgstr " ПоÑлать пользователю вывод через программу `%s'" #: src/help.c:856 msgid "UNKNOWN" msgstr "" #: src/help.c:859 #, c-format msgid " [%-3s] = Email address, otherwise eMail is send to user `%s'" msgstr "" #: src/help.c:877 #, c-format msgid " Display eternal holiday list (Year in range: %d...%d)" msgstr " ВывеÑти вечный ÑпиÑок праздников (Ð’ промежутке лет: %d...%d)" #: src/help.c:880 msgid " n = Legal days and memorial days" msgstr " n = Официальные и паматные дни" #: src/help.c:882 msgid " N = Legal days only" msgstr " N = Только официальные дни" #: src/help.c:884 src/help.c:1630 #, c-format msgid " [MOD] = %s Descending sort order" msgstr " [МОД] = %s ÐиÑходÑщий порÑдок Ñортировки" #: src/help.c:896 #, fuzzy msgid " Suppress leading blank line of eternal holiday list" msgstr " ИÑключить заголовок вечного ÑпиÑка праздников" #: src/help.c:906 msgid " Exclude title of eternal holiday list" msgstr " ИÑключить заголовок вечного ÑпиÑка праздников" #: src/help.c:918 #, fuzzy msgid " Provide eternal holiday list with astronomical data" msgstr " ВывеÑти вечный ÑпиÑок праздников Ñ Ñ…Ñ€Ð¸ÑтианÑкими праздниками" #: src/help.c:930 #, fuzzy msgid " Provide eternal holiday list with Bahá'i calendar holidays" msgstr " ВывеÑти вечный ÑпиÑок праздников без Ñтандартных праздников" #: src/help.c:942 #, fuzzy msgid " Provide eternal holiday list with Bahá'i calendar months" msgstr " ВывеÑти вечный ÑпиÑок праздников без Ñтандартных праздников" #: src/help.c:954 #, fuzzy msgid " Provide eternal holiday list with Celtic calendar holidays" msgstr " ВывеÑти вечный ÑпиÑок праздников без Ñтандартных праздников" #: src/help.c:966 #, fuzzy msgid "" " Provide eternal holiday list with Chinese flexible calendar " "holidays" msgstr " ВывеÑти вечный ÑпиÑок праздников Ñ Ñ…Ñ€Ð¸ÑтианÑкими праздниками" #: src/help.c:978 #, fuzzy msgid "" " Provide eternal holiday list with Chinese flexible calendar months" msgstr " ВывеÑти вечный ÑпиÑок праздников Ñ Ñ…Ñ€Ð¸ÑтианÑкими праздниками" #: src/help.c:990 #, fuzzy msgid " Provide eternal holiday list with Chinese calendar holidays" msgstr " ВывеÑти вечный ÑпиÑок праздников Ñ Ñ…Ñ€Ð¸ÑтианÑкими праздниками" #: src/help.c:1002 #, fuzzy msgid " Provide eternal holiday list with Chinese calendar months" msgstr " ВывеÑти вечный ÑпиÑок праздников Ñ Ñ…Ñ€Ð¸ÑтианÑкими праздниками" #: src/help.c:1014 #, fuzzy msgid "" " Provide eternal holiday list with Christian Western calendar " "holidays" msgstr " ВывеÑти вечный ÑпиÑок праздников Ñ Ñ…Ñ€Ð¸ÑтианÑкими праздниками" #: src/help.c:1026 #, fuzzy msgid " Provide eternal holiday list with Coptic calendar months" msgstr " ВывеÑти вечный ÑпиÑок праздников без Ñтандартных праздников" #: src/help.c:1038 #, fuzzy msgid " Provide eternal holiday list with Ethiopic calendar months" msgstr " ВывеÑти вечный ÑпиÑок праздников без Ñтандартных праздников" #: src/help.c:1050 #, fuzzy msgid "" " Provide eternal holiday list with French Revolutionary calendar " "months" msgstr " ВывеÑти вечный ÑпиÑок праздников без Ñтандартных праздников" #: src/help.c:1062 #, fuzzy msgid " Provide eternal holiday list with Hebrew calendar holidays" msgstr " ВывеÑти вечный ÑпиÑок праздников без Ñтандартных праздников" #: src/help.c:1074 #, fuzzy msgid " Provide eternal holiday list with Hebrew calendar months" msgstr " ВывеÑти вечный ÑпиÑок праздников без Ñтандартных праздников" #: src/help.c:1086 #, fuzzy msgid "" " Provide eternal holiday list with Indian civil-calendar months" msgstr " ВывеÑти вечный ÑпиÑок праздников Ñ Ñ…Ñ€Ð¸ÑтианÑкими праздниками" #: src/help.c:1098 #, fuzzy msgid "" " Provide eternal holiday list with Islamic civil-calendar holidays" msgstr " ВывеÑти вечный ÑпиÑок праздников без Ñтандартных праздников" #: src/help.c:1110 #, fuzzy msgid "" " Provide eternal holiday list with Islamic civil-calendar months" msgstr " ВывеÑти вечный ÑпиÑок праздников без Ñтандартных праздников" #: src/help.c:1122 #, fuzzy msgid "" " Provide eternal holiday list with Japanese flexible calendar " "holidays" msgstr " ВывеÑти вечный ÑпиÑок праздников без Ñтандартных праздников" #: src/help.c:1134 #, fuzzy msgid "" " Provide eternal holiday list with Japanese flexible calendar months" msgstr " ВывеÑти вечный ÑпиÑок праздников без Ñтандартных праздников" #: src/help.c:1146 #, fuzzy msgid " Provide eternal holiday list with Japanese calendar holidays" msgstr " ВывеÑти вечный ÑпиÑок праздников без Ñтандартных праздников" #: src/help.c:1158 #, fuzzy msgid " Provide eternal holiday list with Japanese calendar months" msgstr " ВывеÑти вечный ÑпиÑок праздников без Ñтандартных праздников" #: src/help.c:1171 #, fuzzy msgid "" " Provide eternal holiday list with multicultural New Year holidays" msgstr " ВывеÑти вечный ÑпиÑок праздников без Ñтандартных праздников" #: src/help.c:1183 #, fuzzy msgid " Provide eternal holiday list with Old-Armenic calendar months" msgstr " ВывеÑти вечный ÑпиÑок праздников без Ñтандартных праздников" #: src/help.c:1195 #, fuzzy msgid " Provide eternal holiday list with Old-Egyptic calendar months" msgstr " ВывеÑти вечный ÑпиÑок праздников без Ñтандартных праздников" #: src/help.c:1207 #, fuzzy msgid "" " Provide eternal holiday list with Orthodox new-calendar holidays" msgstr " ВывеÑти вечный ÑпиÑок праздников без Ñтандартных праздников" #: src/help.c:1219 #, fuzzy msgid "" " Provide eternal holiday list with Orthodox old-calendar holidays" msgstr " ВывеÑти вечный ÑпиÑок праздников без Ñтандартных праздников" #: src/help.c:1231 #, fuzzy msgid "" " Provide eternal holiday list with Persian Jalaali-calendar holidays" msgstr " ВывеÑти вечный ÑпиÑок праздников без Ñтандартных праздников" #: src/help.c:1243 #, fuzzy msgid "" " Provide eternal holiday list with Persian Jalaali-calendar months" msgstr " ВывеÑти вечный ÑпиÑок праздников Ñ Ñ…Ñ€Ð¸ÑтианÑкими праздниками" #: src/help.c:1255 #, fuzzy msgid " Provide eternal holiday list with zodiacal marker data" msgstr " ВывеÑти вечный ÑпиÑок праздников без Ñтандартных праздников" #: src/help.c:1267 msgid " Provide eternal holiday list with country specific holidays" msgstr " ВывеÑти вечный ÑпиÑок праздников Ñ Ð½Ð°Ñ†Ð¸Ð¾Ð½Ð°Ð»ÑŒÐ½Ñ‹Ð¼Ð¸ праздниками" #: src/help.c:1271 #, fuzzy, c-format msgid " %-3s = Single country resp., territory code or a list of these," msgstr " %-3s = Один код Ñтраны или их ÑпиÑок" #: src/help.c:1276 #, fuzzy, c-format msgid "" " which are connected by `%s' characters. Countries/territories," msgstr " разделенный Ñимволами `%s'" #: src/help.c:1281 msgid " marked by # have an incomplete recording of holidays" msgstr "" #: src/help.c:1285 #, fuzzy, c-format msgid " %-*s = Holidays in %s" msgstr " %s = %s праздник" #: src/help.c:1306 msgid "" " Set reference value for rise/set time respectively shadow length" msgstr "" #: src/help.c:1310 #, c-format msgid " %-3s = Angular value respectively factor in range: %+.1f...%+.1f" msgstr "" #: src/help.c:1321 #, fuzzy msgid " Set base data of Earth's atmosphere" msgstr " Задает первый день недели" #: src/help.c:1325 #, fuzzy, c-format msgid " %-3s = Air pressure and temperature separated by `%s' character" msgstr "" " %-3s = Пары выделÑющих поÑледовательноÑтей, разделенные Ñимволами `%s'" #: src/help.c:1328 #, c-format msgid " Air pressure in Millibar (actual: %.3f)" msgstr "" #: src/help.c:1333 #, c-format msgid " Air temperature in degrees Celsius (actual: %+.3f)" msgstr "" #: src/help.c:1343 #, fuzzy msgid " Limit rise/set times of Sun to the day" msgstr " 1. ПредÑтавление текÑта" #: src/help.c:1355 msgid " Represent astronomical times and data with utmost precision" msgstr "" #: src/help.c:1365 #, fuzzy, c-format msgid " Execute `%c%c[%s]' shell commands" msgstr " # B = Ðе иÑполнÑть команды оболочки `%c%c[%s]'" #: src/help.c:1368 #, c-format msgid " and \"TVAR[%s|%c%s]COMMAND\" assignments" msgstr "" #: src/help.c:1380 msgid " Change base time of astronomical functions" msgstr "" #: src/help.c:1383 msgid " respectively, change cycle-starting time" msgstr "" #: src/help.c:1393 #, 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:1401 #, 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:1417 msgid " Change cycle-ending time" msgstr "" #: src/help.c:1421 #, 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:1435 msgid " Change cycle-timestep" msgstr "" #: src/help.c:1439 #, c-format msgid " %-3s = MMMM|HH%s[MM] Timestep value (actual: %02d%s%02d)" msgstr "" #: src/help.c:1452 #, fuzzy msgid " Change base year of calendar" msgstr " Изменить формат годового календарÑ" #: src/help.c:1456 #, c-format msgid " %-3s = [%s|%s]YYYY Year offset value (actual: %d)" msgstr "" #: src/help.c:1468 msgid " Set period of Gregorian Reformation" msgstr " Задает период ГригорианÑкой реформации" #: src/help.c:1470 #, c-format msgid " Actual respected period: %02d-%02d %s %0*d" msgstr " ДейÑтвительный раÑÑматриваемый период: %02d-%02d %s %0*d" #: src/help.c:1476 #, c-format msgid " %-*d%*s = Set period to: %02d-%02d %s %0*d" msgstr " %-*d%*s = УÑтановить период в значение: %02d-%02d %s %0*d" #: src/help.c:1484 #, 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:1498 #, c-format msgid " Set order of date elements using the %s format text" msgstr "" " УÑтановить порÑдок Ñлементов даты, иÑÐ¿Ð¾Ð»ÑŒÐ·ÑƒÑ Ñтроку формата %s" #: src/help.c:1501 #, fuzzy, c-format msgid " Actual: (%s) `%s' (%s)" msgstr " ДейÑтвительный формат: (%s) `%s' (%s)" #: src/help.c:1503 msgid "self-defined" msgstr "ÑамоопределÑемый" #: src/help.c:1508 #, fuzzy, c-format msgid " %-6s = Format is: `%s' (%s)" msgstr " %-6s = УÑтановить формат в значение: `%s' (%s)" #: src/help.c:1516 #, fuzzy, c-format msgid " %-3s = Define individual format. Respected format elements are:" msgstr "" " %-3s = Определить формат пользователÑ. ВоÑпринимаютÑÑ Ñледующие " "Ñлементы:" #: src/help.c:1559 msgid " Define translatable country specific special character pairs" msgstr "" #: src/help.c:1563 #, c-format msgid " %-3s = UPPER-CASE-LETTER\"\"LOWER-CASE-LETTER... definitions" msgstr "" #: src/help.c:1568 #, c-format msgid "" " E.g. a `%s%s%s%s%s%s%s%s' %-3s causes the correct conversion of" msgstr "" #: src/help.c:1573 msgid "" " the preceding special characters in an individual date format," msgstr "" #: src/help.c:1577 msgid "" " which has a STYLE format instruction component, and that, how" msgstr "" #: src/help.c:1581 #, fuzzy msgid " they are used by the character set used in Germany" msgstr " разделенный Ñимволами `%s'" #: src/help.c:1590 #, c-format msgid "+++ FIXED DATES +++" msgstr "+++ ФИКСИРОВÐÐÐЫЕ ДÐТЫ +++" #: src/help.c:1611 #, c-format msgid " Use standard resource file `.%s%s' for fixed date list" msgstr "" " ИÑпользовать Ñтандартный файл реÑурÑов `.%s%s' Ð´Ð»Ñ ÑпиÑка \n" " фикÑированных дат" #: src/help.c:1616 #, c-format msgid " Use standard resource file `%s%s' for fixed date list" msgstr "" " ИÑпользовать Ñтандартный файл реÑурÑов `%s%s' Ð´Ð»Ñ ÑпиÑка \n" " фикÑированных дат" #: src/help.c:1620 src/help.c:2160 msgid " Implies period: Today" msgstr " ПодразумеваетÑÑ Ð¿ÐµÑ€Ð¸Ð¾Ð´: СегоднÑ" #: src/help.c:1624 msgid " c = Display only those dates, for which fixed dates exists" msgstr "" " c = Показать только те даты, Ð´Ð»Ñ ÐºÐ¾Ñ‚Ð¾Ñ€Ñ‹Ñ… еÑть фикÑированные даты" #: src/help.c:1628 msgid "" " C = Display those dates, for which fixed dates doesn't exist, too" msgstr " C = Показать и те даты, Ð´Ð»Ñ ÐºÐ¾Ñ‚Ð¾Ñ€Ñ‹Ñ… нет фикÑированных дат" #: src/help.c:1640 msgid "" " [MOD] = One or more of the following modifiers which are marked by #" msgstr "" " [МОД] = Один или неÑколько Ñледующих модификаторов, помеченых Ñимволом #" #: src/help.c:1653 #, fuzzy, c-format msgid " %-3s = Heading/Title text used for fixed date list" msgstr "" " # x = ИÑключить заголовок из ÑпиÑка фикÑированных дат" #: src/help.c:1656 #, fuzzy, c-format msgid " Actual: `%s'" msgstr " = %s Ðазад" #: src/help.c:1669 msgid " # g[MOD] = Group fixed dates by day using text MOD" msgstr "" " # g[МОД] = Группировать фикÑированные даты по днÑм, " "иÑÐ¿Ð¾Ð»ÑŒÐ·ÑƒÑ \n" " текÑÑ‚ МОД" #: src/help.c:1681 msgid " 1. Representation of text" msgstr " 1. ПредÑтавление текÑта" #: src/help.c:1693 msgid " = Set width of the biorhythm text graphics" msgstr " = УÑтановить ширину графика биоритмов" #: src/help.c:1697 #, c-format msgid " %-3s = %d...%d Length of a single axis" msgstr " %-3s = %d...%d Длина оÑи" #: src/help.c:1710 #, fuzzy msgid " = Set height of the Moon phase text graphics" msgstr " = УÑтановить выÑоту графика фаз луны" #: src/help.c:1714 #, c-format msgid " %-3s = %d...%d Total number of lines" msgstr " %-3s = %d...%d Общее чиÑло Ñтрок" #: src/help.c:1726 msgid " # a = Display origin of fixed date" msgstr " # a = Показать начало фикÑированной даты" #: src/help.c:1738 msgid " # A = Display using alternative list format" msgstr "" " # A = Выводить иÑÐ¿Ð¾Ð»ÑŒÐ·ÑƒÑ Ð°Ð»ÑŒÑ‚ÐµÑ€Ð½Ð°Ñ‚Ð¸Ð²Ð½Ñ‹Ð¹ формат ÑпиÑка" #: src/help.c:1750 msgid " # e = Include legal days and memorial days" msgstr " # e = Включить официальные и паматные дни" #: src/help.c:1752 msgid " # E = Include legal days only" msgstr " # E = Включить только официальные праздники" #: src/help.c:1762 #, fuzzy msgid " # k = Display week number" msgstr " # k = Выводить номер недели по Ñтандарту ISO" #: src/help.c:1774 msgid " # o = Omit repeating date part of fixed dates" msgstr "" " # o = ОпуÑкать повторÑющуюÑÑ Ñ‡Ð°Ñть в фикÑированных датах" #: src/help.c:1786 #, fuzzy msgid "" " # Q = Suppress leading blank line of fixed dates list" msgstr " # U = ПропуÑкать дату в фикÑированных датах" #: src/help.c:1798 msgid " # U = Suppress date part of fixed dates" msgstr " # U = ПропуÑкать дату в фикÑированных датах" #: src/help.c:1810 #, fuzzy msgid " # J = Suppress text part of fixed dates" msgstr " # U = ПропуÑкать дату в фикÑированных датах" #: src/help.c:1822 msgid " # x = Exclude title of fixed date list" msgstr "" " # x = ИÑключить заголовок из ÑпиÑка фикÑированных дат" #: src/help.c:1834 msgid " # z = Display consecutive number of fixed date" msgstr "" " # z = Показать поÑледовательное чиÑло фикÑированных дат" #: src/help.c:1846 msgid "" " # Z = Display dates, for which fixed dates doesn't exist" msgstr "" " # Z = Показать даты, Ð´Ð»Ñ ÐºÐ¾Ñ‚Ð¾Ñ€Ñ‹Ñ… нет фикÑированных дат" #: src/help.c:1854 msgid " 2. Respected period" msgstr " 2. ВоÑпринимаемые периоды" #: src/help.c:1866 msgid " = Manage `29-FEBRUARY' in non-leap years" msgstr " = Обработка `29 февралÑ' в невиÑокоÑных годах" #: src/help.c:1874 #, c-format msgid " %-3s = february Respect at `28-FEBRUARY'" msgstr " %-3s = february Считать `28 февралÑ'" #: src/help.c:1883 #, c-format msgid " %-3s = march Respect at `01-MARCH'" msgstr " %-3s = march Считать `01 марта'" #: src/help.c:1896 msgid "" " # d = Include actual date if list of periods is " "generated" msgstr "" " # d = Включить текущую дату, еÑли ÑоздаетÑÑ ÑпиÑок " "периодов" #: src/help.c:1908 msgid "" " # l = Generate list of periods instead of a single " "period" msgstr " # l = Создать ÑпиÑок периодов, а не один период" #: src/help.c:1924 msgid " # Nd = Single absolute day N" msgstr " # Ðd = ЕдинÑтвенный абÑолютный день Ð" #: src/help.c:1926 #, c-format msgid " # %cdN = Single absolute day N" msgstr " # %cdÐ = ЕдинÑтвенный абÑолютный день Ð" #: src/help.c:1931 msgid " # NMOD = Single day N relative to today" msgstr "" " # ÐМОД = ЕдинÑтвенный день РотноÑительно ÑегоднÑшнего" #: src/help.c:1933 #, c-format msgid " MOD = %s Forwards" msgstr " МОД = %s Вперед" #: src/help.c:1935 #, c-format msgid " = %s Backwards" msgstr " = %s Ðазад" #: src/help.c:1938 msgid " # Nw = Complete week N" msgstr " # Ðw = ÐŸÐ¾Ð»Ð½Ð°Ñ Ð½ÐµÐ´ÐµÐ»Ñ Ð" #: src/help.c:1942 msgid "" " N = 0 1st week / last week of previous year" msgstr "" " Ð = 0 Ð¿ÐµÑ€Ð²Ð°Ñ Ð½ÐµÐ´ÐµÐ»Ñ / поÑледнÑÑ Ð½ÐµÐ´ÐµÐ»Ñ\n" " предыдущего года" #: src/help.c:1946 msgid " N = 1...52 1st...52nd week (always)" msgstr " Ð = 1...52 1-аÑ...52-Ð°Ñ Ð½ÐµÐ´ÐµÐ»Ñ (вÑегда)" #: src/help.c:1950 msgid " N = 53 53rd week (sometimes)" msgstr " Ð = 53 53-Ñ Ð½ÐµÐ´ÐµÐ»Ñ (иногда)" #: src/help.c:1952 msgid " N = 99 Last week" msgstr " Ð = 99 ПоÑледнÑÑ Ð½ÐµÐ´ÐµÐ»Ñ" #: src/help.c:1955 #, fuzzy, c-format msgid " # %s%s = Single day %s of month %s" msgstr " # `%s%s' = Один день `%s' меÑÑца `%s'" #: src/help.c:1961 #, fuzzy, c-format msgid " # %s%sN = Single N'th weekday %s of month %s" msgstr " # `%s%s'Ð = Один Ð-ный день недели `%s' меÑÑца `%s'" #: src/help.c:1966 #, fuzzy, c-format msgid " N = 1...4 1st...4th weekday %s (always)" msgstr "" " Ð = 1...4 1-ый...4-ый день недели `%s' (вÑегда)" #: src/help.c:1971 #, fuzzy, c-format msgid " N = 5 5th weekday %s (sometimes)" msgstr " Ð = 5 5-ый день недели `%s' (иногда)" #: src/help.c:1975 #, fuzzy, c-format msgid " N = 9 Last weekday %s" msgstr " Ð = 9 ПоÑледний день недели `%s'" #: src/help.c:1979 #, fuzzy, c-format msgid " # %cdN%s = Single N'th weekday %s" msgstr " # %cdÐ`%s' = Один Ð-ный день недели `%s'" #: src/help.c:1984 #, fuzzy, c-format msgid " N = 1...51 1st...51st weekday %s (always)" msgstr "" " Ð = 1...51 1-ый...51-ый день недели `" "%s' (вÑегда)" #: src/help.c:1989 #, fuzzy, c-format msgid " N = 52|53 52|53rd weekday %s (sometimes)" msgstr "" " Ð = 52|53 52|53-ий день недели `%s' (иногда)" #: src/help.c:1993 #, fuzzy, c-format msgid " N = 99 Last weekday %s" msgstr " Ð = 99 ПоÑледний день недели `%s'" #: src/help.c:1998 #, fuzzy, c-format msgid " # %cwN%s = Single weekday %s of N'th week" msgstr " # %cwÐ`%s' = Один день `%s' Ð-ной недели" #: src/help.c:2003 #, fuzzy, c-format msgid "" " N = 0 %s which isn't located in 1st week" msgstr "" " Ð = 0 `%s' не находÑщийÑÑ Ð² первой неделе" #: src/help.c:2008 #, fuzzy, c-format msgid " N = 1...51 %s of 1st...51st week (always)" msgstr "" " Ð = 1...51 `%s' 1-ой...51-ой недели (вÑегда)" #: src/help.c:2013 #, fuzzy, c-format msgid " N = 52|53 %s of 52|53rd week (sometimes)" msgstr " Ð = 52|53 `%s' 52|53-ей недели (иногда)" #: src/help.c:2017 #, fuzzy, c-format msgid " N = 99 %s of last week" msgstr " Ð = 99 `%s' поÑледней недели" #: src/help.c:2023 #, c-format msgid " # %c%c[[%s|%s]N] = Single day N relative to Easter Sunday" msgstr "" " # %c%c[[%s|%s]Ð] = Один день РотноÑительно ПаÑхального " "воÑкреÑеньÑ" #: src/help.c:2029 #, 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:2035 #, c-format msgid " # %c%c[[%s|%s]N] = Single day N relative to today's date" msgstr "" " # %c%c[[%s|%s]Ð] = Один день РотноÑительно ÑегоднÑшней даты" #: src/help.c:2041 #, 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:2047 #, c-format msgid " # %c?[[%s|%s]N] = Single day N relative to date variable" msgstr " # %c?[[%s|%s]Ð] = Один день РотноÑительно переменной даты" #: src/help.c:2053 #, 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:2061 msgid " # t|T = List tomorrow" msgstr " # t|T = ПеречиÑлить завтрашний день" #: src/help.c:2078 msgid " # w|W[MOD] = List complete week" msgstr " # w|W[МОД] = ПеречиÑлить полную неделю" #: src/help.c:2082 #, c-format msgid "" " [MOD] = %s List tomorrow until ending day of week" msgstr "" " [МОД] = %s ПеречиÑлить завтрашний день,\n" " еÑли не конец недели" #: src/help.c:2087 #, c-format msgid "" " = %s List yesterday until starting day of week" msgstr "" " = %s ПеречиÑлить вчерашний день,\n" " еÑли не начало недели" #: src/help.c:2107 msgid " # m|M[MOD] = List complete month" msgstr " # m|M[МОД] = ПеречиÑлить полный меÑÑц" #: src/help.c:2111 #, c-format msgid "" " [MOD] = %s List tomorrow until ending day of month" msgstr "" " [МОД] = %s ПеречиÑлить завтрашний день, еÑли не\n" " конец меÑÑца" #: src/help.c:2116 #, c-format msgid "" " = %s List yesterday until starting day of month" msgstr "" " = %s ПеречиÑлить вчерашний день,\n" " еÑли не начало меÑÑца" #: src/help.c:2136 msgid " # y|Y[MOD] = List complete year" msgstr " # y|Y[МОД] = ПеречиÑлить полный год" #: src/help.c:2140 #, c-format msgid "" " [MOD] = %s List tomorrow until ending day of year" msgstr "" " [МОД] = %s ПеречиÑлить завтрашний день,\n" " еÑли не конец года" #: src/help.c:2145 #, c-format msgid "" " = %s List yesterday until starting day of year" msgstr "" " = %s ПеречиÑлить вчерашний день,\n" " еÑли не начало года" #: src/help.c:2158 msgid " Use alternative file(s) instead of standard resource file" msgstr "" " ИÑпользовать альтернативный файл (файлы) вмеÑто\n" " Ñтандартных реÑурÑных файлов" #: src/help.c:2164 msgid " f = Display only those dates, for which fixed dates exists" msgstr "" " f = Показать только те даты, Ð´Ð»Ñ ÐºÐ¾Ñ‚Ð¾Ñ€Ñ‹Ñ… еÑть фикÑированные даты" #: src/help.c:2168 msgid "" " F = Display those dates, for which fixed dates doesn't exist, too" msgstr " F = Показать и те даты, Ð´Ð»Ñ ÐºÐ¾Ñ‚Ð¾Ñ€Ñ‹Ñ… нет фикÑированных дат" #: src/help.c:2172 #, c-format msgid " %-3s = Single file or list of files connected by `%s' characters" msgstr " %-3s = Один или неÑколько файлов, разделенных Ñимволами `%s'" #: src/help.c:2183 msgid " Define additional resource file line" msgstr " Определить дополнительную Ñтроку реÑурÑного файла" #: src/help.c:2185 #, c-format msgid " %-3s = Any possible resource file line" msgstr " %-3s = Ð›ÑŽÐ±Ð°Ñ Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð°Ñ Ñтрока реÑурÑного файла" #: src/help.c:2195 #, c-format msgid "%cDATE" msgstr "%cДÐТÐ" #: src/help.c:2197 msgid "Use given `DATE' instead of today's date" msgstr "ИÑпользовать заданную `ДÐТУ' вмеÑто ÑегоднÑшней" #: src/help.c:2201 #, 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:2208 #, c-format msgid " %s%cwN[%s], month name[%s], weekday name[N] or %s" msgstr "" " %s%cwÐ[%s], название меÑÑца[%s], название Ð´Ð½Ñ Ð½ÐµÐ´ÐµÐ»Ð¸[Ð] или %s" #: src/help.c:2217 #, c-format msgid "%cFILE" msgstr "%cФÐЙЛ" #: src/help.c:2219 msgid "Preload options and commands from `FILE'" msgstr "Загрузить ключи и команды из `ФÐЙЛÐ'" #: src/help.c:2223 msgid "COMMAND" msgstr "КОМÐÐДÐ" #: src/help.c:2225 #, c-format msgid "%s = Month in range: %d...%d" msgstr "%s = МеÑÑц в промежутке: %d...%d" #: src/help.c:2230 #, c-format msgid " or: month name | %s | %s%s | %s%s | %s%s" msgstr "" " или: название меÑÑца | %s | %s%s | %s%s | %s%s" #: src/help.c:2235 #, c-format msgid " List: %s[%s%s]%s...%s%s[%s%s]" msgstr " СпиÑок: %s[%s%s]%s...%s%s[%s%s]" #: src/help.c:2241 #, 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:2247 #, c-format msgid "%s%*s = Year in range: %d...%d" msgstr "%s%*s = Год в промежутке: %d...%d" #: src/help.c:2251 #, c-format msgid " List: [%s%s]%s%s...%s[%s%s]%s" msgstr " СпиÑок: [%s%s]%s%s...%s[%s%s]%s" #: src/help.c:2256 #, 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:2282 #, fuzzy, c-format msgid " %sh, %s Display this help text and quit program" msgstr " Показать Ñправку и выйти" #: src/help.c:2285 #, fuzzy, c-format msgid " %shh, %s Display extended help text and quit program" msgstr " Показать подробную Ñправку и выйти" #: src/help.c:2289 #, fuzzy, c-format msgid " %sL, %s Display software license and quit program" msgstr " Показать лицензию и выйти" #: src/help.c:2293 #, fuzzy, c-format msgid " %sV, %s Display version information and quit program" msgstr " Показать информацию о верÑии и выйти" #: src/help.c:2301 #, fuzzy, c-format msgid " %sp, %s Direct output through external `%s' pager" msgstr "" " Ðаправить вывод внешней программе поÑтраничного проÑмотра `%s'" #: src/help.c:2308 src/help.c:2313 #, fuzzy, c-format msgid " %sp, %s Direct output through simple internal pager" msgstr "" " Ðаправить вывод проÑтой внутренней программе поÑтраничного " "проÑмотра" #: src/help.c:2338 msgid "This software doesn't claim completeness, correctness or usability." msgstr "" "Эта программа не претендует на полноту, правильноÑть или проÑтоту " "иÑпользованиÑ." #: src/help.c:2342 msgid "On principle I will not be liable for ANY damages or losses (implicit" msgstr "" "Из принципа Ñ Ð½Ðµ неÑу ответÑтвенноÑти за ЛЮБЫЕ Ð¿Ð¾Ð²Ñ€ÐµÐ¶Ð´ÐµÐ½Ð¸Ñ Ð¸Ð»Ð¸ потери " "(коÑвенные" #: src/help.c:2346 msgid "or explicit), which result from using or handling my software." msgstr "" "или непоÑредÑтвенные), произошедшие из-за Ð¿Ñ€Ð¸Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð¸Ð»Ð¸ обращениÑ\n" "Ñ Ð¼Ð¾ÐµÐ¹ программой." #: src/help.c:2350 msgid "If you use this software, you agree without any exception to this" msgstr "" "ЕÑли вы пользуетеÑÑŒ Ñтой программой, вы ÑоглашаетеÑÑŒ Ñо вÑеми Ñтими уÑловиÑми" #: src/help.c:2352 msgid "agreement, which binds you LEGALLY !!" msgstr "без иÑключениÑ, к чему Ð²Ð°Ñ Ð¾Ð±Ñзывает ЗÐКОР!!" #: src/help.c:2357 msgid "This program is free software; you can redistribute it and/or modify" msgstr "Это ÑÐ²Ð¾Ð±Ð¾Ð´Ð½Ð°Ñ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð¼Ð°; вы можете повторно раÑпроÑтранÑть ее и/или" #: src/help.c:2361 msgid "it under the terms of the `GNU General Public License' as published by" msgstr "" "модифицировать ее в ÑоответÑтвии Ñ Ð£Ð½Ð¸Ð²ÐµÑ€Ñальной ОбщеÑтвенной Лицензией GNU," #: src/help.c:2365 #, fuzzy msgid "the `Free Software Foundation'; either version 3, or (at your option)" msgstr "" "опубликованной Фондом Свободного ПО; либо верÑии 2, либо (по вашему выбору)" #: src/help.c:2367 msgid "any later version." msgstr "любой более поздней верÑии." #: src/help.c:2372 msgid "You should have received a copy of the `GNU General Public License'" msgstr "Ð’Ñ‹ должны были получить копию УниверÑальной ОбщеÑтвенной Лицензии GNU" #: src/help.c:2374 msgid "along with this program; if not, write to the:" msgstr "вмеÑте Ñ Ñтой программой; еÑли нет, напишите по Ñтому адреÑу:" #: src/help.c:2423 #, 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:2451 #, fuzzy, c-format msgid "Use `%s %s|[%s?]" msgstr "ИÑпользуйте `%s %s' или " #: src/help.c:2460 #, fuzzy msgid "for more information." msgstr "" "`%s %s|[%s?]' Ð´Ð»Ñ Ð¿Ð¾Ð»ÑƒÑ‡ÐµÐ½Ð¸Ñ\n" "большей информации." #: src/help.c:2564 src/tcal.c:197 src/txt2gcal.c:136 src/gcal2txt.c:136 #, fuzzy, c-format msgid "Email bug reports to <%s>" msgstr "Об ошибках Ñообщайте по адреÑу " #: src/help.c:2566 #, c-format msgid "GNU gcal home page: <%s>" msgstr "" #: src/help.c:2568 #, c-format msgid "General help using GNU software: <%s>" msgstr "" #: src/help.c:2594 src/tcal.c:219 src/txt2gcal.c:158 src/gcal2txt.c:158 #, c-format msgid "This is free software; see the source for copying conditions." msgstr "" "Это ÑÐ²Ð¾Ð±Ð¾Ð´Ð½Ð°Ñ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð¼Ð°; уÑÐ»Ð¾Ð²Ð¸Ñ ÐºÐ¾Ð¿Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ñмотрите в иÑходном текÑте." #: src/help.c:2598 src/tcal.c:222 src/txt2gcal.c:161 src/gcal2txt.c:161 #, c-format msgid "There is NO warranty, without even the implied warranty of" msgstr " Мы ÐЕ предоÑтавлÑем гарантий; даже подразумеваемых гарантий" #: src/help.c:2600 src/tcal.c:224 src/txt2gcal.c:163 src/gcal2txt.c:163 #, c-format msgid "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." msgstr "КОММЕРЧЕСКОЙ ЦЕÐÐОСТИ или ПРИГОДÐОСТИ ДЛЯ КОÐКРЕТÐОЙ ЦЕЛИ." #: src/help.c:2616 #, fuzzy, c-format msgid "%s: The Gregorian calendar program (GNU cal) %s" msgstr ":%*s Программа-календарь GNU (" #: src/help.c:2624 #, c-format msgid "Usage: %s [[OPTION...] [%cDATE] [%cFILE...]] [COMMAND]" msgstr "ИÑпользование: %s [[КЛЮЧ...] [%cДÐТÐ] [%cФÐЙЛ...]] [КОМÐÐДÐ]" #: src/help.c:2627 #, c-format msgid "Usage: %s [[OPTION...] [%cFILE...]] [COMMAND]" msgstr "ИÑпользование: %s [[КЛЮЧ...] [%cФÐЙЛ...]] [КОМÐÐДÐ]" #: src/help.c:2703 src/help.c:2849 msgid " 4.0 or 4.02" msgstr " 4.0 или 4.02" #: src/help.c:2711 src/help.c:2857 msgid " later than 5.0" msgstr " более позднÑÑ, чем 5.0" #: src/help.c:2722 src/help.c:2864 msgid "++ 3.0 or later" msgstr "++ 3.0 или более позднÑÑ" #: src/help.c:2749 src/help.c:2970 msgid "5.1 or earlier" msgstr "5.1 или более раннÑÑ" #: src/help.c:2752 src/help.c:2973 src/help.c:3128 src/help.c:3198 msgid "unknown compiler" msgstr "неизвеÑтным компилÑтором" #: src/help.c:2787 src/help.c:2876 src/help.c:3010 src/help.c:3032 #: src/help.c:3101 src/help.c:3138 src/help.c:3156 src/help.c:3213 #: src/help.c:3428 msgid " on " msgstr " " #: src/help.c:2826 msgid "(bad version)" msgstr "(некравильный номер верÑии) " #: src/help.c:2873 msgid "unknown compiler (SDK?)" msgstr "неизвеÑтным компилÑтором (SDK?)" #: src/help.c:2941 msgid " later than 4.5" msgstr " более поздним, чем 4.5" #: src/help.c:2951 msgid "++ 1.0 or later" msgstr "++ 1.0 или более поздним" #: src/help.c:2959 msgid " 1.0 or 1.5?" msgstr " 1.0 или 1.5?" #: src/help.c:3074 msgid "unknown " msgstr "неизвеÑтным " #: src/help.c:3086 #, c-format msgid "version %d.%d" msgstr "верÑии %d.%d" #: src/help.c:3089 src/help.c:3122 src/help.c:3248 #, c-format msgid "version %d" msgstr "верÑии %d" #: src/help.c:3091 #, c-format msgid "unknown version" msgstr "неизвеÑтной верÑии" #: src/help.c:3205 #, c-format msgid " (%.4s for Alpha)" msgstr " (%.4s Ð´Ð»Ñ Alpha)" #: src/help.c:3208 #, c-format msgid " (%.4s for VAX)" msgstr " (%.4s Ð´Ð»Ñ VAX)" #: src/help.c:3359 msgid " (NetBSD before 0.9)" msgstr " (NetBSD раньше верÑии 0.9)" #: src/help.c:3359 msgid " (NetBSD 1.2 or later)" msgstr " (NetBSD 1.2 или более позднÑÑ)" #: src/help.c:3366 msgid " (FreeBSD 2.0 or later)" msgstr " (FreeBSD 2.0 или более позднÑÑ)" #: src/help.c:3369 msgid " (BSD/386 1.1 or later)" msgstr " (BSD/386 1.1 или более позднÑÑ)" # Это двухбуквенное Ñокращение Ð´Ð»Ñ "неделÑ" #: src/print.c:544 src/print.c:978 src/print.c:1033 msgid "CW" msgstr "Ðд" #: src/print.c:565 msgid "Week" msgstr "ÐеделÑ" #: src/rc-insert.c:1706 src/rc-insert.c:2824 msgid "pm" msgstr "" #: src/rc-insert.c:1715 src/rc-insert.c:2833 msgid "am" msgstr "" #: src/rc-insert.c:2018 src/rc-insert.c:2028 msgid "d'\"" msgstr "" #: src/rc-insert.c:2038 msgid "h'\"" msgstr "" #: src/rc-insert.c:3728 src/rc-utils.c:2585 #, c-format msgid "" "Cannot execute command in file `%s'\n" "Line: %ld %s" msgstr "" "Ðевозможно выполнить команду в файле `%s'\n" "Строка: %ld %s" #: src/rc-insert.c:3750 src/rc-utils.c:2609 #, 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:513 msgid "Emo" msgstr "Эмо" #: src/rc-use.c:518 msgid "Int" msgstr "Инт" #: src/rc-use.c:523 msgid "Phy" msgstr "Физ" #: src/rc-use.c:1086 src/rc-use.c:1177 msgid "`Eternal holiday list'" msgstr "`Вечный ÑпиÑок праздников'" #: src/rc-use.c:1877 src/rc-use.c:1926 src/rc-use.c:2015 src/rc-use.c:2107 #, fuzzy msgid "`Internal'" msgstr "`Внутренний'" #: src/rc-use.c:2339 #, c-format msgid " ; Week %s" msgstr " ; ÐÐµÐ´ÐµÐ»Ñ %s" #: src/rc-use.c:2348 #, c-format msgid "Week %s" msgstr "ÐÐµÐ´ÐµÐ»Ñ %s" #: src/rc-utils.c:397 src/rc-utils.c:414 #, 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:3269 #, c-format msgid "Leap-day set to `%02d-%s' in file `%s'." msgstr "ВиÑокоÑный день уÑтановлен на `%02d-%s' в файле `%s'." #: src/rc-utils.c:3272 src/rc-utils.c:3686 #, c-format msgid "Line %ld: %s" msgstr "Строка %ld: %s" #: src/rc-utils.c:3633 src/utils.c:274 #, fuzzy, c-format msgid "%s: abort, " msgstr "" "\n" "%s: оÑтанов, " #: src/rc-utils.c:3641 #, fuzzy, c-format msgid "illegal variable definition in file `%s'" msgstr "" "недопуÑтимое определение текÑтовой переменной в файле `%s'\n" "Строка %ld: %s" #: src/rc-utils.c:3643 #, c-format msgid "illegal definition of variable `%c'" msgstr "" #: src/rc-utils.c:3650 #, fuzzy, c-format msgid "illegal variable operation in file `%s'" msgstr "" "недопуÑÑ‚Ð¸Ð¼Ð°Ñ Ð¾Ð¿ÐµÑ€Ð°Ñ†Ð¸Ñ Ñ Ð¿ÐµÑ€ÐµÐ¼ÐµÐ½Ð½Ð¾Ð¹ даты в файле `%s'\n" "Строка %ld: %s" #: src/rc-utils.c:3652 #, c-format msgid "illegal operation on variable `%c'" msgstr "" #: src/rc-utils.c:3658 #, fuzzy, c-format msgid "variable `%c' undefined in file `%s'" msgstr "ÐŸÐµÑ€ÐµÐ¼ÐµÐ½Ð½Ð°Ñ Ð´Ð°Ñ‚Ñ‹ `%c' не определена в файле `%s'" #: src/rc-utils.c:3662 #, fuzzy, c-format msgid "invalid value assigned to variable `%c' in file `%s'" msgstr "Ðеверное значение даты (Ð¿ÐµÑ€ÐµÐ¼ÐµÐ½Ð½Ð°Ñ `%c') в файле `%s'." #: src/rc-utils.c:3683 #, fuzzy, c-format msgid "Invalid argument in command line given -- %s" msgstr " %-3s = Сохранить аргументы командной Ñтроки в файле %s" #: src/rc-utils.c:3695 #, fuzzy, c-format msgid "Argument `%s' of command line ignored." msgstr "Ðргумент командной Ñтроки `%s' игнорирован" #: src/rc-utils.c:3698 #, c-format msgid "Line %ld ignored: %s" msgstr "Строка %ld игнорирована: %s" #: src/tty.c:424 #, fuzzy, c-format msgid "%s: for more, <%s> to quit..." msgstr "Ðажмите <Ввод> Ð´Ð»Ñ Ð¿Ñ€Ð¾Ð´Ð¾Ð»Ð¶ÐµÐ½Ð¸Ñ , <%s> Ð´Ð»Ñ Ð²Ñ‹Ñ…Ð¾Ð´Ð°..." #: src/tty.c:1019 #, fuzzy, c-format msgid "environment variable `%s' not found" msgstr "" "\n" "ÐŸÐµÑ€ÐµÐ¼ÐµÐ½Ð½Ð°Ñ Ñреды `%s' не найдена" #: src/tty.c:1026 #, fuzzy, c-format msgid "environment variable `%s' not set" msgstr "" "\n" "ÐŸÐµÑ€ÐµÐ¼ÐµÐ½Ð½Ð°Ñ Ñреды `%s' не уÑтановлена" #: src/tty.c:1066 #, fuzzy msgid "`termcap' file not found" msgstr "" "\n" "файл `termcap' не найден" #: src/tty.c:1071 #, fuzzy, c-format msgid "unknown terminal type defined in `%s'" msgstr "" "\n" "Ð’ `%s' определен неизвеÑтный тип терминала" #: src/tty.c:1080 #, c-format msgid "" "\n" "%s: warning, %s.\n" "\n" msgstr "" #: src/utils.c:280 #, 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:284 src/tcal.c:324 src/txt2gcal.c:263 src/gcal2txt.c:263 #, c-format msgid "`%s' line %ld: virtual memory exhausted (%s=%d)" msgstr "`%s' Ñтрока %ld: Ð²Ð¸Ñ€ÑƒÐ°Ð»ÑŒÐ½Ð°Ñ Ð¿Ð°Ð¼Ñть иÑчерпана (%s=%d)" #: src/utils.c:289 #, c-format msgid "" "invalid date part in file `%s'\n" "Line %ld: %s" msgstr "" "Ð½ÐµÐ²ÐµÑ€Ð½Ð°Ñ Ñ‡Ð°Ñть даты в файле `%s'\n" "Строка %ld: %s" #: src/utils.c:294 #, c-format msgid "" "invalid month field(%02d) in file `%s'\n" "Line %ld: %s" msgstr "" "неверное поле меÑÑца(%02d) в файле `%s'\n" "Строка %ld: %s" #: src/utils.c:299 #, c-format msgid "" "invalid day field(%02d) in file `%s'\n" "Line %ld: %s" msgstr "" "неверное поле даты(%02d) в файле `%s'\n" "Строка %ld: %s" #: src/utils.c:303 #, fuzzy, c-format msgid "" "malformed %s in file `%s'\n" "Line %ld: %s" msgstr "" "неправильное %s в файле `%s'\n" "Строка %ld: %s" #: src/utils.c:308 #, fuzzy, c-format msgid "" "invalid recursive/cyclic %s in file `%s'\n" "Line %ld: %s" msgstr "" "неверное рекурÑивное/цикличеÑкое %s в файле `%s'\n" "Строка %ld: %s" #: src/utils.c:312 #, c-format msgid "file `%s' not found" msgstr "файл `%s' не найден" #: src/utils.c:316 #, 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:322 #, c-format msgid "" "missing `whitespace' character after date part in file `%s'\n" "Line %ld: %s" msgstr "" "пропущены пробельные Ñимволы поÑле чаÑти даты в файле `%s'\n" "Строка %ld: %s" #: src/utils.c:327 #, c-format msgid "" "file `%s' can't be written\n" "Storage media full!" msgstr "" "невозможно запиÑать файл `%s'\n" "ÐоÑитель данных заполнен!" #: src/utils.c:332 #, fuzzy, c-format msgid "sending eMail to <%s> failed" msgstr "поÑылка почты по `%s' неуÑпешна" #: src/utils.c:334 src/utils.c:352 #, c-format msgid "" "\n" "`%s' line %ld: " msgstr "" "\n" "`%s' Ñтрока %ld: " #: src/utils.c:341 #, fuzzy, c-format msgid "`%s' line %ld: (`%s') `%s%d' failed" msgstr "`%s' Ñтрока %ld: (`%s') `%s%d' завершилоÑÑŒ неуÑпешно" #: src/utils.c:350 #, c-format msgid "read error in file `%s'" msgstr "ошибка Ñ‡Ñ‚ÐµÐ½Ð¸Ñ Ñ„Ð°Ð¹Ð»Ð° `%s'" #: src/utils.c:358 #, c-format msgid "" "illegal character in response file `%s'\n" "Line %ld: %s" msgstr "" "недопуÑтимый Ñимвол в файле отклика `%s'\n" "Строка %ld: %s" #: src/utils.c:364 src/tcal.c:330 src/txt2gcal.c:269 src/gcal2txt.c:269 #, 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:369 #, c-format msgid "(`%s') date format `%s' is invalid" msgstr "(`%s') неверный формат даты `%s'" #: src/utils.c:375 #, c-format msgid "%s in search pattern `%s'" msgstr "%s в образце Ð´Ð»Ñ Ð¿Ð¾Ð¸Ñка `%s'" #: src/utils.c:378 #, c-format msgid "invalid search pattern `%s' specified" msgstr "задан неверный образец Ð´Ð»Ñ Ð¿Ð¾Ð¸Ñка `%s'" #: src/utils.c:383 src/tcal.c:338 src/txt2gcal.c:274 src/gcal2txt.c:274 #, c-format msgid "`%s' line %ld: (`%s') unmanaged error (%d)" msgstr "`%s' Ñтрока %ld: (`%s') Ð½ÐµÐºÐ¾Ð½Ñ€Ð¾Ð»Ð¸Ñ€ÑƒÐµÐ¼Ð°Ñ Ð¾ÑˆÐ¸Ð±ÐºÐ° (%d)" #: src/utils.c:403 src/tcal.c:358 src/txt2gcal.c:294 src/gcal2txt.c:294 #, c-format msgid "" "\n" "%s: program aborted by signal %d\n" msgstr "" "\n" "%s: оÑтановлена по Ñигналу %d\n" # *(#@$&%^! #: src/utils.c:1080 msgid "th" msgstr "" #: src/utils.c:1084 msgid "st" msgstr "" #: src/utils.c:1088 msgid "nd" msgstr "" #: src/utils.c:1092 msgid "rd" msgstr "" #: src/utils.c:1123 src/utils.c:1174 src/utils.c:1225 msgid "invalid day" msgstr "неверный день" #: src/utils.c:1128 msgid "Mon" msgstr "Пон" #: src/utils.c:1133 msgid "Tue" msgstr "Вто" #: src/utils.c:1138 msgid "Wed" msgstr "Сре" #: src/utils.c:1143 msgid "Thu" msgstr "Чет" #: src/utils.c:1148 msgid "Fri" msgstr "ПÑÑ‚" #: src/utils.c:1153 msgid "Sat" msgstr "Суб" #: src/utils.c:1158 msgid "Sun" msgstr "ВоÑ" #: src/utils.c:1179 msgid "Mo" msgstr "Пн" #: src/utils.c:1184 msgid "Tu" msgstr "Ð’Ñ‚" #: src/utils.c:1189 msgid "We" msgstr "Ср" #: src/utils.c:1194 msgid "Th" msgstr "Чт" #: src/utils.c:1199 msgid "Fr" msgstr "Пт" #: src/utils.c:1204 msgid "Sa" msgstr "Сб" #: src/utils.c:1209 msgid "Su" msgstr "Ð’Ñ" #: src/utils.c:1226 msgid "Monday" msgstr "Понедельник" #: src/utils.c:1226 msgid "Tuesday" msgstr "Вторник" #: src/utils.c:1226 msgid "Wednesday" msgstr "Среда" #: src/utils.c:1226 msgid "Thursday" msgstr "Четверг" #: src/utils.c:1227 msgid "Friday" msgstr "ПÑтница" #: src/utils.c:1227 msgid "Saturday" msgstr "Суббота" #: src/utils.c:1227 msgid "Sunday" msgstr "ВоÑкреÑенье" #: src/utils.c:1243 src/utils.c:1320 msgid "invalid month" msgstr "неверный меÑÑц" #: src/utils.c:1248 msgid "Jan" msgstr "Янв" #: src/utils.c:1253 msgid "Feb" msgstr "Фев" #: src/utils.c:1258 msgid "Mar" msgstr "Мар" #: src/utils.c:1263 msgid "Apr" msgstr "Ðпр" #: src/utils.c:1268 msgid "May" msgstr "Май" #: src/utils.c:1273 msgid "Jun" msgstr "Июн" #: src/utils.c:1278 msgid "Jul" msgstr "Июл" #: src/utils.c:1283 msgid "Aug" msgstr "Ðвг" #: src/utils.c:1288 msgid "Sep" msgstr "Сен" #: src/utils.c:1293 msgid "Oct" msgstr "Окт" #: src/utils.c:1298 msgid "Nov" msgstr "ÐоÑ" #: src/utils.c:1303 msgid "Dec" msgstr "Дек" #: src/utils.c:1321 msgid "January" msgstr "Январь" #: src/utils.c:1321 msgid "February" msgstr "Февраль" #: src/utils.c:1322 msgid "March" msgstr "Март" #: src/utils.c:1322 msgid "April" msgstr "Ðпрель" #: src/utils.c:1332 #, fuzzy msgid "May " msgstr "Первое МаÑ" #: src/utils.c:1333 msgid "June" msgstr "Июнь" #: src/utils.c:1333 msgid "July" msgstr "Июль" #: src/utils.c:1334 msgid "August" msgstr "ÐвгуÑÑ‚" #: src/utils.c:1334 msgid "September" msgstr "СентÑбрь" #: src/utils.c:1335 msgid "October" msgstr "ОктÑбрь" #: src/utils.c:1335 msgid "November" msgstr "ÐоÑбрь" #: src/utils.c:1335 msgid "December" msgstr "Декабрь" #: src/tcal.c:191 #, fuzzy, c-format msgid "Usage: %s [--%s | --%s] | [--%s=[+|-]NUMBER] [ARGUMENT...]\n" msgstr "" "ИÑпользование: %s [--help | --version] | [--shift=[+|-]ЧИСЛО] " "[ÐРГУМЕÐТ...]\n" #: src/tcal.c:320 src/txt2gcal.c:259 src/gcal2txt.c:259 #, c-format msgid "" "\n" "%s: abort, " msgstr "" "\n" "%s: оÑтанов, " #: src/tcal.c:335 #, c-format msgid "shift value `%s' is invalid" msgstr "значение Ñдвига `%s' неверно" #: src/tcal.c:907 #, fuzzy, c-format msgid "%s: option `--%s' requires an argument" msgstr "%s: ключ `%s' должен иÑпользоватьÑÑ c аргументом" #: src/tcal.c:1071 #, c-format msgid "%s: error during program execution of `%s'\n" msgstr "%s: ошибка во Ð²Ñ€ÐµÐ¼Ñ Ð²Ñ‹Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð¼Ñ‹ `%s'\n" #: src/txt2gcal.c:131 #, fuzzy, c-format msgid "Usage: %s [--%s | --%s] | [TEXT-FILE | -] [DATE-PART]\n" msgstr "" "ИÑпользование: %s [--help | --version] | [ТЕКСТОВЫЙ-ФÐЙЛ | -] [ЧÐСТЬ-" "ДÐТЫ]\n" #: src/txt2gcal.c:755 src/gcal2txt.c:754 #, c-format msgid "%s: no regular file\n" msgstr "%s: не ÑвлÑетÑÑ Ð¾Ð±Ñ‹Ñ‡Ð½Ñ‹Ð¼ файлом\n" #: src/txt2gcal.c:760 src/gcal2txt.c:759 #, c-format msgid "%s: file not found\n" msgstr "%s: файл не найден\n" #: src/gcal2txt.c:131 #, 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 "regexp too big" #~ msgstr "регулÑрное выражение Ñлишком велико" #~ msgid "out of space" #~ msgstr "недоÑтаточно меÑта" #~ msgid "too many ()" #~ msgstr "лишние круглые Ñкобки" #~ msgid "unmatched ()" #~ msgstr "непарные круглые Ñкобки" #~ msgid "junk on end" #~ msgstr "конец поврежден" #~ msgid "*+ operand could be empty" #~ msgstr "опреранд *+ мог бы быть пуÑтым" #~ msgid "nested *?+" #~ msgstr "вложенные *?+" #~ msgid "invalid [] range" #~ 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-3.6.3/po/boldquot.sed0000644000175000017500000000033112125375415012320 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-3.6.3/po/sv.po0000644000175000017500000040755112125376135011001 00000000000000# Swedish messages for gcal. # Copyright © 2010 Thomas Esken (msgids) # Copyright © 1997, 2001, 2011 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. # # $Revision: 1.2 $ msgid "" msgstr "" "Project-Id-Version: gcal 3.6\n" "Report-Msgid-Bugs-To: bug-gcal@gnu.org\n" "POT-Creation-Date: 2013-03-29 21:40+0100\n" "PO-Revision-Date: 2011-01-11 14:45+0100\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" #: src/file-io.c:1561 #, 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:1564 src/file-io.c:1689 src/file-io.c:1702 msgid "failed" msgstr "misslyckades" #: src/file-io.c:1564 src/file-io.c:1689 src/file-io.c:1702 msgid "success" msgstr "lyckades" #: src/file-io.c:1684 #, 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:1685 msgid " `HERE' " msgstr " \"HÄR\" " #: src/file-io.c:1697 #, 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:352 src/gcal.c:523 src/gcal.c:2028 msgid "ARG" msgstr "ARG" #: src/gcal.c:1080 src/hd-data.c:69 msgid "Germany" msgstr "Tyskland" #: src/gcal.c:1081 msgid "U.S.A." msgstr "USA" #: src/gcal.c:1082 src/hd-data.c:72 msgid "Great Britain" msgstr "Storbritannien" #: src/gcal.c:1858 msgid "default" msgstr "standard" #: src/gcal.c:1957 msgid ":" msgstr "." #: src/gcal.c:1967 msgid "Y" msgstr "Ã…" #: src/gcal.c:1972 msgid "M" msgstr "M" #: src/gcal.c:1977 msgid "W" msgstr "V" #: src/gcal.c:1982 msgid "D" msgstr "D" #: src/gcal.c:2073 msgid "Fixed date list:" msgstr "Lista med fasta datum:" #: src/gcal.c:2090 src/gcal.c:2105 msgid "environment variable" msgstr "miljövariabel" #: src/gcal.c:2274 #, 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:2461 src/gcal.c:2489 src/gcal.c:6232 src/rc-use.c:1828 #: src/rc-use.c:1888 src/rc-use.c:1937 src/rc-use.c:2207 src/rc-utils.c:390 #: src/rc-utils.c:411 src/utils.c:342 src/utils.c:365 src/utils.c:384 #: src/utils.c:679 src/tcal.c:331 src/tcal.c:339 src/txt2gcal.c:270 #: src/txt2gcal.c:275 src/gcal2txt.c:270 src/gcal2txt.c:275 msgid "Internal" msgstr "Intern" #: src/gcal.c:2870 msgid "response file" msgstr "responsfil" #: src/gcal.c:2870 src/gcal.c:2878 msgid "Created" msgstr "Skapad" #: src/gcal.c:2878 msgid "shell script" msgstr "skalskript" #: src/gcal.c:3089 #, c-format msgid "Mail from \\`%s' (%02d-%s-%04d %02d%s%02d%s%02d" msgstr "E-post frÃ¥n \\\"%s\" (%02d-%s-%04d %02d%s%02d%s%02d" #: src/gcal.c:3141 #, 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:4951 src/gcal.c:4984 msgid "command line" msgstr "kommandorad" #: src/gcal.c:5901 #, c-format msgid "%s: option `%s' is ambiguous" msgstr "%s: flaggan \"%s\" är tvetydig" #: src/gcal.c:5906 src/tcal.c:895 src/txt2gcal.c:716 src/gcal2txt.c:715 #, c-format msgid "%s: unrecognized option `%s'" msgstr "%s: okänd flagga \"%s\"" #: src/gcal.c:5909 #, c-format msgid "%s: invalid option -- %s" msgstr "%s: ogiltig flagga -- %s" #: src/gcal.c:5916 #, 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' doesn't allow an argument" msgstr "%s: flaggan \"%s\" tar inget argument" #: src/gcal.c:5927 #, c-format msgid "%s: option `%s' requires an argument" msgstr "%s: flaggan \"%s\" kräver ett argument" #: src/gcal.c:5931 #, c-format msgid "%s: option requires an argument -- %s" msgstr "%s: flaggan kräver ett argument -- %s" #: src/gcal.c:5936 src/tcal.c:941 #, c-format msgid "%s: option with invalid argument -- %s" msgstr "%s: flagga med ogiltigt argument -- %s" #: src/gcal.c:5941 #, c-format msgid "%s: option with ambiguous argument -- %s" msgstr "%s: flagga med tvetydigt argument -- %s" #: src/gcal.c:6001 #, 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:63 msgid "Australia" msgstr "Australien" #: src/hd-data.c:64 src/hd-data.c:112 msgid "Belgium" msgstr "Belgien" #: src/hd-data.c:65 src/hd-data.c:121 msgid "Brazil" msgstr "Brasilien" #: src/hd-data.c:66 msgid "Canada" msgstr "Kanada" #: src/hd-data.c:67 msgid "Switzerland" msgstr "Schweiz" #: src/hd-data.c:68 src/hd-data.c:174 msgid "China" msgstr "Kina" #: src/hd-data.c:70 src/hd-data.c:208 msgid "Spain" msgstr "Spanien" #: src/hd-data.c:71 src/hd-data.c:215 msgid "France" msgstr "Frankrike" #: src/hd-data.c:73 src/hd-data.c:244 msgid "Israel" msgstr "Israel" #: src/hd-data.c:74 src/hd-data.c:249 msgid "Italy" msgstr "Italien" #: src/hd-data.c:75 src/hd-data.c:252 msgid "Japan" msgstr "Japan" #: src/hd-data.c:76 src/hd-data.c:260 msgid "Republic of Korea" msgstr "Republiken Korea" #: src/hd-data.c:77 src/hd-data.c:292 msgid "Mexico" msgstr "Mexiko" #: src/hd-data.c:78 src/hd-data.c:301 msgid "Netherlands" msgstr "Nederländerna" #: src/hd-data.c:79 src/hd-data.c:307 msgid "New Zealand" msgstr "Nya Zeeland" #: src/hd-data.c:80 src/hd-data.c:319 msgid "Portugal" msgstr "Portugal" #: src/hd-data.c:81 src/hd-data.c:325 msgid "Russian Federation" msgstr "Ryssland" #: src/hd-data.c:82 msgid "United States" msgstr "USA" #: src/hd-data.c:84 msgid "Andorra" msgstr "Andorra" #: src/hd-data.c:85 msgid "United Arab Emirates" msgstr "Förenade Arabemiraten" #: src/hd-data.c:86 msgid "Afghanistan" msgstr "Afghanistan" #: src/hd-data.c:87 msgid "Antigua and Barbuda" msgstr "Antigua och Barbuda" #: src/hd-data.c:88 msgid "Anguilla" msgstr "Anguilla" #: src/hd-data.c:89 msgid "Albania" msgstr "Albanien" #: src/hd-data.c:90 msgid "Armenia" msgstr "Armenien" #: src/hd-data.c:91 msgid "Netherlands Antilles/Bonaire" msgstr "Nederländska Antillerna/Bonaire" #: src/hd-data.c:92 msgid "Netherlands Antilles/Curaçao" msgstr "Nederländska Antillerna/Curaçao" #: src/hd-data.c:93 msgid "Netherlands Antilles/St Maarten" msgstr "Nederländska Antillerna/St Maarten" #: src/hd-data.c:94 msgid "Netherlands Antilles/Saba and Statia" msgstr "Nederländska Antillerna/Saba och Statia" #: src/hd-data.c:95 msgid "Angola #" msgstr "Angola " #: src/hd-data.c:96 msgid "Argentina" msgstr "Argentina" #: src/hd-data.c:97 msgid "American Samoa" msgstr "Samoa" #: src/hd-data.c:98 msgid "Austria" msgstr "Österrike" #: src/hd-data.c:99 msgid "Australia/Canberra" msgstr "Australien/Canberra" #: src/hd-data.c:100 msgid "Australia/Northern Territory" msgstr "Australien/Nordterritoriet" #: src/hd-data.c:101 msgid "Australia/Queensland" msgstr "Australien/Queensland" #: src/hd-data.c:102 msgid "Australia/Southern Australia" msgstr "Australien/Sydaustralien" #: src/hd-data.c:103 msgid "Australia/New South Wales" msgstr "Australien/New South Wales" #: src/hd-data.c:104 msgid "Australia/Tasmania" msgstr "Australien/Tasmanien" #: src/hd-data.c:105 msgid "Australia/Victoria" msgstr "Australien/Victoria" #: src/hd-data.c:106 msgid "Australia/Western Australia" msgstr "Australien/Västaustralien" #: src/hd-data.c:107 msgid "Aruba" msgstr "Aruba" #: src/hd-data.c:108 msgid "Azerbaijan" msgstr "Azerbajdzjan" #: src/hd-data.c:109 msgid "Bosnia-Herzegovina" msgstr "Bosnien-Hercegovina" #: src/hd-data.c:110 msgid "Barbados" msgstr "Barbados" #: src/hd-data.c:111 msgid "Bangladesh #" msgstr "Bangladesh " #: src/hd-data.c:113 msgid "Burkina Faso" msgstr "Burkina Faso" #: src/hd-data.c:114 msgid "Bulgaria" msgstr "Bulgarien" #: src/hd-data.c:115 msgid "Bahrain" msgstr "Bahrain" #: src/hd-data.c:116 msgid "Burundi #" msgstr "Burundi " #: src/hd-data.c:117 msgid "Benin #" msgstr "Benin " #: src/hd-data.c:118 msgid "Bermuda" msgstr "Bermuda" #: src/hd-data.c:119 msgid "Brunei" msgstr "Brunei" #: src/hd-data.c:120 msgid "Bolivia" msgstr "Bolivia" #: src/hd-data.c:122 msgid "Bahamas" msgstr "Bahamas" #: src/hd-data.c:123 msgid "Bhutan #" msgstr "Bhutan " #: src/hd-data.c:124 msgid "Bouvet Island" msgstr "Bouvetön" #: src/hd-data.c:125 msgid "Botswana" msgstr "Botswana" #: src/hd-data.c:126 msgid "Belarus" msgstr "Vitryssland" #: src/hd-data.c:127 msgid "Belize" msgstr "Belize" #: src/hd-data.c:128 msgid "Canada/Alberta" msgstr "Kanada/Alberta" #: src/hd-data.c:129 msgid "Canada/British Columbia" msgstr "Kanada/British Columbia" #: src/hd-data.c:130 msgid "Canada/Manitoba" msgstr "Kanada/Manitoba" #: src/hd-data.c:131 msgid "Canada/New Brunswick" msgstr "Kanada/New Brunswick" #: src/hd-data.c:132 msgid "Canada/Newfoundland and Labrador" msgstr "Kanada/Newfoundland och Labrador" #: src/hd-data.c:133 msgid "Canada/Nova Scotia" msgstr "Kanada/Nova Scotia" #: src/hd-data.c:134 msgid "Canada/Nordwest Territories" msgstr "Kanada/Nordvästterritorierna" #: src/hd-data.c:135 msgid "Canada/Ontario" msgstr "Kanada/Ontario" #: src/hd-data.c:136 msgid "Canada/Prince Edward Island" msgstr "Kanada/Prince Edwardön" #: src/hd-data.c:137 msgid "Canada/Québec" msgstr "Kanada/Québec" #: src/hd-data.c:138 msgid "Canada/Saskatchewan" msgstr "Kanada/Saskatchewan" #: src/hd-data.c:139 msgid "Canada/Yukon" msgstr "Kanada/Yukon" #: src/hd-data.c:140 msgid "Cocos Islands (Keeling)" msgstr "Kokosöarna (Keeling)" #: src/hd-data.c:141 msgid "Democratic Republic of Congo #" msgstr "Demokratiska republiken Kongo " #: src/hd-data.c:142 msgid "Central African Republic #" msgstr "Centralafrikanska republiken " #: src/hd-data.c:143 msgid "Republic of Congo #" msgstr "Republiken Kongo " #: src/hd-data.c:144 msgid "Switzerland/Aargau" msgstr "Schweiz/Aargau" #: src/hd-data.c:145 msgid "Switzerland/Appenzell Innerrhoden" msgstr "Schweiz/Appenzell Innerrhoden" #: src/hd-data.c:146 msgid "Switzerland/Appenzell Ausserrhoden" msgstr "Schweiz/Appenzell Ausserrhoden" #: src/hd-data.c:147 msgid "Switzerland/Bern" msgstr "Schweiz/Bern" #: src/hd-data.c:148 msgid "Switzerland/Basel-Land" msgstr "Schweiz/Basel-Land" #: src/hd-data.c:149 msgid "Switzerland/Basel-Stadt" msgstr "Schweiz/Basel-Stadt" #: src/hd-data.c:150 msgid "Switzerland/Fribourg" msgstr "Schweiz/Fribourg" #: src/hd-data.c:151 msgid "Switzerland/Genève" msgstr "Schweiz/Genève" #: src/hd-data.c:152 msgid "Switzerland/Glarus" msgstr "Schweiz/Glarus" #: src/hd-data.c:153 msgid "Switzerland/Graubünden" msgstr "Schweiz/Graubünden" #: src/hd-data.c:154 msgid "Switzerland/Jura" msgstr "Schweiz/Jura" #: src/hd-data.c:155 msgid "Switzerland/Luzern" msgstr "Schweiz/Luzern" #: src/hd-data.c:156 msgid "Switzerland/Neuchâtel" msgstr "Schweiz/Neuchâtel" #: src/hd-data.c:157 msgid "Switzerland/Nidwalden" msgstr "Schweiz/Nidwalden" #: src/hd-data.c:158 msgid "Switzerland/Obwalden" msgstr "Schweiz/Obwalden" #: src/hd-data.c:159 msgid "Switzerland/St Gallen" msgstr "Schweiz/St Gallen" #: src/hd-data.c:160 msgid "Switzerland/Schaffhausen" msgstr "Schweiz/Schaffhausen" #: src/hd-data.c:161 msgid "Switzerland/Solothurn" msgstr "Schweiz/Solothurn" #: src/hd-data.c:162 msgid "Switzerland/Schwyz" msgstr "Schweiz/Schwyz" #: src/hd-data.c:163 msgid "Switzerland/Thurgau" msgstr "Schweiz/Thurgau" #: src/hd-data.c:164 msgid "Switzerland/Ticino" msgstr "Schweiz/Ticino" #: src/hd-data.c:165 msgid "Switzerland/Uri" msgstr "Schweiz/Uri" #: src/hd-data.c:166 msgid "Switzerland/Vaud" msgstr "Schweiz/Vaud" #: src/hd-data.c:167 msgid "Switzerland/Valais" msgstr "Schweiz/Valais" #: src/hd-data.c:168 msgid "Switzerland/Zug" msgstr "Schweiz/Zug" #: src/hd-data.c:169 msgid "Switzerland/Zürich" msgstr "Schweiz/Zürich" #: src/hd-data.c:170 msgid "Côte d'Ivoire" msgstr "Elfenbenskusten" #: src/hd-data.c:171 msgid "Cook Islands" msgstr "Cooköarna" #: src/hd-data.c:172 msgid "Chile" msgstr "Chile" #: src/hd-data.c:173 msgid "Cameroon" msgstr "Kamerun" #: src/hd-data.c:175 msgid "Colombia" msgstr "Colombia" #: src/hd-data.c:176 msgid "Costa Rica" msgstr "Costa Rica" #: src/hd-data.c:177 msgid "Cuba" msgstr "Kuba" #: src/hd-data.c:178 msgid "Cape Verde" msgstr "Kap Verde" #: src/hd-data.c:179 msgid "Christmas Islands" msgstr "Julöarna" #: src/hd-data.c:180 msgid "Cyprus" msgstr "Cypern" #: src/hd-data.c:181 msgid "Czech Republic" msgstr "Tjeckien" #: src/hd-data.c:182 msgid "Germany/Brandenburg" msgstr "Tyskland/Brandenburg" #: src/hd-data.c:183 msgid "Germany/Berlin" msgstr "Tyskland/Berlin" #: src/hd-data.c:184 msgid "Germany/Baden-Württemberg" msgstr "Tyskland/Baden-Württemberg" #: src/hd-data.c:185 msgid "Germany/Bavaria" msgstr "Tyskland/Bayern" #: src/hd-data.c:186 msgid "Germany/Bremen" msgstr "Tyskland/Bremen" #: src/hd-data.c:187 msgid "Germany/Hesse" msgstr "Tyskland/Hessen" #: src/hd-data.c:188 msgid "Germany/Hamburg" msgstr "Tyskland/Hamburg" #: src/hd-data.c:189 msgid "Germany/Mecklenburg-West Pomerania" msgstr "Tyskland/Mecklenburg-Vorpommern" #: src/hd-data.c:190 msgid "Germany/Lower Saxony" msgstr "Tyskland/Niedersachsen" #: src/hd-data.c:191 msgid "Germany/North Rhine-Westphalia" msgstr "Tyskland/Nordrhein-Westfalen" #: src/hd-data.c:192 msgid "Germany/Rhineland Palatinate" msgstr "Tyskland/Rheinland-Pfalz" #: src/hd-data.c:193 msgid "Germany/Schleswig-Holstein" msgstr "Tyskland/Schleswig-Holstein" #: src/hd-data.c:194 msgid "Germany/Saar" msgstr "Tyskland/Saarland" #: src/hd-data.c:195 msgid "Germany/Saxony" msgstr "Tyskland/Sachsen" #: src/hd-data.c:196 msgid "Germany/Saxony-Anhalt" msgstr "Tyskland/Sachsen-Anhalt" #: src/hd-data.c:197 msgid "Germany/Thuringia" msgstr "Tyskland/Thüringen" #: src/hd-data.c:198 msgid "Djibouti" msgstr "Djibouti" #: src/hd-data.c:199 msgid "Denmark" msgstr "Danmark" #: src/hd-data.c:200 msgid "Dominica" msgstr "Dominica" #: src/hd-data.c:201 msgid "Dominican Republic" msgstr "Dominikanska republiken" #: src/hd-data.c:202 msgid "Algeria" msgstr "Algeriet" #: src/hd-data.c:203 msgid "Ecuador" msgstr "Ecuador" #: src/hd-data.c:204 msgid "Estonia" msgstr "Estland" #: src/hd-data.c:205 msgid "Egypt" msgstr "Egypten" #: src/hd-data.c:206 msgid "Western Sahara" msgstr "Västsahara" #: src/hd-data.c:207 msgid "Eritrea" msgstr "Eritrea" #: src/hd-data.c:209 msgid "Ethiopia" msgstr "Etiopien" #: src/hd-data.c:210 msgid "Finland" msgstr "Finland" #: src/hd-data.c:211 msgid "Fiji #" msgstr "Fiji " #: src/hd-data.c:212 msgid "Falkland Islands (Malvinas)" msgstr "Falklandsöarna (Malvinerna)" #: src/hd-data.c:213 msgid "Federated States of Micronesia" msgstr "Mikronesiska Federationen" #: src/hd-data.c:214 msgid "Faroes" msgstr "Färöarna" #: src/hd-data.c:216 msgid "Gabon #" msgstr "Gabon " #: src/hd-data.c:217 msgid "Great Britain/England and Wales" msgstr "Storbritannien/England och Wales" #: src/hd-data.c:218 msgid "Great Britain/Northern Ireland" msgstr "Storbritannien/Nordirland" #: src/hd-data.c:219 msgid "Great Britain/Scotland" msgstr "Storbritannien/Skottland" #: src/hd-data.c:220 msgid "Grenada" msgstr "Grenada" #: src/hd-data.c:221 msgid "Georgia" msgstr "Georgien" #: src/hd-data.c:222 msgid "French Guiana" msgstr "Franska Guyana" #: src/hd-data.c:223 msgid "Ghana" msgstr "Ghana" #: src/hd-data.c:224 msgid "Gibraltar" msgstr "Gibraltar" #: src/hd-data.c:225 msgid "Greenland" msgstr "Grönland" #: src/hd-data.c:226 msgid "Gambia" msgstr "Gambia" #: src/hd-data.c:227 msgid "Guinea" msgstr "Guinea" #: src/hd-data.c:228 msgid "Guadeloupe" msgstr "Guadeloupe" #: src/hd-data.c:229 msgid "Equatorial Guinea" msgstr "Ekvatorialguinea" #: src/hd-data.c:230 msgid "Greece" msgstr "Grekland" #: src/hd-data.c:231 msgid "South Georgia and South Sandwich Islands" msgstr "Sydgeorgien och södra Sandwichöarna" #: src/hd-data.c:232 msgid "Guatemala" msgstr "Guatemala" #: src/hd-data.c:233 msgid "Guam" msgstr "Guam" #: src/hd-data.c:234 msgid "Guinea-Bissau #" msgstr "Guinea-Bissau " #: src/hd-data.c:235 msgid "Guyana #" msgstr "Guyana " #: src/hd-data.c:236 msgid "Hong Kong" msgstr "Hong Kong" #: src/hd-data.c:237 msgid "Heard and Mc Donald Islands" msgstr "Heard- och McDonaldöarna" #: src/hd-data.c:238 msgid "Honduras" msgstr "Honduras" #: src/hd-data.c:239 msgid "Croatia" msgstr "Kroatien" #: src/hd-data.c:240 msgid "Haiti" msgstr "Haiti" #: src/hd-data.c:241 msgid "Hungary" msgstr "Ungern" #: src/hd-data.c:242 msgid "Indonesia #" msgstr "Indonesien " #: src/hd-data.c:243 msgid "Ireland" msgstr "Irland" #: src/hd-data.c:245 msgid "India #" msgstr "Indien " #: src/hd-data.c:246 msgid "Iraq" msgstr "Irak" #: src/hd-data.c:247 msgid "Islamic Republic of Iran" msgstr "Islamiska republiken Iran" #: src/hd-data.c:248 msgid "Iceland" msgstr "Island" #: src/hd-data.c:250 msgid "Jamaica" msgstr "Jamaica" #: src/hd-data.c:251 msgid "Jordan" msgstr "Jordanien" #: src/hd-data.c:253 msgid "Kenya #" msgstr "Kenya " #: src/hd-data.c:254 msgid "Kyrgyzstan" msgstr "Kirgizistan" #: src/hd-data.c:255 msgid "Cambodia #" msgstr "Kambodja " #: src/hd-data.c:256 msgid "Kiribati #" msgstr "Kiribati " #: src/hd-data.c:257 msgid "Comoros" msgstr "Komorerna" #: src/hd-data.c:258 msgid "St Kitts and Nevis" msgstr "St Kitts och Nevis" #: src/hd-data.c:259 msgid "Democratic People's Republic of Korea" msgstr "Demokratiska folkrepubliken Korea" #: src/hd-data.c:261 msgid "Kuwait" msgstr "Kuwait" #: src/hd-data.c:262 msgid "Cayman Islands" msgstr "Caymanöarna" #: src/hd-data.c:263 msgid "Kazakhstan" msgstr "Kazakstan" #: src/hd-data.c:264 msgid "Laos People's Democratic Republic #" msgstr "Demokratiska folkrepubliken Laos " #: src/hd-data.c:265 msgid "Lebanon" msgstr "Libanon" #: src/hd-data.c:266 msgid "St Lucia" msgstr "St Lucia" #: src/hd-data.c:267 msgid "Liechtenstein" msgstr "Liechtenstein" #: src/hd-data.c:268 msgid "Sri Lanka #" msgstr "Sri Lanka " #: src/hd-data.c:269 msgid "Liberia" msgstr "Liberia" #: src/hd-data.c:270 msgid "Lesotho" msgstr "Lesotho" #: src/hd-data.c:271 msgid "Lithuania" msgstr "Litauen" #: src/hd-data.c:272 msgid "Luxembourg" msgstr "Luxemburg" #: src/hd-data.c:273 msgid "Latvia" msgstr "Lettland" #: src/hd-data.c:274 msgid "Libyan Arab Jamahiriya (Libya)" msgstr "Libyska Arab Jamahiriya (Libyen)" #: src/hd-data.c:275 msgid "Morocco" msgstr "Marocko" #: src/hd-data.c:276 msgid "Monaco" msgstr "Monaco" #: src/hd-data.c:277 msgid "Republic of Moldova" msgstr "Republiken Moldavien" #: src/hd-data.c:278 msgid "Madagascar #" msgstr "Madagaskar " #: src/hd-data.c:279 msgid "Marshall Islands" msgstr "Marshallöarna" #: src/hd-data.c:280 msgid "Former Yugoslav Republic of Macedonia" msgstr "För detta jugoslavrepubliken Makedonien" #: src/hd-data.c:281 msgid "Mali" msgstr "Mali" #: src/hd-data.c:282 msgid "Mongolia #" msgstr "Mongoliet " #: src/hd-data.c:283 msgid "Macau" msgstr "Macao" #: src/hd-data.c:284 msgid "Northern Marian Islands (Saipan)" msgstr "Norra Marianeröarna (Saipan)" #: src/hd-data.c:285 msgid "Martinique" msgstr "Martinique" #: src/hd-data.c:286 msgid "Mauritania" msgstr "Mauretanien" #: src/hd-data.c:287 msgid "Montserrat" msgstr "Montserrat" #: src/hd-data.c:288 msgid "Malta" msgstr "Malta" #: src/hd-data.c:289 msgid "Mauritius" msgstr "Mauritius" #: src/hd-data.c:290 msgid "Maldives" msgstr "Maldiverna" #: src/hd-data.c:291 msgid "Malawi" msgstr "Malawi" #: src/hd-data.c:293 msgid "Malaysia #" msgstr "Malaysia " #: src/hd-data.c:294 msgid "Mozambique" msgstr "Moçambique" #: src/hd-data.c:295 msgid "Namibia" msgstr "Namibia" #: src/hd-data.c:296 msgid "New Caledonia" msgstr "Nya Kaledonien" #: src/hd-data.c:297 msgid "Niger" msgstr "Nigeria" #: src/hd-data.c:298 msgid "Norfolk Islands" msgstr "Norfolköarna " #: src/hd-data.c:299 msgid "Nigeria" msgstr "Nigeria" #: src/hd-data.c:300 msgid "Nicaragua" msgstr "Nicaragua" #: src/hd-data.c:302 msgid "Myanmar (Burma) #" msgstr "Myanmar (Burma) " #: src/hd-data.c:303 msgid "Norway" msgstr "Norge" #: src/hd-data.c:304 msgid "Nepal #" msgstr "Nepal " #: src/hd-data.c:305 msgid "Nauru" msgstr "Nauru" #: src/hd-data.c:306 msgid "Niue" msgstr "Niue" #: src/hd-data.c:308 msgid "Oman" msgstr "Oman" #: src/hd-data.c:309 msgid "Panama" msgstr "Panama" #: src/hd-data.c:310 msgid "Peru" msgstr "Peru" #: src/hd-data.c:311 msgid "French Polynesia" msgstr "Polynesien" #: src/hd-data.c:312 msgid "Papua New Guinea" msgstr "Papua Nya Guinea" #: src/hd-data.c:313 msgid "Philippines" msgstr "Filippinerna" #: src/hd-data.c:314 msgid "Pakistan" msgstr "Pakistan" #: src/hd-data.c:315 msgid "Poland" msgstr "Polen" #: src/hd-data.c:316 msgid "Saint-Pierre and Miquelon" msgstr "Saint-Pierre och Miquelon" #: src/hd-data.c:317 msgid "Pitcairn" msgstr "Pitcairn" #: src/hd-data.c:318 msgid "Puerto Rico" msgstr "Puerto Rico" #: src/hd-data.c:320 msgid "Palau" msgstr "Palau" #: src/hd-data.c:321 msgid "Paraguay" msgstr "Paraguay" #: src/hd-data.c:322 msgid "Qatar" msgstr "Qatar" #: src/hd-data.c:323 msgid "Réunion" msgstr "Réunion" #: src/hd-data.c:324 msgid "Romania" msgstr "Rumänien" #: src/hd-data.c:326 msgid "Rwanda" msgstr "Rwanda" #: src/hd-data.c:327 msgid "Saudi Arabia" msgstr "Saudiarabien" #: src/hd-data.c:328 msgid "Solomon Islands" msgstr "Solomonöarna" #: src/hd-data.c:329 msgid "Seychellen" msgstr "Seychellerna" #: src/hd-data.c:330 msgid "Sudan" msgstr "Sudan" #: src/hd-data.c:331 msgid "Sweden" msgstr "Sverige" #: src/hd-data.c:332 msgid "Singapore #" msgstr "Singapore " #: src/hd-data.c:333 msgid "St Helena" msgstr "St Helena" #: src/hd-data.c:334 msgid "Slovenia" msgstr "Slovenien" #: src/hd-data.c:335 msgid "Svalbard and Jan Mayen Islands" msgstr "Svalbard och Jan Mayenöarna" #: src/hd-data.c:336 msgid "Slovakia" msgstr "Slovakien" #: src/hd-data.c:337 msgid "Sierra Leone" msgstr "Sierra Leone" #: src/hd-data.c:338 msgid "San Marino" msgstr "San Marino" #: src/hd-data.c:339 msgid "Senegal" msgstr "Senegal" #: src/hd-data.c:340 msgid "Somalia" msgstr "Somalia" #: src/hd-data.c:341 msgid "Suriname #" msgstr "Surinam " #: src/hd-data.c:342 msgid "Sao Tomé and Principe" msgstr "Sao Tomé och Principe" #: src/hd-data.c:343 msgid "El Salvador" msgstr "El Salvador" #: src/hd-data.c:344 msgid "Syrian Arab Republic (Syria)" msgstr "Syriska Arabrepubliken (Syrien)" #: src/hd-data.c:345 msgid "Swaziland" msgstr "Swaziland" #: src/hd-data.c:346 msgid "Turks and Caicos Islands" msgstr "Turks- och Caicosöarna" #: src/hd-data.c:347 msgid "Chad" msgstr "Tchad" #: src/hd-data.c:348 msgid "Togo #" msgstr "Togo " #: src/hd-data.c:349 msgid "Thailand #" msgstr "Thailand " #: src/hd-data.c:350 msgid "Tajikistan" msgstr "Tadzjikistan" #: src/hd-data.c:351 msgid "Tokelau" msgstr "Tokelau" #: src/hd-data.c:352 msgid "Turkmenistan" msgstr "Turkmenistan" #: src/hd-data.c:353 msgid "Tunisia" msgstr "Tunisien" #: src/hd-data.c:354 msgid "Tonga" msgstr "Tonga" #: src/hd-data.c:355 msgid "Turkey" msgstr "Turkiet" #: src/hd-data.c:356 msgid "Trinidad and Tobago #" msgstr "Trinidad och Tobago " #: src/hd-data.c:357 msgid "Tuvalu" msgstr "Tuvalu" #: src/hd-data.c:358 msgid "Taiwan" msgstr "Taiwan" #: src/hd-data.c:359 msgid "Tanzania" msgstr "Tanzania" #: src/hd-data.c:360 msgid "Ukraine" msgstr "Ukraina" #: src/hd-data.c:361 msgid "Uganda" msgstr "Uganda" #: src/hd-data.c:362 msgid "United States/Alaska" msgstr "USA/Alaska" #: src/hd-data.c:363 msgid "United States/Alabama" msgstr "USA/Alabama" #: src/hd-data.c:364 msgid "United States/Arkansas" msgstr "USA/Arkansas" #: src/hd-data.c:365 msgid "United States/Arizona" msgstr "USA/Arizona" #: src/hd-data.c:366 msgid "United States/California" msgstr "USA/Kalifornien" #: src/hd-data.c:367 msgid "United States/Colorado" msgstr "USA/Colorado" #: src/hd-data.c:368 msgid "United States/Connecticut" msgstr "USA/Connecticut" #: src/hd-data.c:369 msgid "United States/District of Columbia" msgstr "USA/District of Columbia" #: src/hd-data.c:370 msgid "United States/Delaware" msgstr "USA/Delaware" #: src/hd-data.c:371 msgid "United States/Florida" msgstr "USA/Florida" #: src/hd-data.c:372 msgid "United States/Georgia" msgstr "USA/Georgia" #: src/hd-data.c:373 msgid "United States/Hawaii" msgstr "USA/Hawaii" #: src/hd-data.c:374 msgid "United States/Iowa" msgstr "USA/Iowa" #: src/hd-data.c:375 msgid "United States/Idaho" msgstr "USA/Idaho" #: src/hd-data.c:376 msgid "United States/Illinois" msgstr "USA/Illinois" #: src/hd-data.c:377 msgid "United States/Indiana" msgstr "USA/Indiana" #: src/hd-data.c:378 msgid "United States/Kansas" msgstr "USA/Kansas" #: src/hd-data.c:379 msgid "United States/Kentucky" msgstr "USA/Kentucky" #: src/hd-data.c:380 msgid "United States/Louisiana" msgstr "USA/Lousiana" #: src/hd-data.c:381 msgid "United States/Massachusetts" msgstr "USA/Massachusetts" #: src/hd-data.c:382 msgid "United States/Maryland" msgstr "USA/Maryland" #: src/hd-data.c:383 msgid "United States/Maine" msgstr "USA/Maine" #: src/hd-data.c:384 msgid "United States/Michigan" msgstr "USA/Michigan" #: src/hd-data.c:385 msgid "United States/Minnesota" msgstr "USA/Minnesota" #: src/hd-data.c:386 msgid "United States/Missouri" msgstr "USA/Missouri" #: src/hd-data.c:387 msgid "United States/Mississippi" msgstr "USA/Mississippi" #: src/hd-data.c:388 msgid "United States/Montana" msgstr "USA/Montana" #: src/hd-data.c:389 msgid "United States/North Carolina" msgstr "USA/North Carolina" #: src/hd-data.c:390 msgid "United States/North Dakota" msgstr "USA/North Dakota" #: src/hd-data.c:391 msgid "United States/Nebraska" msgstr "USA/Nebraska" #: src/hd-data.c:392 msgid "United States/New Hampshire" msgstr "USA/New Hampshire" #: src/hd-data.c:393 msgid "United States/New Jersey" msgstr "USA/New Jersey" #: src/hd-data.c:394 msgid "United States/New Mexico" msgstr "USA/New Mexico" #: src/hd-data.c:395 msgid "United States/Nevada" msgstr "USA/Nevada" #: src/hd-data.c:396 msgid "United States/New York" msgstr "USA/New York" #: src/hd-data.c:397 msgid "United States/Ohio" msgstr "USA/Ohio" #: src/hd-data.c:398 msgid "United States/Oklahoma" msgstr "USA/Oklahoma" #: src/hd-data.c:399 msgid "United States/Oregon" msgstr "USA/Oregon" #: src/hd-data.c:400 msgid "United States/Pennsylvania" msgstr "USA/Pennsylvania" #: src/hd-data.c:401 msgid "United States/Rhode Island" msgstr "USA/Rhode Island" #: src/hd-data.c:402 msgid "United States/South Carolina" msgstr "USA/South Carolina" #: src/hd-data.c:403 msgid "United States/South Dakota" msgstr "USA/South Dakota" #: src/hd-data.c:404 msgid "United States/Tennessee" msgstr "USA/Tennessee" #: src/hd-data.c:405 msgid "United States/Texas" msgstr "USA/Texas" #: src/hd-data.c:406 msgid "United States/Utah" msgstr "USA/Utah" #: src/hd-data.c:407 msgid "United States/Virginia" msgstr "USA/Virginia" #: src/hd-data.c:408 msgid "United States/Vermont" msgstr "USA/Vermont" #: src/hd-data.c:409 msgid "United States/Washington" msgstr "USA/Washington" #: src/hd-data.c:410 msgid "United States/Wisconsin" msgstr "USA/Wisconsin" #: src/hd-data.c:411 msgid "United States/West Virginia" msgstr "USA/West Virginia" #: src/hd-data.c:412 msgid "United States/Wyoming" msgstr "USA/Wyoming" #: src/hd-data.c:413 msgid "Uruguay" msgstr "Uruguay" #: src/hd-data.c:414 msgid "Uzbekistan" msgstr "Uzbekistan" #: src/hd-data.c:415 msgid "St Vincent and Grenadines" msgstr "St Vincent och Grenadinerna" #: src/hd-data.c:416 msgid "Venezuela" msgstr "Venezuela" #: src/hd-data.c:417 msgid "British Virgin Islands" msgstr "Jungfruöarna" #: src/hd-data.c:418 msgid "U.S. Virgin Islands" msgstr "Jungfruöarna" #: src/hd-data.c:419 msgid "Viet Nam" msgstr "Vietnam" #: src/hd-data.c:420 msgid "Vanuatu" msgstr "Vanuatu" #: src/hd-data.c:421 msgid "Wallis and Futuna Islands" msgstr "Wallis- och Futunaöarna" #: src/hd-data.c:422 msgid "Samoa" msgstr "Samoa" #: src/hd-data.c:423 msgid "Yemen" msgstr "Jemen" #: src/hd-data.c:424 msgid "Mayotte" msgstr "Mayotte" #: src/hd-data.c:425 msgid "Serbia and Montenegro" msgstr "Serbien och Montenegro" #: src/hd-data.c:426 msgid "South Africa" msgstr "Sydafrika" #: src/hd-data.c:427 msgid "Zambia" msgstr "Zambia" #: src/hd-data.c:428 msgid "Zimbabwe" msgstr "Zimbabwe" #: src/hd-data.c:458 msgid "1st Advent" msgstr "1:a söndagen i advent" #: src/hd-data.c:459 msgid "1st Sunday in Lent" msgstr "1:a söndagen i fastan" #: src/hd-data.c:460 msgid "2nd Advent" msgstr "2:a söndagen i advent" #: src/hd-data.c:461 msgid "2nd Sunday in Lent" msgstr "2:a söndagen i fastan" #: src/hd-data.c:462 msgid "3rd Advent" msgstr "3:e söndagen i advent" #: src/hd-data.c:463 msgid "3rd Sunday in Lent" msgstr "3:e söndagen i fastan" #: src/hd-data.c:464 msgid "4th Advent" msgstr "4:e söndagen i advent" #: src/hd-data.c:465 msgid "4th Sunday in Lent" msgstr "4:e söndagen i fastan" #: src/hd-data.c:466 msgid "7-5-3 Festival" msgstr "7-5-3-festivalen" #: src/hd-data.c:467 msgid "Aborigines Day" msgstr "Aboriginerdagen" #: src/hd-data.c:468 msgid "All Fool's Day" msgstr "Första april" #: src/hd-data.c:469 msgid "All Saints' Day" msgstr "Allhelgonadagen" #: src/hd-data.c:470 msgid "All Souls' Day" msgstr "Alla själars dag" #: src/hd-data.c:471 msgid "Alphabet Day" msgstr "Alfabetdagen" #: src/hd-data.c:472 msgid "Anniversary of Auckland" msgstr "Aucklands jubileum" #: src/hd-data.c:473 msgid "Anniversary of Canterbury North" msgstr "Canterbury Norths jubileum" #: src/hd-data.c:474 msgid "Anniversary of Canterbury South" msgstr "Canterbury Souths jubileum" #: src/hd-data.c:475 msgid "Anniversary of Chatham Islands" msgstr "Chathamöarnas jubileum" #: src/hd-data.c:476 msgid "Anniversary of Hawkes' Bay" msgstr "Hawkesbuktens jubileum" #: src/hd-data.c:477 msgid "Anniversary of Marlborough" msgstr "Marlboroughs jubileum" #: src/hd-data.c:478 msgid "Anniversary of Nelson" msgstr "Nelsons jubileum" #: src/hd-data.c:479 msgid "Anniversary of Otago" msgstr "Otagos jubileum" #: src/hd-data.c:480 msgid "Anniversary of Southland" msgstr "Southlands jubileum" #: src/hd-data.c:481 msgid "Anniversary of Taranaki" msgstr "Taranakis jubileum" #: src/hd-data.c:482 msgid "Anniversary of Wellington" msgstr "Wellingtons jubileum" #: src/hd-data.c:483 msgid "Anniversary of Westland" msgstr "Westlands jubileum" #: src/hd-data.c:484 msgid "Anzac Day" msgstr "Anzacdagen" #: src/hd-data.c:485 msgid "Arbor Day" msgstr "Arbordagen" #: src/hd-data.c:486 msgid "Armed Forces Day" msgstr "Militärdagen" #: src/hd-data.c:487 msgid "Armistice Day" msgstr "VapenstillestÃ¥ndsdagen" #: src/hd-data.c:488 msgid "Ash Monday" msgstr "BlÃ¥mÃ¥ndagen" #: src/hd-data.c:489 msgid "Ash Wednesday" msgstr "Askonsdagen" #: src/hd-data.c:490 msgid "Ascension of Abdu'l-Baha" msgstr "Abdu'l-Bahas uppstigning" #: src/hd-data.c:491 msgid "Ascension of Baha'u'llah" msgstr "Baha'u'llahs uppstigning" #: src/hd-data.c:492 msgid "Birth of Baha'u'llah" msgstr "Baha'u'llahs födelse" #: src/hd-data.c:493 msgid "Birth of the Bab" msgstr "Babens födelse" #: src/hd-data.c:494 msgid "Day of the Covenant" msgstr "Avtalsdagen" #: src/hd-data.c:495 msgid "Declaration of the Bab" msgstr "Deklarationen av Baben" #: src/hd-data.c:496 msgid "First Day of Ridvan" msgstr "Första dagen i Ridvan" #: src/hd-data.c:497 msgid "Martyrdom of the Bab" msgstr "Babs martyrskap" #: src/hd-data.c:498 msgid "Bahá'i New Year's Day" msgstr "Bahá'is nyÃ¥rsdag" #: src/hd-data.c:499 msgid "Ninth Day of Ridvan" msgstr "Nionde dagen i Ridvan" #: src/hd-data.c:500 msgid "Twelfth Day of Ridvan" msgstr "Tolfte dagen i Ridvan" #: src/hd-data.c:501 msgid "Bank Holiday" msgstr "Bankhelgen" #: src/hd-data.c:502 msgid "Basque National Day" msgstr "Baskiska nationaldagen" #: src/hd-data.c:503 msgid "Battle of Boyne" msgstr "Slaget vid Boyne" #: src/hd-data.c:504 msgid "Battle of Puebla" msgstr "Slaget vid Puebla" #: src/hd-data.c:505 msgid "Beginning of Financial Year" msgstr "FinansÃ¥rets början" #: src/hd-data.c:506 msgid "Benito Juárez Day" msgstr "Benito Juárez dag" #: src/hd-data.c:507 msgid "Bodhidharma's Birthday" msgstr "Bodhidharmas födelsedag" #: src/hd-data.c:508 msgid "Bosses' Day" msgstr "Chefernas dag" #: src/hd-data.c:509 msgid "Boxing Day" msgstr "Annandag jul" #: src/hd-data.c:510 msgid "Bringing Home the Herds Day" msgstr "Hjordhemtagningsdagen" #: src/hd-data.c:511 msgid "Bringing in the Harvest Day" msgstr "Skördehämtningsdagen" #: src/hd-data.c:512 msgid "Buddha's Birthday" msgstr "Buddhas födelsedag" #: src/hd-data.c:513 msgid "Burns Night" msgstr "Burns natt" #: src/hd-data.c:514 msgid "Camoes Day" msgstr "Camoes dag" #: src/hd-data.c:515 msgid "Carnival" msgstr "Karneval" #: src/hd-data.c:516 msgid "Beltane" msgstr "Beltane" #: src/hd-data.c:517 msgid "Imbolg" msgstr "Imbolg" #: src/hd-data.c:518 msgid "Lughnasa" msgstr "Lughnasa" #: src/hd-data.c:519 msgid "Samhain/Celtic New Year's Day" msgstr "Samhain/Keltiska nyÃ¥rsdagen" #: src/hd-data.c:520 msgid "Children's Day" msgstr "Barnens dag" #: src/hd-data.c:521 msgid "Cycle" msgstr "Cykel" #: src/hd-data.c:522 msgid "Chinese New Year's Day" msgstr "Kinesiska nyÃ¥rsdagen" #: src/hd-data.c:523 msgid "Chinese New Year's Eve" msgstr "Kinesiska nyÃ¥rsaftonen" #: src/hd-data.c:524 msgid "Christmas Day" msgstr "Juldagen" #: src/hd-data.c:525 msgid "Christmas Eve" msgstr "Julafton" #: src/hd-data.c:526 msgid "Christ's Ascension Day" msgstr "Kristi himmelsfärds dag" #: src/hd-data.c:527 msgid "Chrysanthenum Day" msgstr "Krysantemumdagen" #: src/hd-data.c:528 msgid "Citizenship Day" msgstr "Medborgarskapsdagen" #: src/hd-data.c:529 msgid "Civic Holiday" msgstr "Allmän helg" #: src/hd-data.c:530 msgid "Columbus Day" msgstr "Columbus dag" #: src/hd-data.c:531 msgid "Coming of Age Day" msgstr "Ã…ldersnalkningsdagen" #: src/hd-data.c:532 msgid "Confucius' Birthday" msgstr "Confucius födelsedag" #: src/hd-data.c:533 msgid "Constitution Anniversary" msgstr "Författningsjubileet" #: src/hd-data.c:534 msgid "Coptic New Year's Day" msgstr "Koptiska nyÃ¥rsdagen" #: src/hd-data.c:535 msgid "Cosmonauts' Day" msgstr "Kosmonautdagen" #: src/hd-data.c:536 msgid "Cross Raising Day" msgstr "Korsresningsdagen" #: src/hd-data.c:537 msgid "Culture Day" msgstr "Kulturdagen" #: src/hd-data.c:538 msgid "Day after Mid-Autumn Festival" msgstr "Dagen efter midhöstsfestivalen" #: src/hd-data.c:539 msgid "Day after Tomb-Sweeping Day" msgstr "Dagen efter gravstädningsdagen" #: src/hd-data.c:540 msgid "Day of Andalucia" msgstr "Andalusiendagen" #: src/hd-data.c:541 msgid "Day of Catalonia" msgstr "Kataloniendagen" #: src/hd-data.c:542 msgid "Day of Galicia" msgstr "Galiciendagen" #: src/hd-data.c:543 msgid "Day of Prayer and Repentance" msgstr "Böne- och Ã¥ngerdagen" #: src/hd-data.c:544 msgid "Day of Reconciliation" msgstr "Försoningsdagen" #: src/hd-data.c:545 msgid "Defenders of Motherland Day" msgstr "Faderslandets försvarares dag" #: src/hd-data.c:546 msgid "Double-9 Day" msgstr "Dubbel-9-dagen" #: src/hd-data.c:547 msgid "Dragon Boat Festival" msgstr "DrakbÃ¥tsfestival" #: src/hd-data.c:548 msgid "Dynasty Day" msgstr "Dynastidagen" #: src/hd-data.c:549 msgid "Easter Monday" msgstr "Annandag pÃ¥sk" #: src/hd-data.c:550 msgid "Easter Sunday" msgstr "PÃ¥skdagen" #: src/hd-data.c:551 msgid "Lunar Eclipse" msgstr "MÃ¥nförmörkelse" #: src/hd-data.c:552 msgid "Solar Eclipse" msgstr "Solförmörkelse" #: src/hd-data.c:553 msgid "Annular" msgstr "Ringformig" #: src/hd-data.c:554 msgid "Partial" msgstr "Delvis" #: src/hd-data.c:555 msgid "Penumbral" msgstr "Halvskuggad" #: src/hd-data.c:556 msgid "Total" msgstr "Totalt" #: src/hd-data.c:557 msgid "Eindhoven's Liberation" msgstr "Eindhovens befrielse" #: src/hd-data.c:558 msgid "Election Day" msgstr "Valdagen" #: src/hd-data.c:559 msgid "Emperor's Birthday" msgstr "Kejsarens födelsedag" #: src/hd-data.c:560 msgid "Equinox Day" msgstr "Dagjämning" #: src/hd-data.c:561 msgid "Ethiopic New Year's Day" msgstr "Etiopiska nyÃ¥rsdagen" #: src/hd-data.c:562 msgid "Father's Day" msgstr "Fars dag" #: src/hd-data.c:563 msgid "Feast of Corpus Christi" msgstr "Kristi kropps och blods högtid" #: src/hd-data.c:564 msgid "Feast of Fortune" msgstr "Rikedomshögtiden" #: src/hd-data.c:565 msgid "Feast of Heart Jesus" msgstr "Kristi hjärtas högtid" #: src/hd-data.c:566 msgid "Festival of Lanterns" msgstr "Lanternfestivalen" #: src/hd-data.c:567 msgid "Festival of Sadeh" msgstr "Sadeh-festivalen" #: src/hd-data.c:568 msgid "Flag Day" msgstr "Flaggans dag" #: src/hd-data.c:569 msgid "Flemish Culture Day" msgstr "Flamländska kulturdagen" #: src/hd-data.c:570 msgid "Founding of the Communist Party" msgstr "Grundandet av kommunistpartiet" #: src/hd-data.c:571 msgid "French Culture Day" msgstr "Franska kulturdagen" #: src/hd-data.c:572 msgid "French Revolutionary" msgstr "Franska revolutionen" #: src/hd-data.c:573 msgid "Friendship Day" msgstr "Vänskapsdagen" #: src/hd-data.c:574 msgid "German Unity Day" msgstr "Dagen för Tysklands enande" #: src/hd-data.c:575 msgid "Good Friday" msgstr "LÃ¥ngfredagen" #: src/hd-data.c:576 msgid "Good Saturday/Easter Eve" msgstr "PÃ¥skafton" #: src/hd-data.c:577 msgid "Grandparents' Day" msgstr "Far- och morföräldrars dag" #: src/hd-data.c:578 msgid "Greenery Day" msgstr "Grönskedagen" #: src/hd-data.c:579 msgid "Grotto Day" msgstr "Grottodagen" #: src/hd-data.c:580 msgid "Groundhog Day" msgstr "Murmeldjursdagen" #: src/hd-data.c:581 msgid "Guadalupe Virgin's Day" msgstr "Guadalupe Virgins dag" #: src/hd-data.c:582 msgid "Guy Fawke's Day" msgstr "Guy Fawkes dag" #: src/hd-data.c:583 msgid "Halloween" msgstr "Allhelgonaafton" #: src/hd-data.c:584 msgid "Health and Sport's Day" msgstr "Hälso- och sportdagen" #: src/hd-data.c:585 msgid "Hannukah/Festival of Lights" msgstr "Hannukah/Ljusfestivalen" #: src/hd-data.c:586 msgid "Lag B'Omer" msgstr "Lag B'Omer" #: src/hd-data.c:587 msgid "Pesach/Passover" msgstr "Pesach/PÃ¥sk" #: src/hd-data.c:588 msgid "Purim/Feast of Lots" msgstr "Purim/Lotshögtiden" #: src/hd-data.c:589 msgid "Rosh Hashana/New Year's Day" msgstr "Rosh Hashana/NyÃ¥rsdagen" #: src/hd-data.c:590 msgid "Shavuot/Giving of the Torah" msgstr "Shavuot/Överräckningen av Torah" #: src/hd-data.c:591 msgid "Shushan Purim" msgstr "Shushan Purim" #: src/hd-data.c:592 msgid "Simchat Torah" msgstr "Simchat Torah" #: src/hd-data.c:593 msgid "Sukkot/Feast of Tabernacles" msgstr "Sukkot/Tabernakelhögtiden" #: src/hd-data.c:594 msgid "Tisha B'Av/Fasting Day" msgstr "Tisha B'Av/Fastedagen" #: src/hd-data.c:595 msgid "Tu B'Shevat/New Year of Trees" msgstr "Tu B'Shevat/Nytt Ã¥r med träd" #: src/hd-data.c:596 msgid "Yom Hashoah/Holocaust Memorial" msgstr "Yom Hashoah/Förintelseminnet" #: src/hd-data.c:597 msgid "Yom Hazikaron/Soldiers Memorial" msgstr "Yom Hazikaron/Soldatminnet" #: src/hd-data.c:598 msgid "Yom Ha Azmaut/Independence Day" msgstr "Yom Ha Azmaut/Självständighetsdagen" #: src/hd-data.c:599 msgid "Yom Kippur/Atonement Day" msgstr "Yom Kippur/Försoningsdagen" #: src/hd-data.c:600 msgid "Yom Yerushalayim/Jerusalem Day" msgstr "Yom Yerushalayim/Jerusalemdagen" #: src/hd-data.c:601 msgid "Holy Innocent's Day" msgstr "Menlösa barns dag" #: src/hd-data.c:602 msgid "Holy Trinity" msgstr "Heliga trefaldigheten" #: src/hd-data.c:603 msgid "Huravee Day" msgstr "Huraveedagen" #: src/hd-data.c:604 msgid "Independence Day" msgstr "Självständighetsdagen" #: src/hd-data.c:605 msgid "Independence Movement Day" msgstr "Självständighetsrörelsens dag" #: src/hd-data.c:606 msgid "Independence Proclamation" msgstr "Självständighetsförklaringen" #: src/hd-data.c:607 msgid "Indian New Year's Day" msgstr "Indiska nyÃ¥rsdagen" #: src/hd-data.c:608 msgid "Aga Khan's Birthday" msgstr "Aga Khans födelsedag" #: src/hd-data.c:609 msgid "Ashura'" msgstr "Ashura'" #: src/hd-data.c:610 msgid "Eid-al-Adha" msgstr "Eid-al-Adha" #: src/hd-data.c:611 msgid "Eid-al-Fitr" msgstr "Eid-al-Fitr" #: src/hd-data.c:612 msgid "Eid-i-Milad-un-Nabi" msgstr "Eid-i-Milad-un-Nabi" #: src/hd-data.c:613 msgid "Ghadir" msgstr "Ghadir" #: src/hd-data.c:614 msgid "Imamat Day" msgstr "Imamatdagen" #: src/hd-data.c:615 msgid "Islamic New Year's Day" msgstr "Islamiska nyÃ¥rsdagen" #: src/hd-data.c:616 msgid "Nuzul-al-Qur'an" msgstr "Nuzul-al-Qur'an" #: src/hd-data.c:617 msgid "Quds Day" msgstr "Quds dag" #: src/hd-data.c:618 msgid "Ramadan" msgstr "Ramadan" #: src/hd-data.c:619 msgid "Shab-e-Bara't" msgstr "Shab-e-Bara't" #: src/hd-data.c:620 msgid "Shab-e-Mi'raj" msgstr "Shab-e-Mi'raj" #: src/hd-data.c:621 msgid "Shab-e Qadr" msgstr "Shab-e Qadr" #: src/hd-data.c:622 msgid "Waqf-al-Arafat" msgstr "Waqf-al-Arafat" #: src/hd-data.c:623 msgid "Japanese New Year's Day" msgstr "Japanska nyÃ¥rsdagen" #: src/hd-data.c:624 msgid "Japanese New Year's Eve" msgstr "Japanska nyÃ¥rsaftonen" #: src/hd-data.c:625 msgid "Jesus' Circumcision" msgstr "Kristi omskärelse" #: src/hd-data.c:626 msgid "Kwanzaa" msgstr "Kwanzaa" #: src/hd-data.c:627 msgid "Labour Day" msgstr "Första maj" #: src/hd-data.c:628 msgid "Labour Thanksgiving Day" msgstr "Arbetartacksägelsedagen" #: src/hd-data.c:629 msgid "Lao Tze's Birthday" msgstr "Lao Tzes födelsedag" #: src/hd-data.c:630 msgid "Liberation Day" msgstr "Befrielsedagen" #: src/hd-data.c:631 msgid "Marine Day" msgstr "MarinkÃ¥rsdagen" #: src/hd-data.c:632 msgid "Martinimas" msgstr "MÃ¥rtensmässa" #: src/hd-data.c:633 msgid "Martin L. King's Day" msgstr "Martin L. Kings dag" #: src/hd-data.c:634 msgid "Martyrs' Day" msgstr "Martyrernas dag" #: src/hd-data.c:635 msgid "Mary's Annunciation Day" msgstr "Marie bebÃ¥delsedag" #: src/hd-data.c:636 msgid "Mary's Ascension Day" msgstr "Marie himmelsfärds dag" #: src/hd-data.c:637 msgid "Mary's Candlemas" msgstr "Kyndelsmässan" #: src/hd-data.c:638 msgid "Mary's Expectation" msgstr "Marie förväntning" #: src/hd-data.c:639 msgid "Mary's Immaculate Conception" msgstr "Marie obefläckade avelse" #: src/hd-data.c:640 msgid "Mary's Maternity" msgstr "Marie moderskap" #: src/hd-data.c:641 msgid "Mary's Name" msgstr "Marie namn" #: src/hd-data.c:642 msgid "Mary's Nativity" msgstr "Marie födelse" #: src/hd-data.c:643 msgid "Mary's Sacrifice" msgstr "Marie offer" #: src/hd-data.c:644 msgid "Mary's Visitation" msgstr "Marie hemvist" #: src/hd-data.c:645 msgid "Mary - Blessed Virgin" msgstr "Marie - Välsignad jungfru" #: src/hd-data.c:646 msgid "Maundy Thursday" msgstr "Skärtorsdagen" #: src/hd-data.c:647 msgid "May Day" msgstr "Majdagen" #: src/hd-data.c:648 msgid "St John's/Midsummer Day" msgstr "S:t Johns dag/Midsommardagen" #: src/hd-data.c:649 msgid "Mid-Autumn Festival" msgstr "Midhöstfestivalen" #: src/hd-data.c:650 msgid "Mid-Spring Festival" msgstr "MidvÃ¥rsfestivalen" #: src/hd-data.c:651 msgid "Mid-Year Festival" msgstr "MidÃ¥rsfestivalen" #: src/hd-data.c:652 msgid "Waxing Half Moon" msgstr "Växande halvmÃ¥ne" #: src/hd-data.c:653 msgid "Full Moon" msgstr "FullmÃ¥ne" #: src/hd-data.c:654 msgid "Waning Half Moon" msgstr "Minskande halvmÃ¥ne" #: src/hd-data.c:655 msgid "New Moon" msgstr "NymÃ¥ne" #: src/hd-data.c:656 msgid "Mother's Day" msgstr "Mors dag" #: src/hd-data.c:657 msgid "Mother in Law's Day" msgstr "Svärmorsdagen" #: src/hd-data.c:658 msgid "Music Water Banquet" msgstr "Musikvattenbanketten" #: src/hd-data.c:659 msgid "National Foundation Day" msgstr "Nationens grundelsedag" #: src/hd-data.c:660 msgid "National Holiday" msgstr "Nationell helgdag" #: src/hd-data.c:661 msgid "National Mourning Day" msgstr "Nationell sorgedag" #: src/hd-data.c:662 msgid "New Year's Day" msgstr "NyÃ¥rsdagen" #: src/hd-data.c:663 msgid "Nurses' Day" msgstr "Sjuksysterdagen" #: src/hd-data.c:664 msgid "Old-Armenic New Year" msgstr "Gammalarenska nyÃ¥ret" #: src/hd-data.c:665 msgid "Old-Egyptic New Year" msgstr "Gammalegyptiska nyÃ¥ret" #: src/hd-data.c:666 msgid "Orthodox New Year's Day" msgstr "Ortodoxa nyÃ¥rsdagen" #: src/hd-data.c:667 msgid "Our Lady Aparecida Day" msgstr "VÃ¥r fru Aparecidas dag" #: src/hd-data.c:668 msgid "Palm Sunday" msgstr "Palmsöndagen" #: src/hd-data.c:669 msgid "Parent's Day" msgstr "Förälderdagen" #: src/hd-data.c:670 msgid "Passion Sunday" msgstr "5:e söndagen i fastan" #: src/hd-data.c:671 msgid "Peace Festival" msgstr "Fredsfestivalen" #: src/hd-data.c:672 msgid "Peach Festival" msgstr "Persikofestivalen" #: src/hd-data.c:673 msgid "Whitsunday/Pentecost" msgstr "Pingstdagen" #: src/hd-data.c:674 msgid "Noruz/Persian New Year's Day" msgstr "Noruz/Persiska nyÃ¥rsdagen" #: src/hd-data.c:675 msgid "Prayer Day" msgstr "Bönedagen" #: src/hd-data.c:676 msgid "Presidential Inauguration" msgstr "Presidentinstallation" #: src/hd-data.c:677 msgid "Presidents' Day" msgstr "Presidentens dag" #: src/hd-data.c:678 msgid "Presidents' Inform" msgstr "Presidentens information" #: src/hd-data.c:679 msgid "President Lincoln's Birthday" msgstr "President Lincolns födelsedag" #: src/hd-data.c:680 msgid "Princess' Day" msgstr "Prinsessans dag" #: src/hd-data.c:681 msgid "Quinquagesima Sunday" msgstr "Fastlagssöndagen" #: src/hd-data.c:682 msgid "Reformation Day" msgstr "Reformationsdagen" #: src/hd-data.c:683 msgid "Remembrance/Memorial Day" msgstr "Minnesdagen" #: src/hd-data.c:684 msgid "Republic Day" msgstr "Republikens dag" #: src/hd-data.c:685 msgid "Respect for the Aged Day" msgstr "Äldrevördnadsdagen" #: src/hd-data.c:686 msgid "Revolution Day" msgstr "Revolutionsdagen" #: src/hd-data.c:687 msgid "Rio de Janeiro Anniversary" msgstr "Rio de Janeiros jubileum" #: src/hd-data.c:688 msgid "Rogation Sunday" msgstr "Bönsöndagen" #: src/hd-data.c:689 msgid "Sao Paulo Anniversary" msgstr "São Paulos jubileum" #: src/hd-data.c:690 msgid "Sapporo Snow Festival" msgstr "Sapporos snöfestival" #: src/hd-data.c:691 msgid "Season Change/Bean-Festival" msgstr "Säsongsändrings-/bönfestivalen" #: src/hd-data.c:692 msgid "Septuagesima Sunday" msgstr "Septuagesima" #: src/hd-data.c:693 msgid "Seven Sleepers Day" msgstr "Sjusovarens dag" #: src/hd-data.c:694 msgid "Sexagesima Sunday" msgstr "Sexagesima" #: src/hd-data.c:695 msgid "Shrove Tuesday/Mardi Gras" msgstr "Fettisdagen" #: src/hd-data.c:696 msgid "Solstice Day" msgstr "SolstÃ¥ndsdagen" #: src/hd-data.c:697 msgid "Soot-Sweeping Day" msgstr "Sotstädningsdagen" #: src/hd-data.c:698 msgid "Spring Festival" msgstr "VÃ¥rfestivalen" #: src/hd-data.c:699 msgid "Start of common month" msgstr "Start pÃ¥ gemensam mÃ¥nad" #: src/hd-data.c:700 msgid "Start of leap month" msgstr "Start pÃ¥ skottmÃ¥nad" #: src/hd-data.c:701 msgid "Star Festival" msgstr "Stjärnfestivalen" #: src/hd-data.c:702 msgid "St Andrew's Day" msgstr "S:t Andrews dag" #: src/hd-data.c:703 msgid "St Bartholomew Day" msgstr "S:t Bartolomeus dag" #: src/hd-data.c:704 msgid "St Berchtold's Day" msgstr "S:t Berchtolds dag" #: src/hd-data.c:705 msgid "St David's Day" msgstr "S:t Davids dag" #: src/hd-data.c:706 msgid "St Edward's Day" msgstr "S:t Edwards dag" #: src/hd-data.c:707 msgid "St George's Day" msgstr "S:t Görans dag" #: src/hd-data.c:708 msgid "St James' Day" msgstr "S:t James dag" #: src/hd-data.c:709 msgid "St Joseph's Day" msgstr "S:t Josefs dag" #: src/hd-data.c:710 msgid "St Laurentius Day" msgstr "S:t Laurentius dag" #: src/hd-data.c:711 msgid "St Nicholas' Day" msgstr "S:t Nikolaus dag" #: src/hd-data.c:712 msgid "St Nicholas' Eve" msgstr "S:t Nikolaus afton" #: src/hd-data.c:713 msgid "St Patrick's Day" msgstr "S:t Patricks dag" #: src/hd-data.c:714 msgid "St Peter and St Paul" msgstr "S:t Peter och S:t Paul" #: src/hd-data.c:715 msgid "St Stephen's Day" msgstr "S:t Stefans dag" #: src/hd-data.c:716 msgid "St Valentine's Day" msgstr "Alla hjärtans dag" #: src/hd-data.c:717 msgid "Sunday of the Dead" msgstr "Dödssöndagen" #: src/hd-data.c:718 msgid "Swallow Day" msgstr "Svalans dag" #: src/hd-data.c:719 msgid "Sweetest Day" msgstr "Sötaste dag" #: src/hd-data.c:720 msgid "Sylvester/New Year's Eve" msgstr "NyÃ¥rsafton" #: src/hd-data.c:721 msgid "Teacher's Day" msgstr "Lärarens dag" #: src/hd-data.c:722 msgid "Thai New Year's Day" msgstr "Thailändska nyÃ¥rsdagen" #: src/hd-data.c:723 msgid "Thanksgiving Day" msgstr "Tacksägelsedagen" #: src/hd-data.c:724 msgid "The King's Birthday" msgstr "Konungens födelsedag" #: src/hd-data.c:725 msgid "The Queen's Birthday" msgstr "Drottningens födelsedag" #: src/hd-data.c:726 msgid "Epiphany/Three King's Day" msgstr "Trettondedag jul" #: src/hd-data.c:727 msgid "Tiradentes Day" msgstr "Tiradentes dag" #: src/hd-data.c:728 msgid "Tomb-Sweeping Day" msgstr "Gravstädningsdagen" #: src/hd-data.c:729 msgid "Transfiguration Day" msgstr "Kristi förklaringsdag" #: src/hd-data.c:730 msgid "Tynwald Day" msgstr "Tynwalddagen" #: src/hd-data.c:731 msgid "Valborg's Eve" msgstr "Valborgsmässoafton" #: src/hd-data.c:732 msgid "Venice Carnival" msgstr "Karnevalen i Venedig" #: src/hd-data.c:733 msgid "Veteran's Day" msgstr "Veteranernas dag" #: src/hd-data.c:734 msgid "Victoria Day" msgstr "Viktoriadagen" #: src/hd-data.c:735 msgid "Victory Day" msgstr "Segerdagen" #: src/hd-data.c:736 msgid "Whit Monday" msgstr "Annandag pingst" #: src/hd-data.c:737 msgid "Women's Day" msgstr "Kvinnodagen" #: src/hd-data.c:738 msgid "Women's Shrove Day" msgstr "Kvinnans biktedag" #: src/hd-data.c:739 msgid "World Animal Day" msgstr "Världsdjurdagen" #: src/hd-data.c:740 msgid "Youth Day" msgstr "Ungdomens dag" #: src/hd-data.c:746 msgid "Adelaide Cup Day" msgstr "Adelaide Cup-dagen" #: src/hd-data.c:747 msgid "Admission Day" msgstr "Erkännandedagen" #: src/hd-data.c:748 msgid "Alaska Day" msgstr "Alaskadagen" #: src/hd-data.c:749 msgid "Aleksis Kivi Day" msgstr "Aleksis Kividag" #: src/hd-data.c:750 msgid "Alice-Springs Show Day" msgstr "Alice-Springs visningsdag" #: src/hd-data.c:751 msgid "All Saints' Eve" msgstr "Allhelgonaaftonen" #: src/hd-data.c:752 msgid "Americas Day" msgstr "Amerikas dag" #: src/hd-data.c:753 msgid "Angam Day" msgstr "Angamdagen" #: src/hd-data.c:755 msgid "Anniversary of Amir's Succession" msgstr "Amirs tronföljdsjubileum" #: src/hd-data.c:756 msgid "Anniversary of Armed Struggle" msgstr "Militära kampens jubileum" #: src/hd-data.c:757 msgid "Anniversary of Green March" msgstr "Gröna marsjubileet" #: src/hd-data.c:758 msgid "Antillian Day" msgstr "Antilliska dagen" #: src/hd-data.c:759 msgid "Arab League Day" msgstr "Arabförbundets dag" #: src/hd-data.c:761 msgid "Archbishop Makarios' Memorial Day" msgstr "Ärkebiskop Makarios minnesdag" #: src/hd-data.c:762 msgid "Archbishop Makarios' Name-Day" msgstr "Ärkebiskop Makarios namnsdag" #: src/hd-data.c:763 msgid "Arengo Anniversary" msgstr "Arengojubileet" #: src/hd-data.c:764 msgid "Army Coup Day" msgstr "Armékuppdagen" #: src/hd-data.c:765 msgid "Arrival of the Swiss" msgstr "Schweizarnas ankomst" #: src/hd-data.c:766 msgid "Artigas' Birthday" msgstr "Artigas födelsedag" #: src/hd-data.c:767 msgid "Asuncion Day" msgstr "Asunciondagen" #: src/hd-data.c:768 msgid "Ataturk Memorial Day" msgstr "Ataturks minnesdag" #: src/hd-data.c:769 msgid "Authority's Power Day" msgstr "Övermaktens maktdag" #: src/hd-data.c:770 msgid "Ba'ath Revolution Day" msgstr "Ba'ath-revolutionsdagen" #: src/hd-data.c:771 msgid "Baron Bliss Day" msgstr "Baron Bliss dag" #: src/hd-data.c:772 msgid "Bataan Day" msgstr "Bataan-dagen" #: src/hd-data.c:773 msgid "Battle of Angamos" msgstr "Slaget vid Angamos" #: src/hd-data.c:774 msgid "Battle of Boyacá" msgstr "Slaget vid Boyacá" #: src/hd-data.c:775 msgid "Battle of Carabobo" msgstr "Slaget vid Carabobo" #: src/hd-data.c:776 msgid "Battle of Iquique" msgstr "Slaget vid Iquique" #: src/hd-data.c:777 msgid "Battle of Las Piedras" msgstr "Slaget vid Las Piedras" #: src/hd-data.c:778 msgid "Battle of Näfels" msgstr "Slaget vid Näfels" #: src/hd-data.c:779 msgid "Beginning of Summer" msgstr "Sommarens början" #: src/hd-data.c:780 msgid "Belgrade's Day" msgstr "Belgrads dag" #: src/hd-data.c:781 msgid "Bennington Battle Day" msgstr "Slaget vid Benningtons dag" #: src/hd-data.c:782 msgid "Blessing of the Water" msgstr "Välsignelsen av vattnet" #: src/hd-data.c:783 msgid "Bloomsday" msgstr "Blomningsdagen" #: src/hd-data.c:784 msgid "Boganda Day" msgstr "Bogandadagen" #: src/hd-data.c:785 msgid "Bonaire Day" msgstr "Bonairedagen" #: src/hd-data.c:786 msgid "Boqueron Battle Day" msgstr "Boqueronslagets dag" #: src/hd-data.c:787 msgid "Botswana Day" msgstr "Botswanadagen" #: src/hd-data.c:788 msgid "Bounty Day" msgstr "Bountydagen" #: src/hd-data.c:789 msgid "Bunker Hill Day" msgstr "Bunker Hill-dagen" #: src/hd-data.c:790 msgid "Burning of Jan Hus" msgstr "Jan Hus eldbegängelse" #: src/hd-data.c:791 msgid "Canberra Day" msgstr "Canberradagen" #: src/hd-data.c:792 msgid "Caricom Day" msgstr "Caricomdagen" #: src/hd-data.c:793 msgid "Casimir Pulaski's Birthday" msgstr "Casimir Pulaskis födelsedag" #: src/hd-data.c:794 msgid "Cassinga Day" msgstr "Cassingdagen" #: src/hd-data.c:795 msgid "Cayenne Festival" msgstr "Cayennefestivalen" #: src/hd-data.c:796 msgid "Cesar Chavez Day" msgstr "Cesar Chavez dag" #: src/hd-data.c:797 msgid "Charter Day" msgstr "Stadgedagen" #: src/hd-data.c:798 msgid "Chiang Kai-shek's Birthday" msgstr "Chiang Kai-sheks födelsedag" #: src/hd-data.c:799 msgid "Children's White Sunday" msgstr "Barnens vita söndag" #: src/hd-data.c:800 msgid "Colon Day" msgstr "Kolondagen" #: src/hd-data.c:801 msgid "Colorado Day" msgstr "Coloradodagen" #: src/hd-data.c:802 msgid "Commonwealth Day" msgstr "Samväldesdagen" #: src/hd-data.c:803 msgid "Compact Day" msgstr "Kompaktdagen" #: src/hd-data.c:804 msgid "Confederal Agreement Day" msgstr "Konfederala överenskommelsedagen" #: src/hd-data.c:805 msgid "Coronation Day" msgstr "Kröningsdagen" #: src/hd-data.c:806 msgid "Cup Match Day" msgstr "Cupmatchdagen" #: src/hd-data.c:807 msgid "Custom Chief's Day" msgstr "Anpassade hövdingens dag" #: src/hd-data.c:808 msgid "C. Mapinduzi Day" msgstr "C. Mapinduzis dag" #: src/hd-data.c:809 msgid "Darwin Show Day" msgstr "Darwinvisningsdagen" #: src/hd-data.c:810 msgid "Day of Goodwill" msgstr "Godhetsdagen" #: src/hd-data.c:811 msgid "Day of Students Revolt" msgstr "Studentrevoltens dag" #: src/hd-data.c:812 msgid "Day of the Free Laos" msgstr "Fria Laos dag" #: src/hd-data.c:813 msgid "Death of H. Christophe" msgstr "H. Christophes död" #: src/hd-data.c:814 msgid "Death of J. Dessalines" msgstr "J. Dessalines död" #: src/hd-data.c:815 msgid "Death of President Abdallah" msgstr "President Abdallahs död" #: src/hd-data.c:816 msgid "Death of President Cheikh" msgstr "President Cheikhs död" #: src/hd-data.c:817 msgid "Death of President Soilih" msgstr "President Soilihs död" #: src/hd-data.c:818 msgid "Death of Qaid-i-Azam" msgstr "Qaid-i-Azams död" #: src/hd-data.c:819 msgid "Death of T. Louverture" msgstr "T. Louvertures död" #: src/hd-data.c:820 msgid "Defenders Day" msgstr "Försvararnas dag" #: src/hd-data.c:821 msgid "Dia del Padre" msgstr "Dia del Padre" #: src/hd-data.c:822 msgid "Dia de los Maestros" msgstr "Dia de los Maestros" #: src/hd-data.c:823 msgid "Discovery Day" msgstr "Upptäckelsedagen" #: src/hd-data.c:824 msgid "Downfall of the Dergue" msgstr "Fallet av Dergue" #: src/hd-data.c:825 msgid "Dry Season Celebration" msgstr "Torrsäsongsfirandet" #: src/hd-data.c:826 msgid "Dr. Sun Yat-sen's Birthday" msgstr "Dr. Sun Yat-sens födelsedag" #: src/hd-data.c:827 msgid "Duarte's Birthday" msgstr "Duartes födelsedag" #: src/hd-data.c:828 msgid "Easter Tuesday" msgstr "PÃ¥sktisdagen" #: src/hd-data.c:829 msgid "Economic Liberation Day" msgstr "Ekonomiska befrielsedagen" #: src/hd-data.c:830 msgid "Eight Hours Day" msgstr "Ã…ttatimmarsdagen" #: src/hd-data.c:831 msgid "Elections for National Assembly" msgstr "Val till den nationella församlingen" #: src/hd-data.c:832 msgid "Errol Barrow Day" msgstr "Errol Barrows dag" #: src/hd-data.c:833 msgid "Evacuation Day" msgstr "Evakueringsdagen" #: src/hd-data.c:834 msgid "Eve of Epiphany" msgstr "Trettondagsafton" #: src/hd-data.c:835 msgid "Expedition of the 33" msgstr "De trettiotres expedition" #: src/hd-data.c:836 msgid "E. Hostos' Birthday" msgstr "E. Hostos födelsedag" #: src/hd-data.c:837 msgid "Family Day" msgstr "Familjedagen" #: src/hd-data.c:838 msgid "FAO Day" msgstr "FAO-dagen" #: src/hd-data.c:839 msgid "Farmers' Day" msgstr "Bondens dag" #: src/hd-data.c:840 msgid "Father Leval Day" msgstr "Fader Levals dag" #: src/hd-data.c:841 msgid "Feast of Our Theotokos" msgstr "VÃ¥r Theotokos högtid" #: src/hd-data.c:842 msgid "Fisherman's Day" msgstr "Fiskarens dag" #: src/hd-data.c:843 msgid "Foundation of NPLA Day" msgstr "NPLA:s grundningsdag" #: src/hd-data.c:844 msgid "Founding of People's Party" msgstr "Grundandet av folkpartiet" #: src/hd-data.c:845 msgid "Garifuna Day" msgstr "Garifunadagen" #: src/hd-data.c:847 msgid "General San Martin's Anniversary" msgstr "General San Martins jubileum" #: src/hd-data.c:848 msgid "Gospel Day" msgstr "Gospeldagen" #: src/hd-data.c:849 msgid "Guacanaste Day" msgstr "Guacanastedagen" #: src/hd-data.c:850 msgid "Gustavus Adolphus' Day" msgstr "Gustav Adolfsdagen" #: src/hd-data.c:851 msgid "Heritage Day" msgstr "Arvsdagen" #: src/hd-data.c:852 msgid "Heroes Day" msgstr "Hjältarnas dag" #: src/hd-data.c:853 msgid "Hobart Show Day" msgstr "Hobart-visningsdagen" #: src/hd-data.c:854 msgid "Holy Wednesday" msgstr "Heliga onsdagen" #: src/hd-data.c:855 msgid "Ho Chi Minh's Birthday" msgstr "Ho Chi Minhs födelsedag" #: src/hd-data.c:856 msgid "Human Rights Day" msgstr "Människorättsdagen" #: src/hd-data.c:857 msgid "Hurricane Supplication Day" msgstr "Orkanbönedagen" #: src/hd-data.c:858 msgid "Hurricane Thanksgiving Day" msgstr "Orkantacksägelsedagen" #: src/hd-data.c:859 msgid "Independence of Cartagena" msgstr "Cartagenas självständighet" #: src/hd-data.c:860 msgid "Independence of Cuenca" msgstr "Cuencas självständighet" #: src/hd-data.c:861 msgid "Independence of Guayaquil" msgstr "Guyaquils självständighet" #: src/hd-data.c:862 msgid "Independence of Quito" msgstr "Quitos självständighet" #: src/hd-data.c:863 msgid "Indian Arrival Day" msgstr "Indianska ankomstdagen" #: src/hd-data.c:864 msgid "Internal Autonomy Day" msgstr "Interna autonomitetsdagen" #: src/hd-data.c:865 msgid "Jefferson Davis' Birthday" msgstr "Jefferson Davis födelsedag" #: src/hd-data.c:866 msgid "June Holiday" msgstr "Junihelgen" #: src/hd-data.c:867 msgid "J. Barbosa's Birthday" msgstr "J. Barbosas födelsedag" #: src/hd-data.c:868 msgid "J. Chilembwe Day" msgstr "J. Chilembwes dag" #: src/hd-data.c:869 msgid "J. Diego's Birthday" msgstr "J. Diegos födelsedag" #: src/hd-data.c:870 msgid "J. Robert's Birthday" msgstr "J. Roberts födelsedag" #: src/hd-data.c:871 msgid "Kamarampaka Day" msgstr "Kamarampaka-dagen" #: src/hd-data.c:872 msgid "Kartini Day" msgstr "Kartinidagen" #: src/hd-data.c:873 msgid "Catherine Show Day" msgstr "Catherines visningsdag" #: src/hd-data.c:874 msgid "Kiev Day" msgstr "Kievdagen" #: src/hd-data.c:875 msgid "Kim Il-Sung's Birthday" msgstr "Kim Il-Sungs födelsedag" #: src/hd-data.c:876 msgid "Kim Jong-Il's Birthday" msgstr "Kim Jong-Ils födelsedag" #: src/hd-data.c:877 msgid "King Kamehameha Day" msgstr "Kung Kamehamehas dag" #: src/hd-data.c:878 msgid "King Rama I Memorial Day/Chakri" msgstr "Kung Rama I minnesdag/Chakri" #: src/hd-data.c:879 msgid "King Rama V Memorial Day" msgstr "Kung Rama V minnesdag" #: src/hd-data.c:880 msgid "Knabenschiessen" msgstr "Knabenschiessen" #: src/hd-data.c:881 msgid "Konstantin and Methodius" msgstr "Konstantin och Methodius" #: src/hd-data.c:882 msgid "Lapp National Holiday" msgstr "Samernas nationaldag" #: src/hd-data.c:883 msgid "Launceston Cup Day" msgstr "Launceston Cup-dagen" #: src/hd-data.c:884 msgid "Liberty Day" msgstr "Frihetsdagen" #: src/hd-data.c:885 msgid "Loss of Muslim Nation" msgstr "FÖrlorandet av den muslimska staten" #: src/hd-data.c:886 msgid "Luxembourg City Kermis" msgstr "Staden Luxembourgs Kermis" #: src/hd-data.c:887 msgid "Lyndon B. Johnson Day" msgstr "Lyndon B. Johnsons dag" #: src/hd-data.c:888 msgid "L. Rivera's Birthday" msgstr "L. Riveras födelsedag" #: src/hd-data.c:889 msgid "Madaraka Day" msgstr "Madaraka-dagen" #: src/hd-data.c:890 msgid "Mahatma Gandhi's Birthday" msgstr "Mahatma Gandhis födelsedag" #: src/hd-data.c:891 msgid "Malvinas Day" msgstr "Malvinasdagen" #: src/hd-data.c:892 msgid "Manila Day" msgstr "Maniladagen" #: src/hd-data.c:893 msgid "Maputo City Day" msgstr "Maputo Citys dag" #: src/hd-data.c:894 msgid "Marien Ngouabi Day" msgstr "Marien Ngouabis dag" #: src/hd-data.c:895 msgid "Maryland Day" msgstr "Marylanddagen" #: src/hd-data.c:896 msgid "Melbourne Cup Day" msgstr "Melbourne Cup-dagen" #: src/hd-data.c:897 msgid "Merchant Day" msgstr "Handlardagen" #: src/hd-data.c:898 msgid "St John's/Midsummers Eve" msgstr "Midsommarafton" #: src/hd-data.c:899 msgid "Missionary Day" msgstr "Missionärsdagen" #: src/hd-data.c:900 msgid "Mi-Carême Day" msgstr "Mi-Carême-dagen" #: src/hd-data.c:901 msgid "Morazan Day" msgstr "Morazandagen" #: src/hd-data.c:902 msgid "Mosheshoe's Day" msgstr "Mosheshoes dag" #: src/hd-data.c:903 msgid "Motherhood and Beauty Day" msgstr "Mödraskapets och skönhetens dag" #: src/hd-data.c:904 msgid "Naming Day" msgstr "Namngivelsedagen" #: src/hd-data.c:905 msgid "National Bun Day" msgstr "Nationella bulledagen" #: src/hd-data.c:906 msgid "National Heroes Day" msgstr "Nationella hjältars dag" #: src/hd-data.c:907 msgid "National Redemption Day" msgstr "Nationella försoningsdagen" #: src/hd-data.c:908 msgid "National Resistance Day" msgstr "Nationella motstÃ¥ndsdagen" #: src/hd-data.c:909 msgid "National Revival Day" msgstr "Nationella uppväckelsedagen" #: src/hd-data.c:910 msgid "National Unity Day" msgstr "Nationella enhetsdagen" #: src/hd-data.c:911 msgid "Ndadaye Day" msgstr "Ndadayedagen" #: src/hd-data.c:912 msgid "Neutrality Day" msgstr "Neutralitetsdagen" #: src/hd-data.c:913 msgid "Nevada Day" msgstr "Nevadadagen" #: src/hd-data.c:914 msgid "New Regime Anniversary" msgstr "Nya regimens jubileum" #: src/hd-data.c:915 msgid "Nobel Day" msgstr "Nobeldagen" #: src/hd-data.c:916 msgid "Noi Day" msgstr "Noidagen" #: src/hd-data.c:917 msgid "OAU Day" msgstr "OAU-dagen" #: src/hd-data.c:918 msgid "October Holiday" msgstr "Oktoberhelgen" #: src/hd-data.c:919 msgid "Oil Industry Day" msgstr "Oljeindustrins dag" #: src/hd-data.c:920 msgid "Our Lady of Altagracia Day" msgstr "VÃ¥r fru Altagracias dag" #: src/hd-data.c:921 msgid "Our Lady of Camarin Day" msgstr "VÃ¥r fru Camarins dag" #: src/hd-data.c:922 msgid "Our Lady of Las Mercedes Day" msgstr "VÃ¥r fru Las Mercedes dag" #: src/hd-data.c:923 msgid "Our Lady of Los Angeles Day" msgstr "VÃ¥r fru Los Angeles dag" #: src/hd-data.c:924 msgid "Our Lady of Seven Sorrows" msgstr "VÃ¥r fru av sju synder" #: src/hd-data.c:925 msgid "Our Lady of Victories Day" msgstr "VÃ¥r fru av segrars dag" #: src/hd-data.c:926 msgid "Panama City Day" msgstr "Panama Citys dag" #: src/hd-data.c:927 msgid "Panamerica Day" msgstr "Panamerikadagen" #: src/hd-data.c:928 msgid "Paris Peace Agreement Day" msgstr "Paris-fredsuppgörelsens dag" #: src/hd-data.c:929 msgid "Patriot's Day" msgstr "Patrioternas dag" #: src/hd-data.c:930 msgid "People's Uprising Day" msgstr "Folkets upprorsdag" #: src/hd-data.c:931 msgid "People Power Day" msgstr "Folkets maktdag" #: src/hd-data.c:932 msgid "Philippine-American Friendship" msgstr "Filippinsk-amerikanska vänskapen" #: src/hd-data.c:933 msgid "Pichincha Day" msgstr "Pichincha-dagen" #: src/hd-data.c:934 msgid "Picnic Day" msgstr "Picknickdagen" #: src/hd-data.c:935 msgid "Pioneer Day" msgstr "Pionjärdagen" #: src/hd-data.c:936 msgid "Poya Day" msgstr "Poyadagen" #: src/hd-data.c:937 msgid "Prince Kalanianaole Day" msgstr "Prins Kalanianaoles dag" #: src/hd-data.c:938 msgid "Prince of Wales' Birthday" msgstr "Prinsen av Wales födelsedag" #: src/hd-data.c:939 msgid "Proclamation Day" msgstr "Proklameringsdagen" #: src/hd-data.c:940 msgid "Qaid-i-Azam's Birthday" msgstr "Qaid-i-Azams födelsedag" #: src/hd-data.c:941 msgid "Ratu Sukuma Day" msgstr "Ratu Sukuma-dagen" #: src/hd-data.c:942 msgid "Recreation Day" msgstr "Fritidsdagen" #: src/hd-data.c:943 msgid "Referendum Day" msgstr "Folkomröstningsdagen" #: src/hd-data.c:944 msgid "Regatta Day" msgstr "Regattadagen" #: src/hd-data.c:945 msgid "Regency Exchange" msgstr "Regentutbytet" #: src/hd-data.c:946 msgid "Restoration Day" msgstr "Restaurationsdagen" #: src/hd-data.c:947 msgid "Return Day" msgstr "Ã…terkomstdagen" #: src/hd-data.c:948 msgid "Reunification Day" msgstr "Ã…terföreningsdagen" #: src/hd-data.c:949 msgid "Rizal Day" msgstr "Rizaldagen" #: src/hd-data.c:950 msgid "Rwagasore Day" msgstr "Rwagasoredagen" #: src/hd-data.c:951 msgid "Saba Day" msgstr "Sabadagen" #: src/hd-data.c:952 msgid "San Jacinto Day" msgstr "San Jacinto-dagen" #: src/hd-data.c:953 msgid "San José Day" msgstr "San José-dagen" #: src/hd-data.c:954 msgid "SAR Establishment Day" msgstr "SAR-etabliceringsdagen" #: src/hd-data.c:955 msgid "School Holiday" msgstr "Skolhelg" #: src/hd-data.c:956 msgid "Sechseläuten" msgstr "Sechseläuten" #: src/hd-data.c:957 msgid "Separation Day" msgstr "Separationsdagen" #: src/hd-data.c:958 msgid "Seretse Khama Day" msgstr "Seretse Khama-dagen" #: src/hd-data.c:959 msgid "Settlers Day" msgstr "Bosättardagen" #: src/hd-data.c:960 msgid "Seward's Day" msgstr "Sewards dag" #: src/hd-data.c:961 msgid "Shaheed Day" msgstr "Shaheeddagen" #: src/hd-data.c:962 msgid "Sheep Festival" msgstr "FÃ¥rfestivalen" #: src/hd-data.c:963 msgid "Sheikh Zayed's Ascension Day" msgstr "Sheikh Zayeds uppstigningsdag" #: src/hd-data.c:964 msgid "Simon Bolivar's Day" msgstr "Simon Bolivars dag" #: src/hd-data.c:965 msgid "Sinai-Liberation Day" msgstr "Sinais befrielsedag" #: src/hd-data.c:966 msgid "Slave-Liberation Day" msgstr "Slavbefrielsedagen" #: src/hd-data.c:967 msgid "Sniff the Breeze Day" msgstr "Sniffa brisen-dagen" #: src/hd-data.c:968 msgid "Solidarity Day" msgstr "Solidaritetsdagen" #: src/hd-data.c:969 msgid "Somers Day" msgstr "Somersdagen" #: src/hd-data.c:970 msgid "Statia-American Day" msgstr "Statia-amerikanska dagen" #: src/hd-data.c:971 msgid "Student's Day" msgstr "Studenternas dag" #: src/hd-data.c:972 msgid "St Agata Day" msgstr "S:t Agata-dagen" #: src/hd-data.c:973 msgid "St Canute's Day" msgstr "S:t Canutes dag" #: src/hd-data.c:974 msgid "St Cedilia's Day" msgstr "S:t Cedilias dag" #: src/hd-data.c:975 msgid "St Charles' Day" msgstr "S:t Charles dag" #: src/hd-data.c:976 msgid "St Demetrius' Day" msgstr "S:t Demetrius dag" #: src/hd-data.c:977 msgid "St Dévote Day" msgstr "S:t Dévote-dagen" #: src/hd-data.c:978 msgid "St Eliah's Day" msgstr "S:t Eliahs dag" #: src/hd-data.c:979 msgid "St Jean Baptiste Day" msgstr "S:t Jean Baptistes dag" #: src/hd-data.c:980 msgid "St Lucia's Day" msgstr "Luciadagen" #: src/hd-data.c:981 msgid "St Marguerite's Day" msgstr "S:t Marguerites dag" #: src/hd-data.c:982 msgid "St Maroon's Day" msgstr "S:t Maroons dag" #: src/hd-data.c:983 msgid "St Michael's Day" msgstr "S:t Michaels dag" #: src/hd-data.c:984 msgid "St Olav's Day" msgstr "S:t Olavs dag" #: src/hd-data.c:985 msgid "St Olav's Eve" msgstr "S:t Olavs afton" #: src/hd-data.c:986 msgid "St Paul's Shipswreck" msgstr "S:t Pauls skeppsvrak" #: src/hd-data.c:987 msgid "St Rose of Lima" msgstr "S:t Rose av Lima" #: src/hd-data.c:988 msgid "St Ursula's Day" msgstr "S:t Ursulas dag" #: src/hd-data.c:989 msgid "St Vincent de Paul's Day" msgstr "S:t Vincent de Pauls dag" #: src/hd-data.c:990 msgid "Suez Victory Day" msgstr "Suez-segerdagen" #: src/hd-data.c:991 msgid "Sultan Qaboos' Birthday" msgstr "Sultan Qaboos födelsedag" #: src/hd-data.c:992 msgid "Svetitskhovloba" msgstr "Svetitskhovloba" #: src/hd-data.c:993 msgid "Sweden Day" msgstr "Sverigedagen" #: src/hd-data.c:994 msgid "S. Doe's Birthday" msgstr "S. Does födelsedag" #: src/hd-data.c:995 msgid "Tennant-Creek Show Day" msgstr "Tennant-Creek-visningsdagen" #: src/hd-data.c:996 msgid "Territory Day" msgstr "Territoriedagen" #: src/hd-data.c:997 msgid "The Crown Princesse's Birthday" msgstr "Kronprinsessans födelsedag" #: src/hd-data.c:998 msgid "The Crown Princesse's Name-Day" msgstr "Kronprinsessans namnsdag" #: src/hd-data.c:999 msgid "The Crown Prince's Birthday" msgstr "Kronprinsens födelsedag" #: src/hd-data.c:1000 msgid "The King's Name-Day" msgstr "Konungens namnsdag" #: src/hd-data.c:1001 msgid "The Queen's Name-Day" msgstr "Drottningens namnsdag" #: src/hd-data.c:1002 msgid "Topou I Day" msgstr "Topou I-dagen" #: src/hd-data.c:1003 msgid "Town Meeting Day" msgstr "Stadsmötesdagen" #: src/hd-data.c:1004 msgid "Traditional Day" msgstr "Traditionell dag" #: src/hd-data.c:1005 msgid "Transfer Day" msgstr "Överföringsdagen" #: src/hd-data.c:1006 msgid "Truman Day" msgstr "Trumandagen" #: src/hd-data.c:1007 msgid "Union Day" msgstr "Unionsdagen" #: src/hd-data.c:1008 msgid "Union with Sweden dissolved" msgstr "Unionsupplösningen med Sverige" #: src/hd-data.c:1009 msgid "United Nations Day" msgstr "FN-dagen" #: src/hd-data.c:1010 msgid "Unity Factory Day" msgstr "Enhetsfabriksdagen" #: src/hd-data.c:1011 msgid "Victor-Schoelcher Day" msgstr "Victor-Schoelcher-dagen" #: src/hd-data.c:1012 msgid "Vidovdan" msgstr "Vidovdan" #: src/hd-data.c:1013 msgid "West Virginia Day" msgstr "West Virginia-dagen" #: src/hd-data.c:1014 msgid "Whitsun Eve" msgstr "Pingstafton" #: src/hd-data.c:1015 msgid "W. Tubman's Birthday" msgstr "W. Tubmans födelsedag" #: src/hd-data.c:1016 msgid "Yap Day" msgstr "Yapdagen" #: src/hd-data.c:1017 msgid "Day of Czech Statehood" msgstr "Tjeckiens självständighetsdag" #: src/hd-data.c:1082 msgid "Zi/Rat" msgstr "Zi/RÃ¥tta" #: src/hd-data.c:1082 msgid "Chou/Ox" msgstr "Chou/Oxe" #: src/hd-data.c:1083 msgid "Yin/Tiger" msgstr "Yin/Tiger" #: src/hd-data.c:1083 msgid "Mao/Rabbit" msgstr "Mao/Kanin" #: src/hd-data.c:1084 msgid "Chen/Dragon" msgstr "Chen/Drake" #: src/hd-data.c:1084 msgid "Si/Snake" msgstr "Si/Orm" #: src/hd-data.c:1085 msgid "Wu/Horse" msgstr "Wu/Häst" #: src/hd-data.c:1085 msgid "Wei/Sheep" msgstr "Wei/FÃ¥r" #: src/hd-data.c:1086 msgid "Shen/Monkey" msgstr "Shen/Apa" #: src/hd-data.c:1086 msgid "You/Rooster" msgstr "You/Tupp" #: src/hd-data.c:1087 msgid "Xu/Dog" msgstr "Xu/Hund" #: src/hd-data.c:1087 msgid "Hai/Pig" msgstr "Hai/Gris" #: src/hd-data.c:1284 msgid "Ast" msgstr "Ast" #: src/hd-data.c:1397 src/hd-data.c:1480 msgid "Bah" msgstr "Bah" #: src/hd-data.c:1547 msgid "Cel" msgstr "Kel" #: src/hd-data.c:1689 src/hd-data.c:2222 msgid "Chi" msgstr "Kin" #: src/hd-data.c:1803 src/hd-data.c:2322 src/hd-data.c:3839 #, c-format msgid "Cannot calculate lunisolar calendar for %d correctly" msgstr "Kan inte beräkna mÃ¥nsolskalendern för %d korrekt" #: src/hd-data.c:2224 src/hd-data.c:3727 msgid "Jap" msgstr "Jap" #: src/hd-data.c:2420 msgid "Chr" msgstr "Kri" #: src/hd-data.c:2654 src/hd-data.c:4171 msgid "FRR" msgstr "FRR" #: src/hd-data.c:2775 src/hd-data.c:2957 msgid "Heb" msgstr "Heb" #: src/hd-data.c:3187 src/hd-data.c:3616 msgid "Isl" msgstr "Isl" #: src/hd-data.c:4241 src/hd-data.c:4336 msgid "AMO" msgstr "AMO" #: src/hd-data.c:4262 src/hd-data.c:4334 msgid "EGO" msgstr "EGO" #: src/hd-data.c:4444 msgid "OxN" msgstr "OxN" #: src/hd-data.c:4446 msgid "OxO" msgstr "OxO" #: src/hd-data.c:4647 src/hd-data.c:4776 msgid "Per" msgstr "Per" #: src/hd-data.c:4844 msgid "Zod" msgstr "Zod" #: src/hd-use.c:928 msgid " day" msgstr " dag" #: src/hd-use.c:1973 src/hd-use.c:1978 src/hd-use.c:1982 src/hd-use.c:1989 #: src/hd-use.c:1993 src/hd-use.c:2089 src/hd-use.c:2273 msgid "Eternal holiday list" msgstr "Evighetskalender för helgdagar" #: src/hd-use.c:1977 #, c-format msgid "%s:%*sThe year %0*d is A leap year" msgstr "%s:%*sÃ…r %0*d är ETT skottÃ¥r" #: src/hd-use.c:1981 #, c-format msgid "%s:%*sThe year %0*d is NO leap year" msgstr "%s:%*sÃ…r %0*d är INTE ett skottÃ¥r" #: src/hd-use.c:1988 #, c-format msgid "%s:%*sThe year %d is A leap year" msgstr "%s:%*sÃ…r %d är ETT skottÃ¥r" #: src/hd-use.c:1992 #, c-format msgid "%s:%*sThe year %d is NO leap year" msgstr "%s:%*sÃ…r %d är INTE ett skottÃ¥r" #: src/hd-use.c:2242 #, c-format msgid " = %+4d day" msgstr " = %+4d dag" #: src/hd-use.c:2244 #, c-format msgid " = %+4d days" msgstr " = %+4d dagar" #: src/hd-use.c:2271 #, c-format msgid "%s%s contains %d maximum entries now!%s" msgstr "%s%s innehÃ¥ller nu %d maxposter!%s" #: src/help.c:64 #, 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:74 msgid "# Day number (must be defined)" msgstr "# Dagnummer (mÃ¥ste definieras)" #: src/help.c:75 msgid "# Year number (must be defined)" msgstr "# Ã…rnummer (mÃ¥ste definieras)" #: src/help.c:76 msgid "# Weekday name (may be defined)" msgstr "# Veckodagsnamn (kan definieras)" #: src/help.c:77 msgid "Month group (exactly one member must be defined):" msgstr "MÃ¥nadsgrupp (exakt en medlem mÃ¥ste definieras):" #: src/help.c:78 msgid "# Month number" msgstr "# MÃ¥nadsnummer" #: src/help.c:79 msgid "# Month name" msgstr "# MÃ¥nadsnamn" #: src/help.c:80 msgid "Highlighting group (all members must be defined):" msgstr "Markeringsgrupp (alla medlemmar mÃ¥ste definieras):" #: src/help.c:81 msgid "Start of highlighting sequence/marking character" msgstr "Start pÃ¥ markeringsssekvens/markeringstecken" #: src/help.c:83 msgid "End of highlighting sequence/marking character" msgstr "Slut pÃ¥ markeringssekvens/markeringstecken" #: src/help.c:85 msgid "Character replacement:" msgstr "Ersättningstecken:" #: src/help.c:86 #, c-format msgid "Space/blank ('%c') character" msgstr "Blanksteg/tomt (\"%c\") tecken" #: src/help.c:87 #, c-format msgid "Underscore ('%c') character" msgstr "Understreck (\"%c\")" #: src/help.c:88 #, c-format msgid "Percent ('%c') character" msgstr "Procent (\"%c\")" #: src/help.c:89 #, c-format msgid "Backslash ('%c') character" msgstr "Omvänt snedstreck (\"%c\")" #: src/help.c:90 msgid "All format elements marked by # may optionally" msgstr "Alla formatelement märkta med # kan om sÃ¥ önskas" #: src/help.c:91 msgid "contain a format instruction, which template is like:" msgstr "innehÃ¥lla en formatinstruktion, vars mall är som:" #: src/help.c:92 msgid "[ALIGNMENT [SIGN] [ZERO] WIDTH [STYLE] [SUFFIX] FORMAT]" msgstr "[JUSTERING [TECKEN] [NOLL] BREDD [STIL] [SUFFIX] FORMAT]" #: src/help.c:93 msgid "ALIGNMENT group (exactly one member must be defined):" msgstr "JUSTERINGSgrupp (exakt en medlem mÃ¥ste definieras):" #: src/help.c:94 msgid "Field contents placed at the left margin using width WIDTH" msgstr "" "FältinnehÃ¥ll som placeras vid vänstermarginalen genom att använda BREDD" #: src/help.c:96 msgid "Field contents placed in centered manner using width WIDTH" msgstr "FältinnehÃ¥ll som placeras centrerat genom att använda BREDD" #: src/help.c:98 msgid "Field contents placed at the right margin using width WIDTH" msgstr "FältinnehÃ¥ll som placeras vid högermarginalen genom att använda BREDD" #: src/help.c:100 msgid "SIGN (may be defined):" msgstr "TECKEN (kan definieras):" #: src/help.c:101 msgid "Numerical value is provided with leading sign" msgstr "Numeriskt värde tillhandahÃ¥lls med inledande tecken" #: src/help.c:102 msgid "ZERO (may be defined):" msgstr "NOLL (mÃ¥ste definieras):" #: src/help.c:103 msgid "Numerical value is filled with leading zero(es)" msgstr "Numeriskt värde fylls med inledande nolla/nollor" #: src/help.c:104 msgid "WIDTH (must be defined):" msgstr "BREDD (mÃ¥ste definieras):" #: src/help.c:105 #, c-format msgid "Field has the width N (%d...%d)" msgstr "Fältet har bredden N (%d...%d)" #: src/help.c:106 msgid "STYLE group (exactly one member may be defined):" msgstr "STILgrupp (exakt en medlem mÃ¥ste definieras):" #: src/help.c:107 msgid "Field contents is converted to upper-case letters" msgstr "FältinnehÃ¥llet konverteras till stora bokstäver" #: src/help.c:108 msgid "Field contents is converted to lower-case letters" msgstr "FältinnehÃ¥llet konverteras till smÃ¥ bokstäver" #: src/help.c:109 msgid "Field contents is converted to capitalized words" msgstr "FältinnehÃ¥llet konverteras till ord med inledande stor bokstav" #: src/help.c:110 msgid "SUFFIX (may be defined):" msgstr "SUFFIX (kan definieras):" #: src/help.c:111 msgid "Numerical value is provided with an ordinal number suffix" msgstr "Numeriskt värde tillhandahÃ¥lls med ett ordinalt nummersuffix" #: src/help.c:113 msgid "FORMAT group (exactly one member must be defined):" msgstr "FORMATgrupp (exakt en medlem mÃ¥ste definieras):" #: src/help.c:114 msgid "Field contents is not cut after position WIDTH" msgstr "FältinnehÃ¥ll klipps inte efter position BREDD" #: src/help.c:115 msgid "Field contents is cut after position WIDTH" msgstr "FältinnehÃ¥ll klipps efter position BREDD" #: src/help.c:129 msgid "legal holidays" msgstr "allmänna helgdagar" #: src/help.c:130 msgid "holidays" msgstr "helgdagar" #: src/help.c:131 msgid "Mondays" msgstr "mÃ¥ndagar" #: src/help.c:132 msgid "Tuesdays" msgstr "tisdagar" #: src/help.c:133 msgid "Wednesdays" msgstr "onsdagar" #: src/help.c:134 msgid "Thursdays" msgstr "torsdagar" #: src/help.c:135 msgid "Fridays" msgstr "fredagar" #: src/help.c:136 msgid "Saturdays" msgstr "lördagar" #: src/help.c:137 msgid "Sundays" msgstr "söndagar" #: src/help.c:138 msgid "Mondays...Thursdays" msgstr "mÃ¥ndagar - torsdagar" #: src/help.c:139 msgid "Mondays...Fridays" msgstr "mÃ¥ndagar - fredagar" #: src/help.c:169 #, 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:242 msgid "OPTION" msgstr "FLAGGA" #: src/help.c:255 msgid " Display help text and quit program" msgstr " Visa hjälptext och avsluta programmet" #: src/help.c:272 msgid " Display extended help text and quit program" msgstr " Visa utvidgad hjälptext och avsluta programmet" #: src/help.c:290 msgid " Display software license and quit program" msgstr " Visa programvarulicens och avsluta programmet" #: src/help.c:301 msgid " Display version information and quit program" msgstr " Visa versionsnummer och avsluta programmet" #: src/help.c:312 #, 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:325 #, c-format msgid " Create response file for the `%cFILE' option" msgstr " Skapa responsfil för \"%cFIL-flaggan\"" #: src/help.c:329 #, c-format msgid " %-3s = Store arguments of command line in file %s" msgstr " %-3s = Lagra argumenten frÃ¥n kommandoraden i filen %s" #: src/help.c:343 #, c-format msgid "" " Create shell script which contains the arguments of command line" msgstr "" " Skapa ett skalprogram som innehÃ¥ller argumenten frÃ¥n kommandoraden" #: src/help.c:345 #, c-format msgid " %-3s = File name of the shell script" msgstr " %-3s = Skalprogrammets filnamn" #: src/help.c:359 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:363 #, 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:368 #, 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:380 msgid " Export local date variables from file to file" msgstr " Exportera lokala datumvariabler frÃ¥n fil till fil" #: src/help.c:392 #, c-format msgid " Define global text variable(s) \"TVAR->%ca...%cz\"" msgstr " Definiera globala textvariabler \"TVAR->%ca...%cz\"" #: src/help.c:397 #, c-format msgid " %-3s = \"TVAR%sTEXT\" definitions separated by `%s' characters" msgstr " %-3s = Definitioner av \"TVAR%sTEXT\" Ã¥tskilda med \"%s\"-tecken" #: src/help.c:402 #, 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:408 #, 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:413 #, c-format msgid "" " E.g. %sr %ca%sfoo Assign output of command `foo' to `%ca'" msgstr "" " T.ex. %sr %ca%sapa Tilldela utdata frÃ¥n kommandot \"apa\" till " "\"%ca\"" #: src/help.c:425 msgid " Export local text variables from file to file" msgstr " Exportera lokala textvariabler frÃ¥n fil till fil" #: src/help.c:437 src/help.c:467 #, 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:442 #, 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:447 msgid " is a LOWER-CASE-LETTER, it means a non-exclusion!" msgstr " är en GEMEN betyder det en icke-uteslutning!" #: src/help.c:451 #, c-format msgid " %c = Exclusion of all %s" msgstr " %c = Uteslutning av %s" #: src/help.c:472 #, 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:476 #, c-format msgid " expressions separated by `%s' characters" msgstr " uttryck Ã¥tskilda med \"%s\"-tecken" #: src/help.c:489 #, 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:494 #, c-format msgid " %-3s = Any text respectively \"regular expression\" you like" msgstr " %-3s = Vilken text eller \"reguljärt uttryck\" som helst" #: src/help.c:507 #, c-format msgid " Ignore case distinctions if `%s' option is given" msgstr " Ignorera skillnader i VERSALER/gemener om flaggan \"%s\" ges" #: src/help.c:519 #, c-format msgid " Revert the sense of matching of the `%s' option" msgstr " Omvänd typen av matchning hos flaggan \"%s\"" #: src/help.c:530 msgid " Display some debug information" msgstr " Visa lite felsökningsinformation" #: src/help.c:538 #, c-format msgid "" " [%-3s] = internal Information if program internal maximums are reached" msgstr "" " [%-3s] = internal Information huruvida programmets interna maxima " "uppnÃ¥s" #: src/help.c:547 msgid "" " = handled Like `internal' and file names which are handled" msgstr " = handled Som \"internal\" plus filnamn som hanteras" #: src/help.c:555 msgid "" " = unhandled Like `internal' and file names which are unhandled" msgstr "" " = unhandled Som \"internal\" plus filnamn som inte hanteras" #: src/help.c:563 msgid " = all Like `handled' and `unhandled' together" msgstr " = all Som \"handled\" och \"unhandled\" tillsammans" #: src/help.c:571 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:581 msgid " Use special format for calendar sheet" msgstr " Använd speciellt format för kalenderblad" #: src/help.c:584 msgid " [MOD] = - Use standard format for calendar sheet" msgstr " [MOD] = - Använd standardformat för kalenderblad" #: src/help.c:595 msgid " Use leap year rule of Eastern Orthodox churches" msgstr " Använd regeln för skottÃ¥r i östortodoxa kyrkan" #: src/help.c:605 msgid " Provide calendar sheet with week numbers" msgstr " TillhandahÃ¥ll kalenderblad med veckonummer" #: src/help.c:616 #, c-format msgid " Determine type of week numbers (actual: %s)" msgstr " Avgör typen av veckonummer (faktiskt: %s)" #: src/help.c:617 msgid "Standard" msgstr "Standard" #: src/help.c:623 #, c-format msgid " %-3s = yes ISO-8601:1988 week numbers" msgstr " %-3s = yes ISO-8601:1988-veckonummer" #: src/help.c:630 msgid " = no Standard week numbers" msgstr " = no Standardveckonummer" #: src/help.c:641 msgid " Suppress output of calendar sheet explicitly" msgstr " Undertryck uttryckligen visning av kalenderblad" #: src/help.c:654 #, c-format msgid " Direct output through external `%s' pager" msgstr " Skicka utdata genom en extern \"%s\"-sidvisare" #: src/help.c:660 src/help.c:662 msgid " Direct output through simple internal pager" msgstr " Skicka utdata genom en enkel intern sidvisare" #: src/help.c:679 msgid " Disable highlighting of text, holiday resp., actual day" msgstr " Stäng av framhävning av text, helgdagar resp. aktuell dag" #: src/help.c:694 msgid " Forces highlighting sequences if output is redirected/piped" msgstr " Framtvinga framhävningssekvens om utdata styrs om" #: src/help.c:706 msgid "" " Set highlighting sequence pairs 1 (=actual day) and 2 (=holiday)" msgstr "" " Ställ in framhävningssekvenspar 1 (=aktuell dag) och 2 (=helgdag)" #: src/help.c:710 #, c-format msgid " %-3s = Highlighting sequence pairs separated by `%s' characters" msgstr " %-3s = Framhävningssekvenspar Ã¥tskilda med \"%s\"-tecken" #: src/help.c:715 #, 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:720 #, 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:731 msgid " Modify format of year calendar" msgstr " Ändra format pÃ¥ Ã¥rskalender" #: src/help.c:735 #, 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:747 msgid " Use consecutive day of year in calendar sheet" msgstr " Använd fortlöpande dagar pÃ¥ Ã¥ret pÃ¥ kalenderbladet" #: src/help.c:751 msgid " [MOD] = b Use both date notations (day of month+year)" msgstr "" " [MOD] = b Använd bÃ¥da datumbeteckningarna (dag i mÃ¥naden+dag pÃ¥ Ã¥ret)" #: src/help.c:763 msgid " Use consecutive day of year in eternal holiday list" msgstr " Använd fortlöpande dagar pÃ¥ Ã¥ret i evighetskalendern" #: src/help.c:767 src/help.c:783 msgid " [MOD] = b Use both date notations (day of month+year)" msgstr "" " [MOD] = b Använd bÃ¥da datumbeteckningarna (dag i mÃ¥naden+dag pÃ¥ Ã¥ret)" #: src/help.c:779 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:794 #, 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:827 #, c-format msgid " Send output via `%s' program to user" msgstr " Skicka utdata via programmet \"%s\" till användare" #: src/help.c:856 msgid "UNKNOWN" msgstr "OKÄND" #: src/help.c:859 #, 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:877 #, 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:880 msgid " n = Legal days and memorial days" msgstr " n = Allmänna helgdagar och minnesdagar" #: src/help.c:882 msgid " N = Legal days only" msgstr " N = Enbart allmänna helgdagar" #: src/help.c:884 src/help.c:1630 #, c-format msgid " [MOD] = %s Descending sort order" msgstr " [MOD] = %s Fallande sorteringsordning" #: src/help.c:896 msgid " Suppress leading blank line of eternal holiday list" msgstr " Undertryck inledande blanksteg i evighetskalender" #: src/help.c:906 msgid " Exclude title of eternal holiday list" msgstr " Evighetskalender för helgdagar utan titel" #: src/help.c:918 msgid " Provide eternal holiday list with astronomical data" msgstr " TillhandahÃ¥ll evighetskalender med astronomisk data" #: src/help.c:930 msgid " Provide eternal holiday list with Bahá'i calendar holidays" msgstr " TillhandahÃ¥ll evighetskalender med Bahá'i-kalenderhelger" #: src/help.c:942 msgid " Provide eternal holiday list with Bahá'i calendar months" msgstr " TillhandahÃ¥ll evighetskalender med Bahá'i-kalendermÃ¥nader" #: src/help.c:954 msgid " Provide eternal holiday list with Celtic calendar holidays" msgstr " TillhandahÃ¥ll evighetskalender med keltiska kalenderhelger" #: src/help.c:966 msgid "" " Provide eternal holiday list with Chinese flexible calendar " "holidays" msgstr "" " TillhandahÃ¥ll evighetskalender med kinesiska flexibla " "kalenderhelger" #: src/help.c:978 msgid "" " Provide eternal holiday list with Chinese flexible calendar months" msgstr "" " TillhandahÃ¥ll evighetskalender med kinesiska flexibla " "kalendermÃ¥nader" #: src/help.c:990 msgid " Provide eternal holiday list with Chinese calendar holidays" msgstr " TillhandahÃ¥ll evighetskalender med kinesiska kalenderhelger" #: src/help.c:1002 msgid " Provide eternal holiday list with Chinese calendar months" msgstr " TillhandahÃ¥ll evighetskalender med kinesiska kalendermÃ¥nader" #: src/help.c:1014 msgid "" " Provide eternal holiday list with Christian Western calendar " "holidays" msgstr "" " TillhandahÃ¥ll evighetskalender med västliga kristna kalenderhelger" #: src/help.c:1026 msgid " Provide eternal holiday list with Coptic calendar months" msgstr " TillhandahÃ¥ll evighetskalender med koptiska kalendermÃ¥nader" #: src/help.c:1038 msgid " Provide eternal holiday list with Ethiopic calendar months" msgstr " TillhandahÃ¥ll evighetskalender med etiopiska kalendermÃ¥nader" #: src/help.c:1050 msgid "" " Provide eternal holiday list with French Revolutionary calendar " "months" msgstr "" " TillhandahÃ¥ll evighetskalender med kalendermÃ¥nader frÃ¥n franska " "revolutionen" #: src/help.c:1062 msgid " Provide eternal holiday list with Hebrew calendar holidays" msgstr " TillhandahÃ¥ll evighetskalender med hebreiska kalenderhelger" #: src/help.c:1074 msgid " Provide eternal holiday list with Hebrew calendar months" msgstr " TillhandahÃ¥ll evighetskalender med hebreiska kalendermÃ¥nader" #: src/help.c:1086 msgid "" " Provide eternal holiday list with Indian civil-calendar months" msgstr "" " TillhandahÃ¥ll evighetskalender med indiska civila kalendermÃ¥nader" #: src/help.c:1098 msgid "" " Provide eternal holiday list with Islamic civil-calendar holidays" msgstr "" " TillhandahÃ¥ll evighetskalender med islamiska civilkalenderhelger" #: src/help.c:1110 msgid "" " Provide eternal holiday list with Islamic civil-calendar months" msgstr "" " TillhandahÃ¥ll evighetskalender med islamiska civilkalendermÃ¥nader" #: src/help.c:1122 msgid "" " Provide eternal holiday list with Japanese flexible calendar " "holidays" msgstr "" " TillhandahÃ¥ll evighetskalender med japanska flexibla kalenderhelger" #: src/help.c:1134 msgid "" " Provide eternal holiday list with Japanese flexible calendar months" msgstr "" " TillhandahÃ¥ll evighetskalender med japanska flexibla " "kalendermÃ¥nader" #: src/help.c:1146 msgid " Provide eternal holiday list with Japanese calendar holidays" msgstr " TillhandahÃ¥ll evighetskalender med japanska kalenderhelger" #: src/help.c:1158 msgid " Provide eternal holiday list with Japanese calendar months" msgstr " TillhandahÃ¥ll evighetskalender med japanska kalendermÃ¥nader" #: src/help.c:1171 msgid "" " Provide eternal holiday list with multicultural New Year holidays" msgstr "" " TillhandahÃ¥ll evighetskalender med multikulturella nyÃ¥rshelger" #: src/help.c:1183 msgid " Provide eternal holiday list with Old-Armenic calendar months" msgstr "" " TillhandahÃ¥ll evighetskalender med gammalarmeniska kalendermÃ¥nader" #: src/help.c:1195 msgid " Provide eternal holiday list with Old-Egyptic calendar months" msgstr "" " TillhandahÃ¥ll evighetskalender med gammalegyptiska kalendermÃ¥nader" #: src/help.c:1207 msgid "" " Provide eternal holiday list with Orthodox new-calendar holidays" msgstr " TillhandahÃ¥ll evighetskalender med ortodoxa nykalenderhelger" #: src/help.c:1219 msgid "" " Provide eternal holiday list with Orthodox old-calendar holidays" msgstr "" " TillhandahÃ¥ll evighetskalender med ortodoxa gammalkalenderhelger" #: src/help.c:1231 msgid "" " Provide eternal holiday list with Persian Jalaali-calendar holidays" msgstr "" " TillhandahÃ¥ll evighetskalender med persiska Jalaali-kalenderhelger" #: src/help.c:1243 msgid "" " Provide eternal holiday list with Persian Jalaali-calendar months" msgstr "" " TillhandahÃ¥ll evighetskalender med persiska Jalaali-kalendermÃ¥nader" #: src/help.c:1255 msgid " Provide eternal holiday list with zodiacal marker data" msgstr " TillhandahÃ¥ll evighetskalender med data om stjärntecken" #: src/help.c:1267 msgid " Provide eternal holiday list with country specific holidays" msgstr " TillhandahÃ¥ll evighetskalender med landsspecifika helgdagar" #: src/help.c:1271 #, c-format msgid " %-3s = Single country resp., territory code or a list of these," msgstr " %-3s = Enstaka landskod, omrÃ¥deskod, eller en lista med dessa" #: src/help.c:1276 #, c-format msgid "" " which are connected by `%s' characters. Countries/territories," msgstr " som är sammanbundna med \"%s\"-tecken. Länder/omrÃ¥den" #: src/help.c:1281 msgid " marked by # have an incomplete recording of holidays" msgstr " markerade med # har en ofullständig registration av helger" #: src/help.c:1285 #, c-format msgid " %-*s = Holidays in %s" msgstr " %-*s = Helgdagar i %s" #: src/help.c:1306 msgid "" " Set reference value for rise/set time respectively shadow length" msgstr "" " Ställ in referensvärdet för uppgÃ¥ng/nedgÃ¥ng respektive skugglängd" #: src/help.c:1310 #, 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:1321 msgid " Set base data of Earth's atmosphere" msgstr " Ställ in grundläggande data för jordens atmosfär" #: src/help.c:1325 #, c-format msgid " %-3s = Air pressure and temperature separated by `%s' character" msgstr " %-3s = Lufttryck och temperatur Ã¥tskilda med \"%s\"-tecken" #: src/help.c:1328 #, c-format msgid " Air pressure in Millibar (actual: %.3f)" msgstr " Lufttryck i millibar (faktiskt: %3.f)" #: src/help.c:1333 #, c-format msgid " Air temperature in degrees Celsius (actual: %+.3f)" msgstr " Lufttemperatur i grader Celsius (faktiskt: %+.3f)" #: src/help.c:1343 msgid " Limit rise/set times of Sun to the day" msgstr " Begränsa uppgÃ¥ng/nedgÃ¥ngstider för solen till dagen" #: src/help.c:1355 msgid " Represent astronomical times and data with utmost precision" msgstr "" " Representera astronomiska tider och data med yttersta precision" #: src/help.c:1365 #, c-format msgid " Execute `%c%c[%s]' shell commands" msgstr " Kör \"%c%c[%s]\"-skalkommandon" #: src/help.c:1368 #, c-format msgid " and \"TVAR[%s|%c%s]COMMAND\" assignments" msgstr " och \"TVAR[%s|%c%s]KOMMANDO\"-tilldelningar" #: src/help.c:1380 msgid " Change base time of astronomical functions" msgstr " Ändra bastiden för astronomiska funktioner" #: src/help.c:1383 msgid " respectively, change cycle-starting time" msgstr " respektive ändra cykelstarttiden" #: src/help.c:1393 #, 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:1401 #, 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:1417 msgid " Change cycle-ending time" msgstr " Ändra cykelsluttiden" #: src/help.c:1421 #, 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:1435 msgid " Change cycle-timestep" msgstr " Ändra cykeltidssteg" #: src/help.c:1439 #, 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:1452 msgid " Change base year of calendar" msgstr " Ändra basÃ¥ret i kalendern" #: src/help.c:1456 #, c-format msgid " %-3s = [%s|%s]YYYY Year offset value (actual: %d)" msgstr " %-3s = [%s|%s]YYYY Ã…rsskillnadsvärde (faktiskt: %d)" #: src/help.c:1468 msgid " Set period of Gregorian Reformation" msgstr " Ställ in perioden för gregorianska reformationen" #: src/help.c:1470 #, c-format msgid " Actual respected period: %02d-%02d %s %0*d" msgstr " Aktuell tidsperiod: %02d-%02d %s %0*d" #: src/help.c:1476 #, 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:1484 #, 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:1498 #, 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:1501 #, c-format msgid " Actual: (%s) `%s' (%s)" msgstr " Faktiskt: (%s) \"%s\" (%s)" #: src/help.c:1503 msgid "self-defined" msgstr "egendefinierat" #: src/help.c:1508 #, c-format msgid " %-6s = Format is: `%s' (%s)" msgstr " %-6s = Formatet är: \"%s\" (%s)" #: src/help.c:1516 #, 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:1559 msgid " Define translatable country specific special character pairs" msgstr " Definiera översättningsbara landsspecifika specialteckenpar" #: src/help.c:1563 #, c-format msgid " %-3s = UPPER-CASE-LETTER\"\"LOWER-CASE-LETTER... definitions" msgstr " %-3s = VERSAL\"\"GEMEN... definitioner" #: src/help.c:1568 #, 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 gör korrekt konvertiering av" #: src/help.c:1573 msgid "" " the preceding special characters in an individual date format," msgstr "" " de föregÃ¥ende specialtecknen i ett individuellt datumformat," #: src/help.c:1577 msgid "" " which has a STYLE format instruction component, and that, how" msgstr " vilka har en formatinstruktionskomponent STIL, och hur" #: src/help.c:1581 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:1590 #, c-format msgid "+++ FIXED DATES +++" msgstr "+++ FASTA DATUM +++" #: src/help.c:1611 #, 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:1616 #, 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:1620 src/help.c:2160 msgid " Implies period: Today" msgstr " Medför tidsperioden: idag" #: src/help.c:1624 msgid " c = Display only those dates, for which fixed dates exists" msgstr " c = Visa bara de dagar som har fasta datum" #: src/help.c:1628 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:1640 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:1653 #, 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:1656 #, c-format msgid " Actual: `%s'" msgstr " Faktisk: \"%s\"" #: src/help.c:1669 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:1681 msgid " 1. Representation of text" msgstr " 1. Representation av text" #: src/help.c:1693 msgid " = Set width of the biorhythm text graphics" msgstr " = Ställ in bredden pÃ¥ biorytmens textgrafik" #: src/help.c:1697 #, c-format msgid " %-3s = %d...%d Length of a single axis" msgstr " %-3s = %d - %d Längden pÃ¥ en axel" #: src/help.c:1710 msgid " = Set height of the Moon phase text graphics" msgstr " = Ställ in höjden pÃ¥ mÃ¥nfasens textgrafik" #: src/help.c:1714 #, c-format msgid " %-3s = %d...%d Total number of lines" msgstr " %-3s = %d...%d Totala antalet rader" #: src/help.c:1726 msgid " # a = Display origin of fixed date" msgstr " # a = Visa ursprunget till fast datum" #: src/help.c:1738 msgid " # A = Display using alternative list format" msgstr "" " # A = Visa genom att använda ett alternativt listformat" #: src/help.c:1750 msgid " # e = Include legal days and memorial days" msgstr " # e = Tag med allmänna helgdagar och minnesdagar" #: src/help.c:1752 msgid " # E = Include legal days only" msgstr " # E = Tag bara med allmänna helgdagar" #: src/help.c:1762 msgid " # k = Display week number" msgstr " # k = Visa veckonummer" #: src/help.c:1774 msgid " # o = Omit repeating date part of fixed dates" msgstr " # o = Utelämna del av datumet som upprepas" #: src/help.c:1786 msgid "" " # Q = Suppress leading blank line of fixed dates list" msgstr "" " # Q = Utelämna inledande tomrad i listan över fasta " "datum" #: src/help.c:1798 msgid " # U = Suppress date part of fixed dates" msgstr " # U = Utelämna datumdelen av fasta datum" #: src/help.c:1810 msgid " # J = Suppress text part of fixed dates" msgstr " # J = Utelämna textdel i fasta datum" #: src/help.c:1822 msgid " # x = Exclude title of fixed date list" msgstr " # x = Lista med fasta datum utan titel" #: src/help.c:1834 msgid " # z = Display consecutive number of fixed date" msgstr " # z = Visa fortlöpande fasta datum" #: src/help.c:1846 msgid "" " # Z = Display dates, for which fixed dates doesn't exist" msgstr " # Z = Visa dagar som saknar fasta datum" #: src/help.c:1854 msgid " 2. Respected period" msgstr " 2. Aktuell tidsperiod" #: src/help.c:1866 msgid " = Manage `29-FEBRUARY' in non-leap years" msgstr " = Hantera 29 FEBRUARI under icke-skottÃ¥r" #: src/help.c:1874 #, c-format msgid " %-3s = february Respect at `28-FEBRUARY'" msgstr " %-3s = february Beakta den 28 FEBRUARI" #: src/help.c:1883 #, c-format msgid " %-3s = march Respect at `01-MARCH'" msgstr " %-3s = march Beakta den 1 MARS" #: src/help.c:1896 msgid "" " # d = Include actual date if list of periods is " "generated" msgstr "" " # d = Tag med aktuellt datum om periodlista skapas" #: src/help.c:1908 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:1924 msgid " # Nd = Single absolute day N" msgstr " # Nd = Enstaka dag N" #: src/help.c:1926 #, c-format msgid " # %cdN = Single absolute day N" msgstr " # %cdN = Enstaka dag N" #: src/help.c:1931 msgid " # NMOD = Single day N relative to today" msgstr " # NMOD = Enstaka dag N relativt idag" #: src/help.c:1933 #, c-format msgid " MOD = %s Forwards" msgstr " MOD = %s FramÃ¥t" #: src/help.c:1935 #, c-format msgid " = %s Backwards" msgstr " = %s BakÃ¥t" #: src/help.c:1938 msgid " # Nw = Complete week N" msgstr " # Nw = Hel vecka N" #: src/help.c:1942 msgid "" " N = 0 1st week / last week of previous year" msgstr "" " N = 0 1:a veckan / sista veckan föregÃ¥ende " "Ã¥r" #: src/help.c:1946 msgid " N = 1...52 1st...52nd week (always)" msgstr " N = 1 - 52 1:a - 52:a veckan (alltid)" #: src/help.c:1950 msgid " N = 53 53rd week (sometimes)" msgstr " N = 53 53:e veckan (ibland)" #: src/help.c:1952 msgid " N = 99 Last week" msgstr " N = 99 Sista veckan" #: src/help.c:1955 #, c-format msgid " # %s%s = Single day %s of month %s" msgstr " # %s%s = Enstaka dag %s i mÃ¥naden %s" #: src/help.c:1961 #, c-format msgid " # %s%sN = Single N'th weekday %s of month %s" msgstr " # %s%sN = Enstaka N:e veckodagen %s i mÃ¥naden %s" #: src/help.c:1966 #, 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:1971 #, c-format msgid " N = 5 5th weekday %s (sometimes)" msgstr " N = 5 5:e veckodagen %s (ibland)" #: src/help.c:1975 #, c-format msgid " N = 9 Last weekday %s" msgstr " N = 9 Sista veckodagen %s" #: src/help.c:1979 #, c-format msgid " # %cdN%s = Single N'th weekday %s" msgstr " # %cdN%s = Enstaka N:e veckodagen %s" #: src/help.c:1984 #, 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:1989 #, c-format msgid " N = 52|53 52|53rd weekday %s (sometimes)" msgstr " N = 52|53 52|53:e veckodagen %s (ibland)" #: src/help.c:1993 #, c-format msgid " N = 99 Last weekday %s" msgstr " N = 99 Sista veckodagen %s" #: src/help.c:1998 #, 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:2003 #, 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:2008 #, 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:2013 #, 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:2017 #, c-format msgid " N = 99 %s of last week" msgstr " N = 99 %s i sista veckan" #: src/help.c:2023 #, 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 pÃ¥skdagen" #: src/help.c:2029 #, 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 pÃ¥skdagen" #: src/help.c:2035 #, 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:2041 #, 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:2047 #, 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:2053 #, 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:2061 msgid " # t|T = List tomorrow" msgstr " # t|T = Lista imorgon" #: src/help.c:2078 msgid " # w|W[MOD] = List complete week" msgstr " # w|W[MOD] = Lista hela veckan" #: src/help.c:2082 #, c-format msgid "" " [MOD] = %s List tomorrow until ending day of week" msgstr "" " [MOD] = %s Lista frÃ¥n imorgon till slutet pÃ¥ veckan" #: src/help.c:2087 #, c-format msgid "" " = %s List yesterday until starting day of week" msgstr "" " = %s Lista frÃ¥n igÃ¥r till början pÃ¥ veckan" #: src/help.c:2107 msgid " # m|M[MOD] = List complete month" msgstr " # m|M[MOD] = Lista hela mÃ¥naden" #: src/help.c:2111 #, c-format msgid "" " [MOD] = %s List tomorrow until ending day of month" msgstr "" " [MOD] = %s Lista frÃ¥n imorgon till slutet pÃ¥ mÃ¥naden" #: src/help.c:2116 #, c-format msgid "" " = %s List yesterday until starting day of month" msgstr "" " = %s Lista frÃ¥n igÃ¥r till början pÃ¥ mÃ¥naden" #: src/help.c:2136 msgid " # y|Y[MOD] = List complete year" msgstr " # y|Y[MOD] = Lista hela Ã¥ret" #: src/help.c:2140 #, c-format msgid "" " [MOD] = %s List tomorrow until ending day of year" msgstr "" " [MOD] = %s Lista frÃ¥n imorgon till slutet pÃ¥ Ã¥ret" #: src/help.c:2145 #, c-format msgid "" " = %s List yesterday until starting day of year" msgstr " = %s Lista frÃ¥n igÃ¥r till början pÃ¥ Ã¥ret" #: src/help.c:2158 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:2164 msgid " f = Display only those dates, for which fixed dates exists" msgstr " f = Visa bara de dagar, som har fasta datum" #: src/help.c:2168 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:2172 #, 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:2183 msgid " Define additional resource file line" msgstr " Definiera ytterligare rader i resursfilen" #: src/help.c:2185 #, c-format msgid " %-3s = Any possible resource file line" msgstr " %-3s = Vilken resursfilrad som helst" #: src/help.c:2195 #, c-format msgid "%cDATE" msgstr "%cDATUM" #: src/help.c:2197 msgid "Use given `DATE' instead of today's date" msgstr "Använd angivet \"DATUM\" i stället för dagens datum" #: src/help.c:2201 #, 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:2208 #, c-format msgid " %s%cwN[%s], month name[%s], weekday name[N] or %s" msgstr "" " %s%cwN[%s], namn pÃ¥ mÃ¥nad[%s], namn pÃ¥ veckodag[N] eller %s" #: src/help.c:2217 #, c-format msgid "%cFILE" msgstr "%cFIL" #: src/help.c:2219 msgid "Preload options and commands from `FILE'" msgstr "Läs flaggor och kommandon frÃ¥n \"FIL\"" #: src/help.c:2223 msgid "COMMAND" msgstr "KOMMANDO" #: src/help.c:2225 #, c-format msgid "%s = Month in range: %d...%d" msgstr "%s = MÃ¥nad i intervallet: %d - %d" #: src/help.c:2230 #, c-format msgid " or: month name | %s | %s%s | %s%s | %s%s" msgstr " eller: namn pÃ¥ mÃ¥nad | %s | %s%s | %s%s | %s%s" #: src/help.c:2235 #, 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:2241 #, 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:2247 #, c-format msgid "%s%*s = Year in range: %d...%d" msgstr "%s%*s = Ã…r i intervallet: %d - %d" #: src/help.c:2251 #, 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:2256 #, 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:2282 #, 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:2285 #, 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:2289 #, c-format msgid " %sL, %s Display software license and quit program" msgstr " %sL, %s Visa programlicens och avsluta programmet" #: src/help.c:2293 #, c-format msgid " %sV, %s Display version information and quit program" msgstr " %sV, %s Visa versionsinformation och avsluta programmet" #: src/help.c:2301 #, c-format msgid " %sp, %s Direct output through external `%s' pager" msgstr " %sp, %s Skicka utdata genom en extern \"%s\"-sidvisare" #: src/help.c:2308 src/help.c:2313 #, c-format msgid " %sp, %s Direct output through simple internal pager" msgstr " %sp, %s Skicka utdata genom en enkel intern sidvisare" #: src/help.c:2338 msgid "This software doesn't claim completeness, correctness or usability." msgstr "Detta program gör inte ansprÃ¥k pÃ¥ fullständighet, korrekthet eller" #: src/help.c:2342 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:2346 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:2350 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:2352 msgid "agreement, which binds you LEGALLY !!" msgstr "accepterar du utan undantag detta avtal!" #: src/help.c:2357 msgid "This program is free software; you can redistribute it and/or modify" msgstr "" "Detta program är fri programvara; du fÃ¥r distribuera det och/eller modifiera" #: src/help.c:2361 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:2365 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:2367 msgid "any later version." msgstr "en senare version." #: src/help.c:2372 msgid "You should have received a copy of the `GNU General Public License'" msgstr "Du skall ha fÃ¥tt en kopia av \"GNU General Public License\"" #: src/help.c:2374 msgid "along with this program; if not, write to the:" msgstr "tillsammans med detta program; om inte, skriv till:" #: src/help.c:2423 #, 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:2451 #, c-format msgid "Use `%s %s|[%s?]" msgstr "Använd \"%s %s|[%s?]" #: src/help.c:2460 msgid "for more information." msgstr "för mer information." #: src/help.c:2564 src/tcal.c:197 src/txt2gcal.c:136 src/gcal2txt.c:136 #, c-format msgid "Email bug reports to <%s>" msgstr "Skicka felrapporter till <%s>" #: src/help.c:2566 #, c-format msgid "GNU gcal home page: <%s>" msgstr "" #: src/help.c:2568 #, c-format msgid "General help using GNU software: <%s>" msgstr "" #: src/help.c:2594 src/tcal.c:219 src/txt2gcal.c:158 src/gcal2txt.c:158 #, 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:2598 src/tcal.c:222 src/txt2gcal.c:161 src/gcal2txt.c:161 #, c-format msgid "There is NO warranty, without even the implied warranty of" msgstr "Det finns INGEN garanti, ej heller nÃ¥gon underförstÃ¥dd garanti om" #: src/help.c:2600 src/tcal.c:224 src/txt2gcal.c:163 src/gcal2txt.c:163 #, 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:2616 #, c-format msgid "%s: The Gregorian calendar program (GNU cal) %s" msgstr "%s: Det gregorianska kalenderprogrammet (GNU cal) %s" #: src/help.c:2624 #, c-format msgid "Usage: %s [[OPTION...] [%cDATE] [%cFILE...]] [COMMAND]" msgstr "Användning: %s [[FLAGGA...] [%cDATUM] [%cFIL...]] [KOMMANDO]" #: src/help.c:2627 #, c-format msgid "Usage: %s [[OPTION...] [%cFILE...]] [COMMAND]" msgstr "Användning: %s [[FLAGGA...] [%cFIL...]] [KOMMANDO]" #: src/help.c:2703 src/help.c:2849 msgid " 4.0 or 4.02" msgstr " 4.0 eller 4.02" #: src/help.c:2711 src/help.c:2857 msgid " later than 5.0" msgstr " senare än 5.0" #: src/help.c:2722 src/help.c:2864 msgid "++ 3.0 or later" msgstr "++ 3.0 eller senare" #: src/help.c:2749 src/help.c:2970 msgid "5.1 or earlier" msgstr "5.1 eller tidigare" #: src/help.c:2752 src/help.c:2973 src/help.c:3128 src/help.c:3198 msgid "unknown compiler" msgstr "okänd kompilator" #: src/help.c:2787 src/help.c:2876 src/help.c:3010 src/help.c:3032 #: src/help.c:3101 src/help.c:3138 src/help.c:3156 src/help.c:3213 #: src/help.c:3428 msgid " on " msgstr " pÃ¥ " #: src/help.c:2826 msgid "(bad version)" msgstr "(felaktig version)" #: src/help.c:2873 msgid "unknown compiler (SDK?)" msgstr "okänd kompilator (SDK?)" #: src/help.c:2941 msgid " later than 4.5" msgstr " senare än 4.5" #: src/help.c:2951 msgid "++ 1.0 or later" msgstr "++ 1.0 eller senare" #: src/help.c:2959 msgid " 1.0 or 1.5?" msgstr " 1.0 eller 1.5?" #: src/help.c:3074 msgid "unknown " msgstr "okänd " #: src/help.c:3086 #, c-format msgid "version %d.%d" msgstr "version %d.%d" #: src/help.c:3089 src/help.c:3122 src/help.c:3248 #, c-format msgid "version %d" msgstr "version %d" #: src/help.c:3091 #, c-format msgid "unknown version" msgstr "okänd version" #: src/help.c:3205 #, c-format msgid " (%.4s for Alpha)" msgstr " (%.4s för Alpha)" #: src/help.c:3208 #, c-format msgid " (%.4s for VAX)" msgstr " (%.4s för VAX)" #: src/help.c:3359 msgid " (NetBSD before 0.9)" msgstr " (NetBSD före 0.9)" #: src/help.c:3359 msgid " (NetBSD 1.2 or later)" msgstr " (NetBSD 1.2 eller senare)" #: src/help.c:3366 msgid " (FreeBSD 2.0 or later)" msgstr " (FreeBSD 2.0 eller senare)" #: src/help.c:3369 msgid " (BSD/386 1.1 or later)" msgstr " (BSD/386 1.1 eller senare)" #: src/print.c:544 src/print.c:978 src/print.c:1033 msgid "CW" msgstr "VE" #: src/print.c:565 msgid "Week" msgstr "Vecka" #: src/rc-insert.c:1706 src/rc-insert.c:2824 msgid "pm" msgstr "em" #: src/rc-insert.c:1715 src/rc-insert.c:2833 msgid "am" msgstr "fm" #: src/rc-insert.c:2018 src/rc-insert.c:2028 msgid "d'\"" msgstr "°'\"" #: src/rc-insert.c:2038 msgid "h'\"" msgstr "h'\"" #: src/rc-insert.c:3728 src/rc-utils.c:2585 #, 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:3750 src/rc-utils.c:2609 #, 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:513 msgid "Emo" msgstr "Emo" #: src/rc-use.c:518 msgid "Int" msgstr "Int" #: src/rc-use.c:523 msgid "Phy" msgstr "Fys" #: src/rc-use.c:1086 src/rc-use.c:1177 msgid "`Eternal holiday list'" msgstr "\"Evighetskalender för helgdagar\"" #: src/rc-use.c:1877 src/rc-use.c:1926 src/rc-use.c:2015 src/rc-use.c:2107 msgid "`Internal'" msgstr "\"Intern\"" #: src/rc-use.c:2339 #, c-format msgid " ; Week %s" msgstr " ; vecka %s" #: src/rc-use.c:2348 #, c-format msgid "Week %s" msgstr "Vecka %s" #: src/rc-utils.c:397 src/rc-utils.c:414 #, 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:3269 #, 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:3272 src/rc-utils.c:3686 #, c-format msgid "Line %ld: %s" msgstr "Rad %ld: %s" #: src/rc-utils.c:3633 src/utils.c:274 #, c-format msgid "%s: abort, " msgstr "%s: avbryt, " #: src/rc-utils.c:3641 #, c-format msgid "illegal variable definition in file `%s'" msgstr "otillÃ¥ten variabeldefinition i filen \"%s\"" #: src/rc-utils.c:3643 #, c-format msgid "illegal definition of variable `%c'" msgstr "otillÃ¥ten definition av variabeln \"%c\"" #: src/rc-utils.c:3650 #, c-format msgid "illegal variable operation in file `%s'" msgstr "otillÃ¥ten operation med variabel i filen \"%s\"" #: src/rc-utils.c:3652 #, c-format msgid "illegal operation on variable `%c'" msgstr "otillÃ¥ten operation pÃ¥ variabeln \"%c\"" #: src/rc-utils.c:3658 #, c-format msgid "variable `%c' undefined in file `%s'" msgstr "variabeln \"%c\" är odefinierad i filen \"%s\"" #: src/rc-utils.c:3662 #, 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:3683 #, c-format msgid "Invalid argument in command line given -- %s" msgstr "Ogiltigt argument i den angivna kommandoraden -- %s" #: src/rc-utils.c:3695 #, c-format msgid "Argument `%s' of command line ignored." msgstr "Argumentet \"%s\" pÃ¥ kommandoraden ignorerat." #: src/rc-utils.c:3698 #, c-format msgid "Line %ld ignored: %s" msgstr "Rad %ld ignorerad: %s" #: src/tty.c:424 #, c-format msgid "%s: for more, <%s> to quit..." msgstr "%s: för mer, <%s> för att avsluta..." #: src/tty.c:1019 #, c-format msgid "environment variable `%s' not found" msgstr "miljövariabeln \"%s\" hittades inte" #: src/tty.c:1026 #, c-format msgid "environment variable `%s' not set" msgstr "miljövariabeln \"%s\" är inte satt" #: src/tty.c:1066 msgid "`termcap' file not found" msgstr "\"termcap\"-filen hittades inte" #: src/tty.c:1071 #, c-format msgid "unknown terminal type defined in `%s'" msgstr "okänd terminaltyp definierad i \"%s\"" #: src/tty.c:1080 #, c-format msgid "" "\n" "%s: warning, %s.\n" "\n" msgstr "" "\n" "%s: varning, %s.\n" "\n" #: src/utils.c:280 #, 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 pÃ¥skdagen\n" "Ã…ret mÃ¥ste vara i intervallet (%d - %d)" #: src/utils.c:284 src/tcal.c:324 src/txt2gcal.c:263 src/gcal2txt.c:263 #, c-format msgid "`%s' line %ld: virtual memory exhausted (%s=%d)" msgstr "\"%s\" rad %ld: virtuellt minne slut (%s=%d)" #: src/utils.c:289 #, 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:294 #, c-format msgid "" "invalid month field(%02d) in file `%s'\n" "Line %ld: %s" msgstr "" "ogiltigt mÃ¥nadsfält(%02d) i filen \"%s\"\n" "Rad %ld: %s" #: src/utils.c:299 #, 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:303 #, 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:308 #, 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:312 #, c-format msgid "file `%s' not found" msgstr "filen \"%s\" kunde inte hittas" #: src/utils.c:316 #, 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:322 #, 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:327 #, 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:332 #, c-format msgid "sending eMail to <%s> failed" msgstr "skickande av e-post till <%s> misslyckades" #: src/utils.c:334 src/utils.c:352 #, c-format msgid "" "\n" "`%s' line %ld: " msgstr "" "\n" "\"%s\" rad %ld: " #: src/utils.c:341 #, c-format msgid "`%s' line %ld: (`%s') `%s%d' failed" msgstr "\"%s\" rad %ld: (\"%s\") \"%s%d\" misslyckades" #: src/utils.c:350 #, c-format msgid "read error in file `%s'" msgstr "läsfel i filen \"%s\"" #: src/utils.c:358 #, c-format msgid "" "illegal character in response file `%s'\n" "Line %ld: %s" msgstr "" "otillÃ¥tet tecken i svarsfilen \"%s\"\n" "Rad %ld: %s" #: src/utils.c:364 src/tcal.c:330 src/txt2gcal.c:269 src/gcal2txt.c:269 #, 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:369 #, c-format msgid "(`%s') date format `%s' is invalid" msgstr "(\"%s\") datumformatet \"%s\" är ogiltigt" #: src/utils.c:375 #, c-format msgid "%s in search pattern `%s'" msgstr "%s i sökmönstret \"%s\"" #: src/utils.c:378 #, c-format msgid "invalid search pattern `%s' specified" msgstr "felaktigt sökmönster \"%s\" angivet" #: src/utils.c:383 src/tcal.c:338 src/txt2gcal.c:274 src/gcal2txt.c:274 #, c-format msgid "`%s' line %ld: (`%s') unmanaged error (%d)" msgstr "\"%s\" rad %ld: (\"%s\") ohanterat fel (%d)" #: src/utils.c:403 src/tcal.c:358 src/txt2gcal.c:294 src/gcal2txt.c:294 #, c-format msgid "" "\n" "%s: program aborted by signal %d\n" msgstr "" "\n" "%s: programmet avbrutet av signalen %d\n" #: src/utils.c:1080 msgid "th" msgstr ":e" #: src/utils.c:1084 msgid "st" msgstr ":a" #: src/utils.c:1088 msgid "nd" msgstr ":a" #: src/utils.c:1092 msgid "rd" msgstr ":e" #: src/utils.c:1123 src/utils.c:1174 src/utils.c:1225 msgid "invalid day" msgstr "ogiltig dag" #: src/utils.c:1128 msgid "Mon" msgstr "mÃ¥n" #: src/utils.c:1133 msgid "Tue" msgstr "tis" #: src/utils.c:1138 msgid "Wed" msgstr "ons" #: src/utils.c:1143 msgid "Thu" msgstr "tor" #: src/utils.c:1148 msgid "Fri" msgstr "fre" #: src/utils.c:1153 msgid "Sat" msgstr "lör" #: src/utils.c:1158 msgid "Sun" msgstr "sön" #: src/utils.c:1179 msgid "Mo" msgstr "mÃ¥" #: src/utils.c:1184 msgid "Tu" msgstr "ti" #: src/utils.c:1189 msgid "We" msgstr "on" #: src/utils.c:1194 msgid "Th" msgstr "to" #: src/utils.c:1199 msgid "Fr" msgstr "fr" #: src/utils.c:1204 msgid "Sa" msgstr "lö" #: src/utils.c:1209 msgid "Su" msgstr "sö" #: src/utils.c:1226 msgid "Monday" msgstr "mÃ¥ndag" #: src/utils.c:1226 msgid "Tuesday" msgstr "tisdag" #: src/utils.c:1226 msgid "Wednesday" msgstr "onsdag" #: src/utils.c:1226 msgid "Thursday" msgstr "torsdag" #: src/utils.c:1227 msgid "Friday" msgstr "fredag" #: src/utils.c:1227 msgid "Saturday" msgstr "lördag" #: src/utils.c:1227 msgid "Sunday" msgstr "söndag" #: src/utils.c:1243 src/utils.c:1320 msgid "invalid month" msgstr "ogiltig mÃ¥nad" #: src/utils.c:1248 msgid "Jan" msgstr "jan" #: src/utils.c:1253 msgid "Feb" msgstr "feb" #: src/utils.c:1258 msgid "Mar" msgstr "mar" #: src/utils.c:1263 msgid "Apr" msgstr "apr" #: src/utils.c:1268 msgid "May" msgstr "maj" #: src/utils.c:1273 msgid "Jun" msgstr "jun" #: src/utils.c:1278 msgid "Jul" msgstr "jul" #: src/utils.c:1283 msgid "Aug" msgstr "aug" #: src/utils.c:1288 msgid "Sep" msgstr "sep" #: src/utils.c:1293 msgid "Oct" msgstr "okt" #: src/utils.c:1298 msgid "Nov" msgstr "nov" #: src/utils.c:1303 msgid "Dec" msgstr "dec" #: src/utils.c:1321 msgid "January" msgstr "januari" #: src/utils.c:1321 msgid "February" msgstr "februari" #: src/utils.c:1322 msgid "March" msgstr "mars" #: src/utils.c:1322 msgid "April" msgstr "april" #: src/utils.c:1332 msgid "May " msgstr "maj" #: src/utils.c:1333 msgid "June" msgstr "juni" #: src/utils.c:1333 msgid "July" msgstr "juli" #: src/utils.c:1334 msgid "August" msgstr "augusti" #: src/utils.c:1334 msgid "September" msgstr "september" #: src/utils.c:1335 msgid "October" msgstr "oktober" #: src/utils.c:1335 msgid "November" msgstr "november" #: src/utils.c:1335 msgid "December" msgstr "december" #: src/tcal.c:191 #, c-format msgid "Usage: %s [--%s | --%s] | [--%s=[+|-]NUMBER] [ARGUMENT...]\n" msgstr "Användning: %s [--%s | --%s] | [--%s=[+|-]TAL] [ARGUMENT...]\n" #: src/tcal.c:320 src/txt2gcal.c:259 src/gcal2txt.c:259 #, c-format msgid "" "\n" "%s: abort, " msgstr "" "\n" "%s: avbryt, " #: src/tcal.c:335 #, c-format msgid "shift value `%s' is invalid" msgstr "skiftvärdet \"%s\" är ogiltigt" #: src/tcal.c:907 #, c-format msgid "%s: option `--%s' requires an argument" msgstr "%s: flaggan \"--%s\" kräver ett argument" #: src/tcal.c:1071 #, c-format msgid "%s: error during program execution of `%s'\n" msgstr "%s: fel när programmet \"%s\" kördes\n" #: src/txt2gcal.c:131 #, c-format msgid "Usage: %s [--%s | --%s] | [TEXT-FILE | -] [DATE-PART]\n" msgstr "Användning: %s [--%s | --%s] | [TEXTFIL | -] [DATUMDEL]\n" #: src/txt2gcal.c:755 src/gcal2txt.c:754 #, c-format msgid "%s: no regular file\n" msgstr "%s: inte en vanlig fil\n" #: src/txt2gcal.c:760 src/gcal2txt.c:759 #, c-format msgid "%s: file not found\n" msgstr "%s: filen kunde inte hittas\n" #: src/gcal2txt.c:131 #, c-format msgid "Usage: %s [--%s | --%s] | [RESOURCE-FILE | -]\n" msgstr "Användning: %s [--%s | --%s] | [RESURSFIL | -]\n" #~ msgid "" #~ " +++ If you specify two digits for the year I DON'T assume %2d%s +++" #~ msgstr " +++ Om du anger Ã¥ret med tvÃ¥ siffror ANTAR JAG INTE %2d%s +++" #~ msgid " +++ `%s' is free software, enjoy =8^) +++" #~ msgstr " +++ \"%s\" är \"fri programvara\". Mycket nöje! =8^) +++" gcal-3.6.3/po/tr.gmo0000644000175000017500000031604012125376136011133 00000000000000Þ•€,UXpu qu"~u¡uµuCÆuA vELvB’v+ÕvLwKNwKšwJæwM1xDxFÄxF y@RyA“yFÕyFz=cz6¡z7Øz1{7B{Az{E¼{C|AF|Iˆ|HÒ|H}?d}*¤}!Ï}$ñ}4~?K~M‹~HÙ~H"PkJ¼+€+3€?_€6Ÿ€4Ö€= @IJŠKÕJ!‚El‚D²‚J÷‚DBƒ1‡ƒ1¹ƒ9ëƒ4%„<Z„@—„2Ø„< …9H…0‚…*³…JÞ…<)†Mf†7´†Nì†?;‡B{‡.¾‡Ní‡.<ˆBkˆ(®ˆ-׈;‰-A‰Co‰#³‰׉Kõ‰JAŠ?ŒŠHÌŠ'‹J=‹5ˆ‹!¾‹4à‹&Œ"<Œ_Œ6ŒJ¶Œ.C0:tF¯6ö3-Ž5aŽA—Ž?ÙŽ5,OJ|EÇ3 (A6j/¡+Ñ7ý75‘Em‘:³‘ î‘0’(@’2i’Eœ’Câ’D&“Ek“C±“Nõ“LD”O‘”Bá”D$•Pi•Dº•Bÿ•HB–K‹–I×–F!—Dh—O­—Mý—GK˜G“˜JÛ˜J&™Mq™K¿™= šEIšKš@ÛšE›9b›.œ›7Ë›-œJ1œ=|œ-ºœJèœ03=d6¢CÙ7ž=Už8“ž9Ìž/Ÿ?6Ÿ@vŸ2·ŸFêŸ&1 HX .¡ BРB¡XV¡c¯¡]¢5q¢:§¢Eâ¢G(£,p£@£EÞ£*$¤EO¤E•¤AÛ¤C¥Ea¥7§¥@ߥ: ¦-[¦‰¦I©¦Ió¦=§;Y§:•§=Ч;¨8J¨<ƒ¨>À¨@ÿ¨M@©6Ž©;Å©ªª#ª;ªSªjª ª Œª ™ª ¤ª °ª½ªBƪ «B«Q«a«(q«š«Ÿ« ¾«Ë«Ú«ú«¬!¬$(¬M¬#g¬'‹¬&³¬/Ú¬+ ­ 6­;B­+~­ª­%¾­#ä­®!®)6®`®$}®+¢®&ή%õ®(¯&D¯k¯=ˆ¯"Ư#é¯ °!.°"P° s°°‘°¡° µ°À° Ó°Þ° ñ°ü° ±±-±<±K±5M±ƒ±‡±‹±š± «± ¹±ű Ù±ä±ì±ý±²²+²;²K².Z² ‰²–² ¥²²² º²IJͲ Ö²÷²³-³M³m³Œ³§³³ݳó³´!´9´S´k´s´ ‡´ •´Ÿ´£´©´ ¹´!ôå´µ µ& µGµXµ `µ nµ|µ‘µ£µ©µµ Ûµ æµôµüµ ¶ ¶"¶&¶ -¶7¶J¶d¶¶–¶³¶ƶÙ¶õ¶ý¶ ··4·O·S·[·c· z· ‡·”··­· Á·Ì·Þ·ð·¸¸%¸;¸M¸^¸z¸ޏ–¸ž¸­¸´¸¼¸ĸ׸í¸õ¸þ¸¹$¹ :¹D¹ [¹g¹ o¹{¹¹ ¢¹®¹ ·¹ Ĺ Ϲ ݹè¹ï¹ º'º>ºPºYº iºvº ‰º •ºŸº°º¸º »ºƺ ϺÚºáºðº»» -»N»j»}»Œ»¨»·» Ë» Ø»4å»0¼ K¼ V¼b¼k¼ †¼“¼¦¼·¼Ƽʼå¼ö¼û¼ ½ ½*½.½I½X½p½v½|½“½ª½²½¶½ ͽ Û½é½û½ ¾ ¾+¾C¾ L¾ V¾ c¾p¾9‚¾¼¾; վ᾿¿.¿ G¿T¿j¿y¿ ‰¿”¿œ¿¤¿¶¿ »¿ ǿտè¿î¿õ¿ÀÀÀH%ÀnÀŒÀ¨À¹ÀÊÀÙÀéÀÁÁ3ÁGÁ\ÁsÁŠÁ¦ÁÀÁÚÁïÁ  *Â8Â%TÂz™¡ µÂ ÃÂÑÂÚÂã öÂÃÃ5ÃJÃaà sÃÃ“à —à ¥Ã³ÃÂÃÚÃâà èà ôÃÄÄ$Ä ;Ä GÄTÄtÄŽÄ’Ä.¥ÄÔÄîÄ Å ÅÅ%Å-ÅBÅKÅcÅrłŗÅ2ŸÅÒÅÖÅ òÅ ýÅ ÆÆ "Æ/ÆGÆXÆmƄƈƑưÆÅÆ0ׯ1Ç1:Ç*lÇ.—Ç:ÆÇ;È:=ÈxȘȟȧȻÈËÈÔÈ%èÈÉ%É@É`ÉcÉjÉ }ɋɜɱɵɼÉÄÉ ÓÉÝÉåÉ ìÉ ùÉÊ"Ê3Ê;ÊVÊfÊuÊ‰Ê˜Ê ¨Ê¶Ê"ËÊîÊ Ë *Ë7ËFË\ËwˉËË –Ë  Ë¬Ë ÅËÐË âËðËÌ/ÌFÌ MÌ ZÌdÌ lÌ wÌ…Ì”Ì «Ì¶Ì »ÌÅÌÌÌÜÌóÌÍ ÍÍ Í$Í@ÍWÍsÍ wÍ „Í1ÍÁÍØÍèÍ üÍ ÎÎ !Î+Î<Î DÎPÎkΆÎAŽÎ ÐÎÛÎâÎóÎ Ï'ÏAÏXÏrψÏÏ£Ï ¹ÏÅÏÉÏÒÏ,èÏÐÐ"Ð&Ð=ÐVÐ]ÐcÐyЊОглпÐÇÐËÐÑÐéÐÑÑ/Ñ6Ñ:Ñ?ÑCÑ HÑUÑ eÑ qÑ|Ñ„ÑѤѻÑÏÑïÑ ÒÒ#Ò<ÒCÒ KÒVÒ kÒvÒ ŽÒ™Ò#¬ÒÐÒæÒíÒ'Ó(Ó0Ó8ÓGÓ OÓ[Ó zÓˆÓ Ó ªÓ´ÓÊÓ ÓÓ áÓìÓÔÔ4ÔPÔ VÔ cÔpÔ.ŠÔ¹Ô ÀÔËÔÔÔÙÔ ßÔ ìÔ ÷ÔÕÕÕÕ /Õ:ÕKÕ `Õ kÕvÕ ‹Õ˜Õ®ÕÆÕÛÕìÕÿÕÖ -Ö9ÖIÖZÖ lÖyÖ ‰Ö ”ÖžÖ¢Ö§Ö¯Ö·Ö ÉÖÖÖÝÖìÖ××&×5×8×<×C×J×R×d× x×1ƒ× µ× À×Ì×Ô×ä× ø×Ø Ø*Ø>ØPØ XØcØt،ؠرØÇØߨ÷Ø ÙÙ %Ù1Ù 9ÙEÙbÙ$€Ù¥ÙÅÙ ÔÙ ßÙíÙöÙ Ú Ú (Ú2Ú8Ú@ÚTÚ YÚcÚkÚ {ڜڹÚÀÚÄÚ/ÍÚ9ýÚ-7Û eÛqÛÛ‰Û۔ۜ۬۽ÛÒÛçÛEìÛ2ÜJÜaÜ|ܔܱÜÍÜçÜÝÝ ÝÝ Ý$Ý+Ý;ÝJÝ[Ý dÝqÝ‹Ý“Ý ¢Ý°Ý¿Ý ÎÝØÝéÝÿÝÞÞ!Þ1Þ PÞ\Þ `Þ nÞ yÞ…ÞŽÞ•ÞžÞ §Þ(²ÞÛÞøÞß"ß5ßMß gßuß †ß’ߦ߽ßÃßÌßáßéßùßàà 'à3àDà ]àjà~àà¤à½à ÍàØàêàùà áá.á6áRá eásázáƒá•á«á0Âáóá âââ2âPâVâ fâ tââ•â¬âÂâÆâ Ïâ Ùâæâõâ ãã'ã+ã :ãDãXãnã €ãã  ã­ã ¿ã Êã Öã äã òãþãä)ä FäRä läzä ƒä äžä²ä ÇäÓäèäñäúä åå,å <åIå Qå\å nå({å¤åÁåÇå ×å ãåðåææ&æ6æGæWæfæxæ‡æ—æ¦æ ¶æ ÀæÎæãæûæç$ç7çIçRçaçuç…ç–ç§ç ¸ç ÆçÔçåçúçèè0è@èSèmè†è èè0³èäèøè ééé#é4éPéhélésé†é Žé™é¸é Èé ÔéÞé åé ðé ýé ê"ê!?êaêxêê¡ê¶êÊêÝêõêëë0ëFë[ënë„ëšë®ëÁëÑëäëõëìì2ìOì Vìaì jìxì ìì ì ´ì¿ìÐììì í*í>íRígí:|í=·íDõíC:î~î‚î ‹î•î¤î»îÂîÊîÜî âîîîôîï ï"ï6ï Lï5Wï)ï·ïÖïÙï÷ïûïð ðð ð(ðAðHð ^ðjð~ð…ðð”ðœð ¸ðÂðÞðóð ññ*ñ?ñUñlñ…ñœñ¶ñ"Íñðñòò1òEò\òrò…òšò±òÉòÝòôòó'ó?óYópó†óó²óÎóçóôô4ôOôbôyôŽô©ôÄôáôüôõ(õ;õQõhõõõµõËõÝõ=åõ0#ö8TöKö7Ùö.÷@÷(Q÷ z÷ …÷“÷ ›÷¥÷ µ÷Ã÷ Ù÷ æ÷ò÷û÷øøø4øNø_ønøø‚ø †ø ø›ø ø ¨ø²øÄø Óø ßøëø ù ùù0ù9ù@ùBùJù PùZùyù˜ù¸ùÑùCðù 4ú @úJúaúhúoúxú7|ú#´úAØú*û/Eûuû Œû—û%°û.Öûüü ü5(ü^übüjü#ü!£üÅü.Ìüûüý%ý)ý42ý#gý"‹ý(®ý'×ý8ÿý+8þ dþ1pþ ¢þ3°þ5äþ%ÿ4@ÿNuÿFÄÿ &HAŠ>ÌÏÒ ê ø "/KNVYbs%‹±$Á æ ñŽÿ Ž'›ÃÖEéB/<r:¯+êVVmTÄCR]M°LþKKI—>áG Ch>¬2ë9 1X ?Š EÊ L K] ?© Oé O9 M‰ 1× ) #3 1W =‰ HÇ R Lc P° _[a.½.ìA8]0–:Ç.S1Q…G×B7bRšBí.0-_98ÇVHW7 EØ5-T&‚O©CùB==€P¾;HK5”FÊ,G>+†0²Iã.-K\"¨ËKäP0=A¿,K.0z!«EÍ-+A-m<›EØ+MJD˜AÝ;D[@ =áCEc5©Gß?';g1£7Õ; 2I >| @» Hü XE!%ž!DÄ!, "06"=g";¥":á"B#@_#H #Fé#C0$:t$<¯$Kì$<8%Bu%>¸%C÷%H;&;„&9À&Iú&GD'GŒ'HÔ'K(Ki(Jµ(I)<J)D‡)PÌ)=*M[*H©*Kò*<>+5{+R±+J,4O,T„,?Ù,<-?V-?–-3Ö-5 .7@.Dx.3½.Jñ.J²7Fñ7L88R…8QØ8\*9U‡9<Ý94:O:c:u:’:¯:Ë:é:ø: ; ; ;-;<6;s;7x; °;¾;+Ï;û; < $< .<+<< h<‰<’<#š<¾<$Ô<-ù<9'=+a=/= ½=<È=8>>>*X>)ƒ>­>Ê>/æ>?+3?1_?-‘?,¿?&ì?(@<@IY@"£@)Æ@ ð@'A#9A]AnAƒA—A°A¿AßA"îAB%#BIB&\BƒB”B¤B3¦BÚBÞBâBôB C C!C ]C]K]_]g]o]w]#‡] «]¶]Ê]Ò]í]ý] ^ ^/^ ?^M^"g^Š^©^ Æ^Ó^ä^ú^_'_._ 3_ =_G_ g_u_†_%—_½_Ý_ ø_` `"`*`9`J`\` v`` †`` •`£`¼`Ì` Õ`ß`å`÷`a+aGa KaXa+ka—a´aÇa Ûaèaúa b b $b /b;bSblbHub ¾bÉbÐbçbc!cAc!`c‚c  c¬cÂc Øcâcæcíc)d1d6d?dCdXdqdyddŸd³dÎdédñdõdúdþde e )eJe]eeeiepete|e‹eže ­e¸e ÀeÌeéeffvPvdvuv‰v¥v¸vÍv ævôv ww-w5wSwewvw}w†wŸw²w&Îwõwx xx7xWx]xpx xŒx¤xºxÐx Ôx Þxëx ûx"y *y8y@yDyTy[yny…yšy­yÁyÓy æy ñy þy zz*zFz Vz wzƒz žz ¬z ¶z ÃzÑzæz {{+{4{={U{h{{{ Œ{š{ ¡{¯{ Ä{*Ò{ý{|| /|;|M|^|t|ˆ|›|¯|Ã|Ó|è|ü| }} 0}:}J}d}‚}ž}¯}Á}Õ}Þ}ð}~~-~@~T~e~w~‰~£~·~Í~ß~ò~9BU6o¦¾Õéìò€ €?€C€I€X€a€i€ˆ€˜€ §€±€¹€È€ ׀ဠò€2G]l‘¢¸ÇØí‚‚%‚9‚M‚_‚ p‚~‚‚ ž‚¬‚½‚ Ñ‚ò‚ ù‚ƒ ƒ"ƒ @ƒMƒPƒ eƒoƒƒœƒ»ƒÕƒëƒûƒ„&)„LP„M„Në„:… >… H…U…g…~…………¤…ª…¹…¿…Ö…æ…ö…† †C*†2n†"¡†Ćdžæ†ê†ð†ù†ÿ† ‡‡.‡5‡L‡[‡p‡ w‡„‡‹‡“‡®‡¿‡܇÷‡ˆ(ˆDˆ_ˆ{ˆ˜ˆ¸ˆÕˆõˆ(‰;‰W‰s‰މ¨‰ʼná‰ú‰Š2ŠPŠjŠ!‡Š©ŠÆŠäŠ‹!‹=‹Z‹!u‹—‹¶‹Õ‹"ò‹ Œ6ŒOŒlŒ ‡Œ ¨Œ#ÉŒ!íŒ-G`|™"¸ÛùŽ.Ž?6Ž:vŽC±ŽOõŽ>E3„¸6Ò & .8L]v †“œ¤¦Áßù ‘‘*‘.‘ 3‘ >‘L‘R‘ [‘e‘ z‘†‘—‘§‘¼‘Í‘å‘ú‘ ’ ’ ’’ ’$(’M’l’‹’¤’DÃ’ ““"“;“B“J“S“CW“+›“TÇ“3”/P”€”—”ž”"½”&à”• •'•A6•x• {•ˆ•%•&Õ ê•4÷•,–F–]–a–9j–)¤–'Ζ1ö–0(—HY—8¢—Û—Cê— .˜A;˜D}˜)˜@ì˜Q-™;™»™1Ë™Yý™Wš7[š“š–š™š¸šÇš0ßš ››>› C›O› V›b›w›-“›Á›2Ô› œ œÜ¤´Ã:¸)ØÝgñ †­›–£ïn`ÞSï¦7NHc&HC)$ VÙp^ºð#|ºl5uÛ"a¿×9; vu€åüaB/ièiüýΟ™®ô ÌÈ0øàNŠis×n%‘Ãf(€bC/`õóDo:ÖbÖ¡q¦3iß轕'˜³åI¿®9$zßZZÖ—¢q°ñ%ñ«­e'_<ÄŽ»Òꛜ·®KkÇþ‰>ψâO÷ó­D¦{Xyc ¨}Fý4;A?÷ËWª,îšÓWoañ†Î·ý_—² ¡jƒy[„%|K@5Ù•àh6°¶ñth°‹¯ÝrÂ;¡€¢§œµ]k2€`7IŒ y2c–Þt\8Ó¾ážUg!¦ÒômJ—ÅÔSmâ8Qjˆ,„L¶¥-¼Hh-J–'~¸Â @•Žß“wOrøQA]*ݵÁ¼ÝÂ#TßYrïy¼w ÑÉ—úGMðqé‹hãÿzËÒÆ§Cj.Ÿ<£;0NY&ãW‡ ÑáQ5홓ôÕ ¯sŽÆì F×Å{ê#$KDË<:ÔÀMÎ:¢ÅÖH¬ ~ØäþùúóW“Zóå-Íf_ ²äOmíÏfe… 4_Ûª|ù5¿Ÿ*‰Œ¶_û¼äcêG@ÿ]ô„»ëpGÿ~[xùãEÄ‹iÀI=›œë`ž’6\ ê<ºpdböVÝæõѤUÈÎB¥ ¨†@QÕ ,¤e _3»|aöuZ!2ú•P¹ý™õv’äŸÕÎ^GE‚òáÛÊ[[T+ûÔTàÜR6¡+üŸ‚4&ÉWéÏ+µÍÌxu3Þ\Êk¾ì33Ú1"4=¯´žº0w}õS—,Á³(¢MÐÕ4rÜQO{A½ü3xRò”.8û2®¹g{ȹ¡úÄVS‡MðUqTˆÐt¨â@ðpc1v§ÀEƒš9ÓŒ ’àM,CÑø7êˆ)Ò/FrBb÷èIÂÙ±n ¥o"ºY‹xò°´-{â"˜íõp1k%’»%% ÅýéÌ´Ús±ç©z–+…ö£oLÛÌ9Uë¶[ r³sµÍ?î>±b/˜¯Æ$¥w‚ÁÊð*©yþù^îÇ’L~)´ÔJÂÑd(IŠälàªó-Œto ;YSb F`ƒ5‡«a EßþÞ‹p,‘6ÇO»§¨Á ùkæÚ#­$1]±(X‡\XÊmw8j°m½›}”‘= >©™úD8ÌÙÃKd£²ÛXf•è./‘/*.*³å} 4AAV …ž:Ã*©ÈÒg¬gES!­Ä z"<À³6L·€¹RÍ[ÚÀ·v˜ç«oK~çCUÆÇRhVd?Z‡¾”ˆžigµÜPÕÇ&"ÔÉŽ5”Uƒ‰ 'q„Cm¼O¸ªŠü=Š(×7ïIDá`.n0öÏyuãsÈÊØFG>Ú“l.l@=PYšÉ„|Bc>ø\®7þz·ô¸çÞeJ¿d9! &e÷Ð1Aa¸jìøìò”P¤ìN$И8Tlhq‚›2|9×ç^+–«H'? …öå¾Å¨ÏtEîL٦þã#¯²!œu¹Á ]™‘WPd…x^xXJëá;&ZÍM'0YëéTŠ÷Pív{Ä# HV¬:e }\K“>LzwŒËJ±N}D½Xtïnk†B!¿ÐFjé)ƒ²š0Ø©^Ë]ò7ff (ܤÖnlâ~û ? œ2Žv‰‚ææª6-1¶íÓ<ÉÿGR?èš½¬ Q=ÓRØ)ÆBN€ûs§ÿ«¥¢+¬æ‰ %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 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 which are connected by `%s' characters. Countries/territories, # %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/Nordwest 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 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/SaarGermany/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' DayGuy Fawke's 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 DayNorfolk IslandsNorthern 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-LandSwitzerland/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: 2013-03-29 21:40+0100 PO-Revision-Date: 2002-02-13 21:25GMT +2 Last-Translator: A. Burak Ilgicioglu Language-Team: Turkish Language: tr MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Generator: KBabel 0.9.5 %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 = 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 %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 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. `%s'karakteri ile baÄŸlananlar. # ile iÅŸaretlenen ülkeler/bölgelerin # %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ı çalıştır 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' 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ıBudhaa'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/Nordwest TerritoriesKanada/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ü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ü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üDolunayGabon #GambiyaGarifuna GünüGeneral San Martin'in Yıldönümü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/SaarAlmanya/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üGuy Fawke's DayGuyana #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üNorfolk Adaları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-Landİ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/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ü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-3.6.3/po/pl.po0000644000175000017500000041352612125376135010763 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: 2013-03-29 21:40+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" #: src/file-io.c:1561 #, c-format msgid "Try to write %s `%s'... %s%s%s" msgstr "Spróbuj napisać %s `%s'... %s%s%s" #: src/file-io.c:1564 src/file-io.c:1689 src/file-io.c:1702 msgid "failed" msgstr "nie powiodÅ‚o siÄ™" #: src/file-io.c:1564 src/file-io.c:1689 src/file-io.c:1702 msgid "success" msgstr "powiodÅ‚o siÄ™" #: src/file-io.c:1684 #, 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:1685 msgid " `HERE' " msgstr "" #: src/file-io.c:1697 #, 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:352 src/gcal.c:523 src/gcal.c:2028 msgid "ARG" msgstr "" #: src/gcal.c:1080 src/hd-data.c:69 msgid "Germany" msgstr "Niemcy" #: src/gcal.c:1081 msgid "U.S.A." msgstr "USA" #: src/gcal.c:1082 src/hd-data.c:72 msgid "Great Britain" msgstr "Wielka Brytania" #: src/gcal.c:1858 msgid "default" msgstr "domyÅ›lny" #: src/gcal.c:1957 msgid ":" msgstr ":" #: src/gcal.c:1967 msgid "Y" msgstr "" #: src/gcal.c:1972 #, fuzzy msgid "M" msgstr "Pn" #: src/gcal.c:1977 #, fuzzy msgid "W" msgstr "CW" #: src/gcal.c:1982 msgid "D" msgstr "" #: src/gcal.c:2073 #, fuzzy msgid "Fixed date list:" msgstr "Ustalona lista dat" #: src/gcal.c:2090 src/gcal.c:2105 msgid "environment variable" msgstr "zmienna Å›rodowiskowa" #: src/gcal.c:2274 #, 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:2461 src/gcal.c:2489 src/gcal.c:6232 src/rc-use.c:1828 #: src/rc-use.c:1888 src/rc-use.c:1937 src/rc-use.c:2207 src/rc-utils.c:390 #: src/rc-utils.c:411 src/utils.c:342 src/utils.c:365 src/utils.c:384 #: src/utils.c:679 src/tcal.c:331 src/tcal.c:339 src/txt2gcal.c:270 #: src/txt2gcal.c:275 src/gcal2txt.c:270 src/gcal2txt.c:275 msgid "Internal" msgstr "WewnÄ™trzny" #: src/gcal.c:2870 msgid "response file" msgstr "plik odpowiedzi" #: src/gcal.c:2870 src/gcal.c:2878 msgid "Created" msgstr "Utworzony" #: src/gcal.c:2878 msgid "shell script" msgstr "skrypt powÅ‚oki" #: src/gcal.c:3089 #, 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:3141 #, c-format msgid "%s: warning, eMail with empty message body not sent to <%s>.\n" msgstr "" #: src/gcal.c:4951 src/gcal.c:4984 msgid "command line" msgstr "linia poleceÅ„" #: src/gcal.c:5901 #, c-format msgid "%s: option `%s' is ambiguous" msgstr "%s: opcja `%s' jest niejednoznaczna" #: src/gcal.c:5906 src/tcal.c:895 src/txt2gcal.c:716 src/gcal2txt.c:715 #, c-format msgid "%s: unrecognized option `%s'" msgstr "%s: nierozpoznana opcja `%s'" #: src/gcal.c:5909 #, c-format msgid "%s: invalid option -- %s" msgstr "%s: błędna opcja -- %s" #: src/gcal.c:5916 #, fuzzy, 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' doesn't allow an argument" msgstr "%s: opcja `%s' nie zezwala na podanie argumentu" #: src/gcal.c:5927 #, c-format msgid "%s: option `%s' requires an argument" msgstr "%s: opcja `%s' wymaga podania argumentu" #: src/gcal.c:5931 #, c-format msgid "%s: option requires an argument -- %s" msgstr "%s: opcja wymaga podania argumentu -- %s" #: src/gcal.c:5936 src/tcal.c:941 #, c-format msgid "%s: option with invalid argument -- %s" msgstr "%s: opcja z błędnym argumentem -- %s" #: src/gcal.c:5941 #, c-format msgid "%s: option with ambiguous argument -- %s" msgstr "%s: opcja z niejednoznacznym argumentem -- %s" #: src/gcal.c:6001 #, 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:63 #, fuzzy msgid "Australia" msgstr "Australijski" #: src/hd-data.c:64 src/hd-data.c:112 #, fuzzy msgid "Belgium" msgstr "Belgijski" #: src/hd-data.c:65 src/hd-data.c:121 msgid "Brazil" msgstr "" #: src/hd-data.c:66 #, fuzzy msgid "Canada" msgstr "Kanadyjski" #: src/hd-data.c:67 msgid "Switzerland" msgstr "" #: src/hd-data.c:68 src/hd-data.c:174 msgid "China" msgstr "" #: src/hd-data.c:70 src/hd-data.c:208 msgid "Spain" msgstr "" #: src/hd-data.c:71 src/hd-data.c:215 msgid "France" msgstr "" #: src/hd-data.c:73 src/hd-data.c:244 msgid "Israel" msgstr "" #: src/hd-data.c:74 src/hd-data.c:249 #, fuzzy msgid "Italy" msgstr "WÅ‚oski" #: src/hd-data.c:75 src/hd-data.c:252 msgid "Japan" msgstr "" #: src/hd-data.c:76 src/hd-data.c:260 #, fuzzy msgid "Republic of Korea" msgstr "DzieÅ„ Republiki" #: src/hd-data.c:77 src/hd-data.c:292 #, fuzzy msgid "Mexico" msgstr "MeksykaÅ„ski" #: src/hd-data.c:78 src/hd-data.c:301 msgid "Netherlands" msgstr "" #: src/hd-data.c:79 src/hd-data.c:307 msgid "New Zealand" msgstr "" #: src/hd-data.c:80 src/hd-data.c:319 #, fuzzy msgid "Portugal" msgstr "Portugalski" #: src/hd-data.c:81 src/hd-data.c:325 msgid "Russian Federation" msgstr "" #: src/hd-data.c:82 #, fuzzy msgid "United States" msgstr "DzieÅ„ Narodów Zjednoczonych" #: src/hd-data.c:84 msgid "Andorra" msgstr "" #: src/hd-data.c:85 msgid "United Arab Emirates" msgstr "" #: src/hd-data.c:86 msgid "Afghanistan" msgstr "" #: src/hd-data.c:87 msgid "Antigua and Barbuda" msgstr "" #: src/hd-data.c:88 msgid "Anguilla" msgstr "" #: src/hd-data.c:89 msgid "Albania" msgstr "" #: src/hd-data.c:90 msgid "Armenia" msgstr "" #: src/hd-data.c:91 msgid "Netherlands Antilles/Bonaire" msgstr "" #: src/hd-data.c:92 msgid "Netherlands Antilles/Curaçao" msgstr "" #: src/hd-data.c:93 msgid "Netherlands Antilles/St Maarten" msgstr "" #: src/hd-data.c:94 msgid "Netherlands Antilles/Saba and Statia" msgstr "" #: src/hd-data.c:95 msgid "Angola #" msgstr "" #: src/hd-data.c:96 msgid "Argentina" msgstr "" #: src/hd-data.c:97 msgid "American Samoa" msgstr "" #: src/hd-data.c:98 #, fuzzy msgid "Austria" msgstr "Austriacki" #: src/hd-data.c:99 #, fuzzy msgid "Australia/Canberra" msgstr "Australijski" #: src/hd-data.c:100 msgid "Australia/Northern Territory" msgstr "" #: src/hd-data.c:101 #, fuzzy msgid "Australia/Queensland" msgstr "Australijski" #: src/hd-data.c:102 msgid "Australia/Southern Australia" msgstr "" #: src/hd-data.c:103 msgid "Australia/New South Wales" msgstr "" #: src/hd-data.c:104 #, fuzzy msgid "Australia/Tasmania" msgstr "Australijski" #: src/hd-data.c:105 #, fuzzy msgid "Australia/Victoria" msgstr "Australijski" #: src/hd-data.c:106 msgid "Australia/Western Australia" msgstr "" #: src/hd-data.c:107 msgid "Aruba" msgstr "" #: src/hd-data.c:108 msgid "Azerbaijan" msgstr "" #: src/hd-data.c:109 msgid "Bosnia-Herzegovina" msgstr "" #: src/hd-data.c:110 msgid "Barbados" msgstr "" #: src/hd-data.c:111 msgid "Bangladesh #" msgstr "" #: src/hd-data.c:113 msgid "Burkina Faso" msgstr "" #: src/hd-data.c:114 #, fuzzy msgid "Bulgaria" msgstr "WÄ™gierski" #: src/hd-data.c:115 msgid "Bahrain" msgstr "" #: src/hd-data.c:116 msgid "Burundi #" msgstr "" #: src/hd-data.c:117 msgid "Benin #" msgstr "" #: src/hd-data.c:118 msgid "Bermuda" msgstr "" #: src/hd-data.c:119 msgid "Brunei" msgstr "" #: src/hd-data.c:120 msgid "Bolivia" msgstr "" #: src/hd-data.c:122 msgid "Bahamas" msgstr "" #: src/hd-data.c:123 msgid "Bhutan #" msgstr "" #: src/hd-data.c:124 msgid "Bouvet Island" msgstr "" #: src/hd-data.c:125 msgid "Botswana" msgstr "" #: src/hd-data.c:126 msgid "Belarus" msgstr "" #: src/hd-data.c:127 msgid "Belize" msgstr "" #: src/hd-data.c:128 msgid "Canada/Alberta" msgstr "" #: src/hd-data.c:129 msgid "Canada/British Columbia" msgstr "" #: src/hd-data.c:130 #, fuzzy msgid "Canada/Manitoba" msgstr "Kanadyjski" #: src/hd-data.c:131 msgid "Canada/New Brunswick" msgstr "" #: src/hd-data.c:132 msgid "Canada/Newfoundland and Labrador" msgstr "" #: src/hd-data.c:133 msgid "Canada/Nova Scotia" msgstr "" #: src/hd-data.c:134 msgid "Canada/Nordwest Territories" msgstr "" #: src/hd-data.c:135 #, fuzzy msgid "Canada/Ontario" msgstr "Kanadyjski" #: src/hd-data.c:136 msgid "Canada/Prince Edward Island" msgstr "" #: src/hd-data.c:137 msgid "Canada/Québec" msgstr "" #: src/hd-data.c:138 msgid "Canada/Saskatchewan" msgstr "" #: src/hd-data.c:139 #, fuzzy msgid "Canada/Yukon" msgstr "Kanadyjski" #: src/hd-data.c:140 msgid "Cocos Islands (Keeling)" msgstr "" #: src/hd-data.c:141 msgid "Democratic Republic of Congo #" msgstr "" #: src/hd-data.c:142 msgid "Central African Republic #" msgstr "" #: src/hd-data.c:143 msgid "Republic of Congo #" msgstr "" #: src/hd-data.c:144 msgid "Switzerland/Aargau" msgstr "" #: src/hd-data.c:145 msgid "Switzerland/Appenzell Innerrhoden" msgstr "" #: src/hd-data.c:146 msgid "Switzerland/Appenzell Ausserrhoden" msgstr "" #: src/hd-data.c:147 msgid "Switzerland/Bern" msgstr "" #: src/hd-data.c:148 msgid "Switzerland/Basel-Land" msgstr "" #: src/hd-data.c:149 msgid "Switzerland/Basel-Stadt" msgstr "" #: src/hd-data.c:150 msgid "Switzerland/Fribourg" msgstr "" #: src/hd-data.c:151 msgid "Switzerland/Genève" msgstr "" #: src/hd-data.c:152 msgid "Switzerland/Glarus" msgstr "" #: src/hd-data.c:153 msgid "Switzerland/Graubünden" msgstr "" #: src/hd-data.c:154 msgid "Switzerland/Jura" msgstr "" #: src/hd-data.c:155 msgid "Switzerland/Luzern" msgstr "" #: src/hd-data.c:156 msgid "Switzerland/Neuchâtel" msgstr "" #: src/hd-data.c:157 msgid "Switzerland/Nidwalden" msgstr "" #: src/hd-data.c:158 msgid "Switzerland/Obwalden" msgstr "" #: src/hd-data.c:159 msgid "Switzerland/St Gallen" msgstr "" #: src/hd-data.c:160 msgid "Switzerland/Schaffhausen" msgstr "" #: src/hd-data.c:161 msgid "Switzerland/Solothurn" msgstr "" #: src/hd-data.c:162 msgid "Switzerland/Schwyz" msgstr "" #: src/hd-data.c:163 msgid "Switzerland/Thurgau" msgstr "" #: src/hd-data.c:164 msgid "Switzerland/Ticino" msgstr "" #: src/hd-data.c:165 msgid "Switzerland/Uri" msgstr "" #: src/hd-data.c:166 msgid "Switzerland/Vaud" msgstr "" #: src/hd-data.c:167 msgid "Switzerland/Valais" msgstr "" #: src/hd-data.c:168 msgid "Switzerland/Zug" msgstr "" #: src/hd-data.c:169 msgid "Switzerland/Zürich" msgstr "" #: src/hd-data.c:170 msgid "Côte d'Ivoire" msgstr "" #: src/hd-data.c:171 msgid "Cook Islands" msgstr "" #: src/hd-data.c:172 msgid "Chile" msgstr "" #: src/hd-data.c:173 msgid "Cameroon" msgstr "" #: src/hd-data.c:175 msgid "Colombia" msgstr "" #: src/hd-data.c:176 msgid "Costa Rica" msgstr "" #: src/hd-data.c:177 msgid "Cuba" msgstr "" #: src/hd-data.c:178 msgid "Cape Verde" msgstr "" #: src/hd-data.c:179 #, fuzzy msgid "Christmas Islands" msgstr "Boże Narodzenie" #: src/hd-data.c:180 msgid "Cyprus" msgstr "" #: src/hd-data.c:181 #, fuzzy msgid "Czech Republic" msgstr "DzieÅ„ Republiki" #: src/hd-data.c:182 msgid "Germany/Brandenburg" msgstr "" #: src/hd-data.c:183 #, fuzzy msgid "Germany/Berlin" msgstr "Niemcy" #: src/hd-data.c:184 msgid "Germany/Baden-Württemberg" msgstr "" #: src/hd-data.c:185 #, fuzzy msgid "Germany/Bavaria" msgstr "Niemcy" #: src/hd-data.c:186 #, fuzzy msgid "Germany/Bremen" msgstr "Niemcy" #: src/hd-data.c:187 #, fuzzy msgid "Germany/Hesse" msgstr "Niemcy" #: src/hd-data.c:188 #, fuzzy msgid "Germany/Hamburg" msgstr "Niemcy" #: src/hd-data.c:189 msgid "Germany/Mecklenburg-West Pomerania" msgstr "" #: src/hd-data.c:190 msgid "Germany/Lower Saxony" msgstr "" #: src/hd-data.c:191 msgid "Germany/North Rhine-Westphalia" msgstr "" #: src/hd-data.c:192 msgid "Germany/Rhineland Palatinate" msgstr "" #: src/hd-data.c:193 msgid "Germany/Schleswig-Holstein" msgstr "" #: src/hd-data.c:194 #, fuzzy msgid "Germany/Saar" msgstr "Niemcy" #: src/hd-data.c:195 #, fuzzy msgid "Germany/Saxony" msgstr "Niemcy" #: src/hd-data.c:196 msgid "Germany/Saxony-Anhalt" msgstr "" #: src/hd-data.c:197 msgid "Germany/Thuringia" msgstr "" #: src/hd-data.c:198 msgid "Djibouti" msgstr "" #: src/hd-data.c:199 msgid "Denmark" msgstr "" #: src/hd-data.c:200 msgid "Dominica" msgstr "" #: src/hd-data.c:201 msgid "Dominican Republic" msgstr "" #: src/hd-data.c:202 msgid "Algeria" msgstr "" #: src/hd-data.c:203 msgid "Ecuador" msgstr "" #: src/hd-data.c:204 msgid "Estonia" msgstr "" #: src/hd-data.c:205 msgid "Egypt" msgstr "" #: src/hd-data.c:206 msgid "Western Sahara" msgstr "" #: src/hd-data.c:207 msgid "Eritrea" msgstr "" #: src/hd-data.c:209 msgid "Ethiopia" msgstr "" #: src/hd-data.c:210 msgid "Finland" msgstr "" #: src/hd-data.c:211 msgid "Fiji #" msgstr "" #: src/hd-data.c:212 msgid "Falkland Islands (Malvinas)" msgstr "" #: src/hd-data.c:213 msgid "Federated States of Micronesia" msgstr "" #: src/hd-data.c:214 msgid "Faroes" msgstr "" #: src/hd-data.c:216 msgid "Gabon #" msgstr "" #: src/hd-data.c:217 msgid "Great Britain/England and Wales" msgstr "" #: src/hd-data.c:218 #, fuzzy msgid "Great Britain/Northern Ireland" msgstr "Wielka Brytania" #: src/hd-data.c:219 #, fuzzy msgid "Great Britain/Scotland" msgstr "Wielka Brytania" #: src/hd-data.c:220 msgid "Grenada" msgstr "" #: src/hd-data.c:221 msgid "Georgia" msgstr "" #: src/hd-data.c:222 #, fuzzy msgid "French Guiana" msgstr "Francuski" #: src/hd-data.c:223 msgid "Ghana" msgstr "" #: src/hd-data.c:224 msgid "Gibraltar" msgstr "" #: src/hd-data.c:225 msgid "Greenland" msgstr "" #: src/hd-data.c:226 msgid "Gambia" msgstr "" #: src/hd-data.c:227 msgid "Guinea" msgstr "" #: src/hd-data.c:228 msgid "Guadeloupe" msgstr "" #: src/hd-data.c:229 msgid "Equatorial Guinea" msgstr "" #: src/hd-data.c:230 #, fuzzy msgid "Greece" msgstr "Grecki" #: src/hd-data.c:231 msgid "South Georgia and South Sandwich Islands" msgstr "" #: src/hd-data.c:232 msgid "Guatemala" msgstr "" #: src/hd-data.c:233 msgid "Guam" msgstr "" #: src/hd-data.c:234 msgid "Guinea-Bissau #" msgstr "" #: src/hd-data.c:235 msgid "Guyana #" msgstr "" #: src/hd-data.c:236 msgid "Hong Kong" msgstr "" #: src/hd-data.c:237 msgid "Heard and Mc Donald Islands" msgstr "" #: src/hd-data.c:238 msgid "Honduras" msgstr "" #: src/hd-data.c:239 msgid "Croatia" msgstr "" #: src/hd-data.c:240 msgid "Haiti" msgstr "" #: src/hd-data.c:241 #, fuzzy msgid "Hungary" msgstr "WÄ™gierski" #: src/hd-data.c:242 msgid "Indonesia #" msgstr "" #: src/hd-data.c:243 msgid "Ireland" msgstr "" #: src/hd-data.c:245 msgid "India #" msgstr "" #: src/hd-data.c:246 msgid "Iraq" msgstr "" #: src/hd-data.c:247 msgid "Islamic Republic of Iran" msgstr "" #: src/hd-data.c:248 msgid "Iceland" msgstr "" #: src/hd-data.c:250 msgid "Jamaica" msgstr "" #: src/hd-data.c:251 msgid "Jordan" msgstr "" #: src/hd-data.c:253 msgid "Kenya #" msgstr "" #: src/hd-data.c:254 msgid "Kyrgyzstan" msgstr "" #: src/hd-data.c:255 msgid "Cambodia #" msgstr "" #: src/hd-data.c:256 msgid "Kiribati #" msgstr "" #: src/hd-data.c:257 msgid "Comoros" msgstr "" #: src/hd-data.c:258 msgid "St Kitts and Nevis" msgstr "" #: src/hd-data.c:259 msgid "Democratic People's Republic of Korea" msgstr "" #: src/hd-data.c:261 msgid "Kuwait" msgstr "" #: src/hd-data.c:262 msgid "Cayman Islands" msgstr "" #: src/hd-data.c:263 msgid "Kazakhstan" msgstr "" #: src/hd-data.c:264 msgid "Laos People's Democratic Republic #" msgstr "" #: src/hd-data.c:265 msgid "Lebanon" msgstr "" #: src/hd-data.c:266 #, fuzzy msgid "St Lucia" msgstr "DzieÅ„ Åšw. Åucji" #: src/hd-data.c:267 msgid "Liechtenstein" msgstr "" #: src/hd-data.c:268 msgid "Sri Lanka #" msgstr "" #: src/hd-data.c:269 #, fuzzy msgid "Liberia" msgstr "DzieÅ„ WolnoÅ›ci" #: src/hd-data.c:270 msgid "Lesotho" msgstr "" #: src/hd-data.c:271 msgid "Lithuania" msgstr "" #: src/hd-data.c:272 msgid "Luxembourg" msgstr "" #: src/hd-data.c:273 msgid "Latvia" msgstr "" #: src/hd-data.c:274 msgid "Libyan Arab Jamahiriya (Libya)" msgstr "" #: src/hd-data.c:275 msgid "Morocco" msgstr "" #: src/hd-data.c:276 msgid "Monaco" msgstr "" #: src/hd-data.c:277 #, fuzzy msgid "Republic of Moldova" msgstr "DzieÅ„ Republiki" #: src/hd-data.c:278 msgid "Madagascar #" msgstr "" #: src/hd-data.c:279 msgid "Marshall Islands" msgstr "" #: src/hd-data.c:280 msgid "Former Yugoslav Republic of Macedonia" msgstr "" #: src/hd-data.c:281 msgid "Mali" msgstr "" #: src/hd-data.c:282 msgid "Mongolia #" msgstr "" #: src/hd-data.c:283 msgid "Macau" msgstr "" #: src/hd-data.c:284 msgid "Northern Marian Islands (Saipan)" msgstr "" #: src/hd-data.c:285 #, fuzzy msgid "Martinique" msgstr "Martinimas" #: src/hd-data.c:286 msgid "Mauritania" msgstr "" #: src/hd-data.c:287 msgid "Montserrat" msgstr "" #: src/hd-data.c:288 msgid "Malta" msgstr "" #: src/hd-data.c:289 #, fuzzy msgid "Mauritius" msgstr "Brytyjski" #: src/hd-data.c:290 msgid "Maldives" msgstr "" #: src/hd-data.c:291 msgid "Malawi" msgstr "" #: src/hd-data.c:293 msgid "Malaysia #" msgstr "" #: src/hd-data.c:294 msgid "Mozambique" msgstr "" #: src/hd-data.c:295 msgid "Namibia" msgstr "" #: src/hd-data.c:296 msgid "New Caledonia" msgstr "" #: src/hd-data.c:297 msgid "Niger" msgstr "" #: src/hd-data.c:298 msgid "Norfolk Islands" msgstr "" #: src/hd-data.c:299 msgid "Nigeria" msgstr "" #: src/hd-data.c:300 msgid "Nicaragua" msgstr "" #: src/hd-data.c:302 msgid "Myanmar (Burma) #" msgstr "" #: src/hd-data.c:303 #, fuzzy msgid "Norway" msgstr "Norweski" #: src/hd-data.c:304 msgid "Nepal #" msgstr "" #: src/hd-data.c:305 msgid "Nauru" msgstr "" #: src/hd-data.c:306 msgid "Niue" msgstr "" #: src/hd-data.c:308 msgid "Oman" msgstr "" #: src/hd-data.c:309 msgid "Panama" msgstr "" #: src/hd-data.c:310 msgid "Peru" msgstr "" #: src/hd-data.c:311 msgid "French Polynesia" msgstr "" #: src/hd-data.c:312 msgid "Papua New Guinea" msgstr "" #: src/hd-data.c:313 msgid "Philippines" msgstr "" #: src/hd-data.c:314 msgid "Pakistan" msgstr "" #: src/hd-data.c:315 msgid "Poland" msgstr "" #: src/hd-data.c:316 msgid "Saint-Pierre and Miquelon" msgstr "" #: src/hd-data.c:317 msgid "Pitcairn" msgstr "" #: src/hd-data.c:318 msgid "Puerto Rico" msgstr "" #: src/hd-data.c:320 msgid "Palau" msgstr "" #: src/hd-data.c:321 msgid "Paraguay" msgstr "" #: src/hd-data.c:322 msgid "Qatar" msgstr "" #: src/hd-data.c:323 msgid "Réunion" msgstr "" #: src/hd-data.c:324 msgid "Romania" msgstr "" #: src/hd-data.c:326 msgid "Rwanda" msgstr "" #: src/hd-data.c:327 msgid "Saudi Arabia" msgstr "" #: src/hd-data.c:328 msgid "Solomon Islands" msgstr "" #: src/hd-data.c:329 msgid "Seychellen" msgstr "" #: src/hd-data.c:330 msgid "Sudan" msgstr "" #: src/hd-data.c:331 #, fuzzy msgid "Sweden" msgstr "Szwecki" #: src/hd-data.c:332 msgid "Singapore #" msgstr "" #: src/hd-data.c:333 msgid "St Helena" msgstr "" #: src/hd-data.c:334 #, fuzzy msgid "Slovenia" msgstr "SÅ‚oweÅ„ski" #: src/hd-data.c:335 msgid "Svalbard and Jan Mayen Islands" msgstr "" #: src/hd-data.c:336 #, fuzzy msgid "Slovakia" msgstr "SÅ‚oweÅ„ski" #: src/hd-data.c:337 msgid "Sierra Leone" msgstr "" #: src/hd-data.c:338 msgid "San Marino" msgstr "" #: src/hd-data.c:339 msgid "Senegal" msgstr "" #: src/hd-data.c:340 msgid "Somalia" msgstr "" #: src/hd-data.c:341 msgid "Suriname #" msgstr "" #: src/hd-data.c:342 msgid "Sao Tomé and Principe" msgstr "" #: src/hd-data.c:343 msgid "El Salvador" msgstr "" #: src/hd-data.c:344 msgid "Syrian Arab Republic (Syria)" msgstr "" #: src/hd-data.c:345 msgid "Swaziland" msgstr "" #: src/hd-data.c:346 msgid "Turks and Caicos Islands" msgstr "" #: src/hd-data.c:347 msgid "Chad" msgstr "" #: src/hd-data.c:348 msgid "Togo #" msgstr "" #: src/hd-data.c:349 msgid "Thailand #" msgstr "" #: src/hd-data.c:350 msgid "Tajikistan" msgstr "" #: src/hd-data.c:351 msgid "Tokelau" msgstr "" #: src/hd-data.c:352 msgid "Turkmenistan" msgstr "" #: src/hd-data.c:353 msgid "Tunisia" msgstr "" #: src/hd-data.c:354 msgid "Tonga" msgstr "" #: src/hd-data.c:355 msgid "Turkey" msgstr "" #: src/hd-data.c:356 msgid "Trinidad and Tobago #" msgstr "" #: src/hd-data.c:357 msgid "Tuvalu" msgstr "" #: src/hd-data.c:358 msgid "Taiwan" msgstr "" #: src/hd-data.c:359 msgid "Tanzania" msgstr "" #: src/hd-data.c:360 msgid "Ukraine" msgstr "" #: src/hd-data.c:361 msgid "Uganda" msgstr "" #: src/hd-data.c:362 msgid "United States/Alaska" msgstr "" #: src/hd-data.c:363 msgid "United States/Alabama" msgstr "" #: src/hd-data.c:364 #, fuzzy msgid "United States/Arkansas" msgstr "DzieÅ„ Narodów Zjednoczonych" #: src/hd-data.c:365 #, fuzzy msgid "United States/Arizona" msgstr "DzieÅ„ Narodów Zjednoczonych" #: src/hd-data.c:366 #, fuzzy msgid "United States/California" msgstr "DzieÅ„ Narodów Zjednoczonych" #: src/hd-data.c:367 msgid "United States/Colorado" msgstr "" #: src/hd-data.c:368 msgid "United States/Connecticut" msgstr "" #: src/hd-data.c:369 msgid "United States/District of Columbia" msgstr "" #: src/hd-data.c:370 #, fuzzy msgid "United States/Delaware" msgstr "DzieÅ„ Narodów Zjednoczonych" #: src/hd-data.c:371 msgid "United States/Florida" msgstr "" #: src/hd-data.c:372 msgid "United States/Georgia" msgstr "" #: src/hd-data.c:373 msgid "United States/Hawaii" msgstr "" #: src/hd-data.c:374 #, fuzzy msgid "United States/Iowa" msgstr "DzieÅ„ Narodów Zjednoczonych" #: src/hd-data.c:375 msgid "United States/Idaho" msgstr "" #: src/hd-data.c:376 #, fuzzy msgid "United States/Illinois" msgstr "DzieÅ„ Narodów Zjednoczonych" #: src/hd-data.c:377 #, fuzzy msgid "United States/Indiana" msgstr "DzieÅ„ Narodów Zjednoczonych" #: src/hd-data.c:378 #, fuzzy msgid "United States/Kansas" msgstr "DzieÅ„ Narodów Zjednoczonych" #: src/hd-data.c:379 msgid "United States/Kentucky" msgstr "" #: src/hd-data.c:380 msgid "United States/Louisiana" msgstr "" #: src/hd-data.c:381 msgid "United States/Massachusetts" msgstr "" #: src/hd-data.c:382 #, fuzzy msgid "United States/Maryland" msgstr "DzieÅ„ Narodów Zjednoczonych" #: src/hd-data.c:383 msgid "United States/Maine" msgstr "" #: src/hd-data.c:384 msgid "United States/Michigan" msgstr "" #: src/hd-data.c:385 #, fuzzy msgid "United States/Minnesota" msgstr "DzieÅ„ Narodów Zjednoczonych" #: src/hd-data.c:386 msgid "United States/Missouri" msgstr "" #: src/hd-data.c:387 msgid "United States/Mississippi" msgstr "" #: src/hd-data.c:388 #, fuzzy msgid "United States/Montana" msgstr "DzieÅ„ Narodów Zjednoczonych" #: src/hd-data.c:389 msgid "United States/North Carolina" msgstr "" #: src/hd-data.c:390 msgid "United States/North Dakota" msgstr "" #: src/hd-data.c:391 msgid "United States/Nebraska" msgstr "" #: src/hd-data.c:392 msgid "United States/New Hampshire" msgstr "" #: src/hd-data.c:393 msgid "United States/New Jersey" msgstr "" #: src/hd-data.c:394 msgid "United States/New Mexico" msgstr "" #: src/hd-data.c:395 msgid "United States/Nevada" msgstr "" #: src/hd-data.c:396 msgid "United States/New York" msgstr "" #: src/hd-data.c:397 #, fuzzy msgid "United States/Ohio" msgstr "DzieÅ„ Narodów Zjednoczonych" #: src/hd-data.c:398 msgid "United States/Oklahoma" msgstr "" #: src/hd-data.c:399 msgid "United States/Oregon" msgstr "" #: src/hd-data.c:400 msgid "United States/Pennsylvania" msgstr "" #: src/hd-data.c:401 msgid "United States/Rhode Island" msgstr "" #: src/hd-data.c:402 msgid "United States/South Carolina" msgstr "" #: src/hd-data.c:403 msgid "United States/South Dakota" msgstr "" #: src/hd-data.c:404 msgid "United States/Tennessee" msgstr "" #: src/hd-data.c:405 msgid "United States/Texas" msgstr "" #: src/hd-data.c:406 #, fuzzy msgid "United States/Utah" msgstr "DzieÅ„ Narodów Zjednoczonych" #: src/hd-data.c:407 #, fuzzy msgid "United States/Virginia" msgstr "DzieÅ„ Narodów Zjednoczonych" #: src/hd-data.c:408 msgid "United States/Vermont" msgstr "" #: src/hd-data.c:409 msgid "United States/Washington" msgstr "" #: src/hd-data.c:410 #, fuzzy msgid "United States/Wisconsin" msgstr "DzieÅ„ Narodów Zjednoczonych" #: src/hd-data.c:411 msgid "United States/West Virginia" msgstr "" #: src/hd-data.c:412 msgid "United States/Wyoming" msgstr "" #: src/hd-data.c:413 msgid "Uruguay" msgstr "" #: src/hd-data.c:414 msgid "Uzbekistan" msgstr "" #: src/hd-data.c:415 msgid "St Vincent and Grenadines" msgstr "" #: src/hd-data.c:416 msgid "Venezuela" msgstr "" #: src/hd-data.c:417 msgid "British Virgin Islands" msgstr "" #: src/hd-data.c:418 msgid "U.S. Virgin Islands" msgstr "" #: src/hd-data.c:419 msgid "Viet Nam" msgstr "" #: src/hd-data.c:420 msgid "Vanuatu" msgstr "" #: src/hd-data.c:421 msgid "Wallis and Futuna Islands" msgstr "" #: src/hd-data.c:422 msgid "Samoa" msgstr "" #: src/hd-data.c:423 msgid "Yemen" msgstr "" #: src/hd-data.c:424 msgid "Mayotte" msgstr "" #: src/hd-data.c:425 msgid "Serbia and Montenegro" msgstr "" #: src/hd-data.c:426 msgid "South Africa" msgstr "" #: src/hd-data.c:427 msgid "Zambia" msgstr "" #: src/hd-data.c:428 msgid "Zimbabwe" msgstr "" #: src/hd-data.c:458 msgid "1st Advent" msgstr "Pierwszy Adwent" #: src/hd-data.c:459 msgid "1st Sunday in Lent" msgstr "" #: src/hd-data.c:460 msgid "2nd Advent" msgstr "Drugi Adwent" #: src/hd-data.c:461 msgid "2nd Sunday in Lent" msgstr "" #: src/hd-data.c:462 msgid "3rd Advent" msgstr "Trzeci Adwent" #: src/hd-data.c:463 msgid "3rd Sunday in Lent" msgstr "" #: src/hd-data.c:464 msgid "4th Advent" msgstr "Czwarty Adwent" #: src/hd-data.c:465 #, fuzzy msgid "4th Sunday in Lent" msgstr "Åšmiertelna Niedziela" #: src/hd-data.c:466 msgid "7-5-3 Festival" msgstr "" #: src/hd-data.c:467 #, fuzzy msgid "Aborigines Day" msgstr "DzieÅ„ Księżniczki" #: src/hd-data.c:468 msgid "All Fool's Day" msgstr "Prima Aprilis" #: src/hd-data.c:469 msgid "All Saints' Day" msgstr "DzieÅ„ Wszystkich ÅšwiÄ™tych" #: src/hd-data.c:470 msgid "All Souls' Day" msgstr "Zaduszki" #: src/hd-data.c:471 #, fuzzy msgid "Alphabet Day" msgstr "DzieÅ„ chorÄ…gwi" #: src/hd-data.c:472 msgid "Anniversary of Auckland" msgstr "" #: src/hd-data.c:473 msgid "Anniversary of Canterbury North" msgstr "" #: src/hd-data.c:474 msgid "Anniversary of Canterbury South" msgstr "" #: src/hd-data.c:475 msgid "Anniversary of Chatham Islands" msgstr "" #: src/hd-data.c:476 msgid "Anniversary of Hawkes' Bay" msgstr "" #: src/hd-data.c:477 msgid "Anniversary of Marlborough" msgstr "" #: src/hd-data.c:478 msgid "Anniversary of Nelson" msgstr "" #: src/hd-data.c:479 msgid "Anniversary of Otago" msgstr "" #: src/hd-data.c:480 msgid "Anniversary of Southland" msgstr "" #: src/hd-data.c:481 msgid "Anniversary of Taranaki" msgstr "" #: src/hd-data.c:482 msgid "Anniversary of Wellington" msgstr "" #: src/hd-data.c:483 msgid "Anniversary of Westland" msgstr "" #: src/hd-data.c:484 msgid "Anzac Day" msgstr "DzieÅ„ Anzaca" #: src/hd-data.c:485 #, fuzzy msgid "Arbor Day" msgstr "ÅšwiÄ™to Pracy" #: src/hd-data.c:486 #, fuzzy msgid "Armed Forces Day" msgstr "DzieÅ„ SiÅ‚ Zbrojnych" #: src/hd-data.c:487 msgid "Armistice Day" msgstr "Armistice Day" #: src/hd-data.c:488 msgid "Ash Monday" msgstr "Popielec" #: src/hd-data.c:489 msgid "Ash Wednesday" msgstr "Popielec" #: src/hd-data.c:490 msgid "Ascension of Abdu'l-Baha" msgstr "" #: src/hd-data.c:491 msgid "Ascension of Baha'u'llah" msgstr "" #: src/hd-data.c:492 msgid "Birth of Baha'u'llah" msgstr "" #: src/hd-data.c:493 msgid "Birth of the Bab" msgstr "" #: src/hd-data.c:494 msgid "Day of the Covenant" msgstr "" #: src/hd-data.c:495 msgid "Declaration of the Bab" msgstr "" #: src/hd-data.c:496 msgid "First Day of Ridvan" msgstr "" #: src/hd-data.c:497 msgid "Martyrdom of the Bab" msgstr "" #: src/hd-data.c:498 #, fuzzy msgid "Bahá'i New Year's Day" msgstr "Nowy Rok" #: src/hd-data.c:499 msgid "Ninth Day of Ridvan" msgstr "" #: src/hd-data.c:500 msgid "Twelfth Day of Ridvan" msgstr "" #: src/hd-data.c:501 msgid "Bank Holiday" msgstr "Dzisiaj banki zamkniÄ™te" #: src/hd-data.c:502 #, fuzzy msgid "Basque National Day" msgstr "Lapp National Holiday" #: src/hd-data.c:503 msgid "Battle of Boyne" msgstr "Bitwa pod Boyne" #: src/hd-data.c:504 #, fuzzy msgid "Battle of Puebla" msgstr "Bitwa pod Boyne" #: src/hd-data.c:505 msgid "Beginning of Financial Year" msgstr "" #: src/hd-data.c:506 #, fuzzy msgid "Benito Juárez Day" msgstr "DzieÅ„ Benito Juareza" #: src/hd-data.c:507 #, fuzzy msgid "Bodhidharma's Birthday" msgstr "Urodziny Króla" #: src/hd-data.c:508 #, fuzzy msgid "Bosses' Day" msgstr "DzieÅ„ Åšw. Józefa" #: src/hd-data.c:509 msgid "Boxing Day" msgstr "Drugi dzieÅ„ Bożego Narodzenia" #: src/hd-data.c:510 msgid "Bringing Home the Herds Day" msgstr "" #: src/hd-data.c:511 msgid "Bringing in the Harvest Day" msgstr "" #: src/hd-data.c:512 #, fuzzy msgid "Buddha's Birthday" msgstr "Urodziny Króla" #: src/hd-data.c:513 msgid "Burns Night" msgstr "Burns Night" #: src/hd-data.c:514 #, fuzzy msgid "Camoes Day" msgstr "DzieÅ„ Åšw. Jamesa" #: src/hd-data.c:515 msgid "Carnival" msgstr "" #: src/hd-data.c:516 msgid "Beltane" msgstr "" #: src/hd-data.c:517 msgid "Imbolg" msgstr "" #: src/hd-data.c:518 msgid "Lughnasa" msgstr "" #: src/hd-data.c:519 #, fuzzy msgid "Samhain/Celtic New Year's Day" msgstr "Nowy Rok" #: src/hd-data.c:520 msgid "Children's Day" msgstr "DzieÅ„ Dziecka" #: src/hd-data.c:521 msgid "Cycle" msgstr "" #: src/hd-data.c:522 #, fuzzy msgid "Chinese New Year's Day" msgstr "Nowy Rok" #: src/hd-data.c:523 #, fuzzy msgid "Chinese New Year's Eve" msgstr "Nowy Rok" #: src/hd-data.c:524 msgid "Christmas Day" msgstr "Boże Narodzenie" #: src/hd-data.c:525 msgid "Christmas Eve" msgstr "Wigilia" #: src/hd-data.c:526 msgid "Christ's Ascension Day" msgstr "DzieÅ„ WniebowstÄ…pienia PaÅ„skiego" #: src/hd-data.c:527 #, fuzzy msgid "Chrysanthenum Day" msgstr "Boże Narodzenie" #: src/hd-data.c:528 #, fuzzy msgid "Citizenship Day" msgstr "DzieÅ„ Dziecka" #: src/hd-data.c:529 #, fuzzy msgid "Civic Holiday" msgstr "Dzisiaj banki zamkniÄ™te" #: src/hd-data.c:530 msgid "Columbus Day" msgstr "DzieÅ„ Kolumba" #: src/hd-data.c:531 msgid "Coming of Age Day" msgstr "" #: src/hd-data.c:532 #, fuzzy msgid "Confucius' Birthday" msgstr "Urodziny Koronowanej Księżniczki" #: src/hd-data.c:533 msgid "Constitution Anniversary" msgstr "Stulecie Konstytucji" #: src/hd-data.c:534 #, fuzzy msgid "Coptic New Year's Day" msgstr "Nowy Rok" #: src/hd-data.c:535 #, fuzzy msgid "Cosmonauts' Day" msgstr "DzieÅ„ Koronacji" #: src/hd-data.c:536 #, fuzzy msgid "Cross Raising Day" msgstr "DzieÅ„ Koronacji" #: src/hd-data.c:537 msgid "Culture Day" msgstr "DzieÅ„ Kultury" #: src/hd-data.c:538 msgid "Day after Mid-Autumn Festival" msgstr "" #: src/hd-data.c:539 msgid "Day after Tomb-Sweeping Day" msgstr "" #: src/hd-data.c:540 msgid "Day of Andalucia" msgstr "" #: src/hd-data.c:541 msgid "Day of Catalonia" msgstr "" #: src/hd-data.c:542 msgid "Day of Galicia" msgstr "" #: src/hd-data.c:543 msgid "Day of Prayer and Repentance" msgstr "DzieÅ„ Modlitwy i Å»alu" #: src/hd-data.c:544 msgid "Day of Reconciliation" msgstr "" #: src/hd-data.c:545 msgid "Defenders of Motherland Day" msgstr "" #: src/hd-data.c:546 #, fuzzy msgid "Double-9 Day" msgstr "DzieÅ„ Nobla" #: src/hd-data.c:547 msgid "Dragon Boat Festival" msgstr "" #: src/hd-data.c:548 msgid "Dynasty Day" msgstr "DzieÅ„ Rodziny Królewskiej" #: src/hd-data.c:549 msgid "Easter Monday" msgstr "PoniedziaÅ‚ek Wielkanocny" #: src/hd-data.c:550 msgid "Easter Sunday" msgstr "Wielkanoc" #: src/hd-data.c:551 msgid "Lunar Eclipse" msgstr "" #: src/hd-data.c:552 msgid "Solar Eclipse" msgstr "" #: src/hd-data.c:553 msgid "Annular" msgstr "" #: src/hd-data.c:554 msgid "Partial" msgstr "" #: src/hd-data.c:555 msgid "Penumbral" msgstr "" #: src/hd-data.c:556 msgid "Total" msgstr "" #: src/hd-data.c:557 msgid "Eindhoven's Liberation" msgstr "Eindhoven's Liberation" #: src/hd-data.c:558 msgid "Election Day" msgstr "Wybory prezydenckie" #: src/hd-data.c:559 #, fuzzy msgid "Emperor's Birthday" msgstr "Urodziny Króla" #: src/hd-data.c:560 #, fuzzy msgid "Equinox Day" msgstr "Wybory prezydenckie" #: src/hd-data.c:561 #, fuzzy msgid "Ethiopic New Year's Day" msgstr "Nowy Rok" #: src/hd-data.c:562 msgid "Father's Day" msgstr "DzieÅ„ Ojca" #: src/hd-data.c:563 msgid "Feast of Corpus Christi" msgstr "Boże CiaÅ‚o" #: src/hd-data.c:564 #, fuzzy msgid "Feast of Fortune" msgstr "Boże CiaÅ‚o" #: src/hd-data.c:565 #, fuzzy msgid "Feast of Heart Jesus" msgstr "Feast of Our Theotokos" #: src/hd-data.c:566 msgid "Festival of Lanterns" msgstr "" #: src/hd-data.c:567 msgid "Festival of Sadeh" msgstr "" #: src/hd-data.c:568 msgid "Flag Day" msgstr "DzieÅ„ chorÄ…gwi" #: src/hd-data.c:569 msgid "Flemish Culture Day" msgstr "DzieÅ„ Kultury Flandryjskiej" #: src/hd-data.c:570 msgid "Founding of the Communist Party" msgstr "" #: src/hd-data.c:571 msgid "French Culture Day" msgstr "DzieÅ„ Kultury Francuskiej" #: src/hd-data.c:572 #, fuzzy msgid "French Revolutionary" msgstr "DzieÅ„ Rewolucji" #: src/hd-data.c:573 #, fuzzy msgid "Friendship Day" msgstr "DzieÅ„ Prezydenta" #: src/hd-data.c:574 msgid "German Unity Day" msgstr "DzieÅ„ Zjednoczenia Niemiec" #: src/hd-data.c:575 msgid "Good Friday" msgstr "Wielki PiÄ…tek" #: src/hd-data.c:576 msgid "Good Saturday/Easter Eve" msgstr "Wielka Sobota/Jutro Wielkanoc" #: src/hd-data.c:577 #, fuzzy msgid "Grandparents' Day" msgstr "DzieÅ„ Prezydenta" #: src/hd-data.c:578 #, fuzzy msgid "Greenery Day" msgstr "DzieÅ„ Modlitwy" #: src/hd-data.c:579 msgid "Grotto Day" msgstr "Grotto Day" #: src/hd-data.c:580 #, fuzzy msgid "Groundhog Day" msgstr "Grotto Day" #: src/hd-data.c:581 msgid "Guadalupe Virgin's Day" msgstr "Guadalupe Virgin's Day" #: src/hd-data.c:582 msgid "Guy Fawke's Day" msgstr "DzieÅ„ Guy Fawke'a" #: src/hd-data.c:583 msgid "Halloween" msgstr "Halloween" #: src/hd-data.c:584 msgid "Health and Sport's Day" msgstr "" #: src/hd-data.c:585 msgid "Hannukah/Festival of Lights" msgstr "" #: src/hd-data.c:586 msgid "Lag B'Omer" msgstr "" #: src/hd-data.c:587 msgid "Pesach/Passover" msgstr "" #: src/hd-data.c:588 msgid "Purim/Feast of Lots" msgstr "" #: src/hd-data.c:589 #, fuzzy msgid "Rosh Hashana/New Year's Day" msgstr "Nowy Rok" #: src/hd-data.c:590 msgid "Shavuot/Giving of the Torah" msgstr "" #: src/hd-data.c:591 msgid "Shushan Purim" msgstr "" #: src/hd-data.c:592 msgid "Simchat Torah" msgstr "" #: src/hd-data.c:593 msgid "Sukkot/Feast of Tabernacles" msgstr "" #: src/hd-data.c:594 msgid "Tisha B'Av/Fasting Day" msgstr "" #: src/hd-data.c:595 msgid "Tu B'Shevat/New Year of Trees" msgstr "" #: src/hd-data.c:596 msgid "Yom Hashoah/Holocaust Memorial" msgstr "" #: src/hd-data.c:597 msgid "Yom Hazikaron/Soldiers Memorial" msgstr "" #: src/hd-data.c:598 #, fuzzy msgid "Yom Ha Azmaut/Independence Day" msgstr "ÅšwiÄ™to NiepodlegÅ‚oÅ›ci" #: src/hd-data.c:599 msgid "Yom Kippur/Atonement Day" msgstr "" #: src/hd-data.c:600 msgid "Yom Yerushalayim/Jerusalem Day" msgstr "" #: src/hd-data.c:601 msgid "Holy Innocent's Day" msgstr "Holy Innocent's Day" #: src/hd-data.c:602 msgid "Holy Trinity" msgstr "" #: src/hd-data.c:603 #, fuzzy msgid "Huravee Day" msgstr "DzieÅ„ Modlitwy" #: src/hd-data.c:604 msgid "Independence Day" msgstr "ÅšwiÄ™to NiepodlegÅ‚oÅ›ci" #: src/hd-data.c:605 #, fuzzy msgid "Independence Movement Day" msgstr "ÅšwiÄ™to NiepodlegÅ‚oÅ›ci" #: src/hd-data.c:606 #, fuzzy msgid "Independence Proclamation" msgstr "Proklamacja NiepodlegÅ‚oÅ›ci" #: src/hd-data.c:607 #, fuzzy msgid "Indian New Year's Day" msgstr "Nowy Rok" #: src/hd-data.c:608 #, fuzzy msgid "Aga Khan's Birthday" msgstr "Urodziny Króla" #: src/hd-data.c:609 msgid "Ashura'" msgstr "" #: src/hd-data.c:610 msgid "Eid-al-Adha" msgstr "" #: src/hd-data.c:611 msgid "Eid-al-Fitr" msgstr "" #: src/hd-data.c:612 msgid "Eid-i-Milad-un-Nabi" msgstr "" #: src/hd-data.c:613 msgid "Ghadir" msgstr "" #: src/hd-data.c:614 msgid "Imamat Day" msgstr "" #: src/hd-data.c:615 #, fuzzy msgid "Islamic New Year's Day" msgstr "Nowy Rok" #: src/hd-data.c:616 msgid "Nuzul-al-Qur'an" msgstr "" #: src/hd-data.c:617 #, fuzzy msgid "Quds Day" msgstr "DzieÅ„ Kolumba" #: src/hd-data.c:618 msgid "Ramadan" msgstr "" #: src/hd-data.c:619 msgid "Shab-e-Bara't" msgstr "" #: src/hd-data.c:620 msgid "Shab-e-Mi'raj" msgstr "" #: src/hd-data.c:621 msgid "Shab-e Qadr" msgstr "" #: src/hd-data.c:622 msgid "Waqf-al-Arafat" msgstr "" #: src/hd-data.c:623 #, fuzzy msgid "Japanese New Year's Day" msgstr "Nowy Rok" #: src/hd-data.c:624 msgid "Japanese New Year's Eve" msgstr "" #: src/hd-data.c:625 msgid "Jesus' Circumcision" msgstr "" #: src/hd-data.c:626 msgid "Kwanzaa" msgstr "" #: src/hd-data.c:627 msgid "Labour Day" msgstr "ÅšwiÄ™to Pracy" #: src/hd-data.c:628 #, fuzzy msgid "Labour Thanksgiving Day" msgstr "DzieÅ„ DziÄ™kczynienia" #: src/hd-data.c:629 #, fuzzy msgid "Lao Tze's Birthday" msgstr "Urodziny Króla" #: src/hd-data.c:630 msgid "Liberation Day" msgstr "DzieÅ„ WolnoÅ›ci" #: src/hd-data.c:631 #, fuzzy msgid "Marine Day" msgstr "1 Maja" #: src/hd-data.c:632 msgid "Martinimas" msgstr "Martinimas" #: src/hd-data.c:633 msgid "Martin L. King's Day" msgstr "DzieÅ„ Martina L. Kinga" #: src/hd-data.c:634 #, fuzzy msgid "Martyrs' Day" msgstr "1 Maja" #: src/hd-data.c:635 msgid "Mary's Annunciation Day" msgstr "Mary's Annunciation Day" #: src/hd-data.c:636 msgid "Mary's Ascension Day" msgstr "DzieÅ„ WniebowstÄ…pienia NMP" #: src/hd-data.c:637 msgid "Mary's Candlemas" msgstr "" #: src/hd-data.c:638 #, fuzzy msgid "Mary's Expectation" msgstr "Mary's Annunciation Day" #: src/hd-data.c:639 msgid "Mary's Immaculate Conception" msgstr "Mary's Immaculate Conception" #: src/hd-data.c:640 #, fuzzy msgid "Mary's Maternity" msgstr "DzieÅ„ WniebowstÄ…pienia NMP" #: src/hd-data.c:641 msgid "Mary's Name" msgstr "" #: src/hd-data.c:642 msgid "Mary's Nativity" msgstr "" #: src/hd-data.c:643 msgid "Mary's Sacrifice" msgstr "" #: src/hd-data.c:644 #, fuzzy msgid "Mary's Visitation" msgstr "Mary's Annunciation Day" #: src/hd-data.c:645 msgid "Mary - Blessed Virgin" msgstr "" #: src/hd-data.c:646 msgid "Maundy Thursday" msgstr "Wielki Czwartek" #: src/hd-data.c:647 msgid "May Day" msgstr "1 Maja" #: src/hd-data.c:648 #, fuzzy msgid "St John's/Midsummer Day" msgstr "DzieÅ„ Åšw. Jana" #: src/hd-data.c:649 msgid "Mid-Autumn Festival" msgstr "" #: src/hd-data.c:650 msgid "Mid-Spring Festival" msgstr "" #: src/hd-data.c:651 msgid "Mid-Year Festival" msgstr "" #: src/hd-data.c:652 msgid "Waxing Half Moon" msgstr "" #: src/hd-data.c:653 msgid "Full Moon" msgstr "" #: src/hd-data.c:654 msgid "Waning Half Moon" msgstr "" #: src/hd-data.c:655 msgid "New Moon" msgstr "" #: src/hd-data.c:656 msgid "Mother's Day" msgstr "DzieÅ„ Matki" #: src/hd-data.c:657 #, fuzzy msgid "Mother in Law's Day" msgstr "DzieÅ„ Matki" #: src/hd-data.c:658 msgid "Music Water Banquet" msgstr "" #: src/hd-data.c:659 #, fuzzy msgid "National Foundation Day" msgstr "Narodowy DzieÅ„ Cierpienia" #: src/hd-data.c:660 msgid "National Holiday" msgstr "Narodowe wakacje" #: src/hd-data.c:661 #, fuzzy msgid "National Mourning Day" msgstr "Narodowe wakacje" #: src/hd-data.c:662 msgid "New Year's Day" msgstr "Nowy Rok" #: src/hd-data.c:663 #, fuzzy msgid "Nurses' Day" msgstr "DzieÅ„ Księżniczki" #: src/hd-data.c:664 msgid "Old-Armenic New Year" msgstr "" #: src/hd-data.c:665 msgid "Old-Egyptic New Year" msgstr "" #: src/hd-data.c:666 #, fuzzy msgid "Orthodox New Year's Day" msgstr "Nowy Rok" #: src/hd-data.c:667 msgid "Our Lady Aparecida Day" msgstr "" #: src/hd-data.c:668 msgid "Palm Sunday" msgstr "Niedziela Palmowa" #: src/hd-data.c:669 #, fuzzy msgid "Parent's Day" msgstr "DzieÅ„ Prezydenta" #: src/hd-data.c:670 #, fuzzy msgid "Passion Sunday" msgstr "Niedziela Palmowa" #: src/hd-data.c:671 msgid "Peace Festival" msgstr "" #: src/hd-data.c:672 msgid "Peach Festival" msgstr "" #: src/hd-data.c:673 msgid "Whitsunday/Pentecost" msgstr "Zielone ÅšwiÄ…tki" #: src/hd-data.c:674 #, fuzzy msgid "Noruz/Persian New Year's Day" msgstr "Nowy Rok" #: src/hd-data.c:675 msgid "Prayer Day" msgstr "DzieÅ„ Modlitwy" #: src/hd-data.c:676 #, fuzzy msgid "Presidential Inauguration" msgstr "President's Inform" #: src/hd-data.c:677 #, fuzzy msgid "Presidents' Day" msgstr "DzieÅ„ Prezydenta" #: src/hd-data.c:678 #, fuzzy msgid "Presidents' Inform" msgstr "President's Inform" #: src/hd-data.c:679 #, fuzzy msgid "President Lincoln's Birthday" msgstr "DzieÅ„ Prezydenta" #: src/hd-data.c:680 msgid "Princess' Day" msgstr "DzieÅ„ Księżniczki" #: src/hd-data.c:681 msgid "Quinquagesima Sunday" msgstr "" #: src/hd-data.c:682 msgid "Reformation Day" msgstr "DzieÅ„ Reformacji" #: src/hd-data.c:683 msgid "Remembrance/Memorial Day" msgstr "DzieÅ„ PamiÄ™ci PolegÅ‚ych" #: src/hd-data.c:684 msgid "Republic Day" msgstr "DzieÅ„ Republiki" #: src/hd-data.c:685 msgid "Respect for the Aged Day" msgstr "" #: src/hd-data.c:686 msgid "Revolution Day" msgstr "DzieÅ„ Rewolucji" #: src/hd-data.c:687 #, fuzzy msgid "Rio de Janeiro Anniversary" msgstr "Stulecie Konstytucji" #: src/hd-data.c:688 #, fuzzy msgid "Rogation Sunday" msgstr "Åšmiertelna Niedziela" #: src/hd-data.c:689 #, fuzzy msgid "Sao Paulo Anniversary" msgstr "Stulecie Konstytucji" #: src/hd-data.c:690 msgid "Sapporo Snow Festival" msgstr "" #: src/hd-data.c:691 msgid "Season Change/Bean-Festival" msgstr "" #: src/hd-data.c:692 #, fuzzy msgid "Septuagesima Sunday" msgstr "Niedziela Palmowa" #: src/hd-data.c:693 #, fuzzy msgid "Seven Sleepers Day" msgstr "DzieÅ„ Åšw. Stefana" #: src/hd-data.c:694 #, fuzzy msgid "Sexagesima Sunday" msgstr "Niedziela Palmowa" #: src/hd-data.c:695 msgid "Shrove Tuesday/Mardi Gras" msgstr "TÅ‚usty Czwartek" #: src/hd-data.c:696 #, fuzzy msgid "Solstice Day" msgstr "Armistice Day" #: src/hd-data.c:697 msgid "Soot-Sweeping Day" msgstr "" #: src/hd-data.c:698 msgid "Spring Festival" msgstr "" #: src/hd-data.c:699 msgid "Start of common month" msgstr "" #: src/hd-data.c:700 msgid "Start of leap month" msgstr "" #: src/hd-data.c:701 msgid "Star Festival" msgstr "" #: src/hd-data.c:702 #, fuzzy msgid "St Andrew's Day" msgstr "DzieÅ„ Åšw. Grzegorza" #: src/hd-data.c:703 #, fuzzy msgid "St Bartholomew Day" msgstr "DzieÅ„ Åšw. Berchtolda" #: src/hd-data.c:704 #, fuzzy msgid "St Berchtold's Day" msgstr "DzieÅ„ Åšw. Berchtolda" #: src/hd-data.c:705 #, fuzzy msgid "St David's Day" msgstr "DzieÅ„ Åšw. Dawida" #: src/hd-data.c:706 #, fuzzy msgid "St Edward's Day" msgstr "DzieÅ„ Åšw. Edwarda" #: src/hd-data.c:707 #, fuzzy msgid "St George's Day" msgstr "DzieÅ„ Åšw. Grzegorza" #: src/hd-data.c:708 #, fuzzy msgid "St James' Day" msgstr "DzieÅ„ Åšw. Jamesa" #: src/hd-data.c:709 #, fuzzy msgid "St Joseph's Day" msgstr "DzieÅ„ Åšw. Józefa" #: src/hd-data.c:710 #, fuzzy msgid "St Laurentius Day" msgstr "DzieÅ„ zakochanych" #: src/hd-data.c:711 #, fuzzy msgid "St Nicholas' Day" msgstr "MikoÅ‚ajki" #: src/hd-data.c:712 #, fuzzy msgid "St Nicholas' Eve" msgstr "Jutro MikoÅ‚ajki" #: src/hd-data.c:713 #, fuzzy msgid "St Patrick's Day" msgstr "DzieÅ„ Åšw. Patryka" #: src/hd-data.c:714 msgid "St Peter and St Paul" msgstr "" #: src/hd-data.c:715 #, fuzzy msgid "St Stephen's Day" msgstr "DzieÅ„ Åšw. Stefana" #: src/hd-data.c:716 #, fuzzy msgid "St Valentine's Day" msgstr "DzieÅ„ zakochanych" #: src/hd-data.c:717 msgid "Sunday of the Dead" msgstr "" #: src/hd-data.c:718 msgid "Swallow Day" msgstr "Swallow Day" #: src/hd-data.c:719 #, fuzzy msgid "Sweetest Day" msgstr "DzieÅ„ weterana" #: src/hd-data.c:720 msgid "Sylvester/New Year's Eve" msgstr "" #: src/hd-data.c:721 msgid "Teacher's Day" msgstr "DzieÅ„ Nauczyciela" #: src/hd-data.c:722 #, fuzzy msgid "Thai New Year's Day" msgstr "Nowy Rok" #: src/hd-data.c:723 #, fuzzy msgid "Thanksgiving Day" msgstr "DzieÅ„ DziÄ™kczynienia" #: src/hd-data.c:724 msgid "The King's Birthday" msgstr "Urodziny Króla" #: src/hd-data.c:725 msgid "The Queen's Birthday" msgstr "Urodziny Królowej" #: src/hd-data.c:726 msgid "Epiphany/Three King's Day" msgstr "ÅšwiÄ™to Trzech Króli" #: src/hd-data.c:727 #, fuzzy msgid "Tiradentes Day" msgstr "DzieÅ„ Prezydenta" #: src/hd-data.c:728 msgid "Tomb-Sweeping Day" msgstr "" #: src/hd-data.c:729 #, fuzzy msgid "Transfiguration Day" msgstr "DzieÅ„ WolnoÅ›ci" #: src/hd-data.c:730 #, fuzzy msgid "Tynwald Day" msgstr "DzieÅ„ Rodziny Królewskiej" #: src/hd-data.c:731 msgid "Valborg's Eve" msgstr "" #: src/hd-data.c:732 msgid "Venice Carnival" msgstr "" #: src/hd-data.c:733 msgid "Veteran's Day" msgstr "DzieÅ„ weterana" #: src/hd-data.c:734 msgid "Victoria Day" msgstr "DzieÅ„ Wiktorii" #: src/hd-data.c:735 msgid "Victory Day" msgstr "DzieÅ„ ZwyciÄ™stwa" #: src/hd-data.c:736 msgid "Whit Monday" msgstr "ZesÅ‚anie Ducha ÅšwiÄ™tego" #: src/hd-data.c:737 #, fuzzy msgid "Women's Day" msgstr "DzieÅ„ Matki" #: src/hd-data.c:738 #, fuzzy msgid "Women's Shrove Day" msgstr "Ostatki" #: src/hd-data.c:739 msgid "World Animal Day" msgstr "Åšwiatowy DzieÅ„ ZwierzÄ…t" #: src/hd-data.c:740 #, fuzzy msgid "Youth Day" msgstr "DzieÅ„ Matki" #: src/hd-data.c:746 msgid "Adelaide Cup Day" msgstr "" #: src/hd-data.c:747 #, fuzzy msgid "Admission Day" msgstr "Armistice Day" #: src/hd-data.c:748 #, fuzzy msgid "Alaska Day" msgstr "DzieÅ„ chorÄ…gwi" #: src/hd-data.c:749 msgid "Aleksis Kivi Day" msgstr "" #: src/hd-data.c:750 msgid "Alice-Springs Show Day" msgstr "" #: src/hd-data.c:751 #, fuzzy msgid "All Saints' Eve" msgstr "DzieÅ„ Wszystkich ÅšwiÄ™tych" #: src/hd-data.c:752 #, fuzzy msgid "Americas Day" msgstr "DzieÅ„ SiÅ‚ Zbrojnych" #: src/hd-data.c:753 #, fuzzy msgid "Angam Day" msgstr "DzieÅ„ Anzaca" #: src/hd-data.c:755 msgid "Anniversary of Amir's Succession" msgstr "" #: src/hd-data.c:756 msgid "Anniversary of Armed Struggle" msgstr "" #: src/hd-data.c:757 msgid "Anniversary of Green March" msgstr "" #: src/hd-data.c:758 #, fuzzy msgid "Antillian Day" msgstr "DzieÅ„ Wszystkich ÅšwiÄ™tych" #: src/hd-data.c:759 msgid "Arab League Day" msgstr "" #: src/hd-data.c:761 msgid "Archbishop Makarios' Memorial Day" msgstr "" #: src/hd-data.c:762 msgid "Archbishop Makarios' Name-Day" msgstr "" #: src/hd-data.c:763 #, fuzzy msgid "Arengo Anniversary" msgstr "Stulecie Konstytucji" #: src/hd-data.c:764 #, fuzzy msgid "Army Coup Day" msgstr "DzieÅ„ SiÅ‚ Zbrojnych" #: src/hd-data.c:765 msgid "Arrival of the Swiss" msgstr "" #: src/hd-data.c:766 #, fuzzy msgid "Artigas' Birthday" msgstr "Urodziny Króla" #: src/hd-data.c:767 #, fuzzy msgid "Asuncion Day" msgstr "Wybory prezydenckie" #: src/hd-data.c:768 msgid "Ataturk Memorial Day" msgstr "" #: src/hd-data.c:769 msgid "Authority's Power Day" msgstr "" #: src/hd-data.c:770 #, fuzzy msgid "Ba'ath Revolution Day" msgstr "DzieÅ„ Rewolucji" #: src/hd-data.c:771 msgid "Baron Bliss Day" msgstr "" #: src/hd-data.c:772 #, fuzzy msgid "Bataan Day" msgstr "DzieÅ„ weterana" #: src/hd-data.c:773 #, fuzzy msgid "Battle of Angamos" msgstr "Bitwa pod Boyne" #: src/hd-data.c:774 #, fuzzy msgid "Battle of Boyacá" msgstr "Bitwa pod Boyne" #: src/hd-data.c:775 #, fuzzy msgid "Battle of Carabobo" msgstr "Bitwa pod Boyne" #: src/hd-data.c:776 #, fuzzy msgid "Battle of Iquique" msgstr "Bitwa pod Boyne" #: src/hd-data.c:777 #, fuzzy msgid "Battle of Las Piedras" msgstr "Bitwa pod Boyne" #: src/hd-data.c:778 #, fuzzy msgid "Battle of Näfels" msgstr "Bitwa pod Boyne" #: src/hd-data.c:779 msgid "Beginning of Summer" msgstr "" #: src/hd-data.c:780 #, fuzzy msgid "Belgrade's Day" msgstr "DzieÅ„ Nauczyciela" #: src/hd-data.c:781 #, fuzzy msgid "Bennington Battle Day" msgstr "DzieÅ„ Benito Juareza" #: src/hd-data.c:782 msgid "Blessing of the Water" msgstr "" #: src/hd-data.c:783 msgid "Bloomsday" msgstr "" #: src/hd-data.c:784 #, fuzzy msgid "Boganda Day" msgstr "Drugi dzieÅ„ Bożego Narodzenia" #: src/hd-data.c:785 #, fuzzy msgid "Bonaire Day" msgstr "Drugi dzieÅ„ Bożego Narodzenia" #: src/hd-data.c:786 #, fuzzy msgid "Boqueron Battle Day" msgstr "DzieÅ„ Koronacji" #: src/hd-data.c:787 #, fuzzy msgid "Botswana Day" msgstr "Drugi dzieÅ„ Bożego Narodzenia" #: src/hd-data.c:788 #, fuzzy msgid "Bounty Day" msgstr "Drugi dzieÅ„ Bożego Narodzenia" #: src/hd-data.c:789 msgid "Bunker Hill Day" msgstr "" #: src/hd-data.c:790 msgid "Burning of Jan Hus" msgstr "Spalenie Jana Husa na stosie" #: src/hd-data.c:791 #, fuzzy msgid "Canberra Day" msgstr "DzieÅ„ Modlitwy" #: src/hd-data.c:792 #, fuzzy msgid "Caricom Day" msgstr "Boże Narodzenie" #: src/hd-data.c:793 msgid "Casimir Pulaski's Birthday" msgstr "" #: src/hd-data.c:794 #, fuzzy msgid "Cassinga Day" msgstr "Drugi dzieÅ„ Bożego Narodzenia" #: src/hd-data.c:795 msgid "Cayenne Festival" msgstr "" #: src/hd-data.c:796 msgid "Cesar Chavez Day" msgstr "" #: src/hd-data.c:797 #, fuzzy msgid "Charter Day" msgstr "DzieÅ„ Ojca" #: src/hd-data.c:798 #, fuzzy msgid "Chiang Kai-shek's Birthday" msgstr "Urodziny Króla" #: src/hd-data.c:799 #, fuzzy msgid "Children's White Sunday" msgstr "DzieÅ„ Dziecka" #: src/hd-data.c:800 #, fuzzy msgid "Colon Day" msgstr "DzieÅ„ Rewolucji" #: src/hd-data.c:801 #, fuzzy msgid "Colorado Day" msgstr "DzieÅ„ Koronacji" #: src/hd-data.c:802 #, fuzzy msgid "Commonwealth Day" msgstr "DzieÅ„ Koronacji" #: src/hd-data.c:803 #, fuzzy msgid "Compact Day" msgstr "DzieÅ„ Koronacji" #: src/hd-data.c:804 msgid "Confederal Agreement Day" msgstr "" #: src/hd-data.c:805 msgid "Coronation Day" msgstr "DzieÅ„ Koronacji" #: src/hd-data.c:806 #, fuzzy msgid "Cup Match Day" msgstr "1 Maja" #: src/hd-data.c:807 #, fuzzy msgid "Custom Chief's Day" msgstr "DzieÅ„ Dziecka" #: src/hd-data.c:808 msgid "C. Mapinduzi Day" msgstr "" #: src/hd-data.c:809 msgid "Darwin Show Day" msgstr "" #: src/hd-data.c:810 msgid "Day of Goodwill" msgstr "" #: src/hd-data.c:811 msgid "Day of Students Revolt" msgstr "DzieÅ„ Rewolty Studenckiej" #: src/hd-data.c:812 msgid "Day of the Free Laos" msgstr "" #: src/hd-data.c:813 #, fuzzy msgid "Death of H. Christophe" msgstr "Boże CiaÅ‚o" #: src/hd-data.c:814 msgid "Death of J. Dessalines" msgstr "" #: src/hd-data.c:815 msgid "Death of President Abdallah" msgstr "" #: src/hd-data.c:816 msgid "Death of President Cheikh" msgstr "" #: src/hd-data.c:817 msgid "Death of President Soilih" msgstr "" #: src/hd-data.c:818 msgid "Death of Qaid-i-Azam" msgstr "" #: src/hd-data.c:819 msgid "Death of T. Louverture" msgstr "" #: src/hd-data.c:820 #, fuzzy msgid "Defenders Day" msgstr "ÅšwiÄ™to NiepodlegÅ‚oÅ›ci" #: src/hd-data.c:821 msgid "Dia del Padre" msgstr "" #: src/hd-data.c:822 msgid "Dia de los Maestros" msgstr "" #: src/hd-data.c:823 #, fuzzy msgid "Discovery Day" msgstr "DzieÅ„ ZwyciÄ™stwa" #: src/hd-data.c:824 msgid "Downfall of the Dergue" msgstr "" #: src/hd-data.c:825 msgid "Dry Season Celebration" msgstr "" #: src/hd-data.c:826 #, fuzzy msgid "Dr. Sun Yat-sen's Birthday" msgstr "Urodziny Królowej" #: src/hd-data.c:827 #, fuzzy msgid "Duarte's Birthday" msgstr "Urodziny Królowej" #: src/hd-data.c:828 #, fuzzy msgid "Easter Tuesday" msgstr "Wielkanoc" #: src/hd-data.c:829 #, fuzzy msgid "Economic Liberation Day" msgstr "DzieÅ„ WolnoÅ›ci" #: src/hd-data.c:830 #, fuzzy msgid "Eight Hours Day" msgstr "DzieÅ„ ZwyciÄ™stwa" #: src/hd-data.c:831 msgid "Elections for National Assembly" msgstr "" #: src/hd-data.c:832 msgid "Errol Barrow Day" msgstr "" #: src/hd-data.c:833 #, fuzzy msgid "Evacuation Day" msgstr "Wybory prezydenckie" #: src/hd-data.c:834 msgid "Eve of Epiphany" msgstr "" #: src/hd-data.c:835 msgid "Expedition of the 33" msgstr "" #: src/hd-data.c:836 msgid "E. Hostos' Birthday" msgstr "" #: src/hd-data.c:837 #, fuzzy msgid "Family Day" msgstr "1 Maja" #: src/hd-data.c:838 #, fuzzy msgid "FAO Day" msgstr "DzieÅ„ chorÄ…gwi" #: src/hd-data.c:839 #, fuzzy msgid "Farmers' Day" msgstr "DzieÅ„ Ojca" #: src/hd-data.c:840 #, fuzzy msgid "Father Leval Day" msgstr "DzieÅ„ Ojca" #: src/hd-data.c:841 msgid "Feast of Our Theotokos" msgstr "Feast of Our Theotokos" #: src/hd-data.c:842 #, fuzzy msgid "Fisherman's Day" msgstr "DzieÅ„ Ojca" #: src/hd-data.c:843 #, fuzzy msgid "Foundation of NPLA Day" msgstr "DzieÅ„ Koronacji" #: src/hd-data.c:844 msgid "Founding of People's Party" msgstr "" #: src/hd-data.c:845 msgid "Garifuna Day" msgstr "" #: src/hd-data.c:847 msgid "General San Martin's Anniversary" msgstr "" #: src/hd-data.c:848 #, fuzzy msgid "Gospel Day" msgstr "DzieÅ„ Nobla" #: src/hd-data.c:849 #, fuzzy msgid "Guacanaste Day" msgstr "DzieÅ„ Rodziny Królewskiej" #: src/hd-data.c:850 msgid "Gustavus Adolphus' Day" msgstr "DzieÅ„ Gustawa Adolfa" #: src/hd-data.c:851 #, fuzzy msgid "Heritage Day" msgstr "Armistice Day" #: src/hd-data.c:852 #, fuzzy msgid "Heroes Day" msgstr "DzieÅ„ Ojca" #: src/hd-data.c:853 msgid "Hobart Show Day" msgstr "" #: src/hd-data.c:854 #, fuzzy msgid "Holy Wednesday" msgstr "Åšroda" #: src/hd-data.c:855 #, fuzzy msgid "Ho Chi Minh's Birthday" msgstr "Urodziny Króla" #: src/hd-data.c:856 #, fuzzy msgid "Human Rights Day" msgstr "DzieÅ„ Zjednoczenia Niemiec" #: src/hd-data.c:857 msgid "Hurricane Supplication Day" msgstr "" #: src/hd-data.c:858 #, fuzzy msgid "Hurricane Thanksgiving Day" msgstr "DzieÅ„ DziÄ™kczynienia" #: src/hd-data.c:859 #, fuzzy msgid "Independence of Cartagena" msgstr "ÅšwiÄ™to NiepodlegÅ‚oÅ›ci" #: src/hd-data.c:860 #, fuzzy msgid "Independence of Cuenca" msgstr "ÅšwiÄ™to NiepodlegÅ‚oÅ›ci" #: src/hd-data.c:861 #, fuzzy msgid "Independence of Guayaquil" msgstr "ÅšwiÄ™to NiepodlegÅ‚oÅ›ci" #: src/hd-data.c:862 #, fuzzy msgid "Independence of Quito" msgstr "ÅšwiÄ™to NiepodlegÅ‚oÅ›ci" #: src/hd-data.c:863 msgid "Indian Arrival Day" msgstr "" #: src/hd-data.c:864 #, fuzzy msgid "Internal Autonomy Day" msgstr "MiÄ™dzynarodowy DzieÅ„ Kobiet" #: src/hd-data.c:865 #, fuzzy msgid "Jefferson Davis' Birthday" msgstr "Urodziny Koronowanej Księżniczki" #: src/hd-data.c:866 #, fuzzy msgid "June Holiday" msgstr "Dzisiaj banki zamkniÄ™te" #: src/hd-data.c:867 #, fuzzy msgid "J. Barbosa's Birthday" msgstr "Urodziny Króla" #: src/hd-data.c:868 #, fuzzy msgid "J. Chilembwe Day" msgstr "DzieÅ„ Dziecka" #: src/hd-data.c:869 #, fuzzy msgid "J. Diego's Birthday" msgstr "Urodziny Króla" #: src/hd-data.c:870 #, fuzzy msgid "J. Robert's Birthday" msgstr "Urodziny Królowej" #: src/hd-data.c:871 msgid "Kamarampaka Day" msgstr "" #: src/hd-data.c:872 #, fuzzy msgid "Kartini Day" msgstr "Martinimas" #: src/hd-data.c:873 #, fuzzy msgid "Catherine Show Day" msgstr "DzieÅ„ Ojca" #: src/hd-data.c:874 msgid "Kiev Day" msgstr "" #: src/hd-data.c:875 #, fuzzy msgid "Kim Il-Sung's Birthday" msgstr "Urodziny Króla" #: src/hd-data.c:876 #, fuzzy msgid "Kim Jong-Il's Birthday" msgstr "Urodziny Króla" #: src/hd-data.c:877 msgid "King Kamehameha Day" msgstr "" #: src/hd-data.c:878 msgid "King Rama I Memorial Day/Chakri" msgstr "" #: src/hd-data.c:879 #, fuzzy msgid "King Rama V Memorial Day" msgstr "DzieÅ„ PamiÄ™ci PolegÅ‚ych" #: src/hd-data.c:880 msgid "Knabenschiessen" msgstr "" #: src/hd-data.c:881 msgid "Konstantin and Methodius" msgstr "" #: src/hd-data.c:882 msgid "Lapp National Holiday" msgstr "Lapp National Holiday" #: src/hd-data.c:883 msgid "Launceston Cup Day" msgstr "" #: src/hd-data.c:884 #, fuzzy msgid "Liberty Day" msgstr "DzieÅ„ WolnoÅ›ci" #: src/hd-data.c:885 msgid "Loss of Muslim Nation" msgstr "" #: src/hd-data.c:886 msgid "Luxembourg City Kermis" msgstr "" #: src/hd-data.c:887 #, fuzzy msgid "Lyndon B. Johnson Day" msgstr "DzieÅ„ Åšw. Jana" #: src/hd-data.c:888 #, fuzzy msgid "L. Rivera's Birthday" msgstr "Urodziny Króla" #: src/hd-data.c:889 #, fuzzy msgid "Madaraka Day" msgstr "1 Maja" #: src/hd-data.c:890 #, fuzzy msgid "Mahatma Gandhi's Birthday" msgstr "Urodziny Króla" #: src/hd-data.c:891 #, fuzzy msgid "Malvinas Day" msgstr "1 Maja" #: src/hd-data.c:892 #, fuzzy msgid "Manila Day" msgstr "1 Maja" #: src/hd-data.c:893 #, fuzzy msgid "Maputo City Day" msgstr "1 Maja" #: src/hd-data.c:894 msgid "Marien Ngouabi Day" msgstr "" #: src/hd-data.c:895 #, fuzzy msgid "Maryland Day" msgstr "1 Maja" #: src/hd-data.c:896 msgid "Melbourne Cup Day" msgstr "" #: src/hd-data.c:897 #, fuzzy msgid "Merchant Day" msgstr "DzieÅ„ Zjednoczenia Niemiec" #: src/hd-data.c:898 #, fuzzy msgid "St John's/Midsummers Eve" msgstr "Jutro Åšrodek Lata" #: src/hd-data.c:899 #, fuzzy msgid "Missionary Day" msgstr "1 Maja" #: src/hd-data.c:900 msgid "Mi-Carême Day" msgstr "" #: src/hd-data.c:901 #, fuzzy msgid "Morazan Day" msgstr "1 Maja" #: src/hd-data.c:902 #, fuzzy msgid "Mosheshoe's Day" msgstr "DzieÅ„ Matki" #: src/hd-data.c:903 msgid "Motherhood and Beauty Day" msgstr "" #: src/hd-data.c:904 #, fuzzy msgid "Naming Day" msgstr "Drugi dzieÅ„ Bożego Narodzenia" #: src/hd-data.c:905 #, fuzzy msgid "National Bun Day" msgstr "Narodowy DzieÅ„ Cierpienia" #: src/hd-data.c:906 #, fuzzy msgid "National Heroes Day" msgstr "Narodowe wakacje" #: src/hd-data.c:907 #, fuzzy msgid "National Redemption Day" msgstr "Narodowy DzieÅ„ Cierpienia" #: src/hd-data.c:908 msgid "National Resistance Day" msgstr "DzieÅ„ Narodowego Ruchu Oporu" #: src/hd-data.c:909 #, fuzzy msgid "National Revival Day" msgstr "DzieÅ„ Narodowego Ruchu Oporu" #: src/hd-data.c:910 #, fuzzy msgid "National Unity Day" msgstr "Narodowy DzieÅ„ Cierpienia" #: src/hd-data.c:911 #, fuzzy msgid "Ndadaye Day" msgstr "DzieÅ„ Modlitwy" #: src/hd-data.c:912 #, fuzzy msgid "Neutrality Day" msgstr "DzieÅ„ Zjednoczenia Niemiec" #: src/hd-data.c:913 #, fuzzy msgid "Nevada Day" msgstr "DzieÅ„ Nobla" #: src/hd-data.c:914 msgid "New Regime Anniversary" msgstr "" #: src/hd-data.c:915 msgid "Nobel Day" msgstr "DzieÅ„ Nobla" #: src/hd-data.c:916 #, fuzzy msgid "Noi Day" msgstr "DzieÅ„ Nobla" #: src/hd-data.c:917 #, fuzzy msgid "OAU Day" msgstr "DzieÅ„ Anzaca" #: src/hd-data.c:918 #, fuzzy msgid "October Holiday" msgstr "Narodowe wakacje" #: src/hd-data.c:919 msgid "Oil Industry Day" msgstr "" #: src/hd-data.c:920 msgid "Our Lady of Altagracia Day" msgstr "" #: src/hd-data.c:921 msgid "Our Lady of Camarin Day" msgstr "" #: src/hd-data.c:922 msgid "Our Lady of Las Mercedes Day" msgstr "" #: src/hd-data.c:923 msgid "Our Lady of Los Angeles Day" msgstr "" #: src/hd-data.c:924 msgid "Our Lady of Seven Sorrows" msgstr "" #: src/hd-data.c:925 msgid "Our Lady of Victories Day" msgstr "" #: src/hd-data.c:926 #, fuzzy msgid "Panama City Day" msgstr "DzieÅ„ Zjednoczenia Niemiec" #: src/hd-data.c:927 #, fuzzy msgid "Panamerica Day" msgstr "DzieÅ„ Modlitwy" #: src/hd-data.c:928 msgid "Paris Peace Agreement Day" msgstr "" #: src/hd-data.c:929 #, fuzzy msgid "Patriot's Day" msgstr "DzieÅ„ Åšw. Patryka" #: src/hd-data.c:930 #, fuzzy msgid "People's Uprising Day" msgstr "Majowe Powstanie Ludu Czeskiego" #: src/hd-data.c:931 msgid "People Power Day" msgstr "" #: src/hd-data.c:932 msgid "Philippine-American Friendship" msgstr "" #: src/hd-data.c:933 #, fuzzy msgid "Pichincha Day" msgstr "DzieÅ„ Wiktorii" #: src/hd-data.c:934 #, fuzzy msgid "Picnic Day" msgstr "DzieÅ„ Księżniczki" #: src/hd-data.c:935 #, fuzzy msgid "Pioneer Day" msgstr "DzieÅ„ Modlitwy" #: src/hd-data.c:936 #, fuzzy msgid "Poya Day" msgstr "DzieÅ„ Modlitwy" #: src/hd-data.c:937 msgid "Prince Kalanianaole Day" msgstr "" #: src/hd-data.c:938 #, fuzzy msgid "Prince of Wales' Birthday" msgstr "Urodziny Koronowanej Księżniczki" #: src/hd-data.c:939 #, fuzzy msgid "Proclamation Day" msgstr "DzieÅ„ Koronacji" #: src/hd-data.c:940 msgid "Qaid-i-Azam's Birthday" msgstr "" #: src/hd-data.c:941 msgid "Ratu Sukuma Day" msgstr "" #: src/hd-data.c:942 #, fuzzy msgid "Recreation Day" msgstr "DzieÅ„ Reformacji" #: src/hd-data.c:943 #, fuzzy msgid "Referendum Day" msgstr "DzieÅ„ Reformacji" #: src/hd-data.c:944 #, fuzzy msgid "Regatta Day" msgstr "DzieÅ„ Reformacji" #: src/hd-data.c:945 msgid "Regency Exchange" msgstr "" #: src/hd-data.c:946 #, fuzzy msgid "Restoration Day" msgstr "DzieÅ„ Reformacji" #: src/hd-data.c:947 #, fuzzy msgid "Return Day" msgstr "DzieÅ„ weterana" #: src/hd-data.c:948 #, fuzzy msgid "Reunification Day" msgstr "DzieÅ„ Reformacji" #: src/hd-data.c:949 #, fuzzy msgid "Rizal Day" msgstr "DzieÅ„ Anzaca" #: src/hd-data.c:950 #, fuzzy msgid "Rwagasore Day" msgstr "ÅšwiÄ™to Pracy" #: src/hd-data.c:951 #, fuzzy msgid "Saba Day" msgstr "ÅšwiÄ™to Pracy" #: src/hd-data.c:952 #, fuzzy msgid "San Jacinto Day" msgstr "DzieÅ„ Åšw. Jana Baptysty" #: src/hd-data.c:953 #, fuzzy msgid "San José Day" msgstr "DzieÅ„ Åšw. Jana" #: src/hd-data.c:954 msgid "SAR Establishment Day" msgstr "" #: src/hd-data.c:955 #, fuzzy msgid "School Holiday" msgstr "Narodowe wakacje" #: src/hd-data.c:956 msgid "Sechseläuten" msgstr "" #: src/hd-data.c:957 #, fuzzy msgid "Separation Day" msgstr "DzieÅ„ WolnoÅ›ci" #: src/hd-data.c:958 msgid "Seretse Khama Day" msgstr "" #: src/hd-data.c:959 #, fuzzy msgid "Settlers Day" msgstr "DzieÅ„ weterana" #: src/hd-data.c:960 #, fuzzy msgid "Seward's Day" msgstr "DzieÅ„ Åšw. Edwarda" #: src/hd-data.c:961 #, fuzzy msgid "Shaheed Day" msgstr "DzieÅ„ Ojca" #: src/hd-data.c:962 msgid "Sheep Festival" msgstr "" #: src/hd-data.c:963 #, fuzzy msgid "Sheikh Zayed's Ascension Day" msgstr "DzieÅ„ WniebowstÄ…pienia NMP" #: src/hd-data.c:964 msgid "Simon Bolivar's Day" msgstr "" #: src/hd-data.c:965 #, fuzzy msgid "Sinai-Liberation Day" msgstr "DzieÅ„ WolnoÅ›ci" #: src/hd-data.c:966 #, fuzzy msgid "Slave-Liberation Day" msgstr "DzieÅ„ WolnoÅ›ci" #: src/hd-data.c:967 msgid "Sniff the Breeze Day" msgstr "" #: src/hd-data.c:968 msgid "Solidarity Day" msgstr "" #: src/hd-data.c:969 #, fuzzy msgid "Somers Day" msgstr "DzieÅ„ Matki" #: src/hd-data.c:970 #, fuzzy msgid "Statia-American Day" msgstr "DzieÅ„ Åšw. Patryka" #: src/hd-data.c:971 #, fuzzy msgid "Student's Day" msgstr "DzieÅ„ Prezydenta" #: src/hd-data.c:972 #, fuzzy msgid "St Agata Day" msgstr "DzieÅ„ Åšw. Kanuta" #: src/hd-data.c:973 #, fuzzy msgid "St Canute's Day" msgstr "DzieÅ„ Åšw. Kanuta" #: src/hd-data.c:974 #, fuzzy msgid "St Cedilia's Day" msgstr "DzieÅ„ Åšw. Åucji" #: src/hd-data.c:975 #, fuzzy msgid "St Charles' Day" msgstr "DzieÅ„ Åšw. Jamesa" #: src/hd-data.c:976 #, fuzzy msgid "St Demetrius' Day" msgstr "DzieÅ„ Åšw. Jamesa" #: src/hd-data.c:977 #, fuzzy msgid "St Dévote Day" msgstr "DzieÅ„ Åšw. Józefa" #: src/hd-data.c:978 #, fuzzy msgid "St Eliah's Day" msgstr "DzieÅ„ Åšw. Åucji" #: src/hd-data.c:979 #, fuzzy msgid "St Jean Baptiste Day" msgstr "DzieÅ„ Åšw. Jana Baptysty" #: src/hd-data.c:980 #, fuzzy msgid "St Lucia's Day" msgstr "DzieÅ„ Åšw. Åucji" #: src/hd-data.c:981 #, fuzzy msgid "St Marguerite's Day" msgstr "DzieÅ„ Åšw. Kanuta" #: src/hd-data.c:982 #, fuzzy msgid "St Maroon's Day" msgstr "DzieÅ„ Åšw. Jana" #: src/hd-data.c:983 #, fuzzy msgid "St Michael's Day" msgstr "MikoÅ‚ajki" #: src/hd-data.c:984 #, fuzzy msgid "St Olav's Day" msgstr "DzieÅ„ Åšw. Dawida" #: src/hd-data.c:985 #, fuzzy msgid "St Olav's Eve" msgstr "Jutro DzieÅ„ Åšw. Jana" #: src/hd-data.c:986 msgid "St Paul's Shipswreck" msgstr "" #: src/hd-data.c:987 msgid "St Rose of Lima" msgstr "" #: src/hd-data.c:988 #, fuzzy msgid "St Ursula's Day" msgstr "DzieÅ„ Åšw. Åucji" #: src/hd-data.c:989 #, fuzzy msgid "St Vincent de Paul's Day" msgstr "DzieÅ„ zakochanych" #: src/hd-data.c:990 #, fuzzy msgid "Suez Victory Day" msgstr "DzieÅ„ ZwyciÄ™stwa" #: src/hd-data.c:991 msgid "Sultan Qaboos' Birthday" msgstr "" #: src/hd-data.c:992 msgid "Svetitskhovloba" msgstr "" #: src/hd-data.c:993 #, fuzzy msgid "Sweden Day" msgstr "DzieÅ„ Prezydenta" #: src/hd-data.c:994 #, fuzzy msgid "S. Doe's Birthday" msgstr "Urodziny Królowej" #: src/hd-data.c:995 msgid "Tennant-Creek Show Day" msgstr "" #: src/hd-data.c:996 #, fuzzy msgid "Territory Day" msgstr "DzieÅ„ ZwyciÄ™stwa" #: src/hd-data.c:997 msgid "The Crown Princesse's Birthday" msgstr "Urodziny Koronowanej Księżniczki" #: src/hd-data.c:998 msgid "The Crown Princesse's Name-Day" msgstr "DzieÅ„ Koronowanej Księżniczki" #: src/hd-data.c:999 #, fuzzy msgid "The Crown Prince's Birthday" msgstr "Urodziny Koronowanej Księżniczki" #: src/hd-data.c:1000 msgid "The King's Name-Day" msgstr "DzieÅ„ Króla" #: src/hd-data.c:1001 msgid "The Queen's Name-Day" msgstr "DzieÅ„ Królowej" #: src/hd-data.c:1002 msgid "Topou I Day" msgstr "" #: src/hd-data.c:1003 #, fuzzy msgid "Town Meeting Day" msgstr "Drugi dzieÅ„ Bożego Narodzenia" #: src/hd-data.c:1004 #, fuzzy msgid "Traditional Day" msgstr "DzieÅ„ Koronacji" #: src/hd-data.c:1005 #, fuzzy msgid "Transfer Day" msgstr "DzieÅ„ Modlitwy" #: src/hd-data.c:1006 #, fuzzy msgid "Truman Day" msgstr "DzieÅ„ Reformacji" #: src/hd-data.c:1007 #, fuzzy msgid "Union Day" msgstr "DzieÅ„ Koronacji" #: src/hd-data.c:1008 msgid "Union with Sweden dissolved" msgstr "Rozpad unii ze SzwecjÄ…" #: src/hd-data.c:1009 msgid "United Nations Day" msgstr "DzieÅ„ Narodów Zjednoczonych" #: src/hd-data.c:1010 #, fuzzy msgid "Unity Factory Day" msgstr "DzieÅ„ ZwyciÄ™stwa" #: src/hd-data.c:1011 #, fuzzy msgid "Victor-Schoelcher Day" msgstr "DzieÅ„ ZwyciÄ™stwa" #: src/hd-data.c:1012 msgid "Vidovdan" msgstr "" #: src/hd-data.c:1013 #, fuzzy msgid "West Virginia Day" msgstr "DzieÅ„ Wiktorii" #: src/hd-data.c:1014 msgid "Whitsun Eve" msgstr "Jutro Boże CiaÅ‚o" #: src/hd-data.c:1015 #, fuzzy msgid "W. Tubman's Birthday" msgstr "Urodziny Królowej" #: src/hd-data.c:1016 #, fuzzy msgid "Yap Day" msgstr "1 Maja" #: src/hd-data.c:1017 msgid "Day of Czech Statehood" msgstr "" #: src/hd-data.c:1082 msgid "Zi/Rat" msgstr "" #: src/hd-data.c:1082 msgid "Chou/Ox" msgstr "" #: src/hd-data.c:1083 msgid "Yin/Tiger" msgstr "" #: src/hd-data.c:1083 msgid "Mao/Rabbit" msgstr "" #: src/hd-data.c:1084 msgid "Chen/Dragon" msgstr "" #: src/hd-data.c:1084 msgid "Si/Snake" msgstr "" #: src/hd-data.c:1085 msgid "Wu/Horse" msgstr "" #: src/hd-data.c:1085 msgid "Wei/Sheep" msgstr "" #: src/hd-data.c:1086 msgid "Shen/Monkey" msgstr "" #: src/hd-data.c:1086 msgid "You/Rooster" msgstr "" #: src/hd-data.c:1087 msgid "Xu/Dog" msgstr "" #: src/hd-data.c:1087 msgid "Hai/Pig" msgstr "" #: src/hd-data.c:1284 #, fuzzy msgid "Ast" msgstr ". " #: src/hd-data.c:1397 src/hd-data.c:1480 msgid "Bah" msgstr "" #: src/hd-data.c:1547 msgid "Cel" msgstr "" #: src/hd-data.c:1689 src/hd-data.c:2222 #, fuzzy msgid "Chi" msgstr "Chr" #: src/hd-data.c:1803 src/hd-data.c:2322 src/hd-data.c:3839 #, c-format msgid "Cannot calculate lunisolar calendar for %d correctly" msgstr "" #: src/hd-data.c:2224 src/hd-data.c:3727 #, fuzzy msgid "Jap" msgstr "Sty" #: src/hd-data.c:2420 msgid "Chr" msgstr "Chr" #: src/hd-data.c:2654 src/hd-data.c:4171 msgid "FRR" msgstr "" #: src/hd-data.c:2775 src/hd-data.c:2957 #, fuzzy msgid "Heb" msgstr "Lut" #: src/hd-data.c:3187 src/hd-data.c:3616 msgid "Isl" msgstr "" #: src/hd-data.c:4241 src/hd-data.c:4336 msgid "AMO" msgstr "" #: src/hd-data.c:4262 src/hd-data.c:4334 msgid "EGO" msgstr "" #: src/hd-data.c:4444 msgid "OxN" msgstr "" #: src/hd-data.c:4446 msgid "OxO" msgstr "" #: src/hd-data.c:4647 src/hd-data.c:4776 msgid "Per" msgstr "" #: src/hd-data.c:4844 msgid "Zod" msgstr "" #: src/hd-use.c:928 msgid " day" msgstr " dzieÅ„" #: src/hd-use.c:1973 src/hd-use.c:1978 src/hd-use.c:1982 src/hd-use.c:1989 #: src/hd-use.c:1993 src/hd-use.c:2089 src/hd-use.c:2273 msgid "Eternal holiday list" msgstr "Wieczna lista dni wolnych" #: src/hd-use.c:1977 #, c-format msgid "%s:%*sThe year %0*d is A leap year" msgstr "%s:%*sRok %0*d jest rokiem przestepnym" #: src/hd-use.c:1981 #, 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:1988 #, c-format msgid "%s:%*sThe year %d is A leap year" msgstr "%s:%*sRok %d jest rokiem przestepnym" #: src/hd-use.c:1992 #, c-format msgid "%s:%*sThe year %d is NO leap year" msgstr "%s:%*sRok %d nie jest rokiem przestepnym" #: src/hd-use.c:2242 #, c-format msgid " = %+4d day" msgstr " = %+4d dzieÅ„" #: src/hd-use.c:2244 #, c-format msgid " = %+4d days" msgstr " = %+4d dni" #: src/hd-use.c:2271 #, c-format msgid "%s%s contains %d maximum entries now!%s" msgstr "%s%s zawiera obecnie maksymalnie %d rekordów!%s" #: src/help.c:64 #, 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:74 #, fuzzy msgid "# Day number (must be defined)" msgstr "Grupa dni (dokÅ‚adnie jeden przedstawiciel musi być zdefiniowany):" #: src/help.c:75 #, fuzzy msgid "# Year number (must be defined)" msgstr "Grupa lat (dokÅ‚adnie jeden przedstawiciel musi być zdefiniowany):" #: src/help.c:76 #, fuzzy msgid "# Weekday name (may be defined)" msgstr "Nazwa dnia (jeden przedstawiciel może być zdefiniowany):" #: src/help.c:77 msgid "Month group (exactly one member must be defined):" msgstr "Grupa miesiÄ™cy (dokÅ‚adnie jeden przedstawiciel musi być zdefiniowany):" #: src/help.c:78 msgid "# Month number" msgstr "" #: src/help.c:79 #, fuzzy msgid "# Month name" msgstr "PeÅ‚na nazwa miesiÄ…ca" #: src/help.c:80 msgid "Highlighting group (all members must be defined):" msgstr "Grupa wyróżniajÄ…ca (należy zdefiniować wszystkich przedstawicieli):" #: src/help.c:81 msgid "Start of highlighting sequence/marking character" msgstr "PoczÄ…tek sekwencji wyróżniajÄ…cej/znak zaznaczajÄ…cy" #: src/help.c:83 msgid "End of highlighting sequence/marking character" msgstr "Koniec sekwencji wyróżniajÄ…cej/znak zaznaczajÄ…cy" #: src/help.c:85 msgid "Character replacement:" msgstr "Zamiennik znaku:" #: src/help.c:86 #, fuzzy, c-format msgid "Space/blank ('%c') character" msgstr "OdstÄ™p/znak pusty (' ')" #: src/help.c:87 #, fuzzy, c-format msgid "Underscore ('%c') character" msgstr "Znak podkreÅ›lenia ('_')" #: src/help.c:88 #, fuzzy, c-format msgid "Percent ('%c') character" msgstr "Znak procentu ('%')" #: src/help.c:89 #, fuzzy, c-format msgid "Backslash ('%c') character" msgstr "OdstÄ™p/znak pusty (' ')" #: src/help.c:90 msgid "All format elements marked by # may optionally" msgstr "" #: src/help.c:91 msgid "contain a format instruction, which template is like:" msgstr "" #: src/help.c:92 msgid "[ALIGNMENT [SIGN] [ZERO] WIDTH [STYLE] [SUFFIX] FORMAT]" msgstr "" #: src/help.c:93 #, fuzzy msgid "ALIGNMENT group (exactly one member must be defined):" msgstr "Grupa miesiÄ™cy (dokÅ‚adnie jeden przedstawiciel musi być zdefiniowany):" #: src/help.c:94 msgid "Field contents placed at the left margin using width WIDTH" msgstr "" #: src/help.c:96 msgid "Field contents placed in centered manner using width WIDTH" msgstr "" #: src/help.c:98 msgid "Field contents placed at the right margin using width WIDTH" msgstr "" #: src/help.c:100 msgid "SIGN (may be defined):" msgstr "" #: src/help.c:101 msgid "Numerical value is provided with leading sign" msgstr "" #: src/help.c:102 msgid "ZERO (may be defined):" msgstr "" #: src/help.c:103 #, fuzzy msgid "Numerical value is filled with leading zero(es)" msgstr "Numer dnia z poprzedzajÄ…cymi zerami" #: src/help.c:104 msgid "WIDTH (must be defined):" msgstr "" #: src/help.c:105 #, c-format msgid "Field has the width N (%d...%d)" msgstr "" #: src/help.c:106 #, fuzzy msgid "STYLE group (exactly one member may be defined):" msgstr "Grupa lat (dokÅ‚adnie jeden przedstawiciel musi być zdefiniowany):" #: src/help.c:107 msgid "Field contents is converted to upper-case letters" msgstr "" #: src/help.c:108 msgid "Field contents is converted to lower-case letters" msgstr "" #: src/help.c:109 msgid "Field contents is converted to capitalized words" msgstr "" #: src/help.c:110 msgid "SUFFIX (may be defined):" msgstr "" #: src/help.c:111 msgid "Numerical value is provided with an ordinal number suffix" msgstr "" #: src/help.c:113 #, fuzzy msgid "FORMAT group (exactly one member must be defined):" msgstr "Grupa miesiÄ™cy (dokÅ‚adnie jeden przedstawiciel musi być zdefiniowany):" #: src/help.c:114 msgid "Field contents is not cut after position WIDTH" msgstr "" #: src/help.c:115 msgid "Field contents is cut after position WIDTH" msgstr "" #: src/help.c:129 msgid "legal holidays" msgstr "Å›wiÄ™ta paÅ„stwowe" #: src/help.c:130 msgid "holidays" msgstr "dni wolne" #: src/help.c:131 msgid "Mondays" msgstr "PoniedziaÅ‚ki" #: src/help.c:132 msgid "Tuesdays" msgstr "Wtorki" #: src/help.c:133 msgid "Wednesdays" msgstr "Åšrody" #: src/help.c:134 msgid "Thursdays" msgstr "Czwartki" #: src/help.c:135 msgid "Fridays" msgstr "PiÄ…tki" #: src/help.c:136 msgid "Saturdays" msgstr "Soboty" #: src/help.c:137 msgid "Sundays" msgstr "Niedziele" #: src/help.c:138 msgid "Mondays...Thursdays" msgstr "PoniedziaÅ‚ki...Czwartki" #: src/help.c:139 msgid "Mondays...Fridays" msgstr "PoniedziaÅ‚ki...PiÄ…tki" #: src/help.c:169 #, 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:242 msgid "OPTION" msgstr "OPCJA" #: src/help.c:255 msgid " Display help text and quit program" msgstr " WyÅ›wietl tekst pomocy i zakoÅ„cz program" #: src/help.c:272 msgid " Display extended help text and quit program" msgstr " WyÅ›wietl obszerniejszy tekst pomocy i zakoÅ„cz program" #: src/help.c:290 msgid " Display software license and quit program" msgstr " WyÅ›wietl licencjÄ™ programu i zakoÅ„cz program" #: src/help.c:301 #, fuzzy msgid " Display version information and quit program" msgstr " WyÅ›wietl numer wersji i zakoÅ„cz program" #: src/help.c:312 #, 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:325 #, c-format msgid " Create response file for the `%cFILE' option" msgstr " Utwórz plik odpowiedzi dla opcji `%cPLIK'" #: src/help.c:329 #, 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:343 #, 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:345 #, fuzzy, c-format msgid " %-3s = File name of the shell script" msgstr " ARG = Nazwa skryptu powÅ‚oki" #: src/help.c:359 #, 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:363 #, fuzzy, c-format msgid " %-3s = \"DVAR%s%s%s\" definitions separated by `%s' characters" msgstr " wyrażenia rozdzielone przez znaki `%s'" #: src/help.c:368 #, 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:380 msgid " Export local date variables from file to file" msgstr " Eksportuj lokalnÄ… zmiennÄ… daty z pliku do pliku" #: src/help.c:392 #, 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:397 #, fuzzy, c-format msgid " %-3s = \"TVAR%sTEXT\" definitions separated by `%s' characters" msgstr " wyrażenia rozdzielone przez znaki `%s'" #: src/help.c:402 #, 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:408 #, fuzzy, c-format msgid "" " = \"TVAR[%s|%c%s]COMMAND\" definitions separated by `%s' characters" msgstr " wyrażenia rozdzielone przez znaki `%s'" #: src/help.c:413 #, 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:425 msgid " Export local text variables from file to file" msgstr " Eksportuj lokalne zmienne tekstowe z pliku do pliku" #: src/help.c:437 src/help.c:467 #, 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:442 #, 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:447 #, fuzzy msgid " is a LOWER-CASE-LETTER, it means a non-exclusion!" msgstr " jest MAÅÄ„ LITERÄ„, oznacza on bez wykluczania!" #: src/help.c:451 #, c-format msgid " %c = Exclusion of all %s" msgstr " %c = PominiÄ™cie wszystkich %s" #: src/help.c:472 #, 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:476 #, c-format msgid " expressions separated by `%s' characters" msgstr " wyrażenia rozdzielone przez znaki `%s'" #: src/help.c:489 #, 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:494 #, 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:507 #, c-format msgid " Ignore case distinctions if `%s' option is given" msgstr "" #: src/help.c:519 #, fuzzy, c-format msgid " Revert the sense of matching of the `%s' option" msgstr " Utwórz plik odpowiedzi dla opcji `%cPLIK'" #: src/help.c:530 #, fuzzy msgid " Display some debug information" msgstr " WyÅ›wietl informacje diagnostyczne" #: src/help.c:538 #, 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:547 msgid "" " = handled Like `internal' and file names which are handled" msgstr " = handled Tak jak `internal' oraz nazwy używanych plików" #: src/help.c:555 msgid "" " = unhandled Like `internal' and file names which are unhandled" msgstr "" " = unhandled Tak jak `internal' oraz nazwy niewykorzystanych " "plików" #: src/help.c:563 msgid " = all Like `handled' and `unhandled' together" msgstr " = all Tak jak `handled' i `unhandled' razem" #: src/help.c:571 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:581 msgid " Use special format for calendar sheet" msgstr " Zastosuj specjalny format dla kartki kalendarza" #: src/help.c:584 msgid " [MOD] = - Use standard format for calendar sheet" msgstr " [MOD] = - Użyj standardowego formatu kartki kalendarza" #: src/help.c:595 #, 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:605 #, fuzzy msgid " Provide calendar sheet with week numbers" msgstr " Pokaż kartkÄ™ kalendarza z numerami ISO tygodni" #: src/help.c:616 #, c-format msgid " Determine type of week numbers (actual: %s)" msgstr "" #: src/help.c:617 msgid "Standard" msgstr "" #: src/help.c:623 #, c-format msgid " %-3s = yes ISO-8601:1988 week numbers" msgstr "" #: src/help.c:630 #, fuzzy msgid " = no Standard week numbers" msgstr " Pokaż kartkÄ™ kalendarza z numerami ISO tygodni" #: src/help.c:641 msgid " Suppress output of calendar sheet explicitly" msgstr " Nie wyÅ›wietlaj kartek kalendarza" #: src/help.c:654 #, fuzzy, c-format msgid " Direct output through external `%s' pager" msgstr " PrzeÅ›lij wynik poprzez zewnetrzny pager `%s'" #: src/help.c:660 src/help.c:662 #, fuzzy msgid " Direct output through simple internal pager" msgstr " PrzeÅ›lij wynik poprzez prosty pager wewnÄ™trzny" #: src/help.c:679 msgid " Disable highlighting of text, holiday resp., actual day" msgstr " Wyłącz wyróżnianie tekstu, dni wolnych, bÄ…dź aktualnego dnia" #: src/help.c:694 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:706 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:710 #, 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:715 #, 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:720 #, 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:731 msgid " Modify format of year calendar" msgstr " ZmieÅ„ format kalendarza lat" #: src/help.c:735 #, 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:747 msgid " Use consecutive day of year in calendar sheet" msgstr " Użyj kolejnych dni lat w kartce kalendarza" #: src/help.c:751 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:763 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:767 src/help.c:783 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:779 msgid " Use consecutive day of year in fixed date list" msgstr " Użyj kolejnych dni roku w liÅ›cie ustalonych dni" #: src/help.c:794 #, fuzzy, c-format msgid " Set starting day of week (actual: %s)" msgstr " Ustaw poczÄ…tkowy dzieÅ„ tygodnia" #: src/help.c:827 #, c-format msgid " Send output via `%s' program to user" msgstr " PrzeÅ›lij wynik użytkownikowi poprzez program `%s'" #: src/help.c:856 msgid "UNKNOWN" msgstr "" #: src/help.c:859 #, c-format msgid " [%-3s] = Email address, otherwise eMail is send to user `%s'" msgstr "" #: src/help.c:877 #, 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:880 msgid " n = Legal days and memorial days" msgstr " n = ÅšwiÄ™ta paÅ„stwowe i dni pamiÄ™ci" #: src/help.c:882 msgid " N = Legal days only" msgstr " N = Tylko Å›wiÄ™ta paÅ„stwowe" #: src/help.c:884 src/help.c:1630 #, c-format msgid " [MOD] = %s Descending sort order" msgstr " [MOD] = %s Opadajacy porzÄ…dek sortowania" #: src/help.c:896 #, fuzzy msgid " Suppress leading blank line of eternal holiday list" msgstr " Wyłącz tytuÅ‚ wiecznej listy dni wolnych" #: src/help.c:906 msgid " Exclude title of eternal holiday list" msgstr " Wyłącz tytuÅ‚ wiecznej listy dni wolnych" #: src/help.c:918 #, fuzzy msgid " Provide eternal holiday list with astronomical data" msgstr " Pokaż wiecznÄ… listÄ™ dni wolnych ze Å›wiÄ™tami katolickimi" #: src/help.c:930 #, fuzzy msgid " Provide eternal holiday list with Bahá'i calendar holidays" msgstr " Pokaż wiecznÄ… listÄ™ dni wolnych bez typowych dni wolnych" #: src/help.c:942 #, fuzzy msgid " Provide eternal holiday list with Bahá'i calendar months" msgstr " Pokaż wiecznÄ… listÄ™ dni wolnych bez typowych dni wolnych" #: src/help.c:954 #, fuzzy msgid " Provide eternal holiday list with Celtic calendar holidays" msgstr " Pokaż wiecznÄ… listÄ™ dni wolnych bez typowych dni wolnych" #: src/help.c:966 #, fuzzy msgid "" " Provide eternal holiday list with Chinese flexible calendar " "holidays" msgstr " Pokaż wiecznÄ… listÄ™ dni wolnych ze Å›wiÄ™tami katolickimi" #: src/help.c:978 #, fuzzy msgid "" " Provide eternal holiday list with Chinese flexible calendar months" msgstr " Pokaż wiecznÄ… listÄ™ dni wolnych ze Å›wiÄ™tami katolickimi" #: src/help.c:990 #, fuzzy msgid " Provide eternal holiday list with Chinese calendar holidays" msgstr " Pokaż wiecznÄ… listÄ™ dni wolnych ze Å›wiÄ™tami katolickimi" #: src/help.c:1002 #, fuzzy msgid " Provide eternal holiday list with Chinese calendar months" msgstr " Pokaż wiecznÄ… listÄ™ dni wolnych ze Å›wiÄ™tami katolickimi" #: src/help.c:1014 #, fuzzy msgid "" " Provide eternal holiday list with Christian Western calendar " "holidays" msgstr " Pokaż wiecznÄ… listÄ™ dni wolnych ze Å›wiÄ™tami katolickimi" #: src/help.c:1026 #, fuzzy msgid " Provide eternal holiday list with Coptic calendar months" msgstr " Pokaż wiecznÄ… listÄ™ dni wolnych bez typowych dni wolnych" #: src/help.c:1038 #, fuzzy msgid " Provide eternal holiday list with Ethiopic calendar months" msgstr " Pokaż wiecznÄ… listÄ™ dni wolnych bez typowych dni wolnych" #: src/help.c:1050 #, fuzzy msgid "" " Provide eternal holiday list with French Revolutionary calendar " "months" msgstr " Pokaż wiecznÄ… listÄ™ dni wolnych bez typowych dni wolnych" #: src/help.c:1062 #, fuzzy msgid " Provide eternal holiday list with Hebrew calendar holidays" msgstr " Pokaż wiecznÄ… listÄ™ dni wolnych bez typowych dni wolnych" #: src/help.c:1074 #, fuzzy msgid " Provide eternal holiday list with Hebrew calendar months" msgstr " Pokaż wiecznÄ… listÄ™ dni wolnych bez typowych dni wolnych" #: src/help.c:1086 #, fuzzy msgid "" " Provide eternal holiday list with Indian civil-calendar months" msgstr " Pokaż wiecznÄ… listÄ™ dni wolnych ze Å›wiÄ™tami katolickimi" #: src/help.c:1098 #, fuzzy msgid "" " Provide eternal holiday list with Islamic civil-calendar holidays" msgstr " Pokaż wiecznÄ… listÄ™ dni wolnych bez typowych dni wolnych" #: src/help.c:1110 #, fuzzy msgid "" " Provide eternal holiday list with Islamic civil-calendar months" msgstr " Pokaż wiecznÄ… listÄ™ dni wolnych bez typowych dni wolnych" #: src/help.c:1122 #, fuzzy msgid "" " Provide eternal holiday list with Japanese flexible calendar " "holidays" msgstr " Pokaż wiecznÄ… listÄ™ dni wolnych bez typowych dni wolnych" #: src/help.c:1134 #, fuzzy msgid "" " Provide eternal holiday list with Japanese flexible calendar months" msgstr " Pokaż wiecznÄ… listÄ™ dni wolnych bez typowych dni wolnych" #: src/help.c:1146 #, fuzzy msgid " Provide eternal holiday list with Japanese calendar holidays" msgstr " Pokaż wiecznÄ… listÄ™ dni wolnych bez typowych dni wolnych" #: src/help.c:1158 #, fuzzy msgid " Provide eternal holiday list with Japanese calendar months" msgstr " Pokaż wiecznÄ… listÄ™ dni wolnych bez typowych dni wolnych" #: src/help.c:1171 #, fuzzy msgid "" " Provide eternal holiday list with multicultural New Year holidays" msgstr " Pokaż wiecznÄ… listÄ™ dni wolnych bez typowych dni wolnych" #: src/help.c:1183 #, fuzzy msgid " Provide eternal holiday list with Old-Armenic calendar months" msgstr " Pokaż wiecznÄ… listÄ™ dni wolnych bez typowych dni wolnych" #: src/help.c:1195 #, fuzzy msgid " Provide eternal holiday list with Old-Egyptic calendar months" msgstr " Pokaż wiecznÄ… listÄ™ dni wolnych bez typowych dni wolnych" #: src/help.c:1207 #, fuzzy msgid "" " Provide eternal holiday list with Orthodox new-calendar holidays" msgstr " Pokaż wiecznÄ… listÄ™ dni wolnych bez typowych dni wolnych" #: src/help.c:1219 #, fuzzy msgid "" " Provide eternal holiday list with Orthodox old-calendar holidays" msgstr " Pokaż wiecznÄ… listÄ™ dni wolnych bez typowych dni wolnych" #: src/help.c:1231 #, fuzzy msgid "" " Provide eternal holiday list with Persian Jalaali-calendar holidays" msgstr " Pokaż wiecznÄ… listÄ™ dni wolnych bez typowych dni wolnych" #: src/help.c:1243 #, fuzzy msgid "" " Provide eternal holiday list with Persian Jalaali-calendar months" msgstr " Pokaż wiecznÄ… listÄ™ dni wolnych ze Å›wiÄ™tami katolickimi" #: src/help.c:1255 #, fuzzy msgid " Provide eternal holiday list with zodiacal marker data" msgstr " Pokaż wiecznÄ… listÄ™ dni wolnych bez typowych dni wolnych" #: src/help.c:1267 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:1271 #, 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:1276 #, fuzzy, c-format msgid "" " which are connected by `%s' characters. Countries/territories," msgstr " które sÄ… połączone znakami `%s'" #: src/help.c:1281 msgid " marked by # have an incomplete recording of holidays" msgstr "" #: src/help.c:1285 #, fuzzy, c-format msgid " %-*s = Holidays in %s" msgstr " %s = %s dni wolnych" #: src/help.c:1306 msgid "" " Set reference value for rise/set time respectively shadow length" msgstr "" #: src/help.c:1310 #, c-format msgid " %-3s = Angular value respectively factor in range: %+.1f...%+.1f" msgstr "" #: src/help.c:1321 #, fuzzy msgid " Set base data of Earth's atmosphere" msgstr " Ustaw poczÄ…tkowy dzieÅ„ tygodnia" #: src/help.c:1325 #, fuzzy, c-format msgid " %-3s = Air pressure and temperature separated by `%s' character" msgstr " wyrażenia rozdzielone przez znaki `%s'" #: src/help.c:1328 #, c-format msgid " Air pressure in Millibar (actual: %.3f)" msgstr "" #: src/help.c:1333 #, c-format msgid " Air temperature in degrees Celsius (actual: %+.3f)" msgstr "" #: src/help.c:1343 #, fuzzy msgid " Limit rise/set times of Sun to the day" msgstr " 1. Przedstawienie tekstu" #: src/help.c:1355 msgid " Represent astronomical times and data with utmost precision" msgstr "" #: src/help.c:1365 #, fuzzy, c-format msgid " Execute `%c%c[%s]' shell commands" msgstr " # B = Nie wykonuj komend powÅ‚oki`%c%c[ARG]'" #: src/help.c:1368 #, c-format msgid " and \"TVAR[%s|%c%s]COMMAND\" assignments" msgstr "" #: src/help.c:1380 msgid " Change base time of astronomical functions" msgstr "" #: src/help.c:1383 msgid " respectively, change cycle-starting time" msgstr "" #: src/help.c:1393 #, 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:1401 #, 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:1417 msgid " Change cycle-ending time" msgstr "" #: src/help.c:1421 #, 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:1435 msgid " Change cycle-timestep" msgstr "" #: src/help.c:1439 #, c-format msgid " %-3s = MMMM|HH%s[MM] Timestep value (actual: %02d%s%02d)" msgstr "" #: src/help.c:1452 #, fuzzy msgid " Change base year of calendar" msgstr " ZmieÅ„ format kalendarza lat" #: src/help.c:1456 #, c-format msgid " %-3s = [%s|%s]YYYY Year offset value (actual: %d)" msgstr "" #: src/help.c:1468 msgid " Set period of Gregorian Reformation" msgstr " Ustaw okres reformacji gregoriaÅ„skiej" #: src/help.c:1470 #, 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:1476 #, 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:1484 #, 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:1498 #, 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:1501 #, fuzzy, c-format msgid " Actual: (%s) `%s' (%s)" msgstr " Obecny format: (%s) `%s' (%s)" #: src/help.c:1503 msgid "self-defined" msgstr "autozdefiniowany" #: src/help.c:1508 #, fuzzy, c-format msgid " %-6s = Format is: `%s' (%s)" msgstr " %-6s = Przestaw format na: `%s' (%s)" #: src/help.c:1516 #, fuzzy, c-format msgid " %-3s = Define individual format. Respected format elements are:" msgstr " ARG = Zdefiniuj format osobisty. Odpowiednie elemety formatu:" #: src/help.c:1559 msgid " Define translatable country specific special character pairs" msgstr "" #: src/help.c:1563 #, c-format msgid " %-3s = UPPER-CASE-LETTER\"\"LOWER-CASE-LETTER... definitions" msgstr "" #: src/help.c:1568 #, c-format msgid "" " E.g. a `%s%s%s%s%s%s%s%s' %-3s causes the correct conversion of" msgstr "" #: src/help.c:1573 msgid "" " the preceding special characters in an individual date format," msgstr "" #: src/help.c:1577 msgid "" " which has a STYLE format instruction component, and that, how" msgstr "" #: src/help.c:1581 #, fuzzy msgid " they are used by the character set used in Germany" msgstr " które sÄ… połączone znakami `%s'" #: src/help.c:1590 #, c-format msgid "+++ FIXED DATES +++" msgstr "+++ USTALONE DATY +++" #: src/help.c:1611 #, 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:1616 #, 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:1620 src/help.c:2160 msgid " Implies period: Today" msgstr " Przyjmuje okres: Dzisiaj" #: src/help.c:1624 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:1628 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:1640 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:1653 #, fuzzy, c-format msgid " %-3s = Heading/Title text used for fixed date list" msgstr " # x = PomiÅ„ tytuÅ‚ w liscie ustalonych dat" #: src/help.c:1656 #, fuzzy, c-format msgid " Actual: `%s'" msgstr " = %s Do tyÅ‚u" #: src/help.c:1669 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:1681 msgid " 1. Representation of text" msgstr " 1. Przedstawienie tekstu" #: src/help.c:1693 #, fuzzy msgid " = Set width of the biorhythm text graphics" msgstr " # x = PomiÅ„ tytuÅ‚ w liscie ustalonych dat" #: src/help.c:1697 #, fuzzy, c-format msgid " %-3s = %d...%d Length of a single axis" msgstr " N = 99 Ostatni tydzieÅ„" #: src/help.c:1710 #, fuzzy msgid " = Set height of the Moon phase text graphics" msgstr " # x = PomiÅ„ tytuÅ‚ w liscie ustalonych dat" #: src/help.c:1714 #, fuzzy, c-format msgid " %-3s = %d...%d Total number of lines" msgstr " = %s Do tyÅ‚u" #: src/help.c:1726 msgid " # a = Display origin of fixed date" msgstr " # a = WyÅ›wietl źródÅ‚o ustalonych dat" #: src/help.c:1738 msgid " # A = Display using alternative list format" msgstr "" " # A = WyÅ›wietl używajÄ…c alternatywnego formatu listy" #: src/help.c:1750 msgid " # e = Include legal days and memorial days" msgstr " # e = Dołącz Å›wiÄ™ta paÅ„stwowe i dni pamiÄ™ci" #: src/help.c:1752 msgid " # E = Include legal days only" msgstr " # E = Dołącz tylko Å›wiÄ™ta paÅ„stwowe" #: src/help.c:1762 #, fuzzy msgid " # k = Display week number" msgstr " # k = WyÅ›wietl numer ISO tygodnia" #: src/help.c:1774 msgid " # o = Omit repeating date part of fixed dates" msgstr "" " # o = PomiÅ„ powtarzajÄ…caÄ… siÄ™ część daty w ustalonych " "datach" #: src/help.c:1786 #, fuzzy msgid "" " # Q = Suppress leading blank line of fixed dates list" msgstr " # x = PomiÅ„ tytuÅ‚ w liscie ustalonych dat" #: src/help.c:1798 #, fuzzy msgid " # U = Suppress date part of fixed dates" msgstr "" " # o = PomiÅ„ powtarzajÄ…caÄ… siÄ™ część daty w ustalonych " "datach" #: src/help.c:1810 #, fuzzy msgid " # J = Suppress text part of fixed dates" msgstr "" " # o = PomiÅ„ powtarzajÄ…caÄ… siÄ™ część daty w ustalonych " "datach" #: src/help.c:1822 msgid " # x = Exclude title of fixed date list" msgstr " # x = PomiÅ„ tytuÅ‚ w liscie ustalonych dat" #: src/help.c:1834 msgid " # z = Display consecutive number of fixed date" msgstr " # z = WyÅ›wietl kolejny numer ustalonych dat" #: src/help.c:1846 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:1854 msgid " 2. Respected period" msgstr " 2. Odpowiedni okres" #: src/help.c:1866 msgid " = Manage `29-FEBRUARY' in non-leap years" msgstr "" " = UwzglÄ™dniaj `29 lutego' w latach nieprzestÄ™pnych" #: src/help.c:1874 #, fuzzy, c-format msgid " %-3s = february Respect at `28-FEBRUARY'" msgstr " ARG = february UwzglÄ™dniaj `28 lutego'" #: src/help.c:1883 #, fuzzy, c-format msgid " %-3s = march Respect at `01-MARCH'" msgstr " ARG = march UwzglÄ™dniaj `01 marca'" #: src/help.c:1896 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:1908 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:1924 msgid " # Nd = Single absolute day N" msgstr " # Nd = PojedyÅ„czy Nty dzieÅ„ roku" #: src/help.c:1926 #, c-format msgid " # %cdN = Single absolute day N" msgstr " # %cdN = PojedyÅ„czy Nty dzieÅ„ roku" #: src/help.c:1931 msgid " # NMOD = Single day N relative to today" msgstr " # NMOD = PojedyÅ„czy Nty dzieÅ„ wzglÄ™dem dzisiaj" #: src/help.c:1933 #, c-format msgid " MOD = %s Forwards" msgstr " MOD = %s Do przodu" #: src/help.c:1935 #, c-format msgid " = %s Backwards" msgstr " = %s Do tyÅ‚u" #: src/help.c:1938 msgid " # Nw = Complete week N" msgstr " # Nw = CaÅ‚kowita liczba tygodni N" #: src/help.c:1942 msgid "" " N = 0 1st week / last week of previous year" msgstr "" " N = 0 1. tydzieÅ„ / ostatni tydzieÅ„ " "poprzedniego roku" #: src/help.c:1946 msgid " N = 1...52 1st...52nd week (always)" msgstr " N = 1...52 1...52. tydzieÅ„ (zawsze)" #: src/help.c:1950 msgid " N = 53 53rd week (sometimes)" msgstr " N = 53 53. tydzieÅ„ (czasami)" #: src/help.c:1952 msgid " N = 99 Last week" msgstr " N = 99 Ostatni tydzieÅ„" #: src/help.c:1955 #, 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:1961 #, 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:1966 #, 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:1971 #, fuzzy, c-format msgid " N = 5 5th weekday %s (sometimes)" msgstr "" " N = 5 5. dzieÅ„ tygodnia `%s' (czasami)" #: src/help.c:1975 #, fuzzy, c-format msgid " N = 9 Last weekday %s" msgstr " N = 9 Ostatni dzieÅ„ tygodnia `%s'" #: src/help.c:1979 #, fuzzy, c-format msgid " # %cdN%s = Single N'th weekday %s" msgstr " # %cdN`%s' = PojedyÅ„czy Nty dzieÅ„ tygodnia `%s" #: src/help.c:1984 #, 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:1989 #, 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:1993 #, fuzzy, c-format msgid " N = 99 Last weekday %s" msgstr " N = 99 Ostatni dzieÅ„ tygodnia `%s'" #: src/help.c:1998 #, 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:2003 #, 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:2008 #, 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:2013 #, 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:2017 #, fuzzy, c-format msgid " N = 99 %s of last week" msgstr " N = 99 `%s' ostatni tydzieÅ„" #: src/help.c:2023 #, 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:2029 #, 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:2035 #, 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:2041 #, 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:2047 #, 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:2053 #, 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:2061 msgid " # t|T = List tomorrow" msgstr " # t|T = Pokaż jutro" #: src/help.c:2078 msgid " # w|W[MOD] = List complete week" msgstr " # w|W[MOD] = Pokaż caÅ‚y tydzieÅ„" #: src/help.c:2082 #, 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:2087 #, c-format msgid "" " = %s List yesterday until starting day of week" msgstr "" " = %s Pokaź od wczoraj aż do poczÄ…tku tygodnia" #: src/help.c:2107 msgid " # m|M[MOD] = List complete month" msgstr " # m|M[MOD] = Pokaż caÅ‚y miesiÄ…c" #: src/help.c:2111 #, 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:2116 #, 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:2136 msgid " # y|Y[MOD] = List complete year" msgstr " # y|Y[MOD] = Pokaż caÅ‚y rok" #: src/help.c:2140 #, 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:2145 #, c-format msgid "" " = %s List yesterday until starting day of year" msgstr " = %s Pokaź od wczoraj aż do poczÄ…tku roku" #: src/help.c:2158 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:2164 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:2168 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:2172 #, 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:2183 #, fuzzy msgid " Define additional resource file line" msgstr " Użyj plików zastÄ™pczych zamiast standardowych pliku zasobów" #: src/help.c:2185 #, c-format msgid " %-3s = Any possible resource file line" msgstr "" #: src/help.c:2195 #, c-format msgid "%cDATE" msgstr "%cDATA" #: src/help.c:2197 msgid "Use given `DATE' instead of today's date" msgstr "Użyj podanej DATY zamiast dzisiejszej" #: src/help.c:2201 #, 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:2208 #, 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:2217 #, c-format msgid "%cFILE" msgstr "%cPLIK" #: src/help.c:2219 msgid "Preload options and commands from `FILE'" msgstr "ZaÅ‚aduj ustawienia i polecenia z 'PLIKu'" #: src/help.c:2223 msgid "COMMAND" msgstr "KOMENDA" #: src/help.c:2225 #, c-format msgid "%s = Month in range: %d...%d" msgstr "%s = MiesiÄ…c w zakresie: %d...%d" #: src/help.c:2230 #, 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:2235 #, 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:2241 #, 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:2247 #, c-format msgid "%s%*s = Year in range: %d...%d" msgstr "%s%*s = Lata w zakresie: %d...%d" #: src/help.c:2251 #, 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:2256 #, 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:2282 #, 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:2285 #, 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:2289 #, fuzzy, c-format msgid " %sL, %s Display software license and quit program" msgstr " WyÅ›wietl licencjÄ™ programu i zakoÅ„cz program" #: src/help.c:2293 #, fuzzy, c-format msgid " %sV, %s Display version information and quit program" msgstr " WyÅ›wietl numer wersji i zakoÅ„cz program" #: src/help.c:2301 #, fuzzy, c-format msgid " %sp, %s Direct output through external `%s' pager" msgstr " PrzeÅ›lij wynik poprzez zewnetrzny pager `%s'" #: src/help.c:2308 src/help.c:2313 #, fuzzy, c-format msgid " %sp, %s Direct output through simple internal pager" msgstr " PrzeÅ›lij wynik poprzez prosty pager wewnÄ™trzny" #: src/help.c:2338 msgid "This software doesn't claim completeness, correctness or usability." msgstr "Te oprogramowanie niekoniecznie jest kompletne, poprawne lub użyteczne" #: src/help.c:2342 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:2346 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:2350 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:2352 msgid "agreement, which binds you LEGALLY !!" msgstr "porozumienie, które wiąże ciebie PRAWNIE !!" #: src/help.c:2357 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:2361 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:2365 #, 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:2367 msgid "any later version." msgstr "dowolna późniejsza wersja" #: src/help.c:2372 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:2374 msgid "along with this program; if not, write to the:" msgstr "razem z programem; jeÅ›li jej nie masz napisz do: " #: src/help.c:2423 #, 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:2451 #, fuzzy, c-format msgid "Use `%s %s|[%s?]" msgstr "Użyj `%s %s' albo " #: src/help.c:2460 #, fuzzy msgid "for more information." msgstr "`%s %s|[%s?]' dla peÅ‚niejszej informacji." #: src/help.c:2564 src/tcal.c:197 src/txt2gcal.c:136 src/gcal2txt.c:136 #, fuzzy, c-format msgid "Email bug reports to <%s>" msgstr "PrzeÅ›lij informacje o błędach do esken@uni-muenster.de" #: src/help.c:2566 #, c-format msgid "GNU gcal home page: <%s>" msgstr "" #: src/help.c:2568 #, c-format msgid "General help using GNU software: <%s>" msgstr "" #: src/help.c:2594 src/tcal.c:219 src/txt2gcal.c:158 src/gcal2txt.c:158 #, 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:2598 src/tcal.c:222 src/txt2gcal.c:161 src/gcal2txt.c:161 #, 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:2600 src/tcal.c:224 src/txt2gcal.c:163 src/gcal2txt.c:163 #, c-format msgid "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." msgstr "UÅ»YTECZNOÅšCI DO OKREÅšLONEGO CELU." #: src/help.c:2616 #, fuzzy, c-format msgid "%s: The Gregorian calendar program (GNU cal) %s" msgstr ":%*s Kalendarz GNU (" #: src/help.c:2624 #, c-format msgid "Usage: %s [[OPTION...] [%cDATE] [%cFILE...]] [COMMAND]" msgstr "Użycie: %s [[OPCJA...] [%cDATA] [%cPLIK...]] [POLECENIE]" #: src/help.c:2627 #, c-format msgid "Usage: %s [[OPTION...] [%cFILE...]] [COMMAND]" msgstr "Usage: %s [[OPCJA...] [%cPLIK...]] [POLECENIE]" #: src/help.c:2703 src/help.c:2849 msgid " 4.0 or 4.02" msgstr " 4.0 lub 4.02" #: src/help.c:2711 src/help.c:2857 msgid " later than 5.0" msgstr " późniejsza niż 5.0" #: src/help.c:2722 src/help.c:2864 msgid "++ 3.0 or later" msgstr "++ 3.0 lub nowsza" #: src/help.c:2749 src/help.c:2970 msgid "5.1 or earlier" msgstr "5.1 lub wczeÅ›niejsza" #: src/help.c:2752 src/help.c:2973 src/help.c:3128 src/help.c:3198 msgid "unknown compiler" msgstr "nieznany kompilator" #: src/help.c:2787 src/help.c:2876 src/help.c:3010 src/help.c:3032 #: src/help.c:3101 src/help.c:3138 src/help.c:3156 src/help.c:3213 #: src/help.c:3428 msgid " on " msgstr " na" #: src/help.c:2826 msgid "(bad version)" msgstr "(zÅ‚a wersja)" #: src/help.c:2873 msgid "unknown compiler (SDK?)" msgstr "nieznany kompilator (SDK?)" #: src/help.c:2941 msgid " later than 4.5" msgstr " późniejsza niż 4.5" #: src/help.c:2951 msgid "++ 1.0 or later" msgstr "++ 1.0 lub nowsza" #: src/help.c:2959 msgid " 1.0 or 1.5?" msgstr " 1.0 lub 1.5?" #: src/help.c:3074 msgid "unknown " msgstr "nieznany " #: src/help.c:3086 #, c-format msgid "version %d.%d" msgstr "wersja %d.%d" #: src/help.c:3089 src/help.c:3122 src/help.c:3248 #, c-format msgid "version %d" msgstr "wersja %d" #: src/help.c:3091 #, c-format msgid "unknown version" msgstr "nieznana wersja" #: src/help.c:3205 #, c-format msgid " (%.4s for Alpha)" msgstr " (%.4s dla Alphy)" #: src/help.c:3208 #, c-format msgid " (%.4s for VAX)" msgstr " (%.4s dla VAX)" #: src/help.c:3359 msgid " (NetBSD before 0.9)" msgstr " (NetBSD przed 0.9)" #: src/help.c:3359 msgid " (NetBSD 1.2 or later)" msgstr " (NetBSD 1.2 lub nowsze)" #: src/help.c:3366 msgid " (FreeBSD 2.0 or later)" msgstr " (FreeBSD 2.0 lub nowsze)" #: src/help.c:3369 msgid " (BSD/386 1.1 or later)" msgstr " (BSD/386 1.1 lub nowsze)" #: src/print.c:544 src/print.c:978 src/print.c:1033 msgid "CW" msgstr "CW" #: src/print.c:565 msgid "Week" msgstr "TydzieÅ„" #: src/rc-insert.c:1706 src/rc-insert.c:2824 msgid "pm" msgstr "przed poÅ‚udniem" #: src/rc-insert.c:1715 src/rc-insert.c:2833 msgid "am" msgstr "po poÅ‚udniu" #: src/rc-insert.c:2018 src/rc-insert.c:2028 msgid "d'\"" msgstr "" #: src/rc-insert.c:2038 msgid "h'\"" msgstr "" #: src/rc-insert.c:3728 src/rc-utils.c:2585 #, 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:3750 src/rc-utils.c:2609 #, 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:513 msgid "Emo" msgstr "" #: src/rc-use.c:518 msgid "Int" msgstr "" #: src/rc-use.c:523 msgid "Phy" msgstr "" #: src/rc-use.c:1086 src/rc-use.c:1177 msgid "`Eternal holiday list'" msgstr "Wieczna lista dni wolnych" #: src/rc-use.c:1877 src/rc-use.c:1926 src/rc-use.c:2015 src/rc-use.c:2107 msgid "`Internal'" msgstr "`WewnÄ™trzny'" #: src/rc-use.c:2339 #, c-format msgid " ; Week %s" msgstr " ; TydzieÅ„ %s" #: src/rc-use.c:2348 #, fuzzy, c-format msgid "Week %s" msgstr " ; TydzieÅ„ %s" #: src/rc-utils.c:397 src/rc-utils.c:414 #, 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:3269 #, 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:3272 src/rc-utils.c:3686 #, c-format msgid "Line %ld: %s" msgstr "Linia %ld: %s" #: src/rc-utils.c:3633 src/utils.c:274 #, fuzzy, c-format msgid "%s: abort, " msgstr "" "\n" "%s: przerwij, " #: src/rc-utils.c:3641 #, 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:3643 #, c-format msgid "illegal definition of variable `%c'" msgstr "" #: src/rc-utils.c:3650 #, 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:3652 #, c-format msgid "illegal operation on variable `%c'" msgstr "" #: src/rc-utils.c:3658 #, fuzzy, c-format msgid "variable `%c' undefined in file `%s'" msgstr "Zmienna daty `%c' niezdefiniowana w pliku `%s'." #: src/rc-utils.c:3662 #, 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:3683 #, c-format msgid "Invalid argument in command line given -- %s" msgstr "" #: src/rc-utils.c:3695 #, fuzzy, c-format msgid "Argument `%s' of command line ignored." msgstr "Argument `%s' lini poleceÅ„ zignorowany" #: src/rc-utils.c:3698 #, c-format msgid "Line %ld ignored: %s" msgstr "Linia %ld zignorowana: %s" #: src/tty.c:424 #, fuzzy, c-format msgid "%s: for more, <%s> to quit..." msgstr " aby kontynuować , <%s> by zakoÅ„czyć..." #: src/tty.c:1019 #, fuzzy, c-format msgid "environment variable `%s' not found" msgstr "" "\n" "Brak zmiennej Å›rodowiskowej `%s'" #: src/tty.c:1026 #, fuzzy, c-format msgid "environment variable `%s' not set" msgstr "" "\n" "Zmienna Å›rodowiskowa `%s' nie ustawiona" #: src/tty.c:1066 #, fuzzy msgid "`termcap' file not found" msgstr "" "\n" "nie znaleziono pliku `termcap'" #: src/tty.c:1071 #, fuzzy, c-format msgid "unknown terminal type defined in `%s'" msgstr "" "\n" "Zdefiniowano nieznany typ terminala w `%s'" #: src/tty.c:1080 #, c-format msgid "" "\n" "%s: warning, %s.\n" "\n" msgstr "" #: src/utils.c:280 #, 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:284 src/tcal.c:324 src/txt2gcal.c:263 src/gcal2txt.c:263 #, 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:289 #, 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:294 #, 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:299 #, 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:303 #, 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:308 #, 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:312 #, c-format msgid "file `%s' not found" msgstr "nie odnaleziono pliku `%s'" #: src/utils.c:316 #, 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:322 #, 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:327 #, 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:332 #, fuzzy, c-format msgid "sending eMail to <%s> failed" msgstr "próba wysÅ‚ania listu do `%s' nie powiodÅ‚a siÄ™" #: src/utils.c:334 src/utils.c:352 #, c-format msgid "" "\n" "`%s' line %ld: " msgstr "" "\n" "`%s' linia %ld: " #: src/utils.c:341 #, fuzzy, c-format msgid "`%s' line %ld: (`%s') `%s%d' failed" msgstr "`%s' linia %ld: (`%s') `%s%d' bez powodzenia" #: src/utils.c:350 #, c-format msgid "read error in file `%s'" msgstr "błąd czytania z pliku `%s'" #: src/utils.c:358 #, 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:364 src/tcal.c:330 src/txt2gcal.c:269 src/gcal2txt.c:269 #, 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:369 #, c-format msgid "(`%s') date format `%s' is invalid" msgstr "(`%s') błędny format daty `%s'" #: src/utils.c:375 #, c-format msgid "%s in search pattern `%s'" msgstr "%s w szukanym wzorcu `%s'" #: src/utils.c:378 #, c-format msgid "invalid search pattern `%s' specified" msgstr "podany błędny wzorzec `%s' przy przeszukiwaniu" #: src/utils.c:383 src/tcal.c:338 src/txt2gcal.c:274 src/gcal2txt.c:274 #, c-format msgid "`%s' line %ld: (`%s') unmanaged error (%d)" msgstr "`%s' linia %ld: (`%s') nieoczekiwany błąd (%d)" #: src/utils.c:403 src/tcal.c:358 src/txt2gcal.c:294 src/gcal2txt.c:294 #, c-format msgid "" "\n" "%s: program aborted by signal %d\n" msgstr "" #: src/utils.c:1080 msgid "th" msgstr ". " #: src/utils.c:1084 msgid "st" msgstr ". " #: src/utils.c:1088 msgid "nd" msgstr ". " #: src/utils.c:1092 msgid "rd" msgstr ". " #: src/utils.c:1123 src/utils.c:1174 src/utils.c:1225 msgid "invalid day" msgstr "błędny dzieÅ„" #: src/utils.c:1128 msgid "Mon" msgstr "Pon" #: src/utils.c:1133 msgid "Tue" msgstr "Wto" #: src/utils.c:1138 msgid "Wed" msgstr "Åšro" #: src/utils.c:1143 msgid "Thu" msgstr "Czw" #: src/utils.c:1148 msgid "Fri" msgstr "PiÄ…" #: src/utils.c:1153 msgid "Sat" msgstr "Sob" #: src/utils.c:1158 msgid "Sun" msgstr "Nie" #: src/utils.c:1179 msgid "Mo" msgstr "Pn" #: src/utils.c:1184 msgid "Tu" msgstr "Wt" #: src/utils.c:1189 msgid "We" msgstr "Åšr" #: src/utils.c:1194 msgid "Th" msgstr "Cz" #: src/utils.c:1199 msgid "Fr" msgstr "Pt" #: src/utils.c:1204 msgid "Sa" msgstr "So" #: src/utils.c:1209 msgid "Su" msgstr "Nd" #: src/utils.c:1226 msgid "Monday" msgstr "PoniedziaÅ‚ek" #: src/utils.c:1226 msgid "Tuesday" msgstr "Wtorek" #: src/utils.c:1226 msgid "Wednesday" msgstr "Åšroda" #: src/utils.c:1226 msgid "Thursday" msgstr "Czwartek" #: src/utils.c:1227 msgid "Friday" msgstr "PiÄ…tek" #: src/utils.c:1227 msgid "Saturday" msgstr "Sobota" #: src/utils.c:1227 msgid "Sunday" msgstr "Niedziela" #: src/utils.c:1243 src/utils.c:1320 msgid "invalid month" msgstr "błędny miesiÄ…c" #: src/utils.c:1248 msgid "Jan" msgstr "Sty" #: src/utils.c:1253 msgid "Feb" msgstr "Lut" #: src/utils.c:1258 msgid "Mar" msgstr "Mar" #: src/utils.c:1263 msgid "Apr" msgstr "Kwi" #: src/utils.c:1268 msgid "May" msgstr "Maj" #: src/utils.c:1273 msgid "Jun" msgstr "Cze" #: src/utils.c:1278 msgid "Jul" msgstr "Lip" #: src/utils.c:1283 msgid "Aug" msgstr "Sie" #: src/utils.c:1288 msgid "Sep" msgstr "Wrz" #: src/utils.c:1293 msgid "Oct" msgstr "Paź" #: src/utils.c:1298 msgid "Nov" msgstr "Lis" #: src/utils.c:1303 msgid "Dec" msgstr "Gru" #: src/utils.c:1321 msgid "January" msgstr "StyczeÅ„" #: src/utils.c:1321 msgid "February" msgstr "Luty" #: src/utils.c:1322 msgid "March" msgstr "Marzec" #: src/utils.c:1322 msgid "April" msgstr "KwiecieÅ„" #: src/utils.c:1332 #, fuzzy msgid "May " msgstr "1 Maja" #: src/utils.c:1333 msgid "June" msgstr "Czerwiec" #: src/utils.c:1333 msgid "July" msgstr "Lipiec" #: src/utils.c:1334 msgid "August" msgstr "SierpieÅ„" #: src/utils.c:1334 msgid "September" msgstr "WrzesieÅ„" #: src/utils.c:1335 msgid "October" msgstr "Październik" #: src/utils.c:1335 msgid "November" msgstr "Listopad" #: src/utils.c:1335 msgid "December" msgstr "GrudzieÅ„" #: src/tcal.c:191 #, 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:320 src/txt2gcal.c:259 src/gcal2txt.c:259 #, c-format msgid "" "\n" "%s: abort, " msgstr "" "\n" "%s: przerwij, " #: src/tcal.c:335 #, c-format msgid "shift value `%s' is invalid" msgstr "argument przesuniÄ™cia `%s' jest niepoprawny" #: src/tcal.c:907 #, fuzzy, c-format msgid "%s: option `--%s' requires an argument" msgstr "%s: opcja `%s' wymaga podania argumentu" #: src/tcal.c:1071 #, c-format msgid "%s: error during program execution of `%s'\n" msgstr "%s: błąd podczas dziaÅ‚ania programu `%s'\n" #: src/txt2gcal.c:131 #, 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:755 src/gcal2txt.c:754 #, c-format msgid "%s: no regular file\n" msgstr "%s: brak zwykÅ‚ego pliku\n" #: src/txt2gcal.c:760 src/gcal2txt.c:759 #, c-format msgid "%s: file not found\n" msgstr "%s: nie odnaleziono pliku\n" #: src/gcal2txt.c:131 #, 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 "regexp too big" #~ msgstr "regexp za duży" #~ msgid "out of space" #~ msgstr "brak miejsca na dysku" #~ msgid "too many ()" #~ msgstr "za dużo ()" #~ msgid "unmatched ()" #~ msgstr "brak nawiasu ()" #~ 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 "invalid [] range" #~ msgstr "błędny zakres []" #~ 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-3.6.3/po/da.gmo0000644000175000017500000017260012125376135011073 00000000000000Þ•¢,á<:ÀM ÁM"ÎMñMNCNAZNEœNBâN+%OLQOKžOKêOM6P@„P=ÅP1QA5QCwQA»QIýQHGRHR?ÙR*S$DS?iS4©SEÞSD$TDiT1®T@àT2!U9TU0ŽU*¿U<êUM'V7uVN­V?üVB]/r]7¢]7Ú]E^:X^ “^(´^EÝ^.#_JR_=_-Û_6 `C@`7„`=¼`8ú`/3a?ca@£a&äaH b.Tb@ƒb*ÄbEïbE5cC{c7¿cI÷cAd;]d6™d;Ðd ee.eFe^eue Še —e ¤e ¯e »eÈeBÑefBf\flf(|f¥f ªf·fÆfÍf$Ôfùf#g'7g&_g/†g+¶g âg;îg+*hVh%jh#h´hÍh)âh i$)i+Ni&zi%¡i(Çi&ðij=4j"rj#•j ¹j!Új"üj k-k=kMk aklk kŠk k¨k »kÆkÙkèk÷kùkýk ll,l4l|L|"a|„|£| À|Í|Ü|ò| }}&} ,} 6}B}[} m}{}›}º}Ñ} Ø}â} ê} õ}~ ~%~ *~4~;~K~b~r~{~ƒ~ ‰~“~¯~Æ~1â~ '/ 7BIZt| ’ž¢,«ØÝåü€€"€*€.€6€<€T€l€s€w€|€€€…€ •€ € ¨€³€ÀÊ€ Ò€ Ý€ è€ó€#*@'GowŽ– µÃ Ø åï ø ‚‚4‚H‚ N‚.[‚Š‚ ‘‚œ‚¥‚ª‚ °‚»‚¿‚łւ ë‚ ö‚ ƒƒ&ƒ;ƒ Kƒ Vƒ`ƒdƒiƒqƒyƒ€ƒ”ƒ¨ƒºƒ½ƒÁƒȃσ׃éƒ ýƒ1„ :„E„M„ a„ n„y„‹„“„«„¼„Ò„Ø„ à„ì„ …$'…L… l…z…ƒ… ’… ž…¨…®…¶…Ê… Ï…Ù… é… †'†.†2†-;†i†y†€†„†Œ†¡†¶†»†Ó†܆ â†î†õ†‡‡‡&‡ 5‡?‡X‡ ]‡i‡m‡v‡}‡ †‡(‘‡º‡ ʇ ؇ä‡ê‡ó‡ˆˆ ˆ-ˆAˆSˆgˆ€ˆˆªˆ²ˆΈáˆèˆñˆ‰!‰$‰>‰\‰ b‰m‰ƒ‰š‰°‰´‰ ½‰ ljÔ‰ ð‰þ‰Š ŠŠ *Š 5Š AŠ OŠ ]ŠiŠ ƒŠ‘Š šŠ §ŠµŠÉŠ ÞŠêŠÿŠ‹ ‹‹/‹7‹ I‹(V‹‹œ‹¢‹ ²‹ ¾‹È‹Û‹ä‹þ‹ ŒŒ0+Œ\ŒpŒsŒyŒ‘Œ•ŒœŒ ¤Œ¯ŒÎŒ ÞŒèŒ ïŒûŒ"!1Sj‚“¨¼Ïçø Ž"Ž8ŽMŽfŽyŽŽ¥Ž¹ŽÌŽÜŽïŽ$A HS \j mx—¶ÊÞó:=CDÆÊ ÓÝäìòø5‘)D‘n‘‘‘®‘²‘º‘ÑË‘ Ò‘ß‘ø‘ÿ‘’)’0’7’?’[’w’Œ’ Ÿ’­’Ã’Ø’î’““5“O“"f“‰“Ÿ“µ“ʓޓõ“ ””3”J”b”v””©”À”Ø”ò” ••6•K•g•€•™•°•Í•è•û•–'–B–]–z–•–­–Á–Ô–ê–——6—N—d—=l—0ª—8Û—K˜7`˜.˜˜ǘ(ؘ ™ ™ ™ ™ ,™ 9™E™N™P™i™ƒ™”™£™´™·™ »™ Å™ЙÕ™ Ý™ç™ ö™ šš#š,š3š5š ;šEšdš ƒšš¦š­š´š7½š#õšA›*[›/†›¶› ͛؛ñ›ô› œ5œJœRœ#gœ!‹œ­œ.´œãœ÷œ 4#K"o(’'»8ã+ž Hž1Tž †ž3”ž5Èž%þž4$ŸNYŸF¨ŸïŸ&þŸH% n q t w     ª  Ç Ô ð ó û Eþ D¡M¡^¡%v¡œ¡$¬¡ Ñ¡ Ü¡dê¡ O£']£…£š£@¬£Aí£C/¤>s¤(²¤NÛ¤L*¥Kw¥QÃ¥B¦<X¦4•¦AʦB §HO§K˜§Iä§H.¨Jw¨)¨"ì¨A©,Q©@~©A¿©Aª)CªKmª<¹ª6öª(-«&V«<}«<º«8÷«F0¬Ew¬K½¬M ­.W­>†­(Å­,î­:®+V®7‚®#º®Þ®Kþ®@J¯@‹¯E̯0°-C°Kq°6½°7ô°F,±Ks±-¿±$í±:²CM²&‘²4¸²8í²8&³<_³Mœ³%ê³(´J9´:„´J¿´M µ;Xµ7”µH̵@¶AV¶G˜¶3à¶F·G[·+£·BÏ·8¸=K¸$‰¸=®¸Mì¸<:¹9w¹8±¹'ê¹Oº7bºOšºêºüº »(»D»_»r»‚» ’» œ» ¨»µ»1½»ï»1ô»&¼6¼.F¼u¼ {¼‰¼™¼ ¼*¦¼Ѽ&ê¼"½-4½2b½)•½ ¿½6̽$¾(¾'?¾%g¾¾¥¾"»¾Þ¾"ø¾)¿&E¿#l¿%¿$¶¿Û¿<ð¿-À!JÀlÀ‡À$§ÀÌÀÝÀñÀÁÁ-ÁBÁVÁiÁ}Á‘Á¥Á¹ÁÌÁÝÁßÁãÁ óÁÿÁ 'Â5ÂDÂ9U Â®¶¿ÂÈÂÚÂôÂÃ%Ã:ÃOÃ_ÃnÃÓçà ¹ÃÄà ×ÃâÃæÃ ìà úÃ-Ä2ÄBÄKÄaÄ gÄrÄzÄ~Ä‚Ä ‰Ä”ĨÄÃÄáÄ÷ÄÅ*Å>Å[Å cÅpŊŎŖŞŠ±Å ¾ÅÉÅÒÅëÅüÅÆ!Æ9Æ LÆYÆ aÆnÆuÆ}ƅƘƠƩƾÆׯ߯ óÆÿÆ Ç ÇÇ4Ç;Ç OÇ YÇfÇ }Ç ‡Ç‘ÇšÇ Ç¨Ç ±Ç¼ÇÃÇÒÇêÇúÇÈ/ÈKÈ^ÈmÈ‰È˜È ¬È4¹È îÈøÈÉ É É $ÉEÉKÉ \ÉgÉ kÉyÉÉ„É˜É ®É¸É»ÉÒÉ ÚÉ äÉïÉÊÊ&Ê /Ê;<ÊxÊ €Ê¡Ê ¸ÊÃÊÖÊ åÊ òÊýÊËË Ë Ë'Ë>ËNËGPË˜Ë¨Ë ¸ËÆËÜËñËÌÌ3ÌKÌcÌủÌÌ$–Ì!»ÌÝÌåÌîÌ÷Ì Í "Í/Í ?ÍIÍQÍ ZÍ fÍrÍ†Í ›Í §Í±ÍÊÍÎÍ,äÍÎ(Î:ÎBÎJÎjÎs·Π¢Î­Î¶ÎÈÎÌÎ"ÔÎ÷Î9Ï'AÏ(iÏ:’Ï9ÍÏ1Ð9ÐVÐ]ÐeÐ uÐÐ*“Ð ¾ÐßÐâÐëÐ ýÐ ÑÑ!Ñ(Ñ 0Ñ:ÑBÑIÑRÑoÑxєѤѴÑÉÑÙÑêÑúÑÒ1ÒNÒgÒyÒŠÒ¢Ò¾ÒÒÒÙÒ ßÒ éÒ ôÒÓÓ$ÓDÓ^Ó vÓ ‚ÓŒÓ ”Ó Ó¯Ó ÅÓÐÓ ÕÓßÓæÓöÓ ÔÔ!Ô*Ô0ÔCÔ\ÔtÔ8ÔÆÔ ÏÔÙÔàÔ çÔôÔûÔÕ*Õ3Õ EÕRÕVÕ-]Õ‹ÕÕ—Õ«ÕÇÕÎÕÖÕÞÕâÕéÕïÕÖÖÖ"Ö'Ö+Ö0Ö @ÖKÖ SÖ^ÖnÖuÖ }Ö ‰Ö •Ö Ö%µÖÛÖðÖ+øÖ$×,×4×C×AK× ×›× ³×Á×É×Ò× ä×ï×=ñ×/Ø 5Ø/BØrØ yØ „ØØ”Ø šØ¤Ø¨Ø®Ø½Ø ÑØ ÜØçØ÷Ø Ù!Ù 0Ù <ÙFÙJÙNÙWÙ_ÙfÙ}ْ٤٧٫ٲٹÙÁÙÓÙ æÙ2òÙ %Ú0Ú 8ÚEÚ NÚYÚkÚ sÚ”Ú§ÚºÚÀÚÈÚÐÚîÚ$ Û 2Û SÛaÛ iÛ sÛ Û‰ÛÛ—ÛªÛ ¯Û ºÛ!ÈÛêÛÜ Ü Ü1ÜHÜXÜ]ÜaÜiÜ{ÜÜ”Ü¨Ü±Ü ·ÜÄÜËÜÛÜäÜ ëÜùÜ ÝÝ'Ý ,Ý9Ý=ÝFÝLÝUÝ ]Ý ~ÝŒÝ œÝ¨Ý®Ý·Ý ÍÝ×ÝéÝùÝ ÞÞ3ÞOÞ`Þ xÞ‚ÞšÞ³ÞºÞÃÞÜÞõÞùÞß-ß 3ß>ßQßgß|ßß‰ß ’ß ß ÀßÎßÖß Úßäß úß à à !à/à 8à Eà Sà ]à jàxà‹à  à¬à Äà ÎàØà èàöàþà á á;áQáYá iá uáá‘ášá¸áÁáÑá-íáâ0â4â:âUâZâbâ kâuâ’â ¢â¬â´â¼âËâêâãã /ã<ãMã]ãlã €ããœã¯ãÁãÒãçãöãää*ä 9äEä Tä aämä&}ä¤ä «ä¶ä ¿äÍä ÐäÛä÷äå$å7åOåCeå=©åEçå-æ1æ9æBæIæQæWæ]æ>ræ-±æ#ßæçç#ç'ç/ç8çAç IçVçmçtç‡ç¡ç¥ç¬ç´çÊçéçèè è è +è 7èDè Tèaè qè~è —è £è ¯è ºè Äè ÑèÝè æè ñè þè é é#é 5é BéPé `é mé yé †é‘é£é²é ÁéÎéáéòé ûé êê$ê5êHê Yê gêqê zê †ê“ê¢ê ´ê ÂêÎê9Öê-ë5>ëKtë5Àë+öë"ì.4ì cìnì vì€ì ‘ì Ÿì«ì³ìµìÎìæìúì íí!í%í,í4í:íAí JíUí díoíxí€íˆí‹í ‘í!›í½íÛíäíùíî î:î)MîIwî/Áî/ñî!!ïCïLïkïnï …ï;“ïÏïØï%çï ð .ð1:ðlðð žð/©ðÙð#ùð'ñ&Eñ6lñ.£ñ Òñ2Þñò5 ò6Vò(ò1¶ò\èò>Eó„ó%šó<Àóýóÿóôô ô&ô*+ô Vôbô‚ô„ôôHôØôàôóô$ õ2õ%Aõ gõ rõ%ŸOõi MS(ö'רÉ:å6±aíˆÆRÕèôcR™ B¼hZŘV5,«¸³Ô’jG,XL†–cùs¨$IOÜ;Ø~> ¢Œà¯¦Ç'.ŒeÁÔÌ£~Õy 'sጩÖ¥S#g¢ÏÎÈ ™Eú™’ÙÖë z§GŸÀ¸M ¡ã»û2TlÄ"Qîå&¹"qZ“- ¶³ègæDLõw8 ò‰yÚ ª‡°çœ\)_Ód÷s5JÍOHžîDE%=‡^}4ždMá®°3SjŒ]‰_ƒqƒLvçö €TÞüá{QKÑ{¥p!¯jé0‹Ç@³Ud.mз½‰â¢)m+â¼8ƒ~Ø|f£¶3bO9«%Fÿ¹&r¡¼fNëHñ‡UÎÊR›¶PÜ©*;9•ø!•Sî þPÛy}”¤•iŠ¡àþ?=t‰‚>ºl_ÂV„ï+§IxGΞÒ%9:šÓïêÆ‚e@r‹pˆb€¬þC )—&÷ïÃÜW÷ K1/ßì¬\E¤”kmY›ñì†   a€ó]·Àr=7ª<¤^žd«±e­"àÁ¹Žé—´à Ý8Žaa©ÞlÉHìD6H[­{µ”œ`^ÝV‚2 AW9醈CNÛ˜Yw“´1CMn?.íŽZ¦iŠcô¯,† ¨Y¾º:ß0Ä]ÌF(o½ðb–²o»ŸÿXÿ½`„æßäóó^ÚV!#ÇûÈx»ã’5ÛôúQj*Å¿œ±Ì\N|[ç BÏuÒè”úœmäXnëon[UãÐÂ-ÉP1‚It¥6‡¿ýêÞxvyË@g˜?ÓÁK×6ÄÙ×/®‘™ŠhÔx7ðN‘Ò;qæ—¿i\Ï<´—fLº²–rk]>âän‘Ý“A} _Ž‘I òzue/1ˆ ª4hb(C‹5ù&PAJƒ¨¢7ÐDJc@È" z4KE8¬ýüívÀ#`Tš<Ÿ2ý£3w!…Q$µ[fÊ0¡A¾ð„·~+°ÂF$W qÑ…€(üš zkG`Rk®2ÕBê­t?ù)•>Ö„-¦˜…ÊÍø*|{ÙWÑ–X²¸o<u +›'õ.3J-‹ZÍTòp§tåFËl;0Òu“µ|Å˾Y}7$wöhšvûs,ø:BÆ/U…ñŠ*›4#g=pÚ %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/Nordwest TerritoriesCanada/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/SaarGermany/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' DayGuy Fawke's 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 DayNorfolk IslandsNorthern 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-LandSwitzerland/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: 2013-03-29 21:40+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 %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 BakÃ¥t = %s Lista fra igÃ¥r til begyndelsen pÃ¥ mÃ¥neden = %s Lista fra igÃ¥r til begyndelsen pÃ¥ veckan = %s Lista fra igÃ¥r til begyndelsen pÃ¥ Ã¥ret N = 0 1:a veckan / sista veckan foregÃ¥ende Ã¥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 skudÃ¥r = Sætt bredden pÃ¥ biorytmens textgrafik eller: navn pÃ¥ mÃ¥ned | %s | %s%s | %s%s | %s%s [MOD] = %s Lista fra imorgon til slutet pÃ¥ mÃ¥neden [MOD] = %s Lista fra imorgon til slutet pÃ¥ veckan [MOD] = %s Lista fra imorgon til slutet pÃ¥ Ã¥ret %s%cwN[%s], navn pÃ¥ mÃ¥ned[%s], navn pÃ¥ ugedag[N] eller %s MOD = %s FramÃ¥t %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 pÃ¥skdagen # %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 mÃ¥neden # 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 TillhandahÃ¥ll 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 bÃ¥da datobeteckningarna (dag i mÃ¥neden+dag pÃ¥ Ã¥ret) [MOD] = - Anvænd standardformat for kalenderblad [MOD] = b Anvænd bÃ¥da datobeteckningarna (dag i mÃ¥neden+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Ã¥ # MÃ¥nedsnavn# MÃ¥nedsnummer%cDATO%cFIL%s = MÃ¥ned 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 skudÃ¥r%s:%*sÃ…r %0*d ER IKKE et skudÃ¥r%s:%*sÃ…r %d ER et skudÃ¥r%s:%*sÃ…r %d ER IKKE et skudÃ¥r("%s") datoformatet "%s" er ugyldigt(dÃ¥lig 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 dagArmenienVÃ¥benstilstandsdagenArubaAskeonsdagAshura'AstaugaugustAustralienAustralien/CanberraAustralien/New South WalesAustralien/Northern TerritoryAustralien/QueenslandAustralien/Southern AustraliaAustralien/TasmanienAustralien/VictoriaAustralien/Western AustraliaØstrigAserbajdsjanOmvendt skrÃ¥streg ("%c")BahBahamasBahrainBahá'i nytÃ¥rsdagBangladesh #BankfridagBarbadosDen baskiske nationaldagSlaget ved BoyneSlaget ved NäfelsSlaget ved PueblaFinansÃ¥rets 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/Nordwest TerritoriesCanada/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 nytÃ¥rsdagKinesisk nytÃ¥rsaftenChou/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 nytÃ¥rsdagKrø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 RepublikDragebÃ¥dsfestivalenDynastidagenAnden pÃ¥skedagPÃ¥skedagEcuadorÆ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 nytÃ¥rsdagFalklandsø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 PolynesienfrefredagfredageFuldmÃ¥neGabon #GambiaGeorgienDagen for Tysklands foreningTysklandTyskland/Baden-WürttembergTyskland/BayernTyskland/BerlinTyskland/BrandenburgTyskland/BremenTyskland/HamburgTyskland/HessenTyskland/NiedersachsenTyskland/Mecklenburg-VorpommernTyskland/Nordrhein-WestfalenTyskland/Rheinland-PfalzTyskland/SaarlandTyskland/SachsenTyskland/Sachsen-AnhaltTyskland/Schleswig-HolsteinTyskland/ThüringenGhadirGhanaGibraltarLangfredagPÃ¥skeaftenBedsteforælderdagenStorbritannienStorbritannien/England og WalesStorbritannien/NordirlandStorbritannien/SkotlandGrækenlandGrønlandGrenadaGrottodagenJordsvinedagenGuadalupe Virgins dagGuadeloupeGuamGuatemalaGuineaGuinea-Bissau #Gustav AdolfsdagenGuy Fawkes dagGuyana #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 nytÃ¥rsdagIndonesien #IntInternUgyldigt argument givet i kommandolinje -- %sIrakIrlandIslamisk nytÃ¥rsdagDen Islamiske Republik IranIsraelItalienJamaicajanjanuarJapanJapansk nytÃ¥rsdagJapansk nytÃ¥rsaftenJordanjuljulijunjuniKamarampaka-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: %sLitauenLughnasaMÃ¥neformø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-efterÃ¥rsfestivalMidt-forÃ¥rsfestivalMidt-Ã¥rsfestivalmamanMonacomandagmandagemandage - fredagemandage - torsdageMongoliet #MÃ¥nedsgruppe (exakt en medlem mÃ¥ste definieras):MontserratMarokkoSvigermordagMors dagMozambiqueMyanmar (Burma) #NamibiaDen nationale grundlæggelsesdagNational helligdagNational sørgedagNauruNepal #HollandNederlandske Antiller/BonaireNederlandske Antiller/CuraçaoNederlandske Antiller/Saba og StatiaNederlandske Antiller/St MaartenNy KaledonienNymÃ¥neNyÃ¥rsdagNew ZealandNicaraguaNigerNigeriaRidvans niende dagNiueNobeldagenNorfolkøerneDe nordlige Marianerøer (Saipan)Noruz/persisk nytÃ¥rsdagNorgenovnovemberNumerisk værdi udstyres med foranstillet fortegnNuzul-al-Qur'anFLAGoktoktoberOldarmensk nytÃ¥rOldægyptisk nytÃ¥rOmanOrtodoks nytÃ¥rsdagPakistanPalauPalmesø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/nytÃ¥rsdagDen Russiske FøderationRwandaRéunionFORTEGN (kan defineres):SUFFIKS (kan defineres):løSaint-Pierre og MiquelonSamhain/keltisk nytÃ¥rsdagSamoaSan 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")SpanienForÃ¥rsfestivalSri Lanka #St HelenaSt Kitts og NevisSt LuciaSaint Vincent og GrenadinerneStandardStjernefestivalStart pÃ¥ almindelig mÃ¥nedStart pÃ¥ fremhævningssekvens/markeringstegnStart pÃ¥ skudmÃ¥nedsøSudanSultan Qaboos' fødselsdagsønsøndagsøndageSurinam #Svalbard og Jan Mayen-øerneSvetitskhovlobaSwazilandSverigeSchweizSchweiz/AargauSchweiz/Appenzell AusserrhodenSchweiz/Appenzell InnerrhodenSchweiz/Basel-LandSchweiz/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 nÃ¥gon underforstÃ¥dd 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 nytÃ¥rtirtirsdagtirsdageTunesienTyrkietTurkmenistanTurks- 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 halvmÃ¥neWaqf-al-ArafatTiltagende halvmÃ¥neononsonsdagonsdageVeckaUge %sWei/fÃ¥rVestsaharaAnden 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 mÃ¥nedugyldigt mÃ¥nedsfelt(%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 pÃ¥skedag Ã…ret skal vare i intervallet (%d - %d)det under vilkÃ¥rene 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-3.6.3/po/ca.po0000644000175000017500000042200212125376134010717 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: 2013-03-29 21:40+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" #: src/file-io.c:1561 #, c-format msgid "Try to write %s `%s'... %s%s%s" msgstr "Provant d'escriure %s `%s'... %s%s%s" #: src/file-io.c:1564 src/file-io.c:1689 src/file-io.c:1702 msgid "failed" msgstr "error" #: src/file-io.c:1564 src/file-io.c:1689 src/file-io.c:1702 msgid "success" msgstr "reeixit" #: src/file-io.c:1684 #, 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:1685 msgid " `HERE' " msgstr " `AQUÃ' " # include file #: src/file-io.c:1697 #, 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:352 src/gcal.c:523 src/gcal.c:2028 msgid "ARG" msgstr "ARG" #: src/gcal.c:1080 src/hd-data.c:69 msgid "Germany" msgstr "Alemanya" #: src/gcal.c:1081 msgid "U.S.A." msgstr "E.U.A." #: src/gcal.c:1082 src/hd-data.c:72 msgid "Great Britain" msgstr "Gran Bretanya" #: src/gcal.c:1858 msgid "default" msgstr "per defecte" #: src/gcal.c:1957 msgid ":" msgstr ":" #: src/gcal.c:1967 msgid "Y" msgstr "A" #: src/gcal.c:1972 msgid "M" msgstr "M" #: src/gcal.c:1977 msgid "W" msgstr "S" #: src/gcal.c:1982 msgid "D" msgstr "D" #: src/gcal.c:2073 #, fuzzy msgid "Fixed date list:" msgstr "Llista de dates fixes" #: src/gcal.c:2090 src/gcal.c:2105 msgid "environment variable" msgstr "variable d'entorn" #: src/gcal.c:2274 #, 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:2461 src/gcal.c:2489 src/gcal.c:6232 src/rc-use.c:1828 #: src/rc-use.c:1888 src/rc-use.c:1937 src/rc-use.c:2207 src/rc-utils.c:390 #: src/rc-utils.c:411 src/utils.c:342 src/utils.c:365 src/utils.c:384 #: src/utils.c:679 src/tcal.c:331 src/tcal.c:339 src/txt2gcal.c:270 #: src/txt2gcal.c:275 src/gcal2txt.c:270 src/gcal2txt.c:275 msgid "Internal" msgstr "Intern" #: src/gcal.c:2870 msgid "response file" msgstr "fitxer de resposta" #: src/gcal.c:2870 src/gcal.c:2878 msgid "Created" msgstr "Creat el" #: src/gcal.c:2878 msgid "shell script" msgstr "shell script" #: src/gcal.c:3089 #, 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:3141 #, 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:4951 src/gcal.c:4984 msgid "command line" msgstr "línia d'ordres" #: src/gcal.c:5901 #, c-format msgid "%s: option `%s' is ambiguous" msgstr "%s: l'opció `%s' és ambigua" #: src/gcal.c:5906 src/tcal.c:895 src/txt2gcal.c:716 src/gcal2txt.c:715 #, c-format msgid "%s: unrecognized option `%s'" msgstr "%s: opció no reconeguda `%s'" #: src/gcal.c:5909 #, c-format msgid "%s: invalid option -- %s" msgstr "%s: opció no vàlida -- %s" #: src/gcal.c:5916 #, 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' doesn't allow an argument" msgstr "%s: l'opció `%s' no permet cap argument" #: src/gcal.c:5927 #, c-format msgid "%s: option `%s' requires an argument" msgstr "%s: l'opció `%s' requereix un argument" #: src/gcal.c:5931 #, c-format msgid "%s: option requires an argument -- %s" msgstr "%s: l'opció requereix un argument -- %s" #: src/gcal.c:5936 src/tcal.c:941 #, c-format msgid "%s: option with invalid argument -- %s" msgstr "%s: opció amb argument no vàlid -- %s" #: src/gcal.c:5941 #, c-format msgid "%s: option with ambiguous argument -- %s" msgstr "%s: opció amb argument ambigu -- %s" #: src/gcal.c:6001 #, 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:63 msgid "Australia" msgstr "Austràlia" #: src/hd-data.c:64 src/hd-data.c:112 msgid "Belgium" msgstr "Bèlgica" #: src/hd-data.c:65 src/hd-data.c:121 msgid "Brazil" msgstr "Brasil" #: src/hd-data.c:66 msgid "Canada" msgstr "Canadà" #: src/hd-data.c:67 msgid "Switzerland" msgstr "Suïssa" #: src/hd-data.c:68 src/hd-data.c:174 msgid "China" msgstr "Xina" #: src/hd-data.c:70 src/hd-data.c:208 msgid "Spain" msgstr "Espanya" #: src/hd-data.c:71 src/hd-data.c:215 msgid "France" msgstr "França" #: src/hd-data.c:73 src/hd-data.c:244 msgid "Israel" msgstr "Israel" #: src/hd-data.c:74 src/hd-data.c:249 msgid "Italy" msgstr "Itàlia" #: src/hd-data.c:75 src/hd-data.c:252 msgid "Japan" msgstr "Japó" #: src/hd-data.c:76 src/hd-data.c:260 msgid "Republic of Korea" msgstr "República de Corea" #: src/hd-data.c:77 src/hd-data.c:292 msgid "Mexico" msgstr "Mèxic" #: src/hd-data.c:78 src/hd-data.c:301 msgid "Netherlands" msgstr "Països Baixos" #: src/hd-data.c:79 src/hd-data.c:307 msgid "New Zealand" msgstr "Nova Zelanda" #: src/hd-data.c:80 src/hd-data.c:319 msgid "Portugal" msgstr "Portugal" #: src/hd-data.c:81 src/hd-data.c:325 msgid "Russian Federation" msgstr "Rússia" #: src/hd-data.c:82 msgid "United States" msgstr "Estats Units (EUA)" #: src/hd-data.c:84 msgid "Andorra" msgstr "Andorra" #: src/hd-data.c:85 msgid "United Arab Emirates" msgstr "Unió dels Emirats Àrabs" #: src/hd-data.c:86 msgid "Afghanistan" msgstr "Afganistan" #: src/hd-data.c:87 msgid "Antigua and Barbuda" msgstr "Antigua i Barbuda" #: src/hd-data.c:88 msgid "Anguilla" msgstr "Anguilla" #: src/hd-data.c:89 msgid "Albania" msgstr "Albània" #: src/hd-data.c:90 msgid "Armenia" msgstr "Armènia" #: src/hd-data.c:91 msgid "Netherlands Antilles/Bonaire" msgstr "Antilles Holandeses/Bonaire" #: src/hd-data.c:92 msgid "Netherlands Antilles/Curaçao" msgstr "Antilles Holandeses/Curaçao" #: src/hd-data.c:93 msgid "Netherlands Antilles/St Maarten" msgstr "Antilles Holandeses/Saint Martin" #: src/hd-data.c:94 msgid "Netherlands Antilles/Saba and Statia" msgstr "Antilles Holandeses/Saba i Statia" #: src/hd-data.c:95 msgid "Angola #" msgstr "Angola #" #: src/hd-data.c:96 msgid "Argentina" msgstr "Argentina" #: src/hd-data.c:97 msgid "American Samoa" msgstr "Samoa Americana" #: src/hd-data.c:98 msgid "Austria" msgstr "Àustria" #: src/hd-data.c:99 msgid "Australia/Canberra" msgstr "Austràlia/Canberra" #: src/hd-data.c:100 msgid "Australia/Northern Territory" msgstr "Austràlia/Territori del Nord" #: src/hd-data.c:101 msgid "Australia/Queensland" msgstr "Austràlia/Queensland" #: src/hd-data.c:102 msgid "Australia/Southern Australia" msgstr "Austràlia/Austràlia del Sud" #: src/hd-data.c:103 msgid "Australia/New South Wales" msgstr "Austràlia/Nova Gal·les del Sud" #: src/hd-data.c:104 msgid "Australia/Tasmania" msgstr "Austràlia/Tasmània" #: src/hd-data.c:105 msgid "Australia/Victoria" msgstr "Austràlia/Victòria" #: src/hd-data.c:106 msgid "Australia/Western Australia" msgstr "Austràlia/Austràlia Occidental" #: src/hd-data.c:107 msgid "Aruba" msgstr "Aruba" #: src/hd-data.c:108 msgid "Azerbaijan" msgstr "Azerbaidjan" #: src/hd-data.c:109 msgid "Bosnia-Herzegovina" msgstr "Bòsnia i Hercegovina" #: src/hd-data.c:110 msgid "Barbados" msgstr "Barbados" #: src/hd-data.c:111 msgid "Bangladesh #" msgstr "Bangla Desh #" #: src/hd-data.c:113 msgid "Burkina Faso" msgstr "Burkina Faso" #: src/hd-data.c:114 msgid "Bulgaria" msgstr "Bulgària" #: src/hd-data.c:115 msgid "Bahrain" msgstr "Bahrain" #: src/hd-data.c:116 msgid "Burundi #" msgstr "Burundi #" #: src/hd-data.c:117 msgid "Benin #" msgstr "Benín #" #: src/hd-data.c:118 msgid "Bermuda" msgstr "Bermuda" #: src/hd-data.c:119 msgid "Brunei" msgstr "" #: src/hd-data.c:120 msgid "Bolivia" msgstr "Bolívia" #: src/hd-data.c:122 msgid "Bahamas" msgstr "Bahames" #: src/hd-data.c:123 msgid "Bhutan #" msgstr "Bhutan #" #: src/hd-data.c:124 msgid "Bouvet Island" msgstr "Illa Bouvet" #: src/hd-data.c:125 msgid "Botswana" msgstr "Botswana" #: src/hd-data.c:126 msgid "Belarus" msgstr "Bielorússia" #: src/hd-data.c:127 msgid "Belize" msgstr "Belize" #: src/hd-data.c:128 msgid "Canada/Alberta" msgstr "Canadà/Alberta" #: src/hd-data.c:129 msgid "Canada/British Columbia" msgstr "Canadà/Colúmbia Britànica" #: src/hd-data.c:130 msgid "Canada/Manitoba" msgstr "Canadà/Manitoba" #: src/hd-data.c:131 msgid "Canada/New Brunswick" msgstr "Canadà/New Brunswick" #: src/hd-data.c:132 msgid "Canada/Newfoundland and Labrador" msgstr "Canadà/Terranova i Labrador" #: src/hd-data.c:133 msgid "Canada/Nova Scotia" msgstr "Canadà/Nova Scotia" #: src/hd-data.c:134 msgid "Canada/Nordwest Territories" msgstr "Canadà/Territoris del Nord-oest" #: src/hd-data.c:135 msgid "Canada/Ontario" msgstr "Canadà/Ontario" #: src/hd-data.c:136 msgid "Canada/Prince Edward Island" msgstr "Canadà/Illa de Prince Edward" #: src/hd-data.c:137 msgid "Canada/Québec" msgstr "Canadà/Québec" #: src/hd-data.c:138 msgid "Canada/Saskatchewan" msgstr "Canadà/Saskatchewan" #: src/hd-data.c:139 msgid "Canada/Yukon" msgstr "Canadà/Yukon" #: src/hd-data.c:140 msgid "Cocos Islands (Keeling)" msgstr "Illes Cocos (Keeling)" #: src/hd-data.c:141 msgid "Democratic Republic of Congo #" msgstr "República Democràtica del Congo #" #: src/hd-data.c:142 msgid "Central African Republic #" msgstr "República Centrafricana" #: src/hd-data.c:143 msgid "Republic of Congo #" msgstr "Congo #" #: src/hd-data.c:144 msgid "Switzerland/Aargau" msgstr "Suïssa/Aargau" #: src/hd-data.c:145 msgid "Switzerland/Appenzell Innerrhoden" msgstr "Suïssa/Appenzell Innerrhoden" #: src/hd-data.c:146 msgid "Switzerland/Appenzell Ausserrhoden" msgstr "Suïssa/Appenzell Ausserrhoden" #: src/hd-data.c:147 msgid "Switzerland/Bern" msgstr "Suïssa/Berna" #: src/hd-data.c:148 msgid "Switzerland/Basel-Land" msgstr "Suïssa/Basel-Land" #: src/hd-data.c:149 msgid "Switzerland/Basel-Stadt" msgstr "Suïssa/Basel-Stadt" #: src/hd-data.c:150 msgid "Switzerland/Fribourg" msgstr "Suïssa/Friburg" #: src/hd-data.c:151 msgid "Switzerland/Genève" msgstr "Suïssa/Ginebra" #: src/hd-data.c:152 msgid "Switzerland/Glarus" msgstr "Suïssa/Glarus" #: src/hd-data.c:153 msgid "Switzerland/Graubünden" msgstr "Suïssa/Graubünden" #: src/hd-data.c:154 msgid "Switzerland/Jura" msgstr "Suïssa/Jura" #: src/hd-data.c:155 msgid "Switzerland/Luzern" msgstr "Suïssa/Lucerna" #: src/hd-data.c:156 msgid "Switzerland/Neuchâtel" msgstr "Suïssa/Neuchâtel" #: src/hd-data.c:157 msgid "Switzerland/Nidwalden" msgstr "Suïssa/Nidwalden" #: src/hd-data.c:158 msgid "Switzerland/Obwalden" msgstr "Suïssa/Obwalden" #: src/hd-data.c:159 msgid "Switzerland/St Gallen" msgstr "Suïssa/St. Gallen" #: src/hd-data.c:160 #, fuzzy msgid "Switzerland/Schaffhausen" msgstr "Suïssa/Schwyz" #: src/hd-data.c:161 msgid "Switzerland/Solothurn" msgstr "Suïssa/Solothurn" #: src/hd-data.c:162 msgid "Switzerland/Schwyz" msgstr "Suïssa/Schwyz" #: src/hd-data.c:163 msgid "Switzerland/Thurgau" msgstr "Suïssa/Thurgau" #: src/hd-data.c:164 msgid "Switzerland/Ticino" msgstr "Suïssa/Ticino" #: src/hd-data.c:165 msgid "Switzerland/Uri" msgstr "Suïssa/Uri" #: src/hd-data.c:166 msgid "Switzerland/Vaud" msgstr "Suïssa/Vaud" #: src/hd-data.c:167 msgid "Switzerland/Valais" msgstr "Suïssa/Valais" #: src/hd-data.c:168 msgid "Switzerland/Zug" msgstr "Suïssa/Zug" #: src/hd-data.c:169 msgid "Switzerland/Zürich" msgstr "Suïssa/Zuric" #: src/hd-data.c:170 msgid "Côte d'Ivoire" msgstr "Costa d'Ivori" #: src/hd-data.c:171 msgid "Cook Islands" msgstr "Illes Cook" #: src/hd-data.c:172 msgid "Chile" msgstr "Xile" #: src/hd-data.c:173 msgid "Cameroon" msgstr "Camerun" #: src/hd-data.c:175 msgid "Colombia" msgstr "Colòmbia" #: src/hd-data.c:176 msgid "Costa Rica" msgstr "Costa Rica" #: src/hd-data.c:177 msgid "Cuba" msgstr "Cuba" #: src/hd-data.c:178 msgid "Cape Verde" msgstr "Cap Verd" #: src/hd-data.c:179 msgid "Christmas Islands" msgstr "Illes Christmas" #: src/hd-data.c:180 msgid "Cyprus" msgstr "Xipre" #: src/hd-data.c:181 msgid "Czech Republic" msgstr "República Txeca" #: src/hd-data.c:182 msgid "Germany/Brandenburg" msgstr "Alemanya/Brandenburg" #: src/hd-data.c:183 msgid "Germany/Berlin" msgstr "Alemanya/Berlin" #: src/hd-data.c:184 msgid "Germany/Baden-Württemberg" msgstr "Alemanya/Baden-Württemberg" #: src/hd-data.c:185 msgid "Germany/Bavaria" msgstr "Alemanya/Baviera" #: src/hd-data.c:186 msgid "Germany/Bremen" msgstr "Alemanya/Bremen" #: src/hd-data.c:187 msgid "Germany/Hesse" msgstr "Alemanya/Hessen" #: src/hd-data.c:188 msgid "Germany/Hamburg" msgstr "Alemanya/Hamburg" #: src/hd-data.c:189 msgid "Germany/Mecklenburg-West Pomerania" msgstr "Alemanya/Mecklenburg-Pomerània Occidental" #: src/hd-data.c:190 msgid "Germany/Lower Saxony" msgstr "Alemanya/Baixa Saxònia" #: src/hd-data.c:191 msgid "Germany/North Rhine-Westphalia" msgstr "Alemanya/Rin del Nord-Westfàlia" #: src/hd-data.c:192 msgid "Germany/Rhineland Palatinate" msgstr "Alemanya/Renània Palatinat" #: src/hd-data.c:193 msgid "Germany/Schleswig-Holstein" msgstr "Alemanya/Schleswig-Holstein" #: src/hd-data.c:194 msgid "Germany/Saar" msgstr "Alemanya/Saar" #: src/hd-data.c:195 msgid "Germany/Saxony" msgstr "Alemanya/Saxònia" #: src/hd-data.c:196 msgid "Germany/Saxony-Anhalt" msgstr "Alemanya/Saxònia-Anhalt" #: src/hd-data.c:197 msgid "Germany/Thuringia" msgstr "Alemanya/Turíngia" #: src/hd-data.c:198 msgid "Djibouti" msgstr "Djibouti" #: src/hd-data.c:199 msgid "Denmark" msgstr "Dinamarca" #: src/hd-data.c:200 msgid "Dominica" msgstr "Dominica" #: src/hd-data.c:201 msgid "Dominican Republic" msgstr "República Dominicana" #: src/hd-data.c:202 msgid "Algeria" msgstr "Algèria" #: src/hd-data.c:203 msgid "Ecuador" msgstr "Equador" #: src/hd-data.c:204 msgid "Estonia" msgstr "Estònia" #: src/hd-data.c:205 msgid "Egypt" msgstr "Egipte" #: src/hd-data.c:206 msgid "Western Sahara" msgstr "Sàhara Occidental" #: src/hd-data.c:207 msgid "Eritrea" msgstr "Eritrea" #: src/hd-data.c:209 msgid "Ethiopia" msgstr "Etiòpia" #: src/hd-data.c:210 msgid "Finland" msgstr "Finlàndia" #: src/hd-data.c:211 msgid "Fiji #" msgstr "Fiji #" #: src/hd-data.c:212 msgid "Falkland Islands (Malvinas)" msgstr "Illes Malvines" #: src/hd-data.c:213 msgid "Federated States of Micronesia" msgstr "Estats Federats de Micronèsia" #: src/hd-data.c:214 msgid "Faroes" msgstr "Illes Faroe" #: src/hd-data.c:216 msgid "Gabon #" msgstr "Gabon #" #: src/hd-data.c:217 msgid "Great Britain/England and Wales" msgstr "Gran Bretanya/Anglaterra i Gal·les" #: src/hd-data.c:218 msgid "Great Britain/Northern Ireland" msgstr "Gran Bretanya/Irlanda del Nord" #: src/hd-data.c:219 msgid "Great Britain/Scotland" msgstr "Gran Bretanya/Escòcia" #: src/hd-data.c:220 msgid "Grenada" msgstr "Grenada" #: src/hd-data.c:221 msgid "Georgia" msgstr "Geòrgia" #: src/hd-data.c:222 msgid "French Guiana" msgstr "Guaiana Francesa" #: src/hd-data.c:223 msgid "Ghana" msgstr "Ghana" #: src/hd-data.c:224 msgid "Gibraltar" msgstr "Gibraltar" #: src/hd-data.c:225 msgid "Greenland" msgstr "Groenlàndia" #: src/hd-data.c:226 msgid "Gambia" msgstr "Gàmbia" #: src/hd-data.c:227 msgid "Guinea" msgstr "Guinea" #: src/hd-data.c:228 msgid "Guadeloupe" msgstr "Guadalupe" #: src/hd-data.c:229 msgid "Equatorial Guinea" msgstr "Guinea Equatorial" #: src/hd-data.c:230 msgid "Greece" msgstr "Grècia" #: src/hd-data.c:231 msgid "South Georgia and South Sandwich Islands" msgstr "Illes Geòrgia del Sud i Sandwich del Sud" #: src/hd-data.c:232 msgid "Guatemala" msgstr "Guatemala" #: src/hd-data.c:233 msgid "Guam" msgstr "Guam" #: src/hd-data.c:234 msgid "Guinea-Bissau #" msgstr "Guinea Bissau #" #: src/hd-data.c:235 msgid "Guyana #" msgstr "Guyana #" #: src/hd-data.c:236 msgid "Hong Kong" msgstr "Hong Kong" #: src/hd-data.c:237 msgid "Heard and Mc Donald Islands" msgstr "Illes Heard i McDonald" #: src/hd-data.c:238 msgid "Honduras" msgstr "Hondures" #: src/hd-data.c:239 msgid "Croatia" msgstr "Croàcia" #: src/hd-data.c:240 msgid "Haiti" msgstr "Haití" #: src/hd-data.c:241 msgid "Hungary" msgstr "Hongria" #: src/hd-data.c:242 msgid "Indonesia #" msgstr "Indonèsia #" #: src/hd-data.c:243 msgid "Ireland" msgstr "Irlanda" #: src/hd-data.c:245 msgid "India #" msgstr "Ãndia #" #: src/hd-data.c:246 msgid "Iraq" msgstr "Iraq" #: src/hd-data.c:247 msgid "Islamic Republic of Iran" msgstr "Iran" #: src/hd-data.c:248 msgid "Iceland" msgstr "Islàndia" #: src/hd-data.c:250 msgid "Jamaica" msgstr "Jamaica" #: src/hd-data.c:251 msgid "Jordan" msgstr "Jordània" #: src/hd-data.c:253 msgid "Kenya #" msgstr "Kenya #" #: src/hd-data.c:254 msgid "Kyrgyzstan" msgstr "Kirguizistan" #: src/hd-data.c:255 msgid "Cambodia #" msgstr "Cambodja #" #: src/hd-data.c:256 msgid "Kiribati #" msgstr "Kiribati #" #: src/hd-data.c:257 msgid "Comoros" msgstr "Comores" #: src/hd-data.c:258 msgid "St Kitts and Nevis" msgstr "Saint Christopher i Nevis" #: src/hd-data.c:259 msgid "Democratic People's Republic of Korea" msgstr "República Democràtica Popular de Corea" #: src/hd-data.c:261 msgid "Kuwait" msgstr "Kuwait" #: src/hd-data.c:262 msgid "Cayman Islands" msgstr "Illes Caiman" #: src/hd-data.c:263 msgid "Kazakhstan" msgstr "Kazakhstan" #: src/hd-data.c:264 msgid "Laos People's Democratic Republic #" msgstr "Laos #" #: src/hd-data.c:265 msgid "Lebanon" msgstr "Líban" #: src/hd-data.c:266 msgid "St Lucia" msgstr "Saint Lucia" #: src/hd-data.c:267 msgid "Liechtenstein" msgstr "Liechtenstein" #: src/hd-data.c:268 msgid "Sri Lanka #" msgstr "Srï Lanka #" #: src/hd-data.c:269 msgid "Liberia" msgstr "Libèria" #: src/hd-data.c:270 msgid "Lesotho" msgstr "Lesotho" #: src/hd-data.c:271 msgid "Lithuania" msgstr "Lituània" #: src/hd-data.c:272 msgid "Luxembourg" msgstr "Luxemburg" #: src/hd-data.c:273 msgid "Latvia" msgstr "Letònia" #: src/hd-data.c:274 msgid "Libyan Arab Jamahiriya (Libya)" msgstr "Líbia" #: src/hd-data.c:275 msgid "Morocco" msgstr "Marroc" #: src/hd-data.c:276 msgid "Monaco" msgstr "Mònaco" #: src/hd-data.c:277 msgid "Republic of Moldova" msgstr "Moldàvia" #: src/hd-data.c:278 msgid "Madagascar #" msgstr "Madagascar #" #: src/hd-data.c:279 msgid "Marshall Islands" msgstr "Illes Marshall" #: src/hd-data.c:280 msgid "Former Yugoslav Republic of Macedonia" msgstr "Macedònia" #: src/hd-data.c:281 msgid "Mali" msgstr "Mali" #: src/hd-data.c:282 msgid "Mongolia #" msgstr "Mongòlia #" #: src/hd-data.c:283 msgid "Macau" msgstr "Macau" #: src/hd-data.c:284 msgid "Northern Marian Islands (Saipan)" msgstr "Illes Marianes del Nord (Saipan)" #: src/hd-data.c:285 msgid "Martinique" msgstr "Martinica" #: src/hd-data.c:286 msgid "Mauritania" msgstr "Mauritània" #: src/hd-data.c:287 msgid "Montserrat" msgstr "Montserrat" #: src/hd-data.c:288 msgid "Malta" msgstr "Malta" #: src/hd-data.c:289 msgid "Mauritius" msgstr "Maurici" #: src/hd-data.c:290 msgid "Maldives" msgstr "Maldives" #: src/hd-data.c:291 msgid "Malawi" msgstr "Malawi" #: src/hd-data.c:293 msgid "Malaysia #" msgstr "Malàisia #" #: src/hd-data.c:294 msgid "Mozambique" msgstr "Moçambic" #: src/hd-data.c:295 msgid "Namibia" msgstr "Namíbia" #: src/hd-data.c:296 msgid "New Caledonia" msgstr "Nova Caledònia" #: src/hd-data.c:297 msgid "Niger" msgstr "Níger" #: src/hd-data.c:298 msgid "Norfolk Islands" msgstr "Illes Norfolk" #: src/hd-data.c:299 msgid "Nigeria" msgstr "Nigèria" #: src/hd-data.c:300 msgid "Nicaragua" msgstr "Nicaragua" #: src/hd-data.c:302 msgid "Myanmar (Burma) #" msgstr "Myanmar (Burma) #" #: src/hd-data.c:303 msgid "Norway" msgstr "Noruega" #: src/hd-data.c:304 msgid "Nepal #" msgstr "Nepal #" #: src/hd-data.c:305 msgid "Nauru" msgstr "Nauru" #: src/hd-data.c:306 msgid "Niue" msgstr "Niue" #: src/hd-data.c:308 msgid "Oman" msgstr "Oman" #: src/hd-data.c:309 msgid "Panama" msgstr "Panamà" #: src/hd-data.c:310 msgid "Peru" msgstr "Perú" #: src/hd-data.c:311 msgid "French Polynesia" msgstr "Polinèsia Francesa" #: src/hd-data.c:312 msgid "Papua New Guinea" msgstr "Papua Nova Guinea" #: src/hd-data.c:313 msgid "Philippines" msgstr "Filipines" #: src/hd-data.c:314 msgid "Pakistan" msgstr "Pakistan" #: src/hd-data.c:315 msgid "Poland" msgstr "Polònia" #: src/hd-data.c:316 msgid "Saint-Pierre and Miquelon" msgstr "Saint Pierre i Miquelon" #: src/hd-data.c:317 msgid "Pitcairn" msgstr "Pitcairn" #: src/hd-data.c:318 msgid "Puerto Rico" msgstr "Puerto Rico" #: src/hd-data.c:320 msgid "Palau" msgstr "Palau" #: src/hd-data.c:321 msgid "Paraguay" msgstr "Paraguai" #: src/hd-data.c:322 msgid "Qatar" msgstr "Qatar" #: src/hd-data.c:323 msgid "Réunion" msgstr "Reunion" #: src/hd-data.c:324 msgid "Romania" msgstr "Romania" #: src/hd-data.c:326 msgid "Rwanda" msgstr "Rwanda" #: src/hd-data.c:327 msgid "Saudi Arabia" msgstr "Aràbia Saudita" #: src/hd-data.c:328 msgid "Solomon Islands" msgstr "Salomó" #: src/hd-data.c:329 msgid "Seychellen" msgstr "Seychelles" #: src/hd-data.c:330 msgid "Sudan" msgstr "Sudan" #: src/hd-data.c:331 msgid "Sweden" msgstr "Suècia" #: src/hd-data.c:332 msgid "Singapore #" msgstr "Singapur #" #: src/hd-data.c:333 msgid "St Helena" msgstr "Saint Helena" #: src/hd-data.c:334 msgid "Slovenia" msgstr "Eslovènia" #: src/hd-data.c:335 msgid "Svalbard and Jan Mayen Islands" msgstr "Illes Svalbard i Jan Mayen" #: src/hd-data.c:336 msgid "Slovakia" msgstr "Eslovàquia" #: src/hd-data.c:337 msgid "Sierra Leone" msgstr "Sierra Leone" #: src/hd-data.c:338 msgid "San Marino" msgstr "San Marino" #: src/hd-data.c:339 msgid "Senegal" msgstr "Senegal" #: src/hd-data.c:340 msgid "Somalia" msgstr "Somàlia" #: src/hd-data.c:341 msgid "Suriname #" msgstr "Surinam #" #: src/hd-data.c:342 msgid "Sao Tomé and Principe" msgstr "São Tomé i Príncipe" #: src/hd-data.c:343 msgid "El Salvador" msgstr "El Salvador" #: src/hd-data.c:344 msgid "Syrian Arab Republic (Syria)" msgstr "Síria" #: src/hd-data.c:345 msgid "Swaziland" msgstr "Swazilàndia" #: src/hd-data.c:346 msgid "Turks and Caicos Islands" msgstr "Illes Turks i Caicos" #: src/hd-data.c:347 msgid "Chad" msgstr "Txad" #: src/hd-data.c:348 msgid "Togo #" msgstr "Togo #" #: src/hd-data.c:349 msgid "Thailand #" msgstr "Tailàndia" #: src/hd-data.c:350 msgid "Tajikistan" msgstr "Tadjikistan" #: src/hd-data.c:351 msgid "Tokelau" msgstr "Tokelau" #: src/hd-data.c:352 msgid "Turkmenistan" msgstr "Turkmenistan" #: src/hd-data.c:353 msgid "Tunisia" msgstr "Tunísia" #: src/hd-data.c:354 msgid "Tonga" msgstr "Tonga" #: src/hd-data.c:355 msgid "Turkey" msgstr "Turquia" #: src/hd-data.c:356 msgid "Trinidad and Tobago #" msgstr "Trinitat i Tobago #" #: src/hd-data.c:357 msgid "Tuvalu" msgstr "Tuvalu" #: src/hd-data.c:358 msgid "Taiwan" msgstr "Taiwan" #: src/hd-data.c:359 msgid "Tanzania" msgstr "Tanzània" #: src/hd-data.c:360 msgid "Ukraine" msgstr "Ucraïna" #: src/hd-data.c:361 msgid "Uganda" msgstr "Uganda" #: src/hd-data.c:362 msgid "United States/Alaska" msgstr "Estats Units/Alaska" #: src/hd-data.c:363 msgid "United States/Alabama" msgstr "Estats Units/Alabama" #: src/hd-data.c:364 msgid "United States/Arkansas" msgstr "Estats Units/Arkansas" #: src/hd-data.c:365 msgid "United States/Arizona" msgstr "Estats Units/Arizona" #: src/hd-data.c:366 msgid "United States/California" msgstr "Estats Units/California" #: src/hd-data.c:367 msgid "United States/Colorado" msgstr "Estats Units/Colorado" #: src/hd-data.c:368 msgid "United States/Connecticut" msgstr "Estats Units/Connecticut" #: src/hd-data.c:369 msgid "United States/District of Columbia" msgstr "Estats Units/Columbia" #: src/hd-data.c:370 msgid "United States/Delaware" msgstr "Estats Units/Delaware" #: src/hd-data.c:371 msgid "United States/Florida" msgstr "Estats Units/Florida" #: src/hd-data.c:372 msgid "United States/Georgia" msgstr "Estats Units/Georgia" #: src/hd-data.c:373 msgid "United States/Hawaii" msgstr "Estats Units/Hawaii" #: src/hd-data.c:374 msgid "United States/Iowa" msgstr "Estats Units/Iowa" #: src/hd-data.c:375 msgid "United States/Idaho" msgstr "Estats Units/Idaho" #: src/hd-data.c:376 msgid "United States/Illinois" msgstr "Estats Units/Illinois" #: src/hd-data.c:377 msgid "United States/Indiana" msgstr "Estats Units/Indiana" #: src/hd-data.c:378 msgid "United States/Kansas" msgstr "Estats Units/Kansas" #: src/hd-data.c:379 msgid "United States/Kentucky" msgstr "Estats Units/Kentucky" #: src/hd-data.c:380 msgid "United States/Louisiana" msgstr "Estats Units/Louisiana" #: src/hd-data.c:381 msgid "United States/Massachusetts" msgstr "Estats Units/Massachusetts" #: src/hd-data.c:382 msgid "United States/Maryland" msgstr "Estats Units/Maryland" #: src/hd-data.c:383 msgid "United States/Maine" msgstr "Estats Units/Maine" #: src/hd-data.c:384 msgid "United States/Michigan" msgstr "Estats Units/Michigan" #: src/hd-data.c:385 msgid "United States/Minnesota" msgstr "Estats Units/Minnesota" #: src/hd-data.c:386 msgid "United States/Missouri" msgstr "Estats Units/Missouri" #: src/hd-data.c:387 msgid "United States/Mississippi" msgstr "Estats Units/Mississippi" #: src/hd-data.c:388 msgid "United States/Montana" msgstr "Estats Units/Montana" #: src/hd-data.c:389 msgid "United States/North Carolina" msgstr "Estats Units/Carolina del Nord" #: src/hd-data.c:390 msgid "United States/North Dakota" msgstr "Estats Units/Dakota del Nord" #: src/hd-data.c:391 msgid "United States/Nebraska" msgstr "Estats Units/Nebraska" #: src/hd-data.c:392 msgid "United States/New Hampshire" msgstr "Estats Units/New Hampshire" #: src/hd-data.c:393 msgid "United States/New Jersey" msgstr "Estats Units/Nova Jersey" #: src/hd-data.c:394 msgid "United States/New Mexico" msgstr "Estats Units/Nou Mèxic" #: src/hd-data.c:395 msgid "United States/Nevada" msgstr "Estats Units/Nevada" #: src/hd-data.c:396 msgid "United States/New York" msgstr "Estats Units/Nova York" #: src/hd-data.c:397 msgid "United States/Ohio" msgstr "Estats Units/Ohio" #: src/hd-data.c:398 msgid "United States/Oklahoma" msgstr "Estats Units/Oklahoma" #: src/hd-data.c:399 msgid "United States/Oregon" msgstr "Estats Units/Oregon" #: src/hd-data.c:400 msgid "United States/Pennsylvania" msgstr "Estats Units/Pennsylvania" #: src/hd-data.c:401 msgid "United States/Rhode Island" msgstr "Estats Units/Rhode Island" #: src/hd-data.c:402 msgid "United States/South Carolina" msgstr "Estats Units/Carolina del Sud" #: src/hd-data.c:403 msgid "United States/South Dakota" msgstr "Estats Units/Dakota del Sud" #: src/hd-data.c:404 msgid "United States/Tennessee" msgstr "Estats Units/Tennessee" #: src/hd-data.c:405 msgid "United States/Texas" msgstr "Estats Units/Texas" #: src/hd-data.c:406 msgid "United States/Utah" msgstr "Estats Units/Utah" #: src/hd-data.c:407 msgid "United States/Virginia" msgstr "Estats Units/Virginia" #: src/hd-data.c:408 msgid "United States/Vermont" msgstr "Estats Units/Vermont" #: src/hd-data.c:409 msgid "United States/Washington" msgstr "Estats Units/Washington" #: src/hd-data.c:410 msgid "United States/Wisconsin" msgstr "Estats Units/Wisconsin" #: src/hd-data.c:411 msgid "United States/West Virginia" msgstr "Estats Units/West Virginia" #: src/hd-data.c:412 msgid "United States/Wyoming" msgstr "Estats Units/Wyoming" #: src/hd-data.c:413 msgid "Uruguay" msgstr "Uruguai" #: src/hd-data.c:414 msgid "Uzbekistan" msgstr "Uzbekistan" #: src/hd-data.c:415 msgid "St Vincent and Grenadines" msgstr "Saint Vincent i les Grenadines" #: src/hd-data.c:416 msgid "Venezuela" msgstr "Veneçuela" #: src/hd-data.c:417 msgid "British Virgin Islands" msgstr "Illes Verge (Britàniques)" #: src/hd-data.c:418 msgid "U.S. Virgin Islands" msgstr "Illes Verge (EUA)" #: src/hd-data.c:419 msgid "Viet Nam" msgstr "Vietnam" #: src/hd-data.c:420 msgid "Vanuatu" msgstr "Vanuatu" #: src/hd-data.c:421 msgid "Wallis and Futuna Islands" msgstr "Illes Wallis i Futuna" #: src/hd-data.c:422 msgid "Samoa" msgstr "Samoa" #: src/hd-data.c:423 msgid "Yemen" msgstr "Iemen" #: src/hd-data.c:424 msgid "Mayotte" msgstr "Mayotte" #: src/hd-data.c:425 msgid "Serbia and Montenegro" msgstr "Sèrbia i Montenegro" #: src/hd-data.c:426 msgid "South Africa" msgstr "República de Sud-àfrica" #: src/hd-data.c:427 msgid "Zambia" msgstr "Zàmbia" #: src/hd-data.c:428 msgid "Zimbabwe" msgstr "Zimbabwe" #: src/hd-data.c:458 msgid "1st Advent" msgstr "1r Diumenge d'Advent" #: src/hd-data.c:459 msgid "1st Sunday in Lent" msgstr "1r Diumenge de Quaresma" #: src/hd-data.c:460 msgid "2nd Advent" msgstr "2n Diumenge d'Advent" #: src/hd-data.c:461 msgid "2nd Sunday in Lent" msgstr "2n Diumenge de Quaresma" #: src/hd-data.c:462 msgid "3rd Advent" msgstr "3r Diumenge d'Advent" #: src/hd-data.c:463 msgid "3rd Sunday in Lent" msgstr "3r Diumenge de Quaresma" #: src/hd-data.c:464 msgid "4th Advent" msgstr "4t Diumenge d'Advent" #: src/hd-data.c:465 msgid "4th Sunday in Lent" msgstr "4t Diumenge de Quaresma" #: src/hd-data.c:466 msgid "7-5-3 Festival" msgstr "Festival del 7-5-3" #: src/hd-data.c:467 msgid "Aborigines Day" msgstr "Dia dels Aborigens" #: src/hd-data.c:468 msgid "All Fool's Day" msgstr "Dia dels Bromistes" #: src/hd-data.c:469 msgid "All Saints' Day" msgstr "Dia de Tots Sants" #: src/hd-data.c:470 msgid "All Souls' Day" msgstr "Dia dels Difunts" #: src/hd-data.c:471 msgid "Alphabet Day" msgstr "Dia de l'Alfabet" #: src/hd-data.c:472 msgid "Anniversary of Auckland" msgstr "Aniversari d'Auckland" #: src/hd-data.c:473 msgid "Anniversary of Canterbury North" msgstr "Aniversari de Canterbury del Nord" #: src/hd-data.c:474 msgid "Anniversary of Canterbury South" msgstr "Aniversari de Canterbury del Sud" #: src/hd-data.c:475 msgid "Anniversary of Chatham Islands" msgstr "Aniversari de les Illes Chatham" #: src/hd-data.c:476 msgid "Anniversary of Hawkes' Bay" msgstr "Aniversari de la Badia de Hawkes" #: src/hd-data.c:477 msgid "Anniversary of Marlborough" msgstr "Aniversari de Marlborough" #: src/hd-data.c:478 msgid "Anniversary of Nelson" msgstr "Aniversari de Nelson" #: src/hd-data.c:479 msgid "Anniversary of Otago" msgstr "Aniversari d'Otago" #: src/hd-data.c:480 msgid "Anniversary of Southland" msgstr "Aniversari de Southland" #: src/hd-data.c:481 msgid "Anniversary of Taranaki" msgstr "Aniversari de Taranaki" #: src/hd-data.c:482 msgid "Anniversary of Wellington" msgstr "Aniversari de Wellington" #: src/hd-data.c:483 msgid "Anniversary of Westland" msgstr "Aniversari de Westland" #: src/hd-data.c:484 msgid "Anzac Day" msgstr "Dia dels Anzac" #: src/hd-data.c:485 msgid "Arbor Day" msgstr "Dia de l'Arbre" #: src/hd-data.c:486 msgid "Armed Forces Day" msgstr "Dia de les Forces Armades" #: src/hd-data.c:487 msgid "Armistice Day" msgstr "Dia de l'Armistici" #: src/hd-data.c:488 msgid "Ash Monday" msgstr "Dilluns de Cendra" #: src/hd-data.c:489 msgid "Ash Wednesday" msgstr "Dimecres de Cendra" #: src/hd-data.c:490 msgid "Ascension of Abdu'l-Baha" msgstr "Ascensió d'Abdu'l-Baha" #: src/hd-data.c:491 msgid "Ascension of Baha'u'llah" msgstr "Ascensió de Baha'u'llah" #: src/hd-data.c:492 msgid "Birth of Baha'u'llah" msgstr "Naixement de Baha'u'llah" #: src/hd-data.c:493 msgid "Birth of the Bab" msgstr "Naixement del Bab" #: src/hd-data.c:494 msgid "Day of the Covenant" msgstr "Dia de l'Aliança" #: src/hd-data.c:495 msgid "Declaration of the Bab" msgstr "Declaració del Bab" #: src/hd-data.c:496 msgid "First Day of Ridvan" msgstr "Primer Dia de Ridvan" #: src/hd-data.c:497 msgid "Martyrdom of the Bab" msgstr "Martiri del Bab" #: src/hd-data.c:498 msgid "Bahá'i New Year's Day" msgstr "Dia d'Any Nou del Bahá'i" #: src/hd-data.c:499 msgid "Ninth Day of Ridvan" msgstr "Novè Dia de Ridvan" #: src/hd-data.c:500 msgid "Twelfth Day of Ridvan" msgstr "Dotzè Dia de Ridvan" #: src/hd-data.c:501 msgid "Bank Holiday" msgstr "Festa de Bank" #: src/hd-data.c:502 msgid "Basque National Day" msgstr "Dia de la Pàtria Basca" #: src/hd-data.c:503 msgid "Battle of Boyne" msgstr "Batalla de Boyne" #: src/hd-data.c:504 msgid "Battle of Puebla" msgstr "Batalla de Puebla" #: src/hd-data.c:505 msgid "Beginning of Financial Year" msgstr "Començament de l'Any Econòmic" #: src/hd-data.c:506 msgid "Benito Juárez Day" msgstr "Dia de Benito Juárez" #: src/hd-data.c:507 msgid "Bodhidharma's Birthday" msgstr "Aniversari de Bodhidharma" #: src/hd-data.c:508 msgid "Bosses' Day" msgstr "Dia dels Amos" #: src/hd-data.c:509 msgid "Boxing Day" msgstr "Dia de Sant Esteve" #: src/hd-data.c:510 msgid "Bringing Home the Herds Day" msgstr "Dia de Menar el Ramat a Casa" #: src/hd-data.c:511 msgid "Bringing in the Harvest Day" msgstr "Dia de la Collita" #: src/hd-data.c:512 msgid "Buddha's Birthday" msgstr "Aniversari de Buda" #: src/hd-data.c:513 msgid "Burns Night" msgstr "Nit de Burns" #: src/hd-data.c:514 msgid "Camoes Day" msgstr "Dia de Camoes" #: src/hd-data.c:515 msgid "Carnival" msgstr "Carnaval" #: src/hd-data.c:516 msgid "Beltane" msgstr "Beltane" #: src/hd-data.c:517 msgid "Imbolg" msgstr "Imbolg" #: src/hd-data.c:518 msgid "Lughnasa" msgstr "Lughnasa" #: src/hd-data.c:519 msgid "Samhain/Celtic New Year's Day" msgstr "Samhain/Any Nou Celta" #: src/hd-data.c:520 msgid "Children's Day" msgstr "Dia de la Infància" #: src/hd-data.c:521 msgid "Cycle" msgstr "Cicle" #: src/hd-data.c:522 msgid "Chinese New Year's Day" msgstr "Any Nou Xinès" #: src/hd-data.c:523 msgid "Chinese New Year's Eve" msgstr "Vigília de l'Any Nou Xinès" #: src/hd-data.c:524 msgid "Christmas Day" msgstr "Dia de Nadal" #: src/hd-data.c:525 msgid "Christmas Eve" msgstr "Vigília de Nadal" #: src/hd-data.c:526 msgid "Christ's Ascension Day" msgstr "Dia de l'Ascensió de Crist" #: src/hd-data.c:527 msgid "Chrysanthenum Day" msgstr "Dia del Crisantem" #: src/hd-data.c:528 msgid "Citizenship Day" msgstr "Dia de la Ciutadania" #: src/hd-data.c:529 msgid "Civic Holiday" msgstr "Festa del Civisme" #: src/hd-data.c:530 msgid "Columbus Day" msgstr "Dia de Colom" #: src/hd-data.c:531 msgid "Coming of Age Day" msgstr "Dia de l'Arribada a l'Edat" #: src/hd-data.c:532 msgid "Confucius' Birthday" msgstr "Aniversari de Confuci" #: src/hd-data.c:533 msgid "Constitution Anniversary" msgstr "Aniversari de la Constitució" #: src/hd-data.c:534 msgid "Coptic New Year's Day" msgstr "Dia d'Any Nou Copte" #: src/hd-data.c:535 msgid "Cosmonauts' Day" msgstr "Dia dels Cosmonautes" #: src/hd-data.c:536 msgid "Cross Raising Day" msgstr "Dia de l'Aixecament de la Creu" #: src/hd-data.c:537 msgid "Culture Day" msgstr "Dia de la Cultura" #: src/hd-data.c:538 msgid "Day after Mid-Autumn Festival" msgstr "Dia després del Festival de Tardor" #: src/hd-data.c:539 msgid "Day after Tomb-Sweeping Day" msgstr "Dia després d'Escombrar la Tomba" #: src/hd-data.c:540 msgid "Day of Andalucia" msgstr "Dia d'Andalusia" #: src/hd-data.c:541 msgid "Day of Catalonia" msgstr "Diada Nacional de Catalunya" #: src/hd-data.c:542 msgid "Day of Galicia" msgstr "Dia de Galícia" #: src/hd-data.c:543 msgid "Day of Prayer and Repentance" msgstr "Dia de la Pregària i el Penediment" #: src/hd-data.c:544 msgid "Day of Reconciliation" msgstr "Dia de la Reconciliació" #: src/hd-data.c:545 msgid "Defenders of Motherland Day" msgstr "Dia dels Defensors de la Pàtria" #: src/hd-data.c:546 msgid "Double-9 Day" msgstr "Dia del doble-9" #: src/hd-data.c:547 msgid "Dragon Boat Festival" msgstr "Festival de la Barca Dragó" #: src/hd-data.c:548 msgid "Dynasty Day" msgstr "Dia de la Dinastia" #: src/hd-data.c:549 msgid "Easter Monday" msgstr "Dilluns de Pasqua" #: src/hd-data.c:550 msgid "Easter Sunday" msgstr "Diumenge de Pasqua" #: src/hd-data.c:551 msgid "Lunar Eclipse" msgstr "Eclipsi Lunar" #: src/hd-data.c:552 msgid "Solar Eclipse" msgstr "Eclipsi Solar" #: src/hd-data.c:553 msgid "Annular" msgstr "Anular" #: src/hd-data.c:554 msgid "Partial" msgstr "Parcial" #: src/hd-data.c:555 msgid "Penumbral" msgstr "Penombrós" #: src/hd-data.c:556 msgid "Total" msgstr "Total" #: src/hd-data.c:557 msgid "Eindhoven's Liberation" msgstr "Alliberació d'Eindhoven" #: src/hd-data.c:558 msgid "Election Day" msgstr "Dia de les Eleccions" #: src/hd-data.c:559 msgid "Emperor's Birthday" msgstr "Aniversari de l'Emperador" #: src/hd-data.c:560 msgid "Equinox Day" msgstr "Dia de l'Equinocci" #: src/hd-data.c:561 msgid "Ethiopic New Year's Day" msgstr "Any Nou Etíop" #: src/hd-data.c:562 msgid "Father's Day" msgstr "Dia del Pare" #: src/hd-data.c:563 msgid "Feast of Corpus Christi" msgstr "Festa de Corpus Cristi" #: src/hd-data.c:564 msgid "Feast of Fortune" msgstr "Festa de la Fortuna" #: src/hd-data.c:565 msgid "Feast of Heart Jesus" msgstr "Festa del Sagrat Cor de Jesús" #: src/hd-data.c:566 msgid "Festival of Lanterns" msgstr "Festival dels Fanalets" #: src/hd-data.c:567 msgid "Festival of Sadeh" msgstr "Festival de Sadeh" #: src/hd-data.c:568 msgid "Flag Day" msgstr "Dia de la Bandera" #: src/hd-data.c:569 msgid "Flemish Culture Day" msgstr "Dia de la Cultura Flamenca" #: src/hd-data.c:570 msgid "Founding of the Communist Party" msgstr "Fundació del Partit Comunista" #: src/hd-data.c:571 msgid "French Culture Day" msgstr "Dia de la Cultura Francesa" #: src/hd-data.c:572 msgid "French Revolutionary" msgstr "Revolucionaris Francesos" #: src/hd-data.c:573 msgid "Friendship Day" msgstr "Dia de l'Amistat" #: src/hd-data.c:574 msgid "German Unity Day" msgstr "Dia de la Unitat Alemanya" #: src/hd-data.c:575 msgid "Good Friday" msgstr "Divendres Sant" #: src/hd-data.c:576 msgid "Good Saturday/Easter Eve" msgstr "Dissabte Sant/Vigília de Pasqua" #: src/hd-data.c:577 msgid "Grandparents' Day" msgstr "Dia dels Avis" #: src/hd-data.c:578 msgid "Greenery Day" msgstr "Dia dels Aliments" #: src/hd-data.c:579 msgid "Grotto Day" msgstr "Dia de la Gruta" #: src/hd-data.c:580 msgid "Groundhog Day" msgstr "Dia de la Marmota" #: src/hd-data.c:581 msgid "Guadalupe Virgin's Day" msgstr "Dia de la Verge de Guadalupe" #: src/hd-data.c:582 msgid "Guy Fawke's Day" msgstr "Dia del Noi Fawkes" #: src/hd-data.c:583 msgid "Halloween" msgstr "Dia de Halloween" #: src/hd-data.c:584 msgid "Health and Sport's Day" msgstr "Dia de la Salut i l'Esport" #: src/hd-data.c:585 msgid "Hannukah/Festival of Lights" msgstr "Hannukah/Festival de les Llanternes" #: src/hd-data.c:586 msgid "Lag B'Omer" msgstr "Lag B'Omer" #: src/hd-data.c:587 msgid "Pesach/Passover" msgstr "Pesach/Pasqua" #: src/hd-data.c:588 msgid "Purim/Feast of Lots" msgstr "Purim/Festa dels Terrenys" #: src/hd-data.c:589 msgid "Rosh Hashana/New Year's Day" msgstr "Rosh Hashana/Dia d'Any Nou" #: src/hd-data.c:590 msgid "Shavuot/Giving of the Torah" msgstr "Shavuot/L'Oferiment del Torah" #: src/hd-data.c:591 msgid "Shushan Purim" msgstr "Shushan Purim" #: src/hd-data.c:592 msgid "Simchat Torah" msgstr "Simchat Torah" #: src/hd-data.c:593 msgid "Sukkot/Feast of Tabernacles" msgstr "Sukkot/Festa dels Tabernacles" #: src/hd-data.c:594 msgid "Tisha B'Av/Fasting Day" msgstr "Tisha B'Av/Dia del Dejuni" #: src/hd-data.c:595 msgid "Tu B'Shevat/New Year of Trees" msgstr "Tu B'Shevat/Any Nou dels Arbres" #: src/hd-data.c:596 msgid "Yom Hashoah/Holocaust Memorial" msgstr "Yom Hashoah/Record de l'Holocaust" #: src/hd-data.c:597 msgid "Yom Hazikaron/Soldiers Memorial" msgstr "Yom Hazikaron/Record dels Soldats" #: src/hd-data.c:598 msgid "Yom Ha Azmaut/Independence Day" msgstr "Yom Ha Azmaut/Dia de l'Independència" #: src/hd-data.c:599 msgid "Yom Kippur/Atonement Day" msgstr "Yom Kippur/Dia del Gran Perdó" #: src/hd-data.c:600 msgid "Yom Yerushalayim/Jerusalem Day" msgstr "Yom Yerushalayim/Dia de Jerusalem" #: src/hd-data.c:601 msgid "Holy Innocent's Day" msgstr "Dia dels Sants Innocents" #: src/hd-data.c:602 msgid "Holy Trinity" msgstr "Santíssima Trinitat" #: src/hd-data.c:603 msgid "Huravee Day" msgstr "Dia de Huravee" #: src/hd-data.c:604 msgid "Independence Day" msgstr "Dia de l'Independència" #: src/hd-data.c:605 msgid "Independence Movement Day" msgstr "Dia del Moviment Independentista" #: src/hd-data.c:606 msgid "Independence Proclamation" msgstr "Proclamació de la Independència" #: src/hd-data.c:607 msgid "Indian New Year's Day" msgstr "Dia d'Any Nou Indi" #: src/hd-data.c:608 msgid "Aga Khan's Birthday" msgstr "Aniversari d'Aga Khan" #: src/hd-data.c:609 msgid "Ashura'" msgstr "Ashura'" #: src/hd-data.c:610 msgid "Eid-al-Adha" msgstr "Eid-al-Adha" #: src/hd-data.c:611 msgid "Eid-al-Fitr" msgstr "Eid-al-Fitr" #: src/hd-data.c:612 msgid "Eid-i-Milad-un-Nabi" msgstr "Eid-i-Milad-un-Nabi" #: src/hd-data.c:613 msgid "Ghadir" msgstr "Ghadir" #: src/hd-data.c:614 msgid "Imamat Day" msgstr "Dia d'Imamat" #: src/hd-data.c:615 msgid "Islamic New Year's Day" msgstr "Dia d'Any Nou Islàmic" #: src/hd-data.c:616 msgid "Nuzul-al-Qur'an" msgstr "Nuzul-al-Qur'an" #: src/hd-data.c:617 msgid "Quds Day" msgstr "Dia de Quds" #: src/hd-data.c:618 msgid "Ramadan" msgstr "Ramadà" #: src/hd-data.c:619 msgid "Shab-e-Bara't" msgstr "Shab-e-Bara't" #: src/hd-data.c:620 msgid "Shab-e-Mi'raj" msgstr "Shab-e-Mi'raj" #: src/hd-data.c:621 msgid "Shab-e Qadr" msgstr "Shab-e Qadr" #: src/hd-data.c:622 msgid "Waqf-al-Arafat" msgstr "Waqf-al-Arafat" #: src/hd-data.c:623 msgid "Japanese New Year's Day" msgstr "Dia d'Any Nou Japonès" #: src/hd-data.c:624 msgid "Japanese New Year's Eve" msgstr "Vigília de l'Any Nou Japonès" #: src/hd-data.c:625 msgid "Jesus' Circumcision" msgstr "Circumcisió de Jesús" #: src/hd-data.c:626 msgid "Kwanzaa" msgstr "Kwanzaa" #: src/hd-data.c:627 msgid "Labour Day" msgstr "Dia dels Treballadors" #: src/hd-data.c:628 msgid "Labour Thanksgiving Day" msgstr "Dia de Gràcia dels Treballadors" #: src/hd-data.c:629 msgid "Lao Tze's Birthday" msgstr "Aniversari de Lao Tse" #: src/hd-data.c:630 msgid "Liberation Day" msgstr "Dia de l'Alliberació" #: src/hd-data.c:631 msgid "Marine Day" msgstr "Dia de la Marina" #: src/hd-data.c:632 msgid "Martinimas" msgstr "Sant Martí" #: src/hd-data.c:633 msgid "Martin L. King's Day" msgstr "Dia de Martin L. King" #: src/hd-data.c:634 msgid "Martyrs' Day" msgstr "Dia dels Màrtirs" #: src/hd-data.c:635 msgid "Mary's Annunciation Day" msgstr "Dia de l'Anunciació de la Verge" #: src/hd-data.c:636 msgid "Mary's Ascension Day" msgstr "Dia de l'Ascensió de la Verge" #: src/hd-data.c:637 msgid "Mary's Candlemas" msgstr "La Candelera" #: src/hd-data.c:638 msgid "Mary's Expectation" msgstr "Mare de Déu de l'Esperança" #: src/hd-data.c:639 msgid "Mary's Immaculate Conception" msgstr "Immaculada Concepció" #: src/hd-data.c:640 msgid "Mary's Maternity" msgstr "Festa de la Maternitat de la Verge" #: src/hd-data.c:641 msgid "Mary's Name" msgstr "El Dolç Nom de la Verge" #: src/hd-data.c:642 msgid "Mary's Nativity" msgstr "Nativitat de la Mare de Déu" #: src/hd-data.c:643 msgid "Mary's Sacrifice" msgstr "Presentació de la Mare de Déu" #: src/hd-data.c:644 msgid "Mary's Visitation" msgstr "Visitació de la Verge" #: src/hd-data.c:645 msgid "Mary - Blessed Virgin" msgstr "Santa Maria Mare de Déu" #: src/hd-data.c:646 msgid "Maundy Thursday" msgstr "Dijous Sant" #: src/hd-data.c:647 msgid "May Day" msgstr "Primer de Maig" #: src/hd-data.c:648 msgid "St John's/Midsummer Day" msgstr "Sant Joan/Solstici d'Estiu" #: src/hd-data.c:649 msgid "Mid-Autumn Festival" msgstr "Festival de Tardor" #: src/hd-data.c:650 msgid "Mid-Spring Festival" msgstr "Festival de Primavera" #: src/hd-data.c:651 msgid "Mid-Year Festival" msgstr "Festival del Mig Any" #: src/hd-data.c:652 msgid "Waxing Half Moon" msgstr "Lluna en Quart Creixent" #: src/hd-data.c:653 msgid "Full Moon" msgstr "Lluna Plena" #: src/hd-data.c:654 msgid "Waning Half Moon" msgstr "Lluna en Quart Minvant" #: src/hd-data.c:655 msgid "New Moon" msgstr "Lluna Nova" #: src/hd-data.c:656 msgid "Mother's Day" msgstr "Dia de la Mare" #: src/hd-data.c:657 msgid "Mother in Law's Day" msgstr "Dia de la Sogra" #: src/hd-data.c:658 msgid "Music Water Banquet" msgstr "Banquet d'Aigua de Música" #: src/hd-data.c:659 msgid "National Foundation Day" msgstr "Dia de la Fundació Nacional" #: src/hd-data.c:660 msgid "National Holiday" msgstr "Festa Nacional" #: src/hd-data.c:661 msgid "National Mourning Day" msgstr "Dia de Dol Nacional" #: src/hd-data.c:662 msgid "New Year's Day" msgstr "Dia d'Any Nou" #: src/hd-data.c:663 msgid "Nurses' Day" msgstr "Dia de les Infermeres" #: src/hd-data.c:664 msgid "Old-Armenic New Year" msgstr "Antic Any Nou Armèni" #: src/hd-data.c:665 msgid "Old-Egyptic New Year" msgstr "Antic Any Nou Egipci" #: src/hd-data.c:666 msgid "Orthodox New Year's Day" msgstr "Dia de l'Any Nou Ortodox" #: src/hd-data.c:667 msgid "Our Lady Aparecida Day" msgstr "Dia de Nostra Senyora Aparecida" #: src/hd-data.c:668 msgid "Palm Sunday" msgstr "Diumenge de Rams" #: src/hd-data.c:669 msgid "Parent's Day" msgstr "Dia dels Pares" #: src/hd-data.c:670 msgid "Passion Sunday" msgstr "Diumenge de Passió" #: src/hd-data.c:671 msgid "Peace Festival" msgstr "Festival de la Pau" #: src/hd-data.c:672 msgid "Peach Festival" msgstr "Festival del Presseguer" #: src/hd-data.c:673 msgid "Whitsunday/Pentecost" msgstr "2a Pasqua/Pentecosta" #: src/hd-data.c:674 msgid "Noruz/Persian New Year's Day" msgstr "Noruz/Any Nou Persa" #: src/hd-data.c:675 msgid "Prayer Day" msgstr "Dia de les Pregàries" #: src/hd-data.c:676 msgid "Presidential Inauguration" msgstr "Inauguració Presidencial" #: src/hd-data.c:677 msgid "Presidents' Day" msgstr "Dia dels Presidents" #: src/hd-data.c:678 msgid "Presidents' Inform" msgstr "Informe dels Presidents" #: src/hd-data.c:679 msgid "President Lincoln's Birthday" msgstr "Aniversari del President Lincoln" #: src/hd-data.c:680 msgid "Princess' Day" msgstr "Dia de la Princesa" #: src/hd-data.c:681 msgid "Quinquagesima Sunday" msgstr "Diumenge de Quinquagèsima" #: src/hd-data.c:682 msgid "Reformation Day" msgstr "Dia de la Reforma" #: src/hd-data.c:683 msgid "Remembrance/Memorial Day" msgstr "Dia de la Commemoració/Recordació" #: src/hd-data.c:684 msgid "Republic Day" msgstr "Dia de la República" #: src/hd-data.c:685 msgid "Respect for the Aged Day" msgstr "Dia del Respecte per la Gent Gran" #: src/hd-data.c:686 msgid "Revolution Day" msgstr "Dia de la Revolució" #: src/hd-data.c:687 msgid "Rio de Janeiro Anniversary" msgstr "Aniversari de Rio de Janeiro" #: src/hd-data.c:688 msgid "Rogation Sunday" msgstr "Diumenge de Témpores" #: src/hd-data.c:689 msgid "Sao Paulo Anniversary" msgstr "Aniversari de Sao Paulo" #: src/hd-data.c:690 msgid "Sapporo Snow Festival" msgstr "Festival de la Neu de Sapporo" #: src/hd-data.c:691 msgid "Season Change/Bean-Festival" msgstr "Festival de la Mongeta" #: src/hd-data.c:692 msgid "Septuagesima Sunday" msgstr "Diumenge de Septuagèsima" #: src/hd-data.c:693 msgid "Seven Sleepers Day" msgstr "Dia dels Set Dorments" #: src/hd-data.c:694 msgid "Sexagesima Sunday" msgstr "Diumenge de Sexagèsima" #: src/hd-data.c:695 msgid "Shrove Tuesday/Mardi Gras" msgstr "Dimarts de Carnaval/Dimarts Gras" #: src/hd-data.c:696 msgid "Solstice Day" msgstr "Dia del Solstici" #: src/hd-data.c:697 msgid "Soot-Sweeping Day" msgstr "Dia d'Escurar la Xemeneia" #: src/hd-data.c:698 msgid "Spring Festival" msgstr "Festival de Primavera" #: src/hd-data.c:699 msgid "Start of common month" msgstr "Principi del mes comú" #: src/hd-data.c:700 msgid "Start of leap month" msgstr "Principi del mes de traspàs" #: src/hd-data.c:701 msgid "Star Festival" msgstr "Festival de l'Estrella" #: src/hd-data.c:702 msgid "St Andrew's Day" msgstr "Dia de Sant Andreu" #: src/hd-data.c:703 msgid "St Bartholomew Day" msgstr "Dia de Sant Bartomeu" #: src/hd-data.c:704 msgid "St Berchtold's Day" msgstr "Dia de Sant Berchtold" #: src/hd-data.c:705 msgid "St David's Day" msgstr "Dia de Sant David" #: src/hd-data.c:706 msgid "St Edward's Day" msgstr "Dia de Sant Eduard" #: src/hd-data.c:707 msgid "St George's Day" msgstr "Dia de Sant Jordi" #: src/hd-data.c:708 msgid "St James' Day" msgstr "Dia de Sant Jaume" #: src/hd-data.c:709 msgid "St Joseph's Day" msgstr "Dia de Sant Josep" #: src/hd-data.c:710 msgid "St Laurentius Day" msgstr "Dia de Sant Llorenç" #: src/hd-data.c:711 msgid "St Nicholas' Day" msgstr "Dia de Sant Nicolau" #: src/hd-data.c:712 msgid "St Nicholas' Eve" msgstr "Vigília de Sant Nicolau" #: src/hd-data.c:713 msgid "St Patrick's Day" msgstr "Dia de Sant Patrici" #: src/hd-data.c:714 msgid "St Peter and St Paul" msgstr "Sant Pere i Sant Pol" #: src/hd-data.c:715 msgid "St Stephen's Day" msgstr "Dia de Sant Esteve" #: src/hd-data.c:716 msgid "St Valentine's Day" msgstr "Dia de Sant Valentí" #: src/hd-data.c:717 msgid "Sunday of the Dead" msgstr "Dimenge de la Mort" #: src/hd-data.c:718 msgid "Swallow Day" msgstr "Dia de l'Oreneta" #: src/hd-data.c:719 msgid "Sweetest Day" msgstr "Dia de la Preciositat" #: src/hd-data.c:720 msgid "Sylvester/New Year's Eve" msgstr "Sant Silvestre/Vigília d'Any Nou" #: src/hd-data.c:721 msgid "Teacher's Day" msgstr "Dia del Mestre" #: src/hd-data.c:722 msgid "Thai New Year's Day" msgstr "Any Nou Tailandès" #: src/hd-data.c:723 msgid "Thanksgiving Day" msgstr "Dia d'Acció de Gràcies" #: src/hd-data.c:724 msgid "The King's Birthday" msgstr "Aniversari del Rei" #: src/hd-data.c:725 msgid "The Queen's Birthday" msgstr "Aniversari de la Reina" #: src/hd-data.c:726 msgid "Epiphany/Three King's Day" msgstr "Epifania/Dia de Reis" #: src/hd-data.c:727 msgid "Tiradentes Day" msgstr "Dia de Tiradentes" #: src/hd-data.c:728 msgid "Tomb-Sweeping Day" msgstr "Dia d'Escombrar la Tomba" #: src/hd-data.c:729 msgid "Transfiguration Day" msgstr "Dia de la Transfiguració" #: src/hd-data.c:730 msgid "Tynwald Day" msgstr "Dia de Tynwald" #: src/hd-data.c:731 msgid "Valborg's Eve" msgstr "Vigília de Valborg" #: src/hd-data.c:732 msgid "Venice Carnival" msgstr "Carnaval de Venècia" #: src/hd-data.c:733 msgid "Veteran's Day" msgstr "Dia dels Veterans" #: src/hd-data.c:734 msgid "Victoria Day" msgstr "Dia de Victòria" #: src/hd-data.c:735 msgid "Victory Day" msgstr "Dia de la Victòria" #: src/hd-data.c:736 msgid "Whit Monday" msgstr "Dilluns de Pentecosta" #: src/hd-data.c:737 msgid "Women's Day" msgstr "Dia de les Dones" #: src/hd-data.c:738 msgid "Women's Shrove Day" msgstr "Dia del Carnaval de les Dones" #: src/hd-data.c:739 msgid "World Animal Day" msgstr "Dia Mundial dels Animals" #: src/hd-data.c:740 msgid "Youth Day" msgstr "Dia de la Joventut" #: src/hd-data.c:746 msgid "Adelaide Cup Day" msgstr "Dia de la Copa d'Adelaida" #: src/hd-data.c:747 msgid "Admission Day" msgstr "Dia de l'Admissió" #: src/hd-data.c:748 msgid "Alaska Day" msgstr "Dia d'Alaska" #: src/hd-data.c:749 msgid "Aleksis Kivi Day" msgstr "Dia d'Aleksis Kivi" #: src/hd-data.c:750 msgid "Alice-Springs Show Day" msgstr "Dia de la Mostra d'Alice-Springs" #: src/hd-data.c:751 msgid "All Saints' Eve" msgstr "Vigília de Tots Sants" #: src/hd-data.c:752 msgid "Americas Day" msgstr "Dia de les Amèriques" #: src/hd-data.c:753 msgid "Angam Day" msgstr "Dia d'Angam" #: src/hd-data.c:755 msgid "Anniversary of Amir's Succession" msgstr "Aniversari de la Successió d'Amir" #: src/hd-data.c:756 msgid "Anniversary of Armed Struggle" msgstr "Aniversari de la Lluita Armada" #: src/hd-data.c:757 msgid "Anniversary of Green March" msgstr "Aniversari de la Marxa Verda" #: src/hd-data.c:758 msgid "Antillian Day" msgstr "Dia de les Antilles" #: src/hd-data.c:759 msgid "Arab League Day" msgstr "Dia de la Lliga Àrab" #: src/hd-data.c:761 msgid "Archbishop Makarios' Memorial Day" msgstr "Record de l'Arquebisbe Makarios" #: src/hd-data.c:762 msgid "Archbishop Makarios' Name-Day" msgstr "Sant de l'Arquebisbe Makarios" #: src/hd-data.c:763 msgid "Arengo Anniversary" msgstr "Aniversari d'Arengo" #: src/hd-data.c:764 msgid "Army Coup Day" msgstr "Dia del Cop de l'Exèrcit" #: src/hd-data.c:765 msgid "Arrival of the Swiss" msgstr "Arribada dels Suïssos" #: src/hd-data.c:766 msgid "Artigas' Birthday" msgstr "Aniversari d'Artigas" #: src/hd-data.c:767 msgid "Asuncion Day" msgstr "Dia de l'Asunción" #: src/hd-data.c:768 msgid "Ataturk Memorial Day" msgstr "Dia Commemoratiu d'Ataturk" #: src/hd-data.c:769 msgid "Authority's Power Day" msgstr "Dia del Poder Autoritari" #: src/hd-data.c:770 msgid "Ba'ath Revolution Day" msgstr "Dia de la Revolució Ba'ath" #: src/hd-data.c:771 msgid "Baron Bliss Day" msgstr "Dia del Baró Bliss" #: src/hd-data.c:772 msgid "Bataan Day" msgstr "Dia de Bataan" #: src/hd-data.c:773 msgid "Battle of Angamos" msgstr "Batalla d'Angamos" #: src/hd-data.c:774 msgid "Battle of Boyacá" msgstr "Batalla de Boyacá" #: src/hd-data.c:775 msgid "Battle of Carabobo" msgstr "Batalla de Carabobo" #: src/hd-data.c:776 msgid "Battle of Iquique" msgstr "Batalla de Iquique" #: src/hd-data.c:777 msgid "Battle of Las Piedras" msgstr "Batalla de Las Piedras" #: src/hd-data.c:778 msgid "Battle of Näfels" msgstr "Batalla de Näfels" #: src/hd-data.c:779 msgid "Beginning of Summer" msgstr "Començament de l'Estiu" #: src/hd-data.c:780 msgid "Belgrade's Day" msgstr "Dia de Belgrad" #: src/hd-data.c:781 msgid "Bennington Battle Day" msgstr "Dia de la Batalla de Bennington" #: src/hd-data.c:782 msgid "Blessing of the Water" msgstr "Benedicció de l'Aigua" #: src/hd-data.c:783 msgid "Bloomsday" msgstr "Dia de la Floració" #: src/hd-data.c:784 msgid "Boganda Day" msgstr "Dia de Boganda" #: src/hd-data.c:785 msgid "Bonaire Day" msgstr "Dia de Bonaire" #: src/hd-data.c:786 msgid "Boqueron Battle Day" msgstr "Dia de la Batalla de Boquerón" #: src/hd-data.c:787 msgid "Botswana Day" msgstr "Dia de Botswana" #: src/hd-data.c:788 msgid "Bounty Day" msgstr "Dia de Bounty" #: src/hd-data.c:789 msgid "Bunker Hill Day" msgstr "Dia del Turó del Bunker" #: src/hd-data.c:790 msgid "Burning of Jan Hus" msgstr "Incendi de Jan Hus" #: src/hd-data.c:791 msgid "Canberra Day" msgstr "Dia de Canberra" #: src/hd-data.c:792 msgid "Caricom Day" msgstr "Dia de Caricom" #: src/hd-data.c:793 msgid "Casimir Pulaski's Birthday" msgstr "Aniversari de Casimir Pulaski" #: src/hd-data.c:794 msgid "Cassinga Day" msgstr "Dia de Cassinga" #: src/hd-data.c:795 msgid "Cayenne Festival" msgstr "Festival de Cayenne" #: src/hd-data.c:796 msgid "Cesar Chavez Day" msgstr "Dia de Cesar Chavez" #: src/hd-data.c:797 msgid "Charter Day" msgstr "Dia de Charter" #: src/hd-data.c:798 msgid "Chiang Kai-shek's Birthday" msgstr "Aniversari de Chiang Kai-shek" #: src/hd-data.c:799 msgid "Children's White Sunday" msgstr "Diumenge Blanc de la Infància" #: src/hd-data.c:800 msgid "Colon Day" msgstr "Dia de Colon" #: src/hd-data.c:801 msgid "Colorado Day" msgstr "Dia de Colorado" #: src/hd-data.c:802 msgid "Commonwealth Day" msgstr "Dia de la Commonwealth" #: src/hd-data.c:803 msgid "Compact Day" msgstr "Compact Day" #: src/hd-data.c:804 msgid "Confederal Agreement Day" msgstr "Dia de l'Acord de la Confederació" #: src/hd-data.c:805 msgid "Coronation Day" msgstr "Dia de la Coronació" #: src/hd-data.c:806 msgid "Cup Match Day" msgstr "Dia de la Copa Match" #: src/hd-data.c:807 msgid "Custom Chief's Day" msgstr "Dia del Cap de Vendes" #: src/hd-data.c:808 msgid "C. Mapinduzi Day" msgstr "Dia de C. Mapinduzi" #: src/hd-data.c:809 msgid "Darwin Show Day" msgstr "Dia de la Mostra de Darwin" #: src/hd-data.c:810 msgid "Day of Goodwill" msgstr "Dia de la Bona Voluntat" #: src/hd-data.c:811 msgid "Day of Students Revolt" msgstr "Dia de la Revolta dels Estudiants" #: src/hd-data.c:812 msgid "Day of the Free Laos" msgstr "Dia de Laos Lliure" #: src/hd-data.c:813 msgid "Death of H. Christophe" msgstr "Mort de H. Christophe" #: src/hd-data.c:814 msgid "Death of J. Dessalines" msgstr "Mort de J. Dessalines" #: src/hd-data.c:815 msgid "Death of President Abdallah" msgstr "Mort del President Abdallah" #: src/hd-data.c:816 msgid "Death of President Cheikh" msgstr "Mort del President Cheikh" #: src/hd-data.c:817 msgid "Death of President Soilih" msgstr "Mort del President Soilih" #: src/hd-data.c:818 msgid "Death of Qaid-i-Azam" msgstr "Mort de Qaid-i-Azam" #: src/hd-data.c:819 msgid "Death of T. Louverture" msgstr "Mort de T. Louverture" #: src/hd-data.c:820 msgid "Defenders Day" msgstr "Dia dels Defensors" #: src/hd-data.c:821 msgid "Dia del Padre" msgstr "Dia del Padre" #: src/hd-data.c:822 msgid "Dia de los Maestros" msgstr "Dia de los Maestros" #: src/hd-data.c:823 msgid "Discovery Day" msgstr "Dia del Descobriment" #: src/hd-data.c:824 msgid "Downfall of the Dergue" msgstr "L'Enfonsament de Dergue" #: src/hd-data.c:825 msgid "Dry Season Celebration" msgstr "Celebració de la Sessió Seca" #: src/hd-data.c:826 msgid "Dr. Sun Yat-sen's Birthday" msgstr "Aniversari del Dr. Sun Yat-sen" #: src/hd-data.c:827 msgid "Duarte's Birthday" msgstr "Aniversari de Duarte" #: src/hd-data.c:828 msgid "Easter Tuesday" msgstr "Dimarts de Pasqua" #: src/hd-data.c:829 msgid "Economic Liberation Day" msgstr "Dia de l'Alliberació Econòmica" #: src/hd-data.c:830 msgid "Eight Hours Day" msgstr "Dia de les Vuit Hores" #: src/hd-data.c:831 msgid "Elections for National Assembly" msgstr "Eleccions de l'Assamblea Nacional" #: src/hd-data.c:832 msgid "Errol Barrow Day" msgstr "Dia d'Errol Barrow" #: src/hd-data.c:833 msgid "Evacuation Day" msgstr "Dia de l'Evacuació" #: src/hd-data.c:834 msgid "Eve of Epiphany" msgstr "Vigília de l'Epifania" #: src/hd-data.c:835 msgid "Expedition of the 33" msgstr "Expedició del 33" #: src/hd-data.c:836 msgid "E. Hostos' Birthday" msgstr "Aniversari de E. Hostos" #: src/hd-data.c:837 msgid "Family Day" msgstr "Dia de la Família" #: src/hd-data.c:838 msgid "FAO Day" msgstr "Dia de FAO" #: src/hd-data.c:839 msgid "Farmers' Day" msgstr "Dia dels Grangers" #: src/hd-data.c:840 msgid "Father Leval Day" msgstr "Dia del Pare Leval" #: src/hd-data.c:841 msgid "Feast of Our Theotokos" msgstr "Festa de Nostra Theotokos" #: src/hd-data.c:842 msgid "Fisherman's Day" msgstr "Dia dels Pescadors" #: src/hd-data.c:843 msgid "Foundation of NPLA Day" msgstr "Dia de la Fundació del NPLA" #: src/hd-data.c:844 msgid "Founding of People's Party" msgstr "Fundació del Partit Popular" #: src/hd-data.c:845 msgid "Garifuna Day" msgstr "Dia de Garifuna" #: src/hd-data.c:847 msgid "General San Martin's Anniversary" msgstr "Aniversari del General San Martin" #: src/hd-data.c:848 msgid "Gospel Day" msgstr "Dia de l'Evangeli" #: src/hd-data.c:849 msgid "Guacanaste Day" msgstr "Dia de Guacanaste" #: src/hd-data.c:850 msgid "Gustavus Adolphus' Day" msgstr "Dia de Gustavus Adolphus" #: src/hd-data.c:851 msgid "Heritage Day" msgstr "Dia del Patrimoni" #: src/hd-data.c:852 msgid "Heroes Day" msgstr "Dia dels Herois" #: src/hd-data.c:853 msgid "Hobart Show Day" msgstr "Dia de la Mostra de Hobart" #: src/hd-data.c:854 msgid "Holy Wednesday" msgstr "Dimecres Sant" #: src/hd-data.c:855 msgid "Ho Chi Minh's Birthday" msgstr "Aniversari de Ho Chi Minh" #: src/hd-data.c:856 msgid "Human Rights Day" msgstr "Dia dels Drets Humans" #: src/hd-data.c:857 msgid "Hurricane Supplication Day" msgstr "Dia de la Suplicació a l'Huracà" #: src/hd-data.c:858 msgid "Hurricane Thanksgiving Day" msgstr "Dia d'Agraïment a l'Huracà" #: src/hd-data.c:859 msgid "Independence of Cartagena" msgstr "Independència de Cartagena" #: src/hd-data.c:860 msgid "Independence of Cuenca" msgstr "Independència de Cuenca" #: src/hd-data.c:861 msgid "Independence of Guayaquil" msgstr "Independència de Guayaquil" #: src/hd-data.c:862 msgid "Independence of Quito" msgstr "Independència de Quito" #: src/hd-data.c:863 msgid "Indian Arrival Day" msgstr "Dia de l'Arribada dels Indis" #: src/hd-data.c:864 msgid "Internal Autonomy Day" msgstr "Dia de l'Autonomia Interna" #: src/hd-data.c:865 msgid "Jefferson Davis' Birthday" msgstr "Aniversari de Jefferson Davis" #: src/hd-data.c:866 msgid "June Holiday" msgstr "Festa de Juny" #: src/hd-data.c:867 msgid "J. Barbosa's Birthday" msgstr "Aniversari de J. Barbosa" #: src/hd-data.c:868 msgid "J. Chilembwe Day" msgstr "Dia de J. Chilembwe" #: src/hd-data.c:869 msgid "J. Diego's Birthday" msgstr "Aniversari de J. Diego" #: src/hd-data.c:870 msgid "J. Robert's Birthday" msgstr "Aniversari de J. Robert" #: src/hd-data.c:871 msgid "Kamarampaka Day" msgstr "Dia de Kamarampaka" #: src/hd-data.c:872 msgid "Kartini Day" msgstr "Dia de Kartini" #: src/hd-data.c:873 msgid "Catherine Show Day" msgstr "Dia de la Mostra de Catherine" #: src/hd-data.c:874 msgid "Kiev Day" msgstr "Dia de Kiev" #: src/hd-data.c:875 msgid "Kim Il-Sung's Birthday" msgstr "Aniversari de Kim Il-Sung" #: src/hd-data.c:876 msgid "Kim Jong-Il's Birthday" msgstr "Aniversari de Kim Jong-Il" #: src/hd-data.c:877 msgid "King Kamehameha Day" msgstr "Dia del Rei Kamehameha" #: src/hd-data.c:878 msgid "King Rama I Memorial Day/Chakri" msgstr "Record del Rei Rama I/Chakri" #: src/hd-data.c:879 msgid "King Rama V Memorial Day" msgstr "Record del Rei Rama V" #: src/hd-data.c:880 msgid "Knabenschiessen" msgstr "Knabenschiessen" #: src/hd-data.c:881 msgid "Konstantin and Methodius" msgstr "Konstantin i Methodius" #: src/hd-data.c:882 msgid "Lapp National Holiday" msgstr "Festa Nacional Lapona" #: src/hd-data.c:883 msgid "Launceston Cup Day" msgstr "Dia de la Copa Launceston" #: src/hd-data.c:884 msgid "Liberty Day" msgstr "Dia de la Llibertat" #: src/hd-data.c:885 msgid "Loss of Muslim Nation" msgstr "Pèrdua de la Nació Musulmana" #: src/hd-data.c:886 msgid "Luxembourg City Kermis" msgstr "Kermis de la Ciutat de Luxemburg" #: src/hd-data.c:887 msgid "Lyndon B. Johnson Day" msgstr "Dia de Lyndon b. Johnson" #: src/hd-data.c:888 msgid "L. Rivera's Birthday" msgstr "Aniversari de L. Rivera" #: src/hd-data.c:889 msgid "Madaraka Day" msgstr "Dia de Madaraka" #: src/hd-data.c:890 msgid "Mahatma Gandhi's Birthday" msgstr "Aniversari de Mahatma Gandhi" #: src/hd-data.c:891 msgid "Malvinas Day" msgstr "Dia de les Malvines" #: src/hd-data.c:892 msgid "Manila Day" msgstr "Dia de Manila" #: src/hd-data.c:893 msgid "Maputo City Day" msgstr "Dia de la Ciutat de Maputo" #: src/hd-data.c:894 msgid "Marien Ngouabi Day" msgstr "Dia de Marien Ngouabi" #: src/hd-data.c:895 msgid "Maryland Day" msgstr "Dia de Maryland" #: src/hd-data.c:896 msgid "Melbourne Cup Day" msgstr "Dia de la Copa Melbourne" #: src/hd-data.c:897 msgid "Merchant Day" msgstr "Dia del Comerciant" #: src/hd-data.c:898 msgid "St John's/Midsummers Eve" msgstr "Vigília de Sant Joan" #: src/hd-data.c:899 msgid "Missionary Day" msgstr "Dia dels Missioners" #: src/hd-data.c:900 msgid "Mi-Carême Day" msgstr "Dia de Mi-Carême" #: src/hd-data.c:901 msgid "Morazan Day" msgstr "Dia de Morazan" #: src/hd-data.c:902 msgid "Mosheshoe's Day" msgstr "Dia de Mosheshoe" #: src/hd-data.c:903 msgid "Motherhood and Beauty Day" msgstr "Dia de la Maternitat i la Bellesa" #: src/hd-data.c:904 msgid "Naming Day" msgstr "Dia de l'Anomenament" #: src/hd-data.c:905 msgid "National Bun Day" msgstr "Dia Nacional Bun" #: src/hd-data.c:906 msgid "National Heroes Day" msgstr "Dia dels Herois Nacionals" #: src/hd-data.c:907 msgid "National Redemption Day" msgstr "Dia de la Redempció Nacional" #: src/hd-data.c:908 msgid "National Resistance Day" msgstr "Dia de la Resistència Nacional" #: src/hd-data.c:909 msgid "National Revival Day" msgstr "Dia del Restabliment Nacional" #: src/hd-data.c:910 msgid "National Unity Day" msgstr "Dia de la Unitat Nacional" #: src/hd-data.c:911 msgid "Ndadaye Day" msgstr "Dia de Ndadaye" #: src/hd-data.c:912 msgid "Neutrality Day" msgstr "Dia de la Neutralitat" #: src/hd-data.c:913 msgid "Nevada Day" msgstr "Dia de Nevada" #: src/hd-data.c:914 msgid "New Regime Anniversary" msgstr "Aniversari del Nou Règim" #: src/hd-data.c:915 msgid "Nobel Day" msgstr "Dia de Nobel" #: src/hd-data.c:916 msgid "Noi Day" msgstr "Dia de Noi" #: src/hd-data.c:917 msgid "OAU Day" msgstr "Dia d'OAU" #: src/hd-data.c:918 msgid "October Holiday" msgstr "Festa d'Octubre" #: src/hd-data.c:919 msgid "Oil Industry Day" msgstr "Dia de la Indústria Petrolífera" #: src/hd-data.c:920 msgid "Our Lady of Altagracia Day" msgstr "Nostra Senyora d'Altagracia" #: src/hd-data.c:921 msgid "Our Lady of Camarin Day" msgstr "Nostra Senyora de Camarin" #: src/hd-data.c:922 msgid "Our Lady of Las Mercedes Day" msgstr "Nostra Senyora de Las Mercedes" #: src/hd-data.c:923 msgid "Our Lady of Los Angeles Day" msgstr "Nostra Senyora de Los Angeles" #: src/hd-data.c:924 msgid "Our Lady of Seven Sorrows" msgstr "Nostra Senyora de les Set Penes" #: src/hd-data.c:925 msgid "Our Lady of Victories Day" msgstr "Nostra Senyora de les Victòries" #: src/hd-data.c:926 msgid "Panama City Day" msgstr "Dia de la Ciutat de Panamà" #: src/hd-data.c:927 msgid "Panamerica Day" msgstr "Dia de Panamèrica" #: src/hd-data.c:928 msgid "Paris Peace Agreement Day" msgstr "Dia de la Pau de París" #: src/hd-data.c:929 msgid "Patriot's Day" msgstr "Dia del Patriota" #: src/hd-data.c:930 msgid "People's Uprising Day" msgstr "Dia de la Sublevació Popular" #: src/hd-data.c:931 msgid "People Power Day" msgstr "Dia del Poder Popular" #: src/hd-data.c:932 msgid "Philippine-American Friendship" msgstr "Amistat Filipina-Americana" #: src/hd-data.c:933 msgid "Pichincha Day" msgstr "Dia de Pichincha" #: src/hd-data.c:934 msgid "Picnic Day" msgstr "Dia de Picnic" #: src/hd-data.c:935 msgid "Pioneer Day" msgstr "Dia de Pioneer" #: src/hd-data.c:936 msgid "Poya Day" msgstr "Dia de Poya" #: src/hd-data.c:937 msgid "Prince Kalanianaole Day" msgstr "Dia del Príncep Kalanianaole" #: src/hd-data.c:938 msgid "Prince of Wales' Birthday" msgstr "Aniversari del Príncep de Gal·les" #: src/hd-data.c:939 msgid "Proclamation Day" msgstr "Dia de la Proclamació" #: src/hd-data.c:940 msgid "Qaid-i-Azam's Birthday" msgstr "Aniversari de Qaid-i-Azam" #: src/hd-data.c:941 msgid "Ratu Sukuma Day" msgstr "Dia de Ratu Sukuma" #: src/hd-data.c:942 msgid "Recreation Day" msgstr "Dia de la Recreació" #: src/hd-data.c:943 msgid "Referendum Day" msgstr "Dia del Referèndum" #: src/hd-data.c:944 msgid "Regatta Day" msgstr "Dia de Regatta" #: src/hd-data.c:945 msgid "Regency Exchange" msgstr "Intercanvi de Regència" #: src/hd-data.c:946 msgid "Restoration Day" msgstr "Dia de la Restauració" #: src/hd-data.c:947 msgid "Return Day" msgstr "Dia del Retorn" #: src/hd-data.c:948 msgid "Reunification Day" msgstr "Dia de la Reunificació" #: src/hd-data.c:949 msgid "Rizal Day" msgstr "Dia de Rizal" #: src/hd-data.c:950 msgid "Rwagasore Day" msgstr "Dia de Rwagasore" #: src/hd-data.c:951 msgid "Saba Day" msgstr "Dia de Saba" #: src/hd-data.c:952 msgid "San Jacinto Day" msgstr "Dia de San Jacinto" #: src/hd-data.c:953 msgid "San José Day" msgstr "Dia de San José" #: src/hd-data.c:954 msgid "SAR Establishment Day" msgstr "Dia de l'Establiment de SAR" #: src/hd-data.c:955 msgid "School Holiday" msgstr "Festa de l'Escola" #: src/hd-data.c:956 msgid "Sechseläuten" msgstr "Sechseläuten" #: src/hd-data.c:957 msgid "Separation Day" msgstr "Dia de la Separació" #: src/hd-data.c:958 msgid "Seretse Khama Day" msgstr "Dia de Seretse Khama" #: src/hd-data.c:959 msgid "Settlers Day" msgstr "Dia dels Colons" #: src/hd-data.c:960 msgid "Seward's Day" msgstr "Dia de Seward" #: src/hd-data.c:961 msgid "Shaheed Day" msgstr "Dia de Shaheed" #: src/hd-data.c:962 msgid "Sheep Festival" msgstr "Festival de l'Ovella" #: src/hd-data.c:963 msgid "Sheikh Zayed's Ascension Day" msgstr "Dia de l'Ascensió de Xeic Zayed" #: src/hd-data.c:964 msgid "Simon Bolivar's Day" msgstr "Dia de Simon Bolivar" #: src/hd-data.c:965 msgid "Sinai-Liberation Day" msgstr "Dia de l'Alliberació del Sinaí" #: src/hd-data.c:966 msgid "Slave-Liberation Day" msgstr "Dia de l'Alliberació dels Esclaus" #: src/hd-data.c:967 msgid "Sniff the Breeze Day" msgstr "Dia d'Ensumar la Brisa" #: src/hd-data.c:968 msgid "Solidarity Day" msgstr "Dia de la Solidaritat" #: src/hd-data.c:969 msgid "Somers Day" msgstr "Dia de Somers" #: src/hd-data.c:970 msgid "Statia-American Day" msgstr "Dia de la Statia-Americana" #: src/hd-data.c:971 msgid "Student's Day" msgstr "Dia de l'Estudiant" #: src/hd-data.c:972 msgid "St Agata Day" msgstr "Dia de Santa Àgata" #: src/hd-data.c:973 msgid "St Canute's Day" msgstr "Dia de Sant Canute" #: src/hd-data.c:974 msgid "St Cedilia's Day" msgstr "Dia de Santa Cedilia" #: src/hd-data.c:975 msgid "St Charles' Day" msgstr "Dia de Sant Carles" #: src/hd-data.c:976 msgid "St Demetrius' Day" msgstr "Dia de Sant Demetrius" #: src/hd-data.c:977 msgid "St Dévote Day" msgstr "Dia de Sant Dévote" #: src/hd-data.c:978 msgid "St Eliah's Day" msgstr "Dia de Sant Eliah" #: src/hd-data.c:979 msgid "St Jean Baptiste Day" msgstr "Dia de Sant Jean Baptiste" #: src/hd-data.c:980 msgid "St Lucia's Day" msgstr "Dia de Santa Lucia" #: src/hd-data.c:981 msgid "St Marguerite's Day" msgstr "Dia de Santa Margarida" #: src/hd-data.c:982 msgid "St Maroon's Day" msgstr "Dia de Sant Maroon" #: src/hd-data.c:983 msgid "St Michael's Day" msgstr "Dia de Sant Miquel" #: src/hd-data.c:984 msgid "St Olav's Day" msgstr "Dia de Sant Olav" #: src/hd-data.c:985 msgid "St Olav's Eve" msgstr "Vigília de Sant Olav" #: src/hd-data.c:986 msgid "St Paul's Shipswreck" msgstr "Naufragi de Sant Pol" #: src/hd-data.c:987 msgid "St Rose of Lima" msgstr "Santa Rosa de Lima" #: src/hd-data.c:988 msgid "St Ursula's Day" msgstr "Dia de Santa Úrsula" #: src/hd-data.c:989 msgid "St Vincent de Paul's Day" msgstr "Dia de Sant Vincent de Paul" #: src/hd-data.c:990 msgid "Suez Victory Day" msgstr "Dia de la Victòria de Suez" #: src/hd-data.c:991 msgid "Sultan Qaboos' Birthday" msgstr "Aniversari del Sultà Qaboos" #: src/hd-data.c:992 msgid "Svetitskhovloba" msgstr "Svetitskhovloba" #: src/hd-data.c:993 msgid "Sweden Day" msgstr "Dia de Suècia" #: src/hd-data.c:994 msgid "S. Doe's Birthday" msgstr "Aniversari de S. Doe" #: src/hd-data.c:995 msgid "Tennant-Creek Show Day" msgstr "Dia de la Mostra de Tennant-Creek" #: src/hd-data.c:996 msgid "Territory Day" msgstr "Dia del Territori" #: src/hd-data.c:997 msgid "The Crown Princesse's Birthday" msgstr "Aniversari de la Princesa Reial" #: src/hd-data.c:998 msgid "The Crown Princesse's Name-Day" msgstr "Sant de la Princesa Reial" #: src/hd-data.c:999 msgid "The Crown Prince's Birthday" msgstr "Aniversari del Príncep Hereu" #: src/hd-data.c:1000 msgid "The King's Name-Day" msgstr "Sant del Rei" #: src/hd-data.c:1001 msgid "The Queen's Name-Day" msgstr "Sant de la Reina" #: src/hd-data.c:1002 msgid "Topou I Day" msgstr "Dia de Topou I" #: src/hd-data.c:1003 msgid "Town Meeting Day" msgstr "Dia de la Trobada de la Vila" #: src/hd-data.c:1004 msgid "Traditional Day" msgstr "Dia de la Tradició" #: src/hd-data.c:1005 msgid "Transfer Day" msgstr "Dia de la Transferència" #: src/hd-data.c:1006 msgid "Truman Day" msgstr "Dia de Truman" #: src/hd-data.c:1007 msgid "Union Day" msgstr "Dia de l'Unió" #: src/hd-data.c:1008 msgid "Union with Sweden dissolved" msgstr "Dissolució de l'Unió amb Suècia" #: src/hd-data.c:1009 msgid "United Nations Day" msgstr "Dia de les Nacions Unides" #: src/hd-data.c:1010 msgid "Unity Factory Day" msgstr "Dia de la Unitat Fabril" #: src/hd-data.c:1011 msgid "Victor-Schoelcher Day" msgstr "Dia de Victor-Schoelcher" #: src/hd-data.c:1012 msgid "Vidovdan" msgstr "Vidovdan" #: src/hd-data.c:1013 msgid "West Virginia Day" msgstr "Dia de West Virginia" #: src/hd-data.c:1014 msgid "Whitsun Eve" msgstr "Vigília de la Segona Pasqua" #: src/hd-data.c:1015 msgid "W. Tubman's Birthday" msgstr "Aniversari de W. Tubman" #: src/hd-data.c:1016 msgid "Yap Day" msgstr "Dia de Yap" #: src/hd-data.c:1017 msgid "Day of Czech Statehood" msgstr "" #: src/hd-data.c:1082 msgid "Zi/Rat" msgstr "Zi/Rata" #: src/hd-data.c:1082 msgid "Chou/Ox" msgstr "Chou/Bou" #: src/hd-data.c:1083 msgid "Yin/Tiger" msgstr "Yin/Tigre" #: src/hd-data.c:1083 msgid "Mao/Rabbit" msgstr "Mao/Conill" #: src/hd-data.c:1084 msgid "Chen/Dragon" msgstr "Chen/Drac" #: src/hd-data.c:1084 msgid "Si/Snake" msgstr "Si/Serp" #: src/hd-data.c:1085 msgid "Wu/Horse" msgstr "Wu/Cavall" #: src/hd-data.c:1085 msgid "Wei/Sheep" msgstr "Wei/Ovella" #: src/hd-data.c:1086 msgid "Shen/Monkey" msgstr "Shen/Mico" #: src/hd-data.c:1086 msgid "You/Rooster" msgstr "You/Gall" #: src/hd-data.c:1087 msgid "Xu/Dog" msgstr "Xu/Gos" #: src/hd-data.c:1087 msgid "Hai/Pig" msgstr "Hai/Porc" #: src/hd-data.c:1284 msgid "Ast" msgstr "Ast" #: src/hd-data.c:1397 src/hd-data.c:1480 msgid "Bah" msgstr "Bah" #: src/hd-data.c:1547 msgid "Cel" msgstr "Cel" #: src/hd-data.c:1689 src/hd-data.c:2222 msgid "Chi" msgstr "Xin" #: src/hd-data.c:1803 src/hd-data.c:2322 src/hd-data.c:3839 #, 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:2224 src/hd-data.c:3727 msgid "Jap" msgstr "Jap" #: src/hd-data.c:2420 msgid "Chr" msgstr "Cri" #: src/hd-data.c:2654 src/hd-data.c:4171 msgid "FRR" msgstr "RFF" #: src/hd-data.c:2775 src/hd-data.c:2957 msgid "Heb" msgstr "Heb" #: src/hd-data.c:3187 src/hd-data.c:3616 msgid "Isl" msgstr "Isl" #: src/hd-data.c:4241 src/hd-data.c:4336 msgid "AMO" msgstr "MAA" #: src/hd-data.c:4262 src/hd-data.c:4334 msgid "EGO" msgstr "EGA" #: src/hd-data.c:4444 msgid "OxN" msgstr "OxN" #: src/hd-data.c:4446 msgid "OxO" msgstr "OxA" #: src/hd-data.c:4647 src/hd-data.c:4776 msgid "Per" msgstr "Per" #: src/hd-data.c:4844 msgid "Zod" msgstr "Zod" #: src/hd-use.c:928 msgid " day" msgstr " dia" #: src/hd-use.c:1973 src/hd-use.c:1978 src/hd-use.c:1982 src/hd-use.c:1989 #: src/hd-use.c:1993 src/hd-use.c:2089 src/hd-use.c:2273 msgid "Eternal holiday list" msgstr "Llista eterna de festes" #: src/hd-use.c:1977 #, 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:1981 #, 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:1988 #, c-format msgid "%s:%*sThe year %d is A leap year" msgstr "%s:%*sL'any %d és de traspàs" #: src/hd-use.c:1992 #, 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:2242 #, c-format msgid " = %+4d day" msgstr " = %+4d dia" #: src/hd-use.c:2244 #, c-format msgid " = %+4d days" msgstr " = %+4d dies" #: src/hd-use.c:2271 #, 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:64 #, 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:74 msgid "# Day number (must be defined)" msgstr "# Nombre del dia (s'ha de definir)" #: src/help.c:75 msgid "# Year number (must be defined)" msgstr "# Nombre de l'any (s'ha de definir)" #: src/help.c:76 msgid "# Weekday name (may be defined)" msgstr "# Nom del dia (es pot definir)" #: src/help.c:77 msgid "Month group (exactly one member must be defined):" msgstr "Mes (s'ha de definir exactament un element):" #: src/help.c:78 msgid "# Month number" msgstr "# Nombre del mes" #: src/help.c:79 msgid "# Month name" msgstr "# Nom del mes" #: src/help.c:80 msgid "Highlighting group (all members must be defined):" msgstr "Ressalt (s'han de definir tots els elements):" #: src/help.c:81 msgid "Start of highlighting sequence/marking character" msgstr "Inici de la seqüència de ressalt/caràcter indicador" #: src/help.c:83 msgid "End of highlighting sequence/marking character" msgstr "Fi de la seqüència de ressalt/caràcter indicador" #: src/help.c:85 msgid "Character replacement:" msgstr "Substitució de caràcters:" #: src/help.c:86 #, c-format msgid "Space/blank ('%c') character" msgstr "Caràcter ('%c') espai en blanc" #: src/help.c:87 #, c-format msgid "Underscore ('%c') character" msgstr "Caràcter ('%c') guió baix" #: src/help.c:88 #, c-format msgid "Percent ('%c') character" msgstr "Caràcter ('%c') tant per cent" #: src/help.c:89 #, c-format msgid "Backslash ('%c') character" msgstr "Caràcter ('%c') barra invertida" #: src/help.c:90 msgid "All format elements marked by # may optionally" msgstr "Tots els elements de format marcats amb un # poden contenir" #: src/help.c:91 msgid "contain a format instruction, which template is like:" msgstr "una instrucció de format, d'acord amb el següent model:" #: src/help.c:92 msgid "[ALIGNMENT [SIGN] [ZERO] WIDTH [STYLE] [SUFFIX] FORMAT]" msgstr "[ALINIAMENT [SIGNE] [ZERO] AMPLADA [ESTIL] [SUFIX] FORMAT]" #: src/help.c:93 msgid "ALIGNMENT group (exactly one member must be defined):" msgstr "ALINIAMENT (s'ha de definir exactament un element):" #: src/help.c:94 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:96 msgid "Field contents placed in centered manner using width WIDTH" msgstr "Centra el contingut del camp, usant l'amplada AMPLADA" #: src/help.c:98 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:100 msgid "SIGN (may be defined):" msgstr "SIGNE (es pot definir)" #: src/help.c:101 msgid "Numerical value is provided with leading sign" msgstr "Escriu el valor numèric precedit pel signe" #: src/help.c:102 msgid "ZERO (may be defined):" msgstr "ZERO (es pot definir):" #: src/help.c:103 msgid "Numerical value is filled with leading zero(es)" msgstr "El valor numèric s'ajusta amb zeros a l'esquerra" #: src/help.c:104 msgid "WIDTH (must be defined):" msgstr "AMPLADA (s'ha de definir):" #: src/help.c:105 #, c-format msgid "Field has the width N (%d...%d)" msgstr "Defineix l'amplada del camp en N (%d...%d)" #: src/help.c:106 msgid "STYLE group (exactly one member may be defined):" msgstr "ESTIL (es pot definir exactament un membre):" #: src/help.c:107 msgid "Field contents is converted to upper-case letters" msgstr "Converteix el contingut del camp a lletres majúscules" #: src/help.c:108 msgid "Field contents is converted to lower-case letters" msgstr "Converteix el contingut del camp a lletres minúscules" #: src/help.c:109 msgid "Field contents is converted to capitalized words" msgstr "Converteix la primera lletra de cada paraula a majúscula" #: src/help.c:110 msgid "SUFFIX (may be defined):" msgstr "SUFIX (es pot definir):" #: src/help.c:111 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:113 msgid "FORMAT group (exactly one member must be defined):" msgstr "FORMAT (s'ha de definir exactament un membre):" #: src/help.c:114 msgid "Field contents is not cut after position WIDTH" msgstr "El contingut del camp no es talla a la posició AMPLADA" #: src/help.c:115 msgid "Field contents is cut after position WIDTH" msgstr "El contingut del camp es talla a la posició AMPLADA" #: src/help.c:129 msgid "legal holidays" msgstr "totes les festes oficials" #: src/help.c:130 msgid "holidays" msgstr "tots els dies festius" #: src/help.c:131 msgid "Mondays" msgstr "tots els dilluns" #: src/help.c:132 msgid "Tuesdays" msgstr "tots els dimarts" #: src/help.c:133 msgid "Wednesdays" msgstr "tots els dimecres" #: src/help.c:134 msgid "Thursdays" msgstr "tots els dijous" #: src/help.c:135 msgid "Fridays" msgstr "tots els divendres" #: src/help.c:136 msgid "Saturdays" msgstr "tots els dissabtes" #: src/help.c:137 msgid "Sundays" msgstr "tots els diumenges" #: src/help.c:138 msgid "Mondays...Thursdays" msgstr "tots els dilluns...dijous" #: src/help.c:139 msgid "Mondays...Fridays" msgstr "tots els dilluns...divendres" #: src/help.c:169 #, 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:242 msgid "OPTION" msgstr "OPCIÓ" #: src/help.c:255 msgid " Display help text and quit program" msgstr " Mostra el text d'ajuda i surt" #: src/help.c:272 msgid " Display extended help text and quit program" msgstr " Mostra el text d'ajuda detallat i surt" #: src/help.c:290 msgid " Display software license and quit program" msgstr " Mostra la llicència i surt" #: src/help.c:301 msgid " Display version information and quit program" msgstr " Mostra informació sobre la versió i surt" #: src/help.c:312 #, 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:325 #, c-format msgid " Create response file for the `%cFILE' option" msgstr " Crea un fitxer de resposta per l'opció `%cFILE'" #: src/help.c:329 #, 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:343 #, 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:345 #, c-format msgid " %-3s = File name of the shell script" msgstr " %-3s = Nom de fitxer del shell script" #: src/help.c:359 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:363 #, 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:368 #, 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:380 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:392 #, c-format msgid " Define global text variable(s) \"TVAR->%ca...%cz\"" msgstr " Defineix la variable global de text \"TVAR->%ca...%cz\"" #: src/help.c:397 #, 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:402 #, 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:408 #, 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:413 #, 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:425 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:437 src/help.c:467 #, 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:442 #, 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:447 msgid " is a LOWER-CASE-LETTER, it means a non-exclusion!" msgstr " LLETRA MINÚSCULA, significa no exclusió!" #: src/help.c:451 #, c-format msgid " %c = Exclusion of all %s" msgstr " %c = Exclusió de %s" #: src/help.c:472 #, 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:476 #, c-format msgid " expressions separated by `%s' characters" msgstr " expressions separades per caràcters `%s'" #: src/help.c:489 #, 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:494 #, c-format msgid " %-3s = Any text respectively \"regular expression\" you like" msgstr " %-3s = Qualsevol text per cada \"expressió regular\" que volgueu" #: src/help.c:507 #, 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:519 #, c-format msgid " Revert the sense of matching of the `%s' option" msgstr " Inverteix el sentit de l'opció `%s'" #: src/help.c:530 msgid " Display some debug information" msgstr " Mostra informació per a la depuració del programa" #: src/help.c:538 #, 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:547 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:555 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:563 msgid " = all Like `handled' and `unhandled' together" msgstr " = all Com `handled' i `unhandled' junts" #: src/help.c:571 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:581 msgid " Use special format for calendar sheet" msgstr " Usa un format especial pel full del calendari" #: src/help.c:584 msgid " [MOD] = - Use standard format for calendar sheet" msgstr " [MOD] = - Usa el format estàndard pel full del calendari" #: src/help.c:595 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:605 msgid " Provide calendar sheet with week numbers" msgstr " Escriu el calendari amb els nombres setmanals" #: src/help.c:616 #, c-format msgid " Determine type of week numbers (actual: %s)" msgstr " Determina el tipus de nombres setmanals (actual: %s)" #: src/help.c:617 msgid "Standard" msgstr "Estàndard" #: src/help.c:623 #, 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:630 msgid " = no Standard week numbers" msgstr " = no Nombres setmanals estàndards" #: src/help.c:641 msgid " Suppress output of calendar sheet explicitly" msgstr " Suprimeix explícitament la sortida del full del calendari" #: src/help.c:654 #, c-format msgid " Direct output through external `%s' pager" msgstr " Dirigeix la sortida cap al paginador extern `%s'" #: src/help.c:660 src/help.c:662 msgid " Direct output through simple internal pager" msgstr " Dirigeix la sortida cap al paginador intern simple" #: src/help.c:679 msgid " Disable highlighting of text, holiday resp., actual day" msgstr " Desactiva el ressalt de text, de festius, i dia actual" #: src/help.c:694 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:706 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:710 #, 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:715 #, 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:720 #, 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:731 msgid " Modify format of year calendar" msgstr " Modifica el format del calendari anual" #: src/help.c:735 #, 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:747 msgid " Use consecutive day of year in calendar sheet" msgstr " Usa els dies de l'any en el full del calendari" #: src/help.c:751 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:763 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:767 src/help.c:783 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:779 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:794 #, c-format msgid " Set starting day of week (actual: %s)" msgstr " Defineix el dia inicial de la setmana (actual: %s)" #: src/help.c:827 #, 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:856 msgid "UNKNOWN" msgstr "DESCONEGUT" #: src/help.c:859 #, 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:877 #, 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:880 msgid " n = Legal days and memorial days" msgstr " n = Dies oficials i commemoratius" #: src/help.c:882 msgid " N = Legal days only" msgstr " N = Només dies oficials" #: src/help.c:884 src/help.c:1630 #, c-format msgid " [MOD] = %s Descending sort order" msgstr " [MOD] = %s Ordre descendent" #: src/help.c:896 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:906 msgid " Exclude title of eternal holiday list" msgstr " Exclou el títol de la llista eterna de festes" #: src/help.c:918 msgid " Provide eternal holiday list with astronomical data" msgstr " Escriu la llista amb dades astronòmiques" #: src/help.c:930 msgid " Provide eternal holiday list with Bahá'i calendar holidays" msgstr " Escriu la llista amb les festes del calendari Bahá'i" #: src/help.c:942 msgid " Provide eternal holiday list with Bahá'i calendar months" msgstr " Escriu la llista amb els mesos del calendari Bahá'i" #: src/help.c:954 msgid " Provide eternal holiday list with Celtic calendar holidays" msgstr " Escriu la llista amb els dies festius celtes" #: src/help.c:966 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:978 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:990 msgid " Provide eternal holiday list with Chinese calendar holidays" msgstr " Escriu la llista amb les festes del calendari xinès" #: src/help.c:1002 msgid " Provide eternal holiday list with Chinese calendar months" msgstr " Escriu la llista amb els mesos del calendari xinès" #: src/help.c:1014 msgid "" " Provide eternal holiday list with Christian Western calendar " "holidays" msgstr "" " Escriu la llista amb les festes del calendari cristià occidental" #: src/help.c:1026 msgid " Provide eternal holiday list with Coptic calendar months" msgstr " Escriu la llista amb els mesos del calendari copte" #: src/help.c:1038 msgid " Provide eternal holiday list with Ethiopic calendar months" msgstr " Escriu la llista amb els mesos del calendari etiòpic" #: src/help.c:1050 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:1062 msgid " Provide eternal holiday list with Hebrew calendar holidays" msgstr " Escriu la llista amb les festes del calendari hebreu" #: src/help.c:1074 msgid " Provide eternal holiday list with Hebrew calendar months" msgstr " Escriu la llista amb els mesos del calendari hebreu" #: src/help.c:1086 msgid "" " Provide eternal holiday list with Indian civil-calendar months" msgstr " Escriu la llista amb els mesos del calendari indi civil" #: src/help.c:1098 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:1110 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:1122 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:1134 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:1146 msgid " Provide eternal holiday list with Japanese calendar holidays" msgstr " Escriu la llista amb les festes del calendari japonès" #: src/help.c:1158 msgid " Provide eternal holiday list with Japanese calendar months" msgstr " Escriu la llista amb els mesos del calendari japonès" #: src/help.c:1171 msgid "" " Provide eternal holiday list with multicultural New Year holidays" msgstr " Escriu la llista amb les festes d'any nou \"multiculturals\"" #: src/help.c:1183 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:1195 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:1207 msgid "" " Provide eternal holiday list with Orthodox new-calendar holidays" msgstr " Escriu la llista amb les festes del nou calendari ortodox" #: src/help.c:1219 msgid "" " Provide eternal holiday list with Orthodox old-calendar holidays" msgstr " Escriu la llista amb les festes del vell calendari ortodox" #: src/help.c:1231 msgid "" " Provide eternal holiday list with Persian Jalaali-calendar holidays" msgstr " Escriu la llista amb les festes del calendari persa" #: src/help.c:1243 msgid "" " Provide eternal holiday list with Persian Jalaali-calendar months" msgstr " Escriu la llista amb els mesos del calendari persa" #: src/help.c:1255 msgid " Provide eternal holiday list with zodiacal marker data" msgstr " Escriu la llista amb dades del zodíac" #: src/help.c:1267 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:1271 #, 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:1276 #, 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:1281 msgid " marked by # have an incomplete recording of holidays" msgstr " amb un signe # tenen un registre de festes incomplet" #: src/help.c:1285 #, c-format msgid " %-*s = Holidays in %s" msgstr " %-*s = Festes a %s" #: src/help.c:1306 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:1310 #, 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:1321 msgid " Set base data of Earth's atmosphere" msgstr " Defineix les dades base de l'atmosfera terrestre" #: src/help.c:1325 #, 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:1328 #, c-format msgid " Air pressure in Millibar (actual: %.3f)" msgstr " Pressió de l'aire en mil·libars (actual: %.3f)" #: src/help.c:1333 #, c-format msgid " Air temperature in degrees Celsius (actual: %+.3f)" msgstr " Temperatura de l'aire en graus centígrads (actual: %+.3f)" #: src/help.c:1343 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:1355 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:1365 #, c-format msgid " Execute `%c%c[%s]' shell commands" msgstr " Executa les ordres `%c%c[%s]' de l'intèrpret (shell)" #: src/help.c:1368 #, fuzzy, c-format msgid " and \"TVAR[%s|%c%s]COMMAND\" assignments" msgstr " i les assignacions \"TVAR[%s|%c%s]ORDRE\"" #: src/help.c:1380 msgid " Change base time of astronomical functions" msgstr " Canvia el temps base de les respectives funcions" #: src/help.c:1383 msgid " respectively, change cycle-starting time" msgstr " astronòmiques, canvia l'hora d'inici del cicle" #: src/help.c:1393 #, 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:1401 #, 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:1417 msgid " Change cycle-ending time" msgstr " Canvia l'hora del final del cicle" #: src/help.c:1421 #, 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:1435 msgid " Change cycle-timestep" msgstr " Canvia la durada del cicle" #: src/help.c:1439 #, 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:1452 msgid " Change base year of calendar" msgstr " Canvia l'any base del calendari" #: src/help.c:1456 #, 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:1468 msgid " Set period of Gregorian Reformation" msgstr " Defineix el període de la reforma gregoriana" #: src/help.c:1470 #, 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:1476 #, 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:1484 #, 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:1498 #, 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:1501 #, c-format msgid " Actual: (%s) `%s' (%s)" msgstr " Actual: (%s) `%s' (%s)" #: src/help.c:1503 msgid "self-defined" msgstr "autodefinit" #: src/help.c:1508 #, c-format msgid " %-6s = Format is: `%s' (%s)" msgstr " %-6s = El format és: `%s' (%s)" #: src/help.c:1516 #, 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:1559 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:1563 #, 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:1568 #, 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:1573 msgid "" " the preceding special characters in an individual date format," msgstr "" " caràcters especials precedents en un format de data individual," #: src/help.c:1577 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:1581 msgid " they are used by the character set used in Germany" msgstr " en el joc de caràcters utilitzat a Alemanya" #: src/help.c:1590 #, c-format msgid "+++ FIXED DATES +++" msgstr "+++ DATES FIXES +++" #: src/help.c:1611 #, 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:1616 #, 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:1620 src/help.c:2160 msgid " Implies period: Today" msgstr " Implica el període: Avui" #: src/help.c:1624 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:1628 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:1640 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:1653 #, 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:1656 #, fuzzy, c-format msgid " Actual: `%s'" msgstr " = %s Endarrera" #: src/help.c:1669 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:1681 msgid " 1. Representation of text" msgstr " 1. Representació del text" #: src/help.c:1693 msgid " = Set width of the biorhythm text graphics" msgstr " = Defineix l'amplada del gràfic del bioritme" #: src/help.c:1697 #, c-format msgid " %-3s = %d...%d Length of a single axis" msgstr " %-3s = %d...%d Longitud de l'eix" #: src/help.c:1710 msgid " = Set height of the Moon phase text graphics" msgstr "" " = Defineix l'alçada del gràfic de la fase lunar" #: src/help.c:1714 #, c-format msgid " %-3s = %d...%d Total number of lines" msgstr " %-3s = %d...%d Nombre total de línies" #: src/help.c:1726 msgid " # a = Display origin of fixed date" msgstr " # a = Mostra l'orígen de la data fixa" #: src/help.c:1738 msgid " # A = Display using alternative list format" msgstr " # A = Usa un format de llista alternatiu" #: src/help.c:1750 msgid " # e = Include legal days and memorial days" msgstr " # e = Inclou els dies oficials i commemoratius" #: src/help.c:1752 msgid " # E = Include legal days only" msgstr " # E = Inclou només els dies oficials" #: src/help.c:1762 msgid " # k = Display week number" msgstr " # k = Mostra els nombres setmanals" #: src/help.c:1774 msgid " # o = Omit repeating date part of fixed dates" msgstr " # o = Omet la part repetitiva de les dates fixes" #: src/help.c:1786 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:1798 msgid " # U = Suppress date part of fixed dates" msgstr " # U = Suprimeix la data de les dates fixes" #: src/help.c:1810 msgid " # J = Suppress text part of fixed dates" msgstr " # J = Suprimeix el text de les dates fixes" #: src/help.c:1822 msgid " # x = Exclude title of fixed date list" msgstr " # x = Exclou el títol de la llista de dates fixes" #: src/help.c:1834 msgid " # z = Display consecutive number of fixed date" msgstr " # z = Mostra el nombre consecutiu de la data fixa" #: src/help.c:1846 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:1854 msgid " 2. Respected period" msgstr " 2. Període respectat" #: src/help.c:1866 msgid " = Manage `29-FEBRUARY' in non-leap years" msgstr " = Considera el 29 de Febrer en anys corrents" #: src/help.c:1874 #, c-format msgid " %-3s = february Respect at `28-FEBRUARY'" msgstr " %-3s = february Respecte el 28 de Febrer" #: src/help.c:1883 #, c-format msgid " %-3s = march Respect at `01-MARCH'" msgstr " %-3s = march Respecte l'1 de Març" #: src/help.c:1896 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:1908 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:1924 msgid " # Nd = Single absolute day N" msgstr " # Nd = Dia absolut N" #: src/help.c:1926 #, c-format msgid " # %cdN = Single absolute day N" msgstr " # %cdN = Dia absolut N" #: src/help.c:1931 msgid " # NMOD = Single day N relative to today" msgstr " # NMOD = Dia N relatiu a la data actual" #: src/help.c:1933 #, c-format msgid " MOD = %s Forwards" msgstr " MOD = %s Endavant" #: src/help.c:1935 #, c-format msgid " = %s Backwards" msgstr " = %s Endarrera" #: src/help.c:1938 msgid " # Nw = Complete week N" msgstr " # Nw = Setmana completa N" #: src/help.c:1942 msgid "" " N = 0 1st week / last week of previous year" msgstr "" " N = 0 1a / última setmana de l'any passat" #: src/help.c:1946 msgid " N = 1...52 1st...52nd week (always)" msgstr " N = 1...52 1a...52a setmana (sempre)" #: src/help.c:1950 msgid " N = 53 53rd week (sometimes)" msgstr " N = 53 53a setmana (de vegades)" #: src/help.c:1952 msgid " N = 99 Last week" msgstr " N = 99 Última setmana" #: src/help.c:1955 #, c-format msgid " # %s%s = Single day %s of month %s" msgstr " # %s%s = Dia %s del mes %s" #: src/help.c:1961 #, 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:1966 #, 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:1971 #, c-format msgid " N = 5 5th weekday %s (sometimes)" msgstr "" " N = 5 5è dia %s de la setmana (de vegades)" #: src/help.c:1975 #, c-format msgid " N = 9 Last weekday %s" msgstr " N = 9 Últim dia %s de la setmana" #: src/help.c:1979 #, c-format msgid " # %cdN%s = Single N'th weekday %s" msgstr " # %cdN%s = Dia N de la setmana %s" #: src/help.c:1984 #, 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:1989 #, 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:1993 #, c-format msgid " N = 99 Last weekday %s" msgstr " N = 99 Últim dia %s de la setmana" #: src/help.c:1998 #, c-format msgid " # %cwN%s = Single weekday %s of N'th week" msgstr " # %cwN%s = Dia %s de la setmana N" #: src/help.c:2003 #, 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:2008 #, 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:2013 #, 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:2017 #, c-format msgid " N = 99 %s of last week" msgstr " N = 99 %s de l'última setmana" #: src/help.c:2023 #, 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:2029 #, 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:2035 #, 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:2041 #, 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:2047 #, 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:2053 #, 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:2061 msgid " # t|T = List tomorrow" msgstr " # t|T = Llista de demà" #: src/help.c:2078 msgid " # w|W[MOD] = List complete week" msgstr " # w|W[MOD] = Llista de la setmana completa" #: src/help.c:2082 #, 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:2087 #, 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:2107 msgid " # m|M[MOD] = List complete month" msgstr " # m|m[MOD] = Llista del mes complet" #: src/help.c:2111 #, 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:2116 #, 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:2136 msgid " # y|Y[MOD] = List complete year" msgstr " # y|Y[MOD] = Llista de l'any complet" #: src/help.c:2140 #, 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:2145 #, 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:2158 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:2164 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:2168 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:2172 #, 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:2183 msgid " Define additional resource file line" msgstr " Defineix una línia adicional en el fitxer de recursos" #: src/help.c:2185 #, c-format msgid " %-3s = Any possible resource file line" msgstr " %-3s = Qualsevol línia possible del fitxer de recursos" #: src/help.c:2195 #, c-format msgid "%cDATE" msgstr "%cDATA" #: src/help.c:2197 msgid "Use given `DATE' instead of today's date" msgstr "Usa `DATA' en lloc de la data actual" #: src/help.c:2201 #, 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:2208 #, 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:2217 #, c-format msgid "%cFILE" msgstr "%cFITXER" #: src/help.c:2219 msgid "Preload options and commands from `FILE'" msgstr "Carrega les opcions i ordres de `FITXER'" #: src/help.c:2223 msgid "COMMAND" msgstr "ORDRE" #: src/help.c:2225 #, c-format msgid "%s = Month in range: %d...%d" msgstr "%s = Mes, entre %d i %d" #: src/help.c:2230 #, 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:2235 #, 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:2241 #, 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:2247 #, c-format msgid "%s%*s = Year in range: %d...%d" msgstr "%s%*s = Any, entre %d i %d" #: src/help.c:2251 #, 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:2256 #, 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:2282 #, 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:2285 #, 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:2289 #, 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:2293 #, c-format msgid " %sV, %s Display version information and quit program" msgstr " %sV, %s Mostra informació sobre la versió i surt" #: src/help.c:2301 #, c-format msgid " %sp, %s Direct output through external `%s' pager" msgstr " %sp, %s Dirigeix la sortida al paginador extern `%s'" #: src/help.c:2308 src/help.c:2313 #, c-format msgid " %sp, %s Direct output through simple internal pager" msgstr " %sp, %s Dirigeix la sortida al paginador intern simple" #: src/help.c:2338 msgid "This software doesn't claim completeness, correctness or usability." msgstr "Aquest programa pot no ser complet, correcte, o utilitzable." #: src/help.c:2342 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:2346 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:2350 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:2352 msgid "agreement, which binds you LEGALLY !!" msgstr "us vincula LEGALMENT !!" #: src/help.c:2357 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:2361 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:2365 #, 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:2367 msgid "any later version." msgstr "elecció, qualsevol altra versió posterior." #: src/help.c:2372 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:2374 msgid "along with this program; if not, write to the:" msgstr "junt amb aquest programa; en cas contrari, escriviu a:" #: src/help.c:2423 #, 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:2451 #, c-format msgid "Use `%s %s|[%s?]" msgstr "Proveu `%s %s|[%s?]" #: src/help.c:2460 msgid "for more information." msgstr "per obtenir més informació." #: src/help.c:2564 src/tcal.c:197 src/txt2gcal.c:136 src/gcal2txt.c:136 #, c-format msgid "Email bug reports to <%s>" msgstr "Comuniqueu `bugs' a <%s>" #: src/help.c:2566 #, c-format msgid "GNU gcal home page: <%s>" msgstr "" #: src/help.c:2568 #, c-format msgid "General help using GNU software: <%s>" msgstr "" #: src/help.c:2594 src/tcal.c:219 src/txt2gcal.c:158 src/gcal2txt.c:158 #, 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:2598 src/tcal.c:222 src/txt2gcal.c:161 src/gcal2txt.c:161 #, 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:2600 src/tcal.c:224 src/txt2gcal.c:163 src/gcal2txt.c:163 #, c-format msgid "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." msgstr "de COMERCIABILITAT o ADEQUACIÓ A UN PROPÃ’SIT PARTICULAR." #: src/help.c:2616 #, c-format msgid "%s: The Gregorian calendar program (GNU cal) %s" msgstr "%s: El programa del calendari gregorià (GNU cal) %s" #: src/help.c:2624 #, c-format msgid "Usage: %s [[OPTION...] [%cDATE] [%cFILE...]] [COMMAND]" msgstr "Sintaxi: %s [[OPCIÓ...] [%cDATA] [%cFITXER...]] [ORDRE]" #: src/help.c:2627 #, c-format msgid "Usage: %s [[OPTION...] [%cFILE...]] [COMMAND]" msgstr "Sintaxi: %s [[OPCIÓ...] [%cFITXER...]] [ORDRE]" #: src/help.c:2703 src/help.c:2849 msgid " 4.0 or 4.02" msgstr " 4.0 o 4.02" #: src/help.c:2711 src/help.c:2857 msgid " later than 5.0" msgstr " posterior a la 5.0" #: src/help.c:2722 src/help.c:2864 msgid "++ 3.0 or later" msgstr "++ 3.0 o superior" #: src/help.c:2749 src/help.c:2970 msgid "5.1 or earlier" msgstr "5.1 o anterior" #: src/help.c:2752 src/help.c:2973 src/help.c:3128 src/help.c:3198 msgid "unknown compiler" msgstr "compilador desconegut" #: src/help.c:2787 src/help.c:2876 src/help.c:3010 src/help.c:3032 #: src/help.c:3101 src/help.c:3138 src/help.c:3156 src/help.c:3213 #: src/help.c:3428 msgid " on " msgstr " en " #: src/help.c:2826 msgid "(bad version)" msgstr "(versió incorrecta)" #: src/help.c:2873 msgid "unknown compiler (SDK?)" msgstr "compilador desconegut (SDK?)" #: src/help.c:2941 msgid " later than 4.5" msgstr " superior a la 4.5" #: src/help.c:2951 msgid "++ 1.0 or later" msgstr "++ 1.0 o superior" #: src/help.c:2959 msgid " 1.0 or 1.5?" msgstr "1.0 o 1.5?" #: src/help.c:3074 msgid "unknown " msgstr "desconegut " #: src/help.c:3086 #, c-format msgid "version %d.%d" msgstr "versió %d.%d" #: src/help.c:3089 src/help.c:3122 src/help.c:3248 #, c-format msgid "version %d" msgstr "versió %d" #: src/help.c:3091 #, c-format msgid "unknown version" msgstr "versió desconeguda" #: src/help.c:3205 #, c-format msgid " (%.4s for Alpha)" msgstr " (%.4s per Alpha)" #: src/help.c:3208 #, c-format msgid " (%.4s for VAX)" msgstr " (%.4s per VAX)" #: src/help.c:3359 msgid " (NetBSD before 0.9)" msgstr " (NetBDS anterior a la 0.9)" #: src/help.c:3359 msgid " (NetBSD 1.2 or later)" msgstr " (NetBSD 1.2 o superior)" #: src/help.c:3366 msgid " (FreeBSD 2.0 or later)" msgstr " (FreeBSD 2.0 o superior)" #: src/help.c:3369 msgid " (BSD/386 1.1 or later)" msgstr " (BSD/386 1.1 o superior)" #: src/print.c:544 src/print.c:978 src/print.c:1033 msgid "CW" msgstr "CS" #: src/print.c:565 msgid "Week" msgstr "Setmana" #: src/rc-insert.c:1706 src/rc-insert.c:2824 msgid "pm" msgstr "pm" #: src/rc-insert.c:1715 src/rc-insert.c:2833 msgid "am" msgstr "am" #: src/rc-insert.c:2018 src/rc-insert.c:2028 msgid "d'\"" msgstr "°'" #: src/rc-insert.c:2038 msgid "h'\"" msgstr "hms" #: src/rc-insert.c:3728 src/rc-utils.c:2585 #, 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:3750 src/rc-utils.c:2609 #, 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:513 msgid "Emo" msgstr "Emo" #: src/rc-use.c:518 msgid "Int" msgstr "Int" #: src/rc-use.c:523 msgid "Phy" msgstr "Fis" #: src/rc-use.c:1086 src/rc-use.c:1177 msgid "`Eternal holiday list'" msgstr "`Llista eterna de festes'" #: src/rc-use.c:1877 src/rc-use.c:1926 src/rc-use.c:2015 src/rc-use.c:2107 msgid "`Internal'" msgstr "`Intern'" #: src/rc-use.c:2339 #, c-format msgid " ; Week %s" msgstr " ; Setmana %s" #: src/rc-use.c:2348 #, c-format msgid "Week %s" msgstr "Setmana %s" #: src/rc-utils.c:397 src/rc-utils.c:414 #, 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:3269 #, 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:3272 src/rc-utils.c:3686 #, c-format msgid "Line %ld: %s" msgstr "Línia %ld: %s" #: src/rc-utils.c:3633 src/utils.c:274 #, c-format msgid "%s: abort, " msgstr "%s: programa avortat, " #: src/rc-utils.c:3641 #, c-format msgid "illegal variable definition in file `%s'" msgstr "definició il·legal de variable en el fitxer `%s'" #: src/rc-utils.c:3643 #, c-format msgid "illegal definition of variable `%c'" msgstr "definició il·legal de la variable `%c'" #: src/rc-utils.c:3650 #, c-format msgid "illegal variable operation in file `%s'" msgstr "operació il·legal de variable en el fitxer `%s'" #: src/rc-utils.c:3652 #, c-format msgid "illegal operation on variable `%c'" msgstr "operació il·legal a la variable `%c'" #: src/rc-utils.c:3658 #, c-format msgid "variable `%c' undefined in file `%s'" msgstr "la variable `%c' no està definida, en el fitxer `%s'" #: src/rc-utils.c:3662 #, 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:3683 #, 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:3695 #, 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:3698 #, c-format msgid "Line %ld ignored: %s" msgstr "S'ha ignorat la línia %ld: %s" #: src/tty.c:424 #, c-format msgid "%s: for more, <%s> to quit..." msgstr "%s: per més informació, <%s> surt..." #: src/tty.c:1019 #, c-format msgid "environment variable `%s' not found" msgstr "no s'ha trobat la variable d'entorn `%s'" #: src/tty.c:1026 #, c-format msgid "environment variable `%s' not set" msgstr "la variable d'entorn `%s' no està definida" #: src/tty.c:1066 msgid "`termcap' file not found" msgstr "no s'ha trobat el fitxer `termcap'" #: src/tty.c:1071 #, c-format msgid "unknown terminal type defined in `%s'" msgstr "el tipus de terminal definit a `%s' és desconegut" #: src/tty.c:1080 #, c-format msgid "" "\n" "%s: warning, %s.\n" "\n" msgstr "" "\n" "%s: atenció, %s.\n" "\n" #: src/utils.c:280 #, 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:284 src/tcal.c:324 src/txt2gcal.c:263 src/gcal2txt.c:263 #, 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:289 #, 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:294 #, 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:299 #, 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:303 #, 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:308 #, 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:312 #, c-format msgid "file `%s' not found" msgstr "no s'ha trobat el fitxer `%s'" #: src/utils.c:316 #, 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:322 #, 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:327 #, 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:332 #, 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:334 src/utils.c:352 #, c-format msgid "" "\n" "`%s' line %ld: " msgstr "" "\n" "`%s' línia %ld: " #: src/utils.c:341 #, c-format msgid "`%s' line %ld: (`%s') `%s%d' failed" msgstr "`%s' línia %ld: (`%s') `%s%d' error" #: src/utils.c:350 #, c-format msgid "read error in file `%s'" msgstr "s'ha produït un error de lectura pel fitxer `%s'" #: src/utils.c:358 #, 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:364 src/tcal.c:330 src/txt2gcal.c:269 src/gcal2txt.c:269 #, 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:369 #, c-format msgid "(`%s') date format `%s' is invalid" msgstr "(`%s') el format de la data `%s' no és vàlid" #: src/utils.c:375 #, c-format msgid "%s in search pattern `%s'" msgstr "%s en el patró de recerca `%s'" #: src/utils.c:378 #, c-format msgid "invalid search pattern `%s' specified" msgstr "el patró de recerca especificat `%s' no és vàlid" #: src/utils.c:383 src/tcal.c:338 src/txt2gcal.c:274 src/gcal2txt.c:274 #, c-format msgid "`%s' line %ld: (`%s') unmanaged error (%d)" msgstr "`%s' línia %ld: (`%s') error irrecuperable (%d)" #: src/utils.c:403 src/tcal.c:358 src/txt2gcal.c:294 src/gcal2txt.c:294 #, c-format msgid "" "\n" "%s: program aborted by signal %d\n" msgstr "" "\n" "%s: programa avortat pel senyal %d\n" #: src/utils.c:1080 msgid "th" msgstr "è" #: src/utils.c:1084 msgid "st" msgstr "r" #: src/utils.c:1088 msgid "nd" msgstr "n" #: src/utils.c:1092 msgid "rd" msgstr "r" #: src/utils.c:1123 src/utils.c:1174 src/utils.c:1225 msgid "invalid day" msgstr "dia no vàlid" #: src/utils.c:1128 msgid "Mon" msgstr "Dll" #: src/utils.c:1133 msgid "Tue" msgstr "Dts" #: src/utils.c:1138 msgid "Wed" msgstr "Dcr" #: src/utils.c:1143 msgid "Thu" msgstr "Djs" #: src/utils.c:1148 msgid "Fri" msgstr "Dvs" #: src/utils.c:1153 msgid "Sat" msgstr "Dsb" #: src/utils.c:1158 msgid "Sun" msgstr "Dmg" #: src/utils.c:1179 msgid "Mo" msgstr "Dl" #: src/utils.c:1184 msgid "Tu" msgstr "Dt" #: src/utils.c:1189 msgid "We" msgstr "Dc" #: src/utils.c:1194 msgid "Th" msgstr "Dj" #: src/utils.c:1199 msgid "Fr" msgstr "Dv" #: src/utils.c:1204 msgid "Sa" msgstr "Ds" #: src/utils.c:1209 msgid "Su" msgstr "Dg" #: src/utils.c:1226 msgid "Monday" msgstr "Dilluns" #: src/utils.c:1226 msgid "Tuesday" msgstr "Dimarts" #: src/utils.c:1226 msgid "Wednesday" msgstr "Dimecres" #: src/utils.c:1226 msgid "Thursday" msgstr "Dijous" #: src/utils.c:1227 msgid "Friday" msgstr "Divendres" #: src/utils.c:1227 msgid "Saturday" msgstr "Dissabte" #: src/utils.c:1227 msgid "Sunday" msgstr "Diumenge" #: src/utils.c:1243 src/utils.c:1320 msgid "invalid month" msgstr "mes no vàlid" #: src/utils.c:1248 msgid "Jan" msgstr "Gen" #: src/utils.c:1253 msgid "Feb" msgstr "Feb" #: src/utils.c:1258 msgid "Mar" msgstr "Mar" #: src/utils.c:1263 msgid "Apr" msgstr "Abr" #: src/utils.c:1268 msgid "May" msgstr "Mai" #: src/utils.c:1273 msgid "Jun" msgstr "Jun" #: src/utils.c:1278 msgid "Jul" msgstr "Jul" #: src/utils.c:1283 msgid "Aug" msgstr "Ago" #: src/utils.c:1288 msgid "Sep" msgstr "Set" #: src/utils.c:1293 msgid "Oct" msgstr "Oct" #: src/utils.c:1298 msgid "Nov" msgstr "Nov" #: src/utils.c:1303 msgid "Dec" msgstr "Dec" #: src/utils.c:1321 msgid "January" msgstr "Gener" #: src/utils.c:1321 msgid "February" msgstr "Febrer" #: src/utils.c:1322 msgid "March" msgstr "Març" #: src/utils.c:1322 msgid "April" msgstr "Abril" #: src/utils.c:1332 msgid "May " msgstr "Maig" #: src/utils.c:1333 msgid "June" msgstr "Juny" #: src/utils.c:1333 msgid "July" msgstr "Juliol" #: src/utils.c:1334 msgid "August" msgstr "Agost" #: src/utils.c:1334 msgid "September" msgstr "Setembre" #: src/utils.c:1335 msgid "October" msgstr "Octubre" #: src/utils.c:1335 msgid "November" msgstr "Novembre" #: src/utils.c:1335 msgid "December" msgstr "Desembre" #: src/tcal.c:191 #, c-format msgid "Usage: %s [--%s | --%s] | [--%s=[+|-]NUMBER] [ARGUMENT...]\n" msgstr "Sintaxi: %s [--%s | --%s] | [--%s=[+|-]NOMBRE] [ARGUMENT...]\n" #: src/tcal.c:320 src/txt2gcal.c:259 src/gcal2txt.c:259 #, c-format msgid "" "\n" "%s: abort, " msgstr "" "\n" "%s: programa avortat, " #: src/tcal.c:335 #, c-format msgid "shift value `%s' is invalid" msgstr "el valor de canvi `%s' no és vàlid" #: src/tcal.c:907 #, c-format msgid "%s: option `--%s' requires an argument" msgstr "%s: l'opció `--%s' requereix un argument" #: src/tcal.c:1071 #, 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:131 #, 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:755 src/gcal2txt.c:754 #, c-format msgid "%s: no regular file\n" msgstr "%s: no s'ha trobat el fitxer regular\n" #: src/txt2gcal.c:760 src/gcal2txt.c:759 #, c-format msgid "%s: file not found\n" msgstr "%s: no s'ha trobat el fitxer\n" #: src/gcal2txt.c:131 #, 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 "regexp too big" #~ msgstr "expressió regular massa gran" #~ msgid "out of space" #~ msgstr "no hi ha espai" #~ msgid "too many ()" #~ msgstr "massa ()" #~ msgid "unmatched ()" #~ msgstr "() no correspost" #~ msgid "junk on end" #~ msgstr "error al final" #~ msgid "*+ operand could be empty" #~ msgstr "l'operand *+ podria estar buit" #~ msgid "nested *?+" #~ msgstr "*?+ agrupat" #~ msgid "invalid [] range" #~ msgstr "recorregut [] no vàlid" #~ 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-3.6.3/po/sv.gmo0000644000175000017500000031332312125376136011137 00000000000000Þ•Œ|,mÜXv ‘v"žvÁvÕvCævA*wElwB²w+õwL!xKnxKºxJyMQyDŸyFäyF+z@rzA³zFõzF<{=ƒ{6Á{7ø{10|7b|'š|AÂ|E}CJ}AŽ}IÐ}H~Hc~?¬~*ì~!F9$€4¥?ÚM€Hh€H±€Pú€JKK–+â+‚?:‚6z‚4±‚=æ‚@$ƒJeƒ>°ƒJïƒI:„K„„JЄE…Da…J¦…Dñ…16†1h†9š†4Ô†< ‡@F‡2‡‡<º‡9÷‡01ˆ*bˆJˆ<؈M‰7c‰N›‰?ê‰B*Š.mŠNœŠ.ëŠB‹(]‹-†‹;´‹-ð‹CŒ#bŒ†ŒK¤ŒJðŒ?;H{'ÄJì57Ž!mŽ4Ž&ÄŽ"ëŽ6.Je.°Cß:#F^6¥3Ü5‘AF‘?ˆ‘5È‘,þ‘J+’Ev’3¼’(ð’6“/P“+€“7¬“7ä“E”:b” ”0¾”(ï”2•EK•C‘•DÕ•E–C`–N¤–Ló–O@—B—DÓ—P˜Di˜B®˜Hñ˜K:™I†™FЙDšO\šM¬šGúšGB›JŠ›JÕ›M œKnœ=ºœEøœK>@ŠEË9ž.Kž7zž-²žJàž=+Ÿ-iŸJ—Ÿ0âŸ= 6Q Cˆ 7Ì =¡8B¡9{¡/µ¡?å¡@%¢0f¢2—¢FÊ¢&£H8£.£B°£Bó£X6¤c¤]ó¤5Q¥:‡¥EÂ¥G¦,P¦@}¦E¾¦*§E/§Eu§A»§Cý§EA¨7‡¨@¿¨:©-;©i©I‰©IÓ©ª;9ª:uª=°ª;îª8*«<c«> «@ß«M ¬6n¬;¥¬á¬ó¬­­3­J­ _­ l­ y­ „­ ­­B¦­é­Bî­1®A®(Q®z®® ž®«®º®Ú®ú®¯$¯-¯#G¯'k¯&“¯/º¯+ê¯ °;"°+^°а%ž°#İè°±)±@±$]±+‚±&®±%Õ±(û±&$²K²=h²"¦²#ɲ í²!³"0³ S³a³q³³ •³ ³ ³³¾³ ѳܳ ï³ú³ ´´+´5-´c´g´k´z´ ‹´ ™´¥´ ¹´Ä´Ì´Ý´å´ü´ µµ+µ.:µ iµvµ …µ’µ 𵤵­µ ¶µ×µõµ ¶-¶M¶l¶‡¶¢¶½¶Ó¶è¶··3·K·S· g· u··ƒ·‰· ™·!£·Å·ã· ö·&¸'¸8¸ @¸ N¸\¸q¸ƒ¸‰¸¢¸ »¸ ƸÔ¸ܸ à¸í¸¹¹ ¹¹*¹D¹a¹v¹“¹¦¹¹¹Õ¹ݹ ó¹þ¹º/º3º;ºCº Zº gºtº}ºº ¡º¬º¾ºкàºóº»»-»>»Z»n»v»~»»”»œ»¤»·»Í»Õ»Þ»ó»¼ ¼$¼ ;¼G¼ O¼[¼o¼ ‚¼޼ —¼ ¤¼ ¯¼ ½¼ȼϼë¼½½%½7½@½ P½]½ p½ |½†½—½Ÿ½ ¢½­½ ¶½Á½Ƚ×½ï½ÿ½ ¾5¾Q¾d¾s¾¾ž¾ ²¾ ¿¾4̾0¿ 2¿ =¿I¿R¿ m¿z¿¿ž¿­¿±¿Ì¿Ý¿â¿ ù¿ ÀÀÀ0À?ÀWÀ]ÀcÀzÀ‘À™ÀÀ ´À ÂÀÐÀâÀôÀ ÁÁ*Á 3Á =Á JÁWÁ9iÁ£Á´Á ¼ÁÈÁèÁ .Â;ÂQÂ` pÂ{ƒ‹ ¢Â ®Â¼ÂÏÂÕÂÜÂëÂúÂüÂH ÃUÃsÃàñÃÈÃ×ÃçÃÄÄ1ÄEÄZÄqÄˆÄ¤Ä¾ÄØÄíÄÅÅÅ (Å6Å%RÅxÅ—ÅŸÅ ³Å ÁÅÏÅØÅáÅ ôÅÆÆ3ÆHÆ_Æ qÆ}Æ‘Æ •Æ £Æ±ÆÀÆØÆàÆ æÆ òÆþÆÇ"Ç 9Ç EÇRÇrÇŒÇÇ.£ÇÒÇìÇ þÇ ÈÈ#È+È@ÈIÈaÈpȀȕÈ2ÈÐÈÔÈ ðÈ ûÈÉÉ É-ÉEÉVÉkɂɆÉÉ®ÉÃÉ0ÕÉ1Ê18Ê*jÊ.•Ê:ÄÊ;ÿÊ:;ËvË–Ë˥˹ËÉËÚËãË%÷ËÌ4ÌOÌoÌrÌyÌ ŒÌšÌ«ÌÀÌÄÌËÌÓÌ âÌìÌôÌ ûÌ Í)Í1ÍBÍJÍeÍuÍ„Í˜Í§Í ·ÍÅÍ"ÚÍýÍÎ 9ÎFÎUÎkΆΘΟΠ¥Î ¯Î»Î ÔÎßÎ ñÎÿÎÏ>ÏUÏ \Ï iÏsÏ {Ï †Ï”Ï£Ï ºÏÅÏ ÊÏÔÏÛÏëÏÐÐÐ#Ð )Ð3ÐOÐfЂР†Ð “Ð1žÐÐÐçÐ÷Ð ÑÑ'Ñ 0Ñ:ÑKÑ SÑ_ÑzÑ•ÑAÑ ßÑêÑñÑÒÒ6ÒPÒgÒÒ—ÒŸÒ²Ò ÈÒÔÒØÒáÒ,÷Ò$Ó)Ó1Ó5ÓLÓeÓlÓrÓˆÓ™Ó­ÓÂÓÊÓÎÓÖÓÚÓàÓøÓÔ*Ô>ÔEÔIÔNÔRÔ WÔdÔ tÔ €Ô‹Ô“ԜԳÔÊÔÞÔþÔ Õ"Õ2ÕKÕRÕ ZÕeÕ zÕ…Õ Õ¨Õ#»ÕßÕõÕüÕ'Ö7Ö?ÖGÖVÖ ^ÖjÖ ‰Ö—Ö ¬Ö ¹ÖÃÖÙÖ âÖ ðÖûÖ×(×4*×_× e× r××.™×È× Ï×Ú×ã×è× î× û× ØØ!Ø%Ø+Ø >ØIØZØ oØ zØ…Ø šØ§Ø½ØÕØêØûØÙ+Ù <ÙHÙXÙiÙ {ÙˆÙ ˜Ù £Ù­Ù±Ù¶Ù¾ÙÆÙ ØÙåÙìÙûÙÚ#Ú5ÚDÚGÚKÚRÚYÚaÚsÚ ‡Ú1’Ú ÄÚ ÏÚÛÚãÚóÚ ÛÛ .Û9ÛMÛ_Û gÛrÛƒÛ›Û¯ÛÀÛÖÛîÛÜÜ.Ü 4Ü@Ü HÜTÜqÜ$Ü´ÜÔÜ ãÜ îÜüÜÝÝ +Ý 7ÝAÝGÝOÝcÝ hÝrÝzÝ ŠÝ«ÝÈÝÏÝÓÝ/ÜÝ9 Þ-FÞ tÞ€ÞÞ˜ÞŸÞ£Þ«Þ»ÞÌÞáÞöÞEûÞAßYßpߋߣßÀßÜßößààà!à 'à3à:àJàYàjà sà€àšà¢à ±à¿àÎà Ýàçàøàáá+á0á@á _áká oá }á ˆá”áá¤á­á ¶á(Ááêáâ!â1âDâ\â vâ„â •â¡âµâÌâÒâÛâðâøâãã&ã 6ãBãSã lãyããŸã³ãÌã Üãçãùãä #ä-ä=äEäaä tä‚ä‰ä’ä¤äºä0Ñäååå'åAå_åeå uå ƒåŽå¤å»åÑåÕå Þå èåõåæ æ.æ6æ:æ IæSægæ}æ æœæ ¯æ¼æ Îæ Ùæ åæ óæ ç ç)ç8ç Uçaç {ç‰ç ’ç Ÿç­çÁç Öçâç÷çè è è,è;è KèXè `èkè }è(Šè³èÐèÖè æè òèÿèé"é5éEéVéféué‡é–é¦éµé Åé ÏéÝéòé ê#ê3êFêXêaêpê„ê”ê¥ê¶ê Çê Õêãêôê ëë.ë?ëOëbë|ë•ë žë¬ë0Âëóëì ì)ì,ì2ìCì_ìwì{ì‚ì•ì ì¨ìÇì ×ì ãìíì ôì ÿì íí"+í!Nípí‡íŸí°íÅíÙíìíîî(î?îUîjîƒî–î¬îÂîÖîéîùî ïï-ïAïZïwï ~ï‰ï ’ï ï ·ïÅïÈï Üïçïøïð3ðRðfðzðð:¤ð=ßðDñCbñ¦ñªñ ³ñ½ñÌñãñêñòñò òòò-ò =òJò^ò tò5ò)µòßòþòóó#ó+ó4ó<ó CóPóiópó †ó’ó¦ó­óµó¼óÄó àóêóôô .ô<ôRôgô}ô”ô­ôÄôÞô"õôõ.õDõYõmõ„õšõ­õÂõÙõñõöö8öOögöö˜ö®öÅöÚööö÷(÷?÷\÷w÷Š÷¡÷¶÷Ñ÷ì÷ ø$ø<øPøcøyøø©øÅøÝøóøù= ù0Kù8|ùKµù7ú.9úhú(yú ¢ú ­ú»ú ÃúÍú Ýúëú û ûû#û,û.ûCû\ûvû‡û–û§ûªû ®û ¸ûÃûÈû ÐûÚûìû ûû üü (ü4üGüXüaühüjürü xü‚ü¡üÀüàüùüCý \ý hýrý‰ýý—ý ý7¤ý#ÜýAþ*Bþ/mþþ ´þ¿þ%Øþ.þþ-ÿ0ÿ Cÿ5Pÿ†ÿŠÿ’ÿ#§ÿ!Ëÿíÿ.ôÿ#7MQ4Z#"³(Ö'ÿ8'+` Œ1˜ Ê3Ø5 %B4hNFì3&BHi²>µô÷ú  - JWsv~EÇÐá%ù$/ T _am Ï(Ý@*@kC¬>ð(/MXK¦JòF= R„ G× G Ig B± Aô F6 F} <Ä : 9< 4v ;« (ç B FS Fš Há N*LyKÆL)_!‰G«"ó1=HN†MÕQ#ZuTÐK%-q-ŸBÍ9-J9xG²JúGEBBÐFHZ@£BäH'Bp)³4Ý=7PAˆMÊ;:T6(Æ&ïP>g<¦:ãGFfM­+ûN'.v@¥(æ,;<+x8¤#ÝI!KkA·@ù%:E`/¦"Ö6ù%0Vv/•NÅ3 EH ;Ž GÊ 4!6G!7~!E¶!Kü!9H"0‚";³"Eï"75#+m#4™#4Î#'$<+$;h$<¤$Dá$$&%AK%(%5¶%Dì%F1&Ex&F¾&H'ON'Qž'Nð'G?(H‡(YÐ(F*)Hq)Mº)K*MT*E¢*Gè*N0+P+NÐ+N,Gn,K¶,M-OP-> -Fß-J&.Cq.Iµ.5ÿ.;5/@q/>²/Mñ/S?0<“0QÐ0="1;`19œ1IÖ1A 2Bb2I¥2<ï24,3Ha3Iª33ô3+(4KT4+ 4BÌ4;5DK5C5WÔ5f,6`“6?ô6647?k7I«7*õ7= 8F^8$¥8>Ê8N 9DX9;9DÙ9<:*[:=†:,Ä:!ñ:9;:M;&ˆ;P¯;:<@;<@|<;½<?ù<@9=Fz=PÁ=8>PK>œ>¯>À>Ü>ø>?'?7? G? S? _?m?2v?©?3®?â?ò?/@2@8@ X@f@ v@—@·@¿@)Å@ï@%A#-A.QA4€A-µA ãA7ðA%(BNB)kB'•B½BÖB#îBC%0C%VC'|C&¤C'ËC&óCDC1DuD$•DºD"ØD&ûD"E5EIE]EqEˆEŸE¶EÍEäEûEF)FKYKoKˆKK±K ÌK×K ìKùKL+L/L7L?L RL ^LiLrL‚L ™L¦L¹LÌLÝLñLMM.M@MUM gMsM {MˆMM—MžM±MÌMÔMÜMòMNN*N CNPN XNeNyN N›N ¤N ²N ¾N ÈN ÕNßNõN OO!O 5O?O QO^O uO€O‰O›O¤O §O±O ¹OÄOËOÚOòOP P8PVPiPxPPŸP ³P ÀP3ÎP2Q 5Q ?QLQUQ rQQ–Q ¨QµQ¹Q×QèQîQ R RRR :RFR[RaRfR|R”RR¡RºRÃR ÌRÖRçR ûRSS 'S 2S @SMS7cS›S «S µS!ÂS!äSTT 2T=TRTaT pT{T‚T‹TT ¢T ®T¼TÖTÜTãTìTüTþTGUZUzUšUªUºU ÚU èUõU VV 2V >VLV`VsVŒV£VºVÌVàVäVíVWW!5WWWvW~W ’W W²W»WÄWÜWëWüWX+X@X TXaXwX{X ŠX •X£X½XÅX ÍX ÙXåXùX Y Y,Y%5Y[YyY}Y+“Y¿YÐY áYíYõYZZ/Z8ZNZ_ZpZ ŠZ0”ZÅZÉZ æZ óZ ÿZ [[$[D[V[n[…[‰[’[¬[¾[@Ï[1\2B\*u\/ \KÐ\I]>f]¥]Å]Ë]Ó] ê]ø] ^^(5^^^s^^¬^ ¯^¹^Í^ Ü^ç^ü^___ _)_0_ 7_E_b_k_‡__¬_¼_Ì_á_ñ_``)`I`f``‘`¢`º`Ö`ê`ñ` ÷` a a a&aCa Rasaa¦a ¯a ½aÇa ÏaÛaìaüa bb "b,b3bBbUbdblbub{b‹b£bºbÔb Øbâb3òb&c?cTcgc}cc –c cµc ¼cÉcÙcðc@÷c 8dDdKd cd„d¤dÁdÛd÷dee/e CeOeSeZe3te¨e­e´e¸eÎeèeïe÷ef!f7fNfVfZfbffflff˜f´f ÇfÑfÕfÚfÞf ãfîf g gg g(gAgZgogŒg ¢g¬g¼gÕgÜg ägðg hh ,h7h!LhnhƒhŒh,¡hÎhÖhÞhíh õh i #i1i GiSi$[i€i‰i ›i¥i¿iÖi=Øij j(j7j1Sj…j Œj –j¡j¦j ¬j ºj ÆjÐjájåjêjþjkk1k @kKk[kkk†kšk²kÁkÕkïk ÿk l l %l 3lAl Pl \lfljlnlwll “l l§l¸lËlÞlðlmm mm m#m8m Nm1Ym ‹m –m£m«mºmÉm!Òm ômnn&n.n?nUnln…n—nªnÆnánþno o(o/o >o!_o(o#ªoÎo àoìoûop p %p 1p;pCpKpap fpqpzp‰p§pÂpÈpÌp1Õp>q5Fq|qŒq œq¦q­q±q ¹qÇqÚqðqrE rSrhr€r™r¯rÉrârùrsss"s (s6s=sNs^sosxsˆs¥s¬sÃsÔsäs östt%t)t8t =t!Jt ltyt}t t ›t©t²t¸t Át Ët&Ötýtu2uCu\utu‘u¡u ´uÀuÔuíuóuüuvv (v5vKv ]v jv xv„v”v¦v·vÌvávôvww*w Cw Nw \wfwwˆw—wžw§w»wÒw.ëwx3x 7xAx[xxx~xx  x«xÀx×xíxòx úx yy!y ƒDTƒ?™ƒNÙƒF(„o„s„ {„…„”„ª„°„¸„Ì„ Ò„à„ç„ø„ ……3… H…BT…/—…%Ç…í…ð…†††#†,† 4†A†Y†`† v† ƒ†‘†•†œ†£†«† ¾†ʆꆇ ‡ ‡ ‡ %‡ 1‡>‡ N‡[‡ k‡x‡ ‘‡ ‡ ©‡ ´‡ ¾‡ ˇׇ à‡ ë‡ ø‡ ˆ ˆˆ .ˆ ;ˆIˆ Yˆ fˆ rˆ ˆŠˆœˆ«ˆ ºˆLjÚˆëˆ ôˆ ‰ ‰‰.‰A‰ R‰ `‰j‰ s‰ ‰Œ‰›‰ ­‰ »‰ljÚ‰>â‰0!Š9RŠPŒŠ=ÝŠ3‹O‹4d‹ ™‹¤‹¸‹ À‹Ê‹ß‹ð‹ Œ Œ!Œ*Œ2Œ4ŒKŒfŒŒ“Œ¢ŒµŒ¸Œ¼ŒÃŒÌŒÒŒÛŒäŒ øŒ   ,8J[dlox ~%ˆ®ÌçŽ:#Ž^Ž gŽuŽŽ –Ž Ž©Ž8­Ž(æŽG'W*!ªÌÕ(ó3PS f3r¦«´"Ã"æ ‘1‘H‘e‘{‘ ‘/‰‘'¹‘'á‘* ’.4’8c’)œ’ Æ’1Ò’“4“4H“#}“>¡“dà“?E”…”$™”<¾”û”Eþ”D•G•J• _•j•*y• ¤•¯•ΕѕڕIÝ•'–/–A–$Z––+Ž– º– Å–~yTìŠÇn¨R¢lû™îÁÔ¹‡,dVØ …VƺZÅ<;OØŸ |s‹*ƒ[Š¿ÍÑ F߃×(©†ts+@þØÉÕ×Ä?Ç7 ó¥fDÓ#:2òAùd+Et©žsâáóòwèi°M ÙzºÖ“Ïj³`¸¾†.Î|†½p`¯¡„”¬Ú†±‚…:-fZ„Û"ÿ’3nãN¯Wʳû—c¥®Ÿ¹MPùïD0Ûa½ˆ6Ö‹è>íþã‚ì¡–…0:()ä‚téÕUÍÜ3$[äf]gÇŽæA& ;ö…jˆá\¤L®ôy_Þ'Î^üûÉÌÜußkuhe #¹·Âë 'PWnS_ý#Þé`=KZÌL ªT»« çxCž¾¶_  ¬8oˆzU"=Ì¢Q+ ÚfŸ¼oŽ2Yw4H8”qP8${Q@S¥X5ð¦J1PË\ŒìBïë4»g }xIÚŒTVkõ¶±3<ݘÿ,”€lu‘ÁßíÃá‘Ká˜LM&÷Šñd)v.ݳÕÞ1IºŽ¾im$~So‡;¦a¤©r£Ð£2R“Q«dšË9É'ZQ¼ $’²¢¼„ª›êF-=’ŒBƒeÚ<fÅD}T2v{g]u(œšV¯=_àoŽª `™Ö1W¹éÒBsö¢·’þ“x‰bS.b¡ÂÃ+ÛqÒ.5ÏÈ® ¬¿7X9éʬÓzV5^E,ºõŸ?‚Ê~/Í–R°/'ïJ Üqˆ[¿ä‰vm”Œ¥ò¾±r’èpè ›qÈÄeŠÅ2„,O¸²‘Ìï÷p•“cÆviX56³%Ýn†â)æÙ!Y z¸.JcÝ„% ŽD™¤EX—{ù-$=xT¶äL‡‹-îLWy'+ Á!íïv•…(sƒO\\¦Š?L!UYÜpÙ°,íSär˜å€­‡<y6*E[">ý¶Õñ´$Ñúåž÷ù­¶3§eÃ&€>´ÚŒ áÎ[ß7®k}hOðå¯ô ®§©X»>sþå*ª:àçtbaÈ™¾ø@jcž‡-Rû£Ëhój|æ]ŒÑëÿ`3#€Á4Âé_Št¨0FYÐùƒ´U<¸\êMã8CÄ1b6O0¦î šPóÿ“cÐFµKÒ•ëìªl‚Í&Ä¿uÜGH |{&¹~Ñô²4GúK873ò(10 ynê"ÖA¼ãQè§ýö±iÇ{™}õìë;,Â/vðã×e|ðCå¥òóô4p—/÷;øö@b¨!ÌYE]¼ÙοA×ROÔ§0œß>æžôbIõÑü| ¨-NA îÆš{°^µI+:%œæÀrÛ‹GÕ‰*œ:2wÓÿ6Dr~·)W÷^Æí‘þÒ mÔÛ?€àjÀC"‹R¤¸ % ­kÂi lXý´‰NIZà mKû`o«)ÍkB…5 nw©à5† F‘j*Êx¡Î­Cʼnàm7_oõ½HG<zÓÆ”ðË9QM¨ü»~g*%FÒ¢MÊ@ñA‚öpH.Àh­=øŸâW}ÓÏâøÀ6DJd!ÈÞÇȰêµU•/%}µx>H&;e„NdgИ³CøI›üÙkJiUˆh#'G²–J–m—£‡–¬1VÐØ^ÏwGÞ€µSTËÔ/»´ É·¦Åa(¯ü)9BÝ Y]wz‰g—l^Zc "7•›8Ïç«Áýañ úÀñ竺Ö4±ÔPy\ƒ@›?qœH?]K½šh ‹NNâãê·¡BØu˜lqˆ×!a½#§E9çúrúÄ9tÉ[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/Nordwest 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 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/SaarGermany/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' DayGuy Fawke's 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 DayNorfolk IslandsNorthern 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-LandSwitzerland/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 Report-Msgid-Bugs-To: bug-gcal@gnu.org POT-Creation-Date: 2013-03-29 21:40+0100 PO-Revision-Date: 2011-01-11 14:45+0100 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 %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 BakÃ¥t = %s Lista frÃ¥n igÃ¥r till början pÃ¥ mÃ¥naden = %s Lista frÃ¥n igÃ¥r till början pÃ¥ veckan = %s Lista frÃ¥n igÃ¥r till början pÃ¥ Ã¥ret N = 0 %s som inte finns i 1:a veckan N = 0 1:a veckan / sista veckan föregÃ¥ende Ã¥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-skottÃ¥r = Ställ in höjden pÃ¥ mÃ¥nfasens textgrafik = Ställ in bredden pÃ¥ biorytmens textgrafik eller: namn pÃ¥ mÃ¥nad | %s | %s%s | %s%s | %s%s [MOD] = %s Lista frÃ¥n imorgon till slutet pÃ¥ mÃ¥naden [MOD] = %s Lista frÃ¥n imorgon till slutet pÃ¥ veckan [MOD] = %s Lista frÃ¥n imorgon till slutet pÃ¥ Ã¥ret %s%cwN[%s], namn pÃ¥ mÃ¥nad[%s], namn pÃ¥ veckodag[N] eller %s MOD = %s FramÃ¥t %-*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 frÃ¥n 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 gör korrekt konvertiering 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 registration av helger de föregÃ¥ende specialtecknen i ett individuellt datumformat, de används av teckenuppsättningen som används i Tyskland som är sammanbundna med "%s"-tecken. Länder/omrÃ¥den vilka har en formatinstruktionskomponent STIL, och hur # %c%c[%s|%s]N%s = Enstaka N:e veckodag relativt pÃ¥skdagen # %c%c[%s|%s]N%s = Enstaka N:e veckodag relativt dagens datum # %c%c[[%s|%s]N] = Enstaka dag N relativt pÃ¥skdagen # %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 mÃ¥naden %s # %s%sN = Enstaka N:e veckodagen %s i mÃ¥naden %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 mÃ¥naden # 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 basÃ¥ret i kalendern Ändra cykelsluttiden Ändra cykeltidssteg Skapa responsfil för "%cFIL-flaggan" Skapa ett skalprogram som innehÃ¥ller argumenten frÃ¥n 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 framhävning 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 frÃ¥n fil till fil Exportera lokala textvariabler frÃ¥n fil till fil Framtvinga framhävningssekvens om utdata styrs om Ignorera skillnader i VERSALER/gemener om flaggan "%s" ges Medför tidsperioden: idag Begränsa uppgÃ¥ng/nedgÃ¥ngstider för solen till dagen Ändra format pÃ¥ Ã¥rskalender TillhandahÃ¥ll kalenderblad med veckonummer TillhandahÃ¥ll evighetskalender med Bahá'i-kalenderhelger TillhandahÃ¥ll evighetskalender med Bahá'i-kalendermÃ¥nader TillhandahÃ¥ll evighetskalender med keltiska kalenderhelger TillhandahÃ¥ll evighetskalender med kinesiska kalenderhelger TillhandahÃ¥ll evighetskalender med kinesiska kalendermÃ¥nader TillhandahÃ¥ll evighetskalender med kinesiska flexibla kalenderhelger TillhandahÃ¥ll evighetskalender med kinesiska flexibla kalendermÃ¥nader TillhandahÃ¥ll evighetskalender med västliga kristna kalenderhelger TillhandahÃ¥ll evighetskalender med koptiska kalendermÃ¥nader TillhandahÃ¥ll evighetskalender med etiopiska kalendermÃ¥nader TillhandahÃ¥ll evighetskalender med kalendermÃ¥nader frÃ¥n franska revolutionen TillhandahÃ¥ll evighetskalender med hebreiska kalenderhelger TillhandahÃ¥ll evighetskalender med hebreiska kalendermÃ¥nader TillhandahÃ¥ll evighetskalender med indiska civila kalendermÃ¥nader TillhandahÃ¥ll evighetskalender med islamiska civilkalenderhelger TillhandahÃ¥ll evighetskalender med islamiska civilkalendermÃ¥nader TillhandahÃ¥ll evighetskalender med japanska kalenderhelger TillhandahÃ¥ll evighetskalender med japanska kalendermÃ¥nader TillhandahÃ¥ll evighetskalender med japanska flexibla kalenderhelger TillhandahÃ¥ll evighetskalender med japanska flexibla kalendermÃ¥nader TillhandahÃ¥ll evighetskalender med gammalarmeniska kalendermÃ¥nader TillhandahÃ¥ll evighetskalender med gammalegyptiska kalendermÃ¥nader TillhandahÃ¥ll evighetskalender med ortodoxa nykalenderhelger TillhandahÃ¥ll evighetskalender med ortodoxa gammalkalenderhelger TillhandahÃ¥ll evighetskalender med persiska Jalaali-kalenderhelger TillhandahÃ¥ll evighetskalender med persiska Jalaali-kalendermÃ¥nader TillhandahÃ¥ll evighetskalender med astronomisk data TillhandahÃ¥ll evighetskalender med landsspecifika helgdagar TillhandahÃ¥ll evighetskalender med multikulturella nyÃ¥rshelger TillhandahÃ¥ll 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 Ställ in framhävningssekvenspar 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 uppgÃ¥ng/nedgÃ¥ng 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 skottÃ¥r 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 = Framhävningssekvenspar Ã¥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, omrÃ¥deskod, eller en lista med dessa %-3s = Lagra argumenten frÃ¥n 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 bÃ¥da datumbeteckningarna (dag i mÃ¥naden+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 uppnÃ¥s [MOD] = - Använd standardformat för kalenderblad [MOD] = b Använd bÃ¥da datumbeteckningarna (dag i mÃ¥naden+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 (mÃ¥ste definieras)# MÃ¥nadsnamn# MÃ¥nadsnummer# Veckodagsnamn (kan definieras)# Ã…rnummer (mÃ¥ste definieras)%cDATUM%cFIL%s = MÃ¥nad i intervallet: %d - %d%s i sökmönstret "%s"%s%*s = Ã…r i intervallet: %d - %d%s%s innehÃ¥ller nu %d maxposter!%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 skottÃ¥r%s:%*sÃ…r %0*d är INTE ett skottÃ¥r%s:%*sÃ…r %d är ETT skottÃ¥r%s:%*sÃ…r %d är INTE ett skottÃ¥r("%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 tidigare7-5-3-festivalen.JUSTERINGSgrupp (exakt en medlem mÃ¥ste definieras):AMOARGAboriginerdagenAdelaide Cup-dagenErkännandedagenAfghanistanAga Khans födelsedagAlaskadagenAlbanienAleksis KividagAlgerietAlice-Springs visningsdagFörsta aprilAllhelgonadagenAllhelgonaaftonenAlla 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.MilitärdagenArmenienVapenstillestÃ¥ndsdagenArmékuppdagenSchweizarnas ankomstArtigas födelsedagArubaAbdu'l-Bahas uppstigningBaha'u'llahs uppstigningBlÃ¥mÃ¥ndagenAskonsdagenAshura'AstAsunciondagenAtaturks minnesdagaugaugustiAustralienAustralien/CanberraAustralien/New South WalesAustralien/NordterritorietAustralien/QueenslandAustralien/SydaustralienAustralien/TasmanienAustralien/VictoriaAustralien/VästaustralienÖsterrikeÖvermaktens maktdagAzerbajdzjanBa'ath-revolutionsdagenOmvänt snedstreck ("%c")BahBahamasBahrainBahá'is nyÃ¥rsdagBangladesh BankhelgenBarbadosBaron Bliss dagBaskiska nationaldagenBataan-dagenSlaget vid AngamosSlaget vid BoyacáSlaget vid BoyneSlaget vid CaraboboSlaget vid IquiqueSlaget vid Las PiedrasSlaget vid NäfelsSlaget vid PueblaFinansÃ¥rets börjanSommarens börjanVitrysslandBelgienBelgrads dagBelizeBeltaneBenin Benito Juárez dagSlaget vid Benningtons dagBermudaBhutan Baha'u'llahs födelseBabens födelseVälsignelsen av vattnetBlomningsdagenBodhidharmas 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 mÃ¥nsolskalendern 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 nyÃ¥rsdagenKinesiska nyÃ¥rsaftonenChou/OxeKriKristi himmelsfärds dagJuldagenJulaftonJulöarnaKrysantemumdagenMedborgarskapsdagenAllmän helgKokosöarna (Keeling)ColombiaKolondagenColoradodagenColumbus dagÃ…ldersnalkningsdagenKommando 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 nyÃ¥rsdagenKröningsdagenKosmonautdagenCosta RicaSkapadKroatienKorsresningsdagenKubaKulturdagenCupmatchdagenAnpassade 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 Ã¥ngerdagenFörsoningsdagenStudentrevoltens dagAvtalsdagenFria 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 dagFaderslandets försvarares dagDemokratiska folkrepubliken KoreaDemokratiska republiken Kongo DanmarkDia de los MaestrosDia del PadreUpptäckelsedagenDjiboutiDominicaDominikanska republikenDubbel-9-dagenFallet av DergueDr. Sun Yat-sens födelsedagDrakbÃ¥tsfestivalTorrsäsongsfirandetDuartes födelsedagDynastidagenE. Hostos födelsedagEGOAnnandag pÃ¥skPÃ¥skdagenPÃ¥sktisdagenEkonomiska 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 nyÃ¥rsdagenEvakueringsdagenTrettondagsaftonDe trettiotres expeditionFAO-dagenFORMATgrupp (exakt en medlem mÃ¥ste definieras):FRRFalklandsöarna (Malvinerna)FamiljedagenBondens dagFäröarnaFader Levals dagFars dagKristi kropps och blods högtidRikedomshögtidenKristi hjärtas högtidVÃ¥r Theotokos högtidfebfebruariMikronesiska FederationenLanternfestivalenSadeh-festivalenFältinnehÃ¥llet konverteras till ord med inledande stor bokstavFältinnehÃ¥llet konverteras till smÃ¥ bokstäverFältinnehÃ¥llet konverteras till stora bokstäverFältinnehÃ¥ll klipps efter position BREDDFältinnehÃ¥ll klipps inte efter position BREDDFältinnehÃ¥ll som placeras vid vänstermarginalen genom att använda BREDDFältinnehÃ¥ll som placeras vid högermarginalen genom att använda BREDDFältinnehÃ¥ll som placeras centrerat genom att använda BREDDFältet har bredden N (%d...%d)Fiji FinlandFörsta dagen i RidvanFiskarens dagLista med fasta datum:Flaggans dagFlamländska kulturdagenFör detta jugoslavrepubliken MakedonienNPLA:s grundningsdagGrundandet av folkpartietGrundandet av kommunistpartietfrFrankrikeFranska kulturdagenFranska GuyanaPolynesienFranska revolutionenfrefredagfredagarVänskapsdagenFullmÃ¥neGabon GambiaGarifunadagenGeneral San Martins jubileumGeorgienDagen 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üringenGhadirGhanaGibraltarLÃ¥ngfredagenPÃ¥skaftonGospeldagenFar- och morföräldrars dagStorbritannienStorbritannien/England och WalesStorbritannien/NordirlandStorbritannien/SkottlandGreklandGrönskedagenGrönlandGrenadaGrottodagenMurmeldjursdagenGuacanastedagenGuadalupe Virgins dagGuadeloupeGuamGuatemalaGuineaGuinea-Bissau Gustav AdolfsdagenGuy Fawkes dagGuyana Hai/GrisHaitiAllhelgonaaftonHannukah/LjusfestivalenHälso- och sportdagenHeard- och McDonaldöarnaHebArvsdagenHjältarnas dagMarkeringsgrupp (alla medlemmar mÃ¥ste definieras):Ho Chi Minhs födelsedagHobart-visningsdagenMenlösa barns dagHeliga trefaldighetenHeliga onsdagenHondurasHong KongMänniskorättsdagenUngernHuraveedagenOrkanbö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ändighetGuyaquils självständighetQuitos självständighetIndien Indianska ankomstdagenIndiska nyÃ¥rsdagenIndonesien IntInternInterna autonomitetsdagenOgiltigt argument i den angivna kommandoraden -- %sIrakIrlandIslIslamiska nyÃ¥rsdagenIslamiska republiken IranIsraelItalienJ. Barbosas födelsedagJ. Chilembwes dagJ. Diegos födelsedagJ. Roberts födelsedagJamaicajanjanuariJapJapanJapanska nyÃ¥rsdagenJapanska nyÃ¥rsaftonenJefferson 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 majArbetartacksägelsedagenLag B'OmerLao Tzes födelsedagDemokratiska folkrepubliken Laos Samernas nationaldagLettlandLaunceston Cup-dagenSkottdagen satt till "%02d-%s" i filen "%s".LibanonLesothoBefrielsedagenLiberiaFrihetsdagenLibyska Arab Jamahiriya (Libyen)LiechtensteinRad %ld ignorerad: %sRad %ld: %sLitauenFÖrlorandet av den muslimska statenLughnasaMÃ¥nförmörkelseLuxemburgStaden Luxembourgs KermisLyndon B. Johnsons dagMSÄLJBARHET eller LÄMPLIGHET FÖR NÃ…GOT SPECIELLT ÄNDAMÃ…LMacaoMadagaskar Madaraka-dagenMahatma Gandhis födelsedagE-post frÃ¥n \"%s" (%02d-%s-%04d %02d%s%02d%s%02dMalawiMalaysia MaldivernaMaliMaltaMalvinasdagenManiladagenMao/KaninMaputo Citys dagmarmarsMarien Ngouabis dagMarinkÃ¥rsdagenMarshallöarnaMartin L. Kings dagMÃ¥rtensmässaMartiniqueBabs martyrskapMartyrernas dagMarie - Välsignad jungfruMarie bebÃ¥delsedagMarie himmelsfärds dagKyndelsmässanMarie förväntningMarie obefläckade avelseMarie moderskapMarie namnMarie födelseMarie offerMarie hemvistMarylanddagenSkärtorsdagenMauretanienMauritiusmajmajMajdagenMayotteMelbourne Cup-dagenHandlardagenMexikoMi-Carême-dagenMidhöstfestivalenMidvÃ¥rsfestivalenMidÃ¥rsfestivalenMissionärsdagenmÃ¥mÃ¥nMonacomÃ¥ndagmÃ¥ndagarmÃ¥ndagar - fredagarmÃ¥ndagar - torsdagarMongoliet MÃ¥nadsgrupp (exakt en medlem mÃ¥ste definieras):MontserratMorazandagenMarockoMosheshoes dagSvärmorsdagenMors dagMödraskapets och skönhetens dagMoçambiqueMusikvattenbankettenMyanmar (Burma) NamibiaNamngivelsedagenNationella bulledagenNationens grundelsedagNationella hjältars dagNationell helgdagNationell sorgedagNationella försoningsdagenNationella motstÃ¥ndsdagenNationella uppväckelsedagenNationella enhetsdagenNauruNdadayedagenNepal NederländernaNederländska Antillerna/BonaireNederländska Antillerna/CuraçaoNederländska Antillerna/Saba och StatiaNederländska Antillerna/St MaartenNeutralitetsdagenNevadadagenNya KaledonienNymÃ¥neNya regimens jubileumNyÃ¥rsdagenNya ZeelandNicaraguaNigeriaNigeriaNionde dagen i RidvanNiueNobeldagenNoidagenNorfolköarna Norra Marianeröarna (Saipan)Noruz/Persiska nyÃ¥rsdagenNorgenovnovemberNumeriskt värde fylls med inledande nolla/nollorNumeriskt värde tillhandahÃ¥lls med ett ordinalt nummersuffixNumeriskt värde tillhandahÃ¥lls med inledande teckenSjuksysterdagenNuzul-al-Qur'anOAU-dagenFLAGGAoktoktoberOktoberhelgenOljeindustrins dagGammalarenska nyÃ¥retGammalegyptiska nyÃ¥retOmananvändbarhet. Jag tar av princip inte ansvar för NÃ…GON skada ellerOrtodoxa nyÃ¥rsdagenVÃ¥r fru Aparecidas dagVÃ¥r fru Altagracias dagVÃ¥r fru Camarins dagVÃ¥r fru Las Mercedes dagVÃ¥r fru Los Angeles dagVÃ¥r fru av sju synderVÃ¥r fru av segrars dagOxNOxOPakistanPalauPalmsöndagenPanamaPanama Citys dagPanamerikadagenPapua Nya GuineaParaguayFörälderdagenParis-fredsuppgörelsens dagDelvis5:e söndagen i fastanPatrioternas dagFredsfestivalenPersikofestivalenHalvskuggadFolkets maktdagFolkets upprorsdagPerProcent ("%c")PeruPesach/PÃ¥skFilippinsk-amerikanska vänskapenFilippinernaFysPichincha-dagenPicknickdagenPionjärdagenPitcairnPolenPortugalPoyadagenBönedagenLäs flaggor och kommandon frÃ¥n "FIL"President Lincolns födelsedagPresidentinstallationPresidentens dagPresidentens informationPrins Kalanianaoles dagPrinsen av Wales födelsedagPrinsessans dagProklameringsdagenPuerto RicoPurim/LotshögtidenQaid-i-Azams födelsedagQatarQuds dagFastlagssöndagenRamadanRatu Sukuma-dagenFritidsdagenFolkomröstningsdagenReformationsdagenRegattadagenRegentutbytetMinnesdagenRepublikens dagRepubliken Kongo Republiken KoreaRepubliken MoldavienÄldrevördnadsdagenRestaurationsdagenÃ…terkomstdagenÃ…terföreningsdagenRevolutionsdagenRio de Janeiros jubileumRizaldagenBönsöndagenRumänienRosh Hashana/NyÃ¥rsdagenRysslandRwagasoredagenRwandaRéunionS. Does födelsedagSAR-etabliceringsdagenTECKEN (kan definieras):STILgrupp (exakt en medlem mÃ¥ste definieras):SUFFIX (kan definieras):löSabadagenSaint-Pierre och MiquelonSamhain/Keltiska nyÃ¥rsdagenSamoaSan Jacinto-dagenSan José-dagenSan MarinoSão Paulos jubileumSao Tomé och PrincipeSapporos snöfestivallörlördaglördagarSaudiarabienSkolhelgSäsongsändrings-/bönfestivalenSechseläutenSenegalsepSeparationsdagenseptemberSeptuagesimaSerbien och MontenegroSeretse Khama-dagenBosättardagenSjusovarens dagSewards dagSexagesimaSeychellernaShab-e QadrShab-e-Bara'tShab-e-Mi'rajShaheeddagenShavuot/Överräckningen av TorahFÃ¥rfestivalenSheikh Zayeds uppstigningsdagShen/ApaFettisdagenShushan PurimSi/OrmSierra LeoneSimchat TorahSimon Bolivars dagSinais befrielsedagSingapore SlavbefrielsedagenSlovakienSlovenienSniffa brisen-dagenSolförmörkelseSolidaritetsdagenSolomonöarnaSolstÃ¥ndsdagenSomaliaSomersdagenSotstädningsdagenSydafrikaSydgeorgien och södra SandwichöarnaBlanksteg/tomt ("%c") teckenSpanienVÃ¥rfestivalenSri Lanka S:t Agata-dagenS:t Andrews dagS:t Bartolomeus dagS:t Berchtolds dagS:t Canutes dagS:t Cedilias dagS:t Charles dagS:t Davids dagS:t Demetrius dagS:t Dévote-dagenS:t Edwards dagS:t Eliahs dagS:t Görans dagSt HelenaS:t James dagS:t Jean Baptistes dagS:t Johns dag/MidsommardagenMidsommaraftonS:t Josefs dagSt Kitts och NevisS:t Laurentius dagSt LuciaLuciadagenS:t Marguerites dagS:t Maroons dagS:t Michaels dagS:t Nikolaus dagS:t Nikolaus aftonS:t Olavs dagS:t Olavs aftonS:t Patricks dagS:t Pauls skeppsvrakS:t Peter och S:t PaulS:t Rose av LimaS:t Stefans dagS:t Ursulas dagAlla hjärtans dagSt Vincent och GrenadinernaS:t Vincent de Pauls dagStandardStjärnfestivalenStart pÃ¥ gemensam mÃ¥nadStart pÃ¥ markeringsssekvens/markeringsteckenStart pÃ¥ skottmÃ¥nadStatia-amerikanska dagenStudenternas dagsöSudanSuez-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-LandSchweiz/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ürichNyÃ¥rsaftonSyriska Arabrepubliken (Syrien)TaiwanTadzjikistanTanzaniaLärarens dagTennant-Creek-visningsdagenTerritoriedagentoThailändska nyÃ¥rsdagenThailand TacksägelsedagenKronprinsens födelsedagKronprinsessans födelsedagKronprinsessans namnsdagKonungens födelsedagKonungens namnsdagDrottningens födelsedagDrottningens namnsdagDet finns INGEN garanti, ej heller nÃ¥gon underförstÃ¥dd garanti omDetta är fri programvara; se källkoden för kopieringsvillkorDetta program är fri programvara; du fÃ¥r distribuera det och/eller modifieraDetta program gör inte ansprÃ¥k pÃ¥ fullständighet, korrekthet ellertortorsdagtorsdagarTiradentes dagTisha B'Av/FastedagenTogo TokelauGravstädningsdagenTongaTopou I-dagenTotaltStadsmötesdagenTraditionell dagÖ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/Nytt Ã¥r med trädtistisdagtisdagarTunisienTurkietTurkmenistanTurks- 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/WyomingEnhetsfabriksdagenUruguayAnvä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 (mÃ¥ste definieras):Wallis- och FutunaöarnaMinskande halvmÃ¥neWaqf-al-ArafatVäxande halvmÃ¥neononsonsdagonsdagarVeckaVecka %sWei/FÃ¥rWest 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 fÃ¥tt en kopia av "GNU General Public License"You/TuppUngdomens dagNOLL (mÃ¥ste definieras):ZambiaZi/RÃ¥ttaZimbabweZod[JUSTERING [TECKEN] [NOLL] BREDD [STIL] [SUFFIX] FORMAT]"%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.kommandoradinnehÃ¥lla 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'"helgdagarotillÃ¥tet tecken i svarsfilen "%s" Rad %ld: %sotillÃ¥ten definition av variabeln "%c"otillÃ¥ten operation pÃ¥ variabeln "%c"otillÃ¥ten variabeldefinition i filen "%s"otillÃ¥ten operation med variabel i filen "%s"ogiltigt 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 mÃ¥nadogiltigt mÃ¥nadsfä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 pÃ¥skdagen Ã…ret mÃ¥ste vara i intervallet (%d - %d)det under villkoren i "GNU General Public License" utfärdat avallmänna helgdagarfelaktig %s i filen "%s" Rad %ld: %sblanktecken saknas efter datumdelen i filen "%s" Rad %ld: %s:aförlust (direkt eller indirekt), som användandet eller handhavandetem:eläsfel i filen "%s"responsfilegendefinieratskickande 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-3.6.3/po/Rules-quot0000644000175000017500000000337612125375415012011 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-3.6.3/po/fr.gmo0000644000175000017500000032756712125376135011134 00000000000000Þ•„<,a\Xàu áu"îuv%vC6vAzvE¼vBw+EwLqwK¾wK xJVxM¡xDïxF4yF{y@ÂyAzFEzFŒz=Óz6{7H{1€{7²{Aê{E,|Cr|A¶|Iø|HB}H‹}?Ô}*~!?~$a~4†~?»~Mû~HIH’PÛJ,€Kw€+À+ï€?6[4’=Ç@‚JF‚>‘‚JЂIƒKeƒJ±ƒEüƒDB„J‡„DÒ„1…1I…9{…4µ…<ê…@'†2h†<›†9؆0‡*C‡Jn‡<¹‡Mö‡7DˆN|ˆ?ˈB ‰.N‰N}‰.̉Bû‰(>Š-gŠ;•Š-ÑŠCÿŠ#C‹g‹K…‹JÑ‹?ŒH\Œ'¥ŒJÍŒ5!N4p&¥"Ìï6ŽJFŽ.‘ŽCÀŽ:F?6†3½5ñA'?i5©,ßJ ‘EW‘3‘(Ñ‘6ú‘/1’+a’7’7Å’Eý’:C“ ~“0Ÿ“(Г2ù“E,”Cr”D¶”Eû”CA•N…•LÔ•O!–Bq–D´–Pù–DJ—B—HÒ—K˜Ig˜F±˜Dø˜O=™M™GÛ™G#šJkšJ¶šM›KO›=››EÙ›Kœ@kœE¬œ9òœ.,7[-“JÁ= ž-JžJxž0Þ=ôž62ŸCiŸ7­Ÿ=åŸ8# 9\ /– ?Æ @¡2G¡Fz¡&Á¡Hè¡.1¢B`¢B£¢Xæ¢c?£]££5¤:7¤Er¤G¸¤,¥@-¥En¥*´¥EߥE%¦Ak¦C­¦Eñ¦77§@o§:°§-맨I9¨Iƒ¨ͨ;é¨:%©=`©;ž©8Ú©<ª>Pª@ªMЪ6«;U«‘«£«³«Ë«ã«ú« ¬ ¬ )¬ 4¬ @¬M¬BV¬™¬Bž¬á¬ñ¬(­*­/­ N­[­j­Š­ª­±­$¸­Ý­#÷­'®&C®/j®+š® Æ®;Ò®+¯:¯%N¯#t¯˜¯±¯)Ưð¯$ °+2°&^°%…°(«°&Ô°û°=±"V±#y± ±!¾±"à± ²²!²1² E²P² c²n² ²Œ² Ÿ²ª²½²̲Û²5ݲ³³³*³ ;³ I³U³ i³t³|³³•³¬³»³˳Û³.ê³ ´&´ 5´B´ J´T´]´ f´‡´¥´½´Ý´ý´µ7µRµmµƒµ˜µ±µɵãµûµ¶ ¶ %¶/¶3¶9¶ I¶!S¶u¶“¶ ¦¶&°¶×¶è¶ ð¶ þ¶ ·!·3·9·R· k· v·„·Œ· ··²·¶· ½·Ç·Ú·ô·¸&¸C¸V¸i¸…¸¸ £¸®¸ĸ߸ã¸ë¸ó¸ ¹ ¹$¹-¹=¹ Q¹\¹n¹€¹¹£¹µ¹˹ݹî¹ ºº&º.º=ºDºLºTºgº}º…ºŽº£º´º ʺÔº ëº÷º ÿº »» 2»>» G» T» _» m»x»»›»·»λà»é» ù»¼ ¼ %¼/¼@¼H¼ K¼V¼ _¼j¼q¼€¼˜¼¨¼ ½¼Þ¼ú¼ ½½8½G½ [½ h½4u½0ª½ Û½ æ½ò½û½ ¾#¾6¾G¾V¾Z¾u¾†¾‹¾ ¢¾ ®¾º¾¾¾Ù¾è¾¿¿ ¿#¿:¿B¿F¿ ]¿ k¿y¿‹¿¿ ­¿»¿Ó¿ Ü¿ æ¿ ó¿À9ÀLÀ]À eÀqÀ‘ÀªÀ¾À ×ÀäÀúÀ Á Á$Á,Á4ÁFÁ KÁ WÁeÁxÁ~Á…Á”Á£Á¥ÁHµÁþÁÂ8ÂIÂZÂiÂy–¬ÂÃÂ×ÂìÂÃÃ6ÃPÃjÃÖÚãà ºÃÈÃ%äà Ä)Ä1Ä EÄ SÄaÄjÄsÄ †Ä“ĪÄÅÄÚÄñÄ ÅÅ#Å 'Å 5ÅCÅRÅjÅrÅ xÅ „ÅŤŴŠËÅ ×ÅäÅÆÆ"Æ.5ÆdÆ~Æ ÆœÆ¤ÆµÆ½ÆÒÆÛÆóÆÇÇ'Ç2/ÇbÇfÇ ‚Ç ÇšÇ¡Ç ²Ç¿Ç×ÇèÇýÇÈÈ!È@ÈUÈ0gÈ1˜È1ÊÈ*üÈ.'É:VÉ;‘É:ÍÉÊ(Ê/Ê7ÊKÊ[ÊdÊ%xʞʵÊÐÊðÊóÊúÊ ËË,ËAËEËLËTË cËmËuË |Ë ‰ËªË²ËÃËËËæËöËÌÌ(Ì 8ÌFÌ"[Ì~ÌÌ ºÌÇÌÖÌìÌÍÍ Í &Í 0Í<Í UÍ`Í r̀͠ͿÍÖÍ ÝÍ êÍôÍ üÍ ÎÎ$Î ;ÎFÎ KÎUÎ\Îl΃ΓΜΤΠªÎ´ÎÐÎçÎÏ Ï Ï1ÏQÏhÏxÏ ŒÏ™Ï¨Ï ±Ï»ÏÌÏ ÔÏàÏûÏÐAÐ `ÐkÐrЃÐзÐÑÐèÐÑÑ Ñ3Ñ IÑUÑYÑbÑ,xѥѪѲѶÑÍÑæÑíÑóÑ ÒÒ.ÒCÒKÒOÒWÒ[ÒaÒyÒ‘Ò«Ò¿ÒÆÒÊÒÏÒÓÒ ØÒåÒ õÒ Ó ÓÓÓ4ÓKÓ_ÓÓ ˜Ó£Ó³ÓÌÓÓÓ ÛÓæÓ ûÓÔ Ô)Ô#<Ô`ÔvÔ}Ô'Ô¸ÔÀÔÈÔ×Ô ßÔëÔ ÕÕ -Õ :ÕDÕZÕ cÕ qÕ|Õ“Õ©Õ4«ÕàÕ æÕ óÕÖ.ÖIÖ PÖ[ÖdÖiÖ oÖ |Ö ‡Ö’Ö¢Ö¦Ö¬Ö ¿ÖÊÖÛÖ ðÖ ûÖ× ×(×>×V×k×|××¬× ½×É×Ù×ê× ü× Ø Ø $Ø.Ø2Ø7Ø?ØGØ YØfØmØ|ØØ¤Ø¶ØÅØÈØÌØÓØÚØâØôØ Ù1Ù EÙ PÙ\ÙdÙtÙ ˆÙ•Ù ¯ÙºÙÎÙàÙ èÙóÙÚÚ0ÚAÚWÚoÚ‡ÚœÚ¯Ú µÚÁÚ ÉÚÕÚòÚ$Û5ÛUÛ dÛ oÛ}Û†ÛÛ ¬Û ¸ÛÂÛÈÛÐÛäÛ éÛóÛûÛ Ü,ÜIÜPÜTÜ/]Ü9Ü-ÇÜ õÜÝÝÝ Ý$Ý,Ý<ÝMÝbÝwÝE|ÝÂÝÚÝñÝ Þ$ÞAÞ]ÞwÞ‘Þ•Þ™Þ¢Þ ¨Þ´Þ»ÞËÞÚÞëÞ ôÞßß#ß 2ß@ßOß ^ßhßyßߓ߬߱ßÁß àßìß ðß þß ààà%à.à 7à(Bàkàˆà¢à²àÅàÝà ÷àá á"á6áMáSá\áqáyá‰á˜á§á ·áÃáÔá íáúáâ â4âMâ ]âhâzâ‰â ¤â®â¾âÆâââ õâã ãã%ã;ã0RãƒãœãŸã¨ãÂãàãæã öã ää%ä<äRäVä _ä iävä…ä ¡ä¯ä·ä»ä ÊäÔäèäþä åå 0å=å Oå Zå få tå ‚åŽåªå¹å Öåâå üå æ æ æ.æBæ WæcæxææŠæ Ÿæ­æ¼æ ÌæÙæ áæìæ þæ( ç4çQçWç gç sç€çç£ç¶çÆç×çççöçèè'è6è Fè Pè^èsè‹è¤è´èÇèÙèâèñèéé&é7é Hé VédéuéŠéŸé¯éÀéÐéãéýéê ê-ê0Cêtêˆê œêªê­ê³êÄêàêøêüêëë ë)ëHë Xë dënë uë €ë ë™ë"¬ë!Ïëñëì ì1ìFìZìmì…ì–ì©ìÀìÖìëìþìí*í>íQíaítí…í•í©íÂíßí æíñí úíî î-î0î DîOî`î|î›îºîÎîâî÷î: ï=GïD…ïCÊïðð ð%ð4ðKðRðZðlð rð~ð„ð•ð ¥ð²ðÆð Üð5çð)ñGñfñiñ‡ñ‹ñ“ñœñ¤ñ «ñ¸ñÑñØñ îñúñòòò$ò,ò HòRònòƒò –ò¤òºòÏòåòüòó,óFó"]ó€ó–ó¬óÁóÕóìóôô*ôAôYômô„ô ô·ôÏôéôõõ-õBõ^õwõõ§õÄõßõòõ öö9öTöqöŒö¤ö¸öËöáöøö÷-÷E÷[÷m÷=u÷0³÷8ä÷Kø7iø.¡øÐø(áø ù ù#ù +ù5ù EùSù iù vù‚ù‹ù”ù–ù«ùÄùÞùïùþùúú ú ú+ú0ú 8úBúTú cú oú{ú úœú¯úÀúÉúÐúÒúÚú àúêú û(ûHûaûC€û Äû ÐûÚûñûøûÿûü7 ü#DüAhü*ªü/Õüý ý'ý%@ý.fý•ý˜ý «ý5¸ýîýòýúý#þ!3þUþ.\þ‹þŸþµþ¹þ4Âþ#÷þ"ÿ(>ÿ'gÿ8ÿ+Èÿ ôÿ1 23@5t%ª4ÐNFT›&ªHÑ>\_b z ˆ• ²¿ÛÞæéò%A$Q v •%(4]wDBÒKHa)ªuÔYJ¤Q$ŠvM OO OŸ Fï L6 Lƒ QÐ =" A` B¢ 9å B Wb Uº L B] ~  V}v\ô(Q!z%œ?ÂKdNa³YaoSÑP%+v+¢?Î6?E?…@Å[SbQ¶KZTb¯II\W¦Fþ0E;vI²4üE1Ow>ÇB@I/Š0º[ëAGO‰=Ù\@tRµ;YD3žMÒ* 9KI…8ÏL%U {Yœ`öNWU¦/ü\, :‰ ,Ä >ñ 10!+b!(Ž!?·!X÷!_P"J°"Dû"I@#EŠ#=Ð#8$JG$Q’$*ä$"%K2%?~%)¾%6è%4&@T&9•&JÏ&I'Gd';¬'*è'G(6[(H’(VÛ(T2)W‡)Yß)W9*b‘*`ô*fU+U¼+Z,lm,ZÚ,X5-\Ž-aë-_M.Z­.X/ca/aÅ/_'0_‡0cç0aK1_­1] 2Sk2X¿2l3O…3]Õ3;34(o4F˜4Aß4\!5J~5:É5w6B|6U¿6G7_]7S½7Y8Ok8Z»8C9^Z9_¹9>:CX:+œ:HÈ:5;OG;O—;Zç;tB<n·<?&=>f=S¥=Tù=8N>L‡>UÔ>!*?VL?M£?Oñ?GA@M‰@O×@6'AN^A4­A'âAF BBQB#”BI¸B;CE>C7„C8¼CFõCA›NÚN ÞNìNOO 3O?OUOgOoO„OO£O¼OÒOéOFÿOFPZPlP‚PŠP™P¢P%«P"ÑPôP Q-QLQkQ‹QªQÆQÝQóQ R&RAR ZRdRwR ŠR˜RœR¢RºR+ÉRõRS +S65SlSŒS•S©SÂS×SèSîST T2TGTOTSTiT†T‹T ‘T›T ®TÏTìT U"U5UHUhUqU ‘UžU+½UéUíUõUþU V'V:VBVVVrVVV¹VÓVðV W,WHWcW‚W”WW¦W¸W¿WÇWÐW!èW XXX5XFX]XvXX X¨X¹XÖXêXùXYY $Y 0Y;Y%CYiY}Y˜Y°Y¹YÎYÖY éY ÷YZZ Z #Z.Z7ZFZMZ\ZxZˆZ¡Z ÀZáZùZ['[6[ J[W[@i[Eª[ð[ù[ \\6\H\Z\ n\{\\ž\´\º\Ö\ ç\ó\÷\],]H]N]T]n] Š]•]™]­]¼]Ì]ß]ô] ^^1^ :^H^"Z^}^V˜^ï^_ _ _=_[_r_ ’__µ_Ë_ à_ë_ò_ú_``/`I`f`l`s`ˆ`—`™`H¨`(ñ` a;aMa_aoa!‰a«aÆaåaøab-bCb_byb“b§b½b ÂbÌbàb&õb-c$Jcocxc Šc˜c¯c ¸cÂcÚcëcûcd!7dYdpd„džd¢d³dÇd"Ødûde e e$e8e#Me qe}e#™e"½eàeäe>üe;fUfjf ~fˆfœf#¤f ÈfÒfïfgg /g8;gtgxg’g¥g ¸gÆgÛgìghh1hGhLh Uhvhh/Ÿh'Ïh'÷hIiOiiB¹iBüi6?j"vj™j j©jÀjÓj ëj' k4kRkokkk—k·kÊk!àkllll *l6l>lEl$Wl|l(„l ­l·lÒlålöl mm0m@m,Um&‚m©mÇm×mæmümn,n3n 9nCnRnqn…nn,­nÚnúnoo ,o6o>oQoeo"yo œo§o ¬o·o¿oÐoêoüo ppp,pIphpp†p›pH¬põpq q;qKqZq cqmqŒq”q$¥q!Êqìq=ôq2rArHr$ar†r%¦r!Ìr$îr s4suBuJuNuSubuwu ˆu“u ›u©uÅuáu(úu!#v EvPv`vxvv ‡v’v¬v)½v çvóv+w4wLwUwLrw¿wÅwÍwäwíw9x ?xMx dx rx|x™x¢x ³x"¾xáxüxAþx@y FySyey4„y¹y ÀyËyÔyÙy#ßyz zz9z=zBzZzmz|z ›z ¦z±zÇzÙzøz{ *{5{J{`{t{{¢{µ{Ë{ Ý{ é{ô{ü{|| ||3|G|O|f|€|œ|µ|Í|Ð|Ô|Û|á|ç| ø| }6} H}S}d}j}}}•}&¦} Í}Ø}ô} ~ ~~;~[~v~†~!~!¿~á~ÿ~!2;D d&…"¬Ïçø €€ :€G€ Y€c€i€r€‹€€ Ÿ€ ¬€ º€Û€ù€.?>/~®Å Õâéíõ ‚&‚A‚\‚Da‚¦‚‚ à‚ƒ# ƒ"Dƒgƒ ƒ¢ƒ¦ƒªƒ³ƒ¹ƒ΃Õƒñƒ„„(„":„]„e„|„„¤„ º„Ą߄þ„$…'….…*C… n…z…~…‘…¦…º…É…Ñ… Ú…è…9û…'5†&]†„†Ÿ†²†φ ‡(‡0‡L‡ R‡_‡~‡†‡›‡³‡ɇé‡ú‡ˆ"ˆ:ˆQˆgˆˆ›ˆ²ˆˆ݈ôˆ‰"‰7‰?‰^‰u‰ˆ‰‰˜‰¯‰ω:ë‰&ŠDŠ GŠUŠnŠŽŠ”Š©Š ¼ŠÇŠáŠ÷Š‹‹!‹(‹7‹(G‹ p‹ ~‹ˆ‹Œ‹ ¤‹®‹Ë‹â‹ù‹ Œ#Œ3Œ NŒ YŒ eŒ sŒŒ’Œ«Œ%¾Œ äŒ ïŒ úŒ   .!E g#s—  ªÆ× ïýŽŽ%ŽAŽ'PŽ"xŽ›Ž£Ž ¹ŽÅŽØŽëŽ,BVh€”©¾ ÑÞò- &:at† §ºÕèû!‘1‘B‘W‘k‘}‘’‘£‘¹‘Ì‘á‘þ‘’&’<’AT’–’°’É’ß’â’é’“!“?“C“L“_“ h“s““Ÿ“ ¸““ɓܓñ“ ø“”$”A”S” f”s”ƒ” ’” ” ³” ¿”͔ߔ𔠕••0• ?• M• Y• g• s•~• •"®•Ñ• Ø•ã•ì• –"–6–9– P–]–&x–,Ÿ–Ì–é– ú–——E/—Gu—C½—E˜G˜K˜Q˜W˜j˜„˜‹˜“˜¥˜«˜¼˜˜ܘô˜™!™6™JF™@‘™+Ò™þ™!š#š'š-š3š;š CšQšhšošˆš˜š³š¹šÁšÉš%Ñš÷š'›0›E› `›l›€›“›§›¼›Ó›è›œ œ6œJœ^œqœƒœ˜œ¬œ½œМåœúœ !;Pf}’¦»Îèÿž0žMžhžyžŽž¡žºžÓžïž ŸŸ1ŸBŸVŸkŸ‚Ÿ¡Ÿ·Ÿ!ËŸíŸ=õŸ43 8h K¡ ;í 2)¡\¡2w¡ ª¡µ¡Ç¡ ϡܡ/¢K¢_¢h¢q¢s¢¢¬¢âÛ¢ê¢ÿ¢££££ £ +£6£V£h££—£±£ £ã£ ¤ ¤¤ ¤#¤ *¤%4¤-Z¤+ˆ¤´¤$Ô¤Cù¤=¥E¥V¥r¥y¥€¥‰¥=¥4Ë¥J¦4K¦8€¦#¹¦ ݦ"ë¦)§G8§€§1ƒ§µ§Bǧ ¨¨¨<0¨;m¨©¨>°¨ï¨ ©%©)©C8©*|©-§©:Õ©>ªOOª;Ÿª ÛªEéª /«E=«Mƒ«%Ñ«J÷«lB¬N¯¬þ¬F­]\­º­9À­ú­ý­®!® 2®.?®n®%u®›®ž®¦®¬®µ®É®.䮯9$¯ ^¯ i¯BÛfÈc‚ôcC™=f%LŽË‰€>,dÚð%‘½?:RÁròš%£ˆþm$Xº' ìÝŒKØ )€gµ"‹¨³#2ŠZö¢óšÇãê;™‚im6˜å¡gXæîwòs„¶ò_Ô5§BºN _ó¾õnsØ*þNŸßÚ( üÔx&[ZN’©Î_ÓJ¡qv\qql A¡y´z9‚Z>,¢wì pFì uIbWÀ«…ýjYvIm? k¼ WùM9`¤A¬¾œðû;[ÝÑz§Ìj4{2BŠ\E˜º¯é¿£Ï?vŽ]´ X`b¥ÞáS/–¹ ’¦Ë+Ü?~ISzºÍH¾ßøÒUAà,gϪ¬kß¾R‰»Z{–2¯i ÆbnS€Áù)àÓš¯[Å[®Ì(Ö.'GwD_s,<­U¿âq3økMÊpQ @.13#ÐÙPPGV…fL¯6›Öɰ3ù‰ã|Š1FøÈ%ä.E/p5þÙÄfF”ïG[Æ8·+[xëä©M7íau6c³ A Ú‘¨]<•xc=€íúöœT ^ÑR ÷âëxǾñÜâÖ§|£UUÓÃC /V\‡mK†#èo“µ¨U«ck—C@DN÷e†;’œ”5çØJ&ƉÍAý]Üš:„,sHR•×ÿÅ3¬iÆîWޤ÷aú•è7]cø*"Ž2ó1>é‹Ì?  ˜‘)ºæ70yÞ`J>Â-N¬ÝiXœmaû„5…‹<žWç7ÅZ¦ZëÑWb©46 î×ê+¤°UÊñõõþÖóŒ²-}.ÏDàLJ½åVjFä`Â`ÐÁ'P*0;í½Q®¦ÿÑ@("‡zØG0´ÊÛt$L©¢  µ®ô”‘üβYE”ùÕq0¹LŒa“znlC¸\Še™}ÿñÛ)8¸=~½edPK×°rÁ D ŸwsVƒ ÔÕ¶©úŸš]²²J̆ö…“¶¹¨*TÒÇ«FÿÑ{\å^o€dÔÉo®ÀþÙú] J‡Àè‚&DªQž$óê'/­w†Øœ&Ÿ¿üÀH`D+ò-…—:ô±hÐèPÕâ1F„rƒm:îÓ­¼­Ë0µPˆ˜Ö-jƒ;T7±·oM69Þë«ûAá¯ßLïzMÈðŒ>ˆd9b3Éñ­„*¡%y2HR¦!îIýëÒf  ð ¶W'Ï-Õ¦R»/é™3‡¤ x{jï㪲ŽSn=› H^_OV@rrò2éÃ)Äh†¼× l~ÚKçËpíGì€8¸ÛEagæM%÷{u’dˆh¿l =-8ðv\~•BphÛ5tT÷{ÒtÞªâKžÙN—G6¥ôÃ+I¼»§õ¢"oÊÅE~t"B¹å®–³ô<¼ù¨H9évÈg ï!q7ïø)¥±ç»Í—|04ns› íLá.8ÍÏÂQV·ž+ü}^Qu!äB<üT·gko|Ä1·À*}ÉeÔ¡Jìбæ#i™j:Òæ„"ƤOi¥› ÿK Þr&½¥5l͵S¢xu”ä^ñ‹|£!'hC±›OÄÎ/~Y‰X´õß°fÊãªÚ³}ŸaEýêÎ4Y4Ý‚°?û.öƒ:—hSê@‹,‚y¹eåý ЏÄú¸ <çˆàw¶O×}>Ð#Õ!£X•Ü^QÙèܘ;YÌÁÃO´Œ|dƒ§žÃÇt–CY$OË$k!áv³È(yu$(ƒp8#’tö“=Ýû–T¬eÎ_“àIÅá¿l«1n9&‘@Ó y4»ãbÉ( %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/Nordwest 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 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/SaarGermany/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' DayGuy Fawke's 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 DayNorfolk IslandsNorthern 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-LandSwitzerland/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: GNU gcal 3.00 Report-Msgid-Bugs-To: bug-gcal@gnu.org POT-Creation-Date: 2013-03-29 21:40+0100 PO-Revision-Date: 2004-05-10 11:00-0500 Last-Translator: Michel Robitaille Language-Team: French Language: fr MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8-bit 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 = 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 %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ébuggage 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 du pairage 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 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%*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 ToussaintVeille de la ToussaintFête de la ToussaintTous les éléments de format marqués par # peuvent être ooptionnelsFê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 (É.U.)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 britanniquesAnniversaire 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 ChrysentèmeJour de la CitoyennetéCongé civiqueÃŽles Cocos (Keeling)ColombieJour de ColonFête du ColoradoFête de Christophe Colomb (É.U.)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 AndaluciaJour de CataloniaJour de GaliciaJour 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 MaîtresJour 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 ÉconomiqueEquateurÉgypteEid-al-AdhaEid-al-FitrEid-i-Milad-un-NabiJour des Huit HeuresJour de la Libération de EindhovenEl SalvadorJour des Élections (É.U.)É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ÉrytréeJour d'Errol BarrowEstonieListe permanente des jours de fêteÉthiopieJour du Nouvel An ÉthiopienJour de l'ÉvacuationVeille 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 de Corpus ChristiFête de la FortuneFête du Coeur de JésusFê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écheursJour du Drapeau (É.U.)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 luneGabon #GambieFête de GarifunaAnniversaire du Général San MartinGeorgieJour 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 GuadeloupeGuadeloupeGuamGuatémalaGuinéeGuinée-Bissau #Jour de Gustavus AdolphusJour de Guy FawkeGuyane #Hai/CochonHaitiHalloween (CAN-É.U.)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 -- %sIraqIrelandIslJour du Nouvel An IslamiqueRépublique Islamique d'IranIsraëlItalieAnniversaire de J. BarbosaJour de J. ChilembweAnniversaire de J. DiegoAnniversaire de J. RobertJamaiqueJanJanvierJapJaponJour 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 #KnabenschiessenKonstantin et MethodiusKuwaitKwanzaaKyrgyzstanAnniversaire 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érationLibériaFête de la LibérationJamahiriya arabe libyenne populaire et socialiste (Libye)LiechtensteinLigne %ld ignorée: %sLigne %ld: %sLithuaniePerte 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%02dMalawiMalaysie #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 (É.U.)MartinimasMartiniqueJour du martyr de BabFête des MartyrsImmaculée Conception de MarieAnnonciation de la ViergeAssomption de la ViergeChandeleurExpectation de MarieImmaculée ConceptionMaternité de MarieJour du Saint Nom de MarieNativité de MarieSacrifice de MarieJour de la VisitationFête du MarylandJeudi SaintMauritanieMauriceMaiMai1er MaiMayotteFête de la Coupe de MelbourneFête des MarchandsMexiqueFête de la Mi-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élandeNicaraguaNigerNigériaNeuvième Jour de RidvanNiueFête de NobelFête de NoiÃŽles NorfolkÃŽ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 Notre Dame AparecidaFête de Notre Dame de AlagraciaFête de Notre Dame de CamarinFête de Notre Dame de Las MercedesFête de Notre Dame de Los AngelesNotre Dame des 7 ChagrinsJour de Notre 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érouPessahh/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 »Naissance du Président Lincoln (É.U.)Jour de l'Inauguration PrésidentielleJour du Président (É.U.)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 Quinquangé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égenceJour du SouvenirFête de la RépubliqueRépublique du Congo #République de CoréeRépublique de MoldavieJour de Respect des AînésJour de la RestorationFête du RetourFête de la RéunificationJour de la RévolutionAnniversaire de Rio de JaneiroFête de RizalDimanche de RogationRomanieRosh 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 CelteSamoaFête de San JacintoFête de San JoséSan MarinoAnniversaire de Sao PauloSao Tomé et PrincipeFestival des Neiges de SapporoSamSamediSamediArabie SauditeCongé 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 EsclavesSlovakieSlové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 St-AgatheFête de St-AndréFête de St-BartholomewFête de St-BerchtoldFête de St-CanuteFête de Ste-CédiliaFête de St-CharlesFête de St-DavidFête de St-DémétriusFête de St-DévoteFête de St-ÉdouardFête de la St-EliahFête de St-GeorgeSte HélèneFête de St-JacquesFête de St-Jean BaptisteFête de la St-Jean/Jour du milieu de l'ÉtéVeille de la St-Jean/milieu de l'étéFête de St-JosephSt Kitts et NevisFête de St-LaurentiusSte LucieFête de Ste-LucieFête de la Ste-MargueriteFête de St-MaroonFête de St-MichelFête de St-NicolasVeille de la Fête de St-NicholasFête de St-OlavVeille de la St-OlavFête de St-PatrickÉpave de St-PaulSt-Pierre et St-PaulSte-Rose de LimaFête de St-StéphaneFête de St-UrsuleFête de St-ValentinSt Vincent et les GrenadinesFête de la St-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 ÉtudiantsDiSoudanFê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/SchwyzSuisse/SolothurnSuisse/St GallenSuisse/ThurgauSuisse/TicinoSuissse/UriSuisse/ValaisSuisse/VaudSuisse/ZugSuisse/ZürichSt-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 #Jour de l'Action de GrâceAnniversaire 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 traditionnelleJour du TransfertJour de la TransfigurationTrinidad 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É.U.INCONNUOugandaUkraineCaractè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 ManifacturesUruguayUsage: %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ézuélaCarnaval de VeniseJour du souvenirFête de Victor-SchoelcherFête de la Reine (Ca)/Fête de 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 la PentecôteVeille 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]« %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.ligne 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 »Niè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: %sCaractè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èmeinconnu 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-3.6.3/po/Makevars0000644000175000017500000000372612125364452011500 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-3.6.3/po/LINGUAS0000644000175000017500000000004712125375330011017 00000000000000ca da de es fr it lt nl pl ru rw sv tr gcal-3.6.3/po/de.po0000644000175000017500000041132312125376134010730 00000000000000# German message catalog for Gcal, the GNU implementation of `cal' & `calendar'. # Copyright (C) 1996, 1997 Thomas Esken. # Thomas Esken , 1997 # msgid "" msgstr "" "Project-Id-Version: gcal 2.40\n" "Report-Msgid-Bugs-To: bug-gcal@gnu.org\n" "POT-Creation-Date: 2013-03-29 21:40+0100\n" "PO-Revision-Date: 1997-04-09 23:42+0000\n" "Last-Translator: Thomas Esken \n" "Language-Team: German \n" "Language: de\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8-bit\n" #: src/file-io.c:1561 #, c-format msgid "Try to write %s `%s'... %s%s%s" msgstr "Versuche %s `%s' zu schreiben... %s%s%s" #: src/file-io.c:1564 src/file-io.c:1689 src/file-io.c:1702 msgid "failed" msgstr "Versagt" #: src/file-io.c:1564 src/file-io.c:1689 src/file-io.c:1702 msgid "success" msgstr "Erfolg" #: src/file-io.c:1684 #, c-format msgid "Try to open%sresource file `%s'... %s%s%s" msgstr "Versuche%sRessourcendatei `%s' zu öffnen... %s%s%s" #: src/file-io.c:1685 msgid " `HERE' " msgstr " `HIER' " #: src/file-io.c:1697 #, c-format msgid "Try to open (level: %02d) include file `%s'... %s%s%s" msgstr "Versuche (Ebene: %02d) Include-Datei `%s' zu öffnen... %s%s%s" #: src/gcal.c:352 src/gcal.c:523 src/gcal.c:2028 msgid "ARG" msgstr "ARG" #: src/gcal.c:1080 src/hd-data.c:69 msgid "Germany" msgstr "Deutschland" #: src/gcal.c:1081 msgid "U.S.A." msgstr "USA" #: src/gcal.c:1082 src/hd-data.c:72 msgid "Great Britain" msgstr "Großbritannien" #: src/gcal.c:1858 msgid "default" msgstr "Grundeinstellung" #: src/gcal.c:1957 msgid ":" msgstr "." #: src/gcal.c:1967 msgid "Y" msgstr "" #: src/gcal.c:1972 #, fuzzy msgid "M" msgstr "Mo" #: src/gcal.c:1977 #, fuzzy msgid "W" msgstr "KW" #: src/gcal.c:1982 msgid "D" msgstr "" #: src/gcal.c:2073 #, fuzzy msgid "Fixed date list:" msgstr "Terminliste" #: src/gcal.c:2090 src/gcal.c:2105 msgid "environment variable" msgstr "Umgebungsvariable" #: src/gcal.c:2274 #, fuzzy, c-format msgid "" "%s: command in environment variable `%s' found -- %s\n" "%s\n" "%s\n" msgstr "" "%s: Kommando in Umgebungsvariable `%s' angegeben --%s\n" "%s\n" #: src/gcal.c:2461 src/gcal.c:2489 src/gcal.c:6232 src/rc-use.c:1828 #: src/rc-use.c:1888 src/rc-use.c:1937 src/rc-use.c:2207 src/rc-utils.c:390 #: src/rc-utils.c:411 src/utils.c:342 src/utils.c:365 src/utils.c:384 #: src/utils.c:679 src/tcal.c:331 src/tcal.c:339 src/txt2gcal.c:270 #: src/txt2gcal.c:275 src/gcal2txt.c:270 src/gcal2txt.c:275 msgid "Internal" msgstr "Intern" #: src/gcal.c:2870 msgid "response file" msgstr "Antwortdatei" #: src/gcal.c:2870 src/gcal.c:2878 msgid "Created" msgstr "Erzeugt" #: src/gcal.c:2878 msgid "shell script" msgstr "shell script" #: src/gcal.c:3089 #, c-format msgid "Mail from \\`%s' (%02d-%s-%04d %02d%s%02d%s%02d" msgstr "Post von \\`%s' (%02d-%s-%04d %02d%s%02d%s%02d" #: src/gcal.c:3141 #, c-format msgid "%s: warning, eMail with empty message body not sent to <%s>.\n" msgstr "" #: src/gcal.c:4951 src/gcal.c:4984 msgid "command line" msgstr "Kommandozeile" #: src/gcal.c:5901 #, c-format msgid "%s: option `%s' is ambiguous" msgstr "%s: Option `%s' ist nicht eindeutig" #: src/gcal.c:5906 src/tcal.c:895 src/txt2gcal.c:716 src/gcal2txt.c:715 #, c-format msgid "%s: unrecognized option `%s'" msgstr "%s: unbekannte Option `%s'" #: src/gcal.c:5909 #, c-format msgid "%s: invalid option -- %s" msgstr "%s: ungültige Option -- %s" #: src/gcal.c:5916 #, fuzzy, 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' doesn't allow an argument" msgstr "%s: Option `%s' erlaubt kein Argument" #: src/gcal.c:5927 #, c-format msgid "%s: option `%s' requires an argument" msgstr "%s: Option `%s' benötigt ein Argument" #: src/gcal.c:5931 #, c-format msgid "%s: option requires an argument -- %s" msgstr "%s: Option benötigt ein Argument -- %s" #: src/gcal.c:5936 src/tcal.c:941 #, c-format msgid "%s: option with invalid argument -- %s" msgstr "%s: Option mit unzulässigem Argument -- %s" #: src/gcal.c:5941 #, c-format msgid "%s: option with ambiguous argument -- %s" msgstr "%s: Option mit nicht eindeutigem Argument -- %s" #: src/gcal.c:6001 #, fuzzy, 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" #: src/hd-data.c:63 #, fuzzy msgid "Australia" msgstr "Australische" #: src/hd-data.c:64 src/hd-data.c:112 #, fuzzy msgid "Belgium" msgstr "Belgische" #: src/hd-data.c:65 src/hd-data.c:121 msgid "Brazil" msgstr "" #: src/hd-data.c:66 #, fuzzy msgid "Canada" msgstr "Kanadische" #: src/hd-data.c:67 msgid "Switzerland" msgstr "" #: src/hd-data.c:68 src/hd-data.c:174 msgid "China" msgstr "" #: src/hd-data.c:70 src/hd-data.c:208 msgid "Spain" msgstr "" #: src/hd-data.c:71 src/hd-data.c:215 msgid "France" msgstr "" #: src/hd-data.c:73 src/hd-data.c:244 msgid "Israel" msgstr "" #: src/hd-data.c:74 src/hd-data.c:249 #, fuzzy msgid "Italy" msgstr "Italienische" #: src/hd-data.c:75 src/hd-data.c:252 msgid "Japan" msgstr "" #: src/hd-data.c:76 src/hd-data.c:260 #, fuzzy msgid "Republic of Korea" msgstr "Tag der Republik" #: src/hd-data.c:77 src/hd-data.c:292 #, fuzzy msgid "Mexico" msgstr "Mexikanische" #: src/hd-data.c:78 src/hd-data.c:301 msgid "Netherlands" msgstr "" #: src/hd-data.c:79 src/hd-data.c:307 msgid "New Zealand" msgstr "" #: src/hd-data.c:80 src/hd-data.c:319 #, fuzzy msgid "Portugal" msgstr "Portugiesische" #: src/hd-data.c:81 src/hd-data.c:325 msgid "Russian Federation" msgstr "" #: src/hd-data.c:82 #, fuzzy msgid "United States" msgstr "Tag der Vereinten Nationen" #: src/hd-data.c:84 msgid "Andorra" msgstr "" #: src/hd-data.c:85 msgid "United Arab Emirates" msgstr "" #: src/hd-data.c:86 msgid "Afghanistan" msgstr "" #: src/hd-data.c:87 msgid "Antigua and Barbuda" msgstr "" #: src/hd-data.c:88 msgid "Anguilla" msgstr "" #: src/hd-data.c:89 msgid "Albania" msgstr "" #: src/hd-data.c:90 msgid "Armenia" msgstr "" #: src/hd-data.c:91 msgid "Netherlands Antilles/Bonaire" msgstr "" #: src/hd-data.c:92 msgid "Netherlands Antilles/Curaçao" msgstr "" #: src/hd-data.c:93 msgid "Netherlands Antilles/St Maarten" msgstr "" #: src/hd-data.c:94 msgid "Netherlands Antilles/Saba and Statia" msgstr "" #: src/hd-data.c:95 msgid "Angola #" msgstr "" #: src/hd-data.c:96 msgid "Argentina" msgstr "" #: src/hd-data.c:97 msgid "American Samoa" msgstr "" #: src/hd-data.c:98 #, fuzzy msgid "Austria" msgstr "Österreichische" #: src/hd-data.c:99 #, fuzzy msgid "Australia/Canberra" msgstr "Australische" #: src/hd-data.c:100 msgid "Australia/Northern Territory" msgstr "" #: src/hd-data.c:101 #, fuzzy msgid "Australia/Queensland" msgstr "Australische" #: src/hd-data.c:102 msgid "Australia/Southern Australia" msgstr "" #: src/hd-data.c:103 msgid "Australia/New South Wales" msgstr "" #: src/hd-data.c:104 #, fuzzy msgid "Australia/Tasmania" msgstr "Australische" #: src/hd-data.c:105 #, fuzzy msgid "Australia/Victoria" msgstr "Australische" #: src/hd-data.c:106 msgid "Australia/Western Australia" msgstr "" #: src/hd-data.c:107 msgid "Aruba" msgstr "" #: src/hd-data.c:108 msgid "Azerbaijan" msgstr "" #: src/hd-data.c:109 msgid "Bosnia-Herzegovina" msgstr "" #: src/hd-data.c:110 msgid "Barbados" msgstr "" #: src/hd-data.c:111 msgid "Bangladesh #" msgstr "" #: src/hd-data.c:113 msgid "Burkina Faso" msgstr "" #: src/hd-data.c:114 #, fuzzy msgid "Bulgaria" msgstr "Ungarische" #: src/hd-data.c:115 msgid "Bahrain" msgstr "" #: src/hd-data.c:116 msgid "Burundi #" msgstr "" #: src/hd-data.c:117 msgid "Benin #" msgstr "" #: src/hd-data.c:118 msgid "Bermuda" msgstr "" #: src/hd-data.c:119 msgid "Brunei" msgstr "" #: src/hd-data.c:120 msgid "Bolivia" msgstr "" #: src/hd-data.c:122 msgid "Bahamas" msgstr "" #: src/hd-data.c:123 msgid "Bhutan #" msgstr "" #: src/hd-data.c:124 msgid "Bouvet Island" msgstr "" #: src/hd-data.c:125 msgid "Botswana" msgstr "" #: src/hd-data.c:126 msgid "Belarus" msgstr "" #: src/hd-data.c:127 msgid "Belize" msgstr "" #: src/hd-data.c:128 msgid "Canada/Alberta" msgstr "" #: src/hd-data.c:129 msgid "Canada/British Columbia" msgstr "" #: src/hd-data.c:130 #, fuzzy msgid "Canada/Manitoba" msgstr "Kanadische" #: src/hd-data.c:131 msgid "Canada/New Brunswick" msgstr "" #: src/hd-data.c:132 msgid "Canada/Newfoundland and Labrador" msgstr "" #: src/hd-data.c:133 msgid "Canada/Nova Scotia" msgstr "" #: src/hd-data.c:134 msgid "Canada/Nordwest Territories" msgstr "" #: src/hd-data.c:135 #, fuzzy msgid "Canada/Ontario" msgstr "Kanadische" #: src/hd-data.c:136 msgid "Canada/Prince Edward Island" msgstr "" #: src/hd-data.c:137 msgid "Canada/Québec" msgstr "" #: src/hd-data.c:138 msgid "Canada/Saskatchewan" msgstr "" #: src/hd-data.c:139 #, fuzzy msgid "Canada/Yukon" msgstr "Kanadische" #: src/hd-data.c:140 msgid "Cocos Islands (Keeling)" msgstr "" #: src/hd-data.c:141 msgid "Democratic Republic of Congo #" msgstr "" #: src/hd-data.c:142 msgid "Central African Republic #" msgstr "" #: src/hd-data.c:143 msgid "Republic of Congo #" msgstr "" #: src/hd-data.c:144 msgid "Switzerland/Aargau" msgstr "" #: src/hd-data.c:145 msgid "Switzerland/Appenzell Innerrhoden" msgstr "" #: src/hd-data.c:146 msgid "Switzerland/Appenzell Ausserrhoden" msgstr "" #: src/hd-data.c:147 msgid "Switzerland/Bern" msgstr "" #: src/hd-data.c:148 msgid "Switzerland/Basel-Land" msgstr "" #: src/hd-data.c:149 msgid "Switzerland/Basel-Stadt" msgstr "" #: src/hd-data.c:150 msgid "Switzerland/Fribourg" msgstr "" #: src/hd-data.c:151 msgid "Switzerland/Genève" msgstr "" #: src/hd-data.c:152 msgid "Switzerland/Glarus" msgstr "" #: src/hd-data.c:153 msgid "Switzerland/Graubünden" msgstr "" #: src/hd-data.c:154 msgid "Switzerland/Jura" msgstr "" #: src/hd-data.c:155 msgid "Switzerland/Luzern" msgstr "" #: src/hd-data.c:156 msgid "Switzerland/Neuchâtel" msgstr "" #: src/hd-data.c:157 msgid "Switzerland/Nidwalden" msgstr "" #: src/hd-data.c:158 msgid "Switzerland/Obwalden" msgstr "" #: src/hd-data.c:159 msgid "Switzerland/St Gallen" msgstr "" #: src/hd-data.c:160 msgid "Switzerland/Schaffhausen" msgstr "" #: src/hd-data.c:161 msgid "Switzerland/Solothurn" msgstr "" #: src/hd-data.c:162 msgid "Switzerland/Schwyz" msgstr "" #: src/hd-data.c:163 msgid "Switzerland/Thurgau" msgstr "" #: src/hd-data.c:164 msgid "Switzerland/Ticino" msgstr "" #: src/hd-data.c:165 msgid "Switzerland/Uri" msgstr "" #: src/hd-data.c:166 msgid "Switzerland/Vaud" msgstr "" #: src/hd-data.c:167 msgid "Switzerland/Valais" msgstr "" #: src/hd-data.c:168 msgid "Switzerland/Zug" msgstr "" #: src/hd-data.c:169 msgid "Switzerland/Zürich" msgstr "" #: src/hd-data.c:170 msgid "Côte d'Ivoire" msgstr "" #: src/hd-data.c:171 msgid "Cook Islands" msgstr "" #: src/hd-data.c:172 msgid "Chile" msgstr "" #: src/hd-data.c:173 msgid "Cameroon" msgstr "" #: src/hd-data.c:175 msgid "Colombia" msgstr "" #: src/hd-data.c:176 msgid "Costa Rica" msgstr "" #: src/hd-data.c:177 msgid "Cuba" msgstr "" #: src/hd-data.c:178 msgid "Cape Verde" msgstr "" #: src/hd-data.c:179 #, fuzzy msgid "Christmas Islands" msgstr "1'ter Weihnachtstag" #: src/hd-data.c:180 msgid "Cyprus" msgstr "" #: src/hd-data.c:181 #, fuzzy msgid "Czech Republic" msgstr "Tag der Republik" #: src/hd-data.c:182 msgid "Germany/Brandenburg" msgstr "" #: src/hd-data.c:183 #, fuzzy msgid "Germany/Berlin" msgstr "Deutschland" #: src/hd-data.c:184 msgid "Germany/Baden-Württemberg" msgstr "" #: src/hd-data.c:185 #, fuzzy msgid "Germany/Bavaria" msgstr "Deutschland" #: src/hd-data.c:186 #, fuzzy msgid "Germany/Bremen" msgstr "Deutschland" #: src/hd-data.c:187 #, fuzzy msgid "Germany/Hesse" msgstr "Deutschland" #: src/hd-data.c:188 #, fuzzy msgid "Germany/Hamburg" msgstr "Deutschland" #: src/hd-data.c:189 msgid "Germany/Mecklenburg-West Pomerania" msgstr "" #: src/hd-data.c:190 msgid "Germany/Lower Saxony" msgstr "" #: src/hd-data.c:191 msgid "Germany/North Rhine-Westphalia" msgstr "" #: src/hd-data.c:192 msgid "Germany/Rhineland Palatinate" msgstr "" #: src/hd-data.c:193 msgid "Germany/Schleswig-Holstein" msgstr "" #: src/hd-data.c:194 #, fuzzy msgid "Germany/Saar" msgstr "Deutschland" #: src/hd-data.c:195 #, fuzzy msgid "Germany/Saxony" msgstr "Deutschland" #: src/hd-data.c:196 msgid "Germany/Saxony-Anhalt" msgstr "" #: src/hd-data.c:197 msgid "Germany/Thuringia" msgstr "" #: src/hd-data.c:198 msgid "Djibouti" msgstr "" #: src/hd-data.c:199 msgid "Denmark" msgstr "" #: src/hd-data.c:200 msgid "Dominica" msgstr "" #: src/hd-data.c:201 msgid "Dominican Republic" msgstr "" #: src/hd-data.c:202 msgid "Algeria" msgstr "" #: src/hd-data.c:203 msgid "Ecuador" msgstr "" #: src/hd-data.c:204 msgid "Estonia" msgstr "" #: src/hd-data.c:205 msgid "Egypt" msgstr "" #: src/hd-data.c:206 msgid "Western Sahara" msgstr "" #: src/hd-data.c:207 msgid "Eritrea" msgstr "" #: src/hd-data.c:209 msgid "Ethiopia" msgstr "" #: src/hd-data.c:210 msgid "Finland" msgstr "" #: src/hd-data.c:211 msgid "Fiji #" msgstr "" #: src/hd-data.c:212 msgid "Falkland Islands (Malvinas)" msgstr "" #: src/hd-data.c:213 msgid "Federated States of Micronesia" msgstr "" #: src/hd-data.c:214 msgid "Faroes" msgstr "" #: src/hd-data.c:216 msgid "Gabon #" msgstr "" #: src/hd-data.c:217 msgid "Great Britain/England and Wales" msgstr "" #: src/hd-data.c:218 #, fuzzy msgid "Great Britain/Northern Ireland" msgstr "Großbritannien" #: src/hd-data.c:219 #, fuzzy msgid "Great Britain/Scotland" msgstr "Großbritannien" #: src/hd-data.c:220 msgid "Grenada" msgstr "" #: src/hd-data.c:221 msgid "Georgia" msgstr "" #: src/hd-data.c:222 #, fuzzy msgid "French Guiana" msgstr "Französische" #: src/hd-data.c:223 msgid "Ghana" msgstr "" #: src/hd-data.c:224 msgid "Gibraltar" msgstr "" #: src/hd-data.c:225 msgid "Greenland" msgstr "" #: src/hd-data.c:226 msgid "Gambia" msgstr "" #: src/hd-data.c:227 msgid "Guinea" msgstr "" #: src/hd-data.c:228 msgid "Guadeloupe" msgstr "" #: src/hd-data.c:229 msgid "Equatorial Guinea" msgstr "" #: src/hd-data.c:230 #, fuzzy msgid "Greece" msgstr "Griechische" #: src/hd-data.c:231 msgid "South Georgia and South Sandwich Islands" msgstr "" #: src/hd-data.c:232 msgid "Guatemala" msgstr "" #: src/hd-data.c:233 msgid "Guam" msgstr "" #: src/hd-data.c:234 msgid "Guinea-Bissau #" msgstr "" #: src/hd-data.c:235 msgid "Guyana #" msgstr "" #: src/hd-data.c:236 msgid "Hong Kong" msgstr "" #: src/hd-data.c:237 msgid "Heard and Mc Donald Islands" msgstr "" #: src/hd-data.c:238 msgid "Honduras" msgstr "" #: src/hd-data.c:239 msgid "Croatia" msgstr "" #: src/hd-data.c:240 msgid "Haiti" msgstr "" #: src/hd-data.c:241 #, fuzzy msgid "Hungary" msgstr "Ungarische" #: src/hd-data.c:242 msgid "Indonesia #" msgstr "" #: src/hd-data.c:243 msgid "Ireland" msgstr "" #: src/hd-data.c:245 msgid "India #" msgstr "" #: src/hd-data.c:246 msgid "Iraq" msgstr "" #: src/hd-data.c:247 msgid "Islamic Republic of Iran" msgstr "" #: src/hd-data.c:248 msgid "Iceland" msgstr "" #: src/hd-data.c:250 msgid "Jamaica" msgstr "" #: src/hd-data.c:251 msgid "Jordan" msgstr "" #: src/hd-data.c:253 msgid "Kenya #" msgstr "" #: src/hd-data.c:254 msgid "Kyrgyzstan" msgstr "" #: src/hd-data.c:255 msgid "Cambodia #" msgstr "" #: src/hd-data.c:256 msgid "Kiribati #" msgstr "" #: src/hd-data.c:257 msgid "Comoros" msgstr "" #: src/hd-data.c:258 msgid "St Kitts and Nevis" msgstr "" #: src/hd-data.c:259 msgid "Democratic People's Republic of Korea" msgstr "" #: src/hd-data.c:261 msgid "Kuwait" msgstr "" #: src/hd-data.c:262 msgid "Cayman Islands" msgstr "" #: src/hd-data.c:263 msgid "Kazakhstan" msgstr "" #: src/hd-data.c:264 msgid "Laos People's Democratic Republic #" msgstr "" #: src/hd-data.c:265 msgid "Lebanon" msgstr "" #: src/hd-data.c:266 #, fuzzy msgid "St Lucia" msgstr "St. Luciastag" #: src/hd-data.c:267 msgid "Liechtenstein" msgstr "" #: src/hd-data.c:268 msgid "Sri Lanka #" msgstr "" #: src/hd-data.c:269 #, fuzzy msgid "Liberia" msgstr "Tag der Befreiung" #: src/hd-data.c:270 msgid "Lesotho" msgstr "" #: src/hd-data.c:271 msgid "Lithuania" msgstr "" #: src/hd-data.c:272 msgid "Luxembourg" msgstr "" #: src/hd-data.c:273 msgid "Latvia" msgstr "" #: src/hd-data.c:274 msgid "Libyan Arab Jamahiriya (Libya)" msgstr "" #: src/hd-data.c:275 msgid "Morocco" msgstr "" #: src/hd-data.c:276 msgid "Monaco" msgstr "" #: src/hd-data.c:277 #, fuzzy msgid "Republic of Moldova" msgstr "Tag der Republik" #: src/hd-data.c:278 msgid "Madagascar #" msgstr "" #: src/hd-data.c:279 msgid "Marshall Islands" msgstr "" #: src/hd-data.c:280 msgid "Former Yugoslav Republic of Macedonia" msgstr "" #: src/hd-data.c:281 msgid "Mali" msgstr "" #: src/hd-data.c:282 msgid "Mongolia #" msgstr "" #: src/hd-data.c:283 msgid "Macau" msgstr "" #: src/hd-data.c:284 msgid "Northern Marian Islands (Saipan)" msgstr "" #: src/hd-data.c:285 #, fuzzy msgid "Martinique" msgstr "Martinstag" #: src/hd-data.c:286 msgid "Mauritania" msgstr "" #: src/hd-data.c:287 msgid "Montserrat" msgstr "" #: src/hd-data.c:288 msgid "Malta" msgstr "" #: src/hd-data.c:289 #, fuzzy msgid "Mauritius" msgstr "Britische" #: src/hd-data.c:290 msgid "Maldives" msgstr "" #: src/hd-data.c:291 msgid "Malawi" msgstr "" #: src/hd-data.c:293 msgid "Malaysia #" msgstr "" #: src/hd-data.c:294 msgid "Mozambique" msgstr "" #: src/hd-data.c:295 msgid "Namibia" msgstr "" #: src/hd-data.c:296 msgid "New Caledonia" msgstr "" #: src/hd-data.c:297 msgid "Niger" msgstr "" #: src/hd-data.c:298 msgid "Norfolk Islands" msgstr "" #: src/hd-data.c:299 msgid "Nigeria" msgstr "" #: src/hd-data.c:300 msgid "Nicaragua" msgstr "" #: src/hd-data.c:302 msgid "Myanmar (Burma) #" msgstr "" #: src/hd-data.c:303 #, fuzzy msgid "Norway" msgstr "Norwegische" #: src/hd-data.c:304 msgid "Nepal #" msgstr "" #: src/hd-data.c:305 msgid "Nauru" msgstr "" #: src/hd-data.c:306 msgid "Niue" msgstr "" #: src/hd-data.c:308 msgid "Oman" msgstr "" #: src/hd-data.c:309 msgid "Panama" msgstr "" #: src/hd-data.c:310 msgid "Peru" msgstr "" #: src/hd-data.c:311 msgid "French Polynesia" msgstr "" #: src/hd-data.c:312 msgid "Papua New Guinea" msgstr "" #: src/hd-data.c:313 msgid "Philippines" msgstr "" #: src/hd-data.c:314 msgid "Pakistan" msgstr "" #: src/hd-data.c:315 msgid "Poland" msgstr "" #: src/hd-data.c:316 msgid "Saint-Pierre and Miquelon" msgstr "" #: src/hd-data.c:317 msgid "Pitcairn" msgstr "" #: src/hd-data.c:318 msgid "Puerto Rico" msgstr "" #: src/hd-data.c:320 msgid "Palau" msgstr "" #: src/hd-data.c:321 msgid "Paraguay" msgstr "" #: src/hd-data.c:322 msgid "Qatar" msgstr "" #: src/hd-data.c:323 msgid "Réunion" msgstr "" #: src/hd-data.c:324 msgid "Romania" msgstr "" #: src/hd-data.c:326 msgid "Rwanda" msgstr "" #: src/hd-data.c:327 msgid "Saudi Arabia" msgstr "" #: src/hd-data.c:328 msgid "Solomon Islands" msgstr "" #: src/hd-data.c:329 msgid "Seychellen" msgstr "" #: src/hd-data.c:330 msgid "Sudan" msgstr "" #: src/hd-data.c:331 #, fuzzy msgid "Sweden" msgstr "Schwedische" #: src/hd-data.c:332 msgid "Singapore #" msgstr "" #: src/hd-data.c:333 msgid "St Helena" msgstr "" #: src/hd-data.c:334 #, fuzzy msgid "Slovenia" msgstr "Slowenische" #: src/hd-data.c:335 msgid "Svalbard and Jan Mayen Islands" msgstr "" #: src/hd-data.c:336 #, fuzzy msgid "Slovakia" msgstr "Slowenische" #: src/hd-data.c:337 msgid "Sierra Leone" msgstr "" #: src/hd-data.c:338 msgid "San Marino" msgstr "" #: src/hd-data.c:339 msgid "Senegal" msgstr "" #: src/hd-data.c:340 msgid "Somalia" msgstr "" #: src/hd-data.c:341 msgid "Suriname #" msgstr "" #: src/hd-data.c:342 msgid "Sao Tomé and Principe" msgstr "" #: src/hd-data.c:343 msgid "El Salvador" msgstr "" #: src/hd-data.c:344 msgid "Syrian Arab Republic (Syria)" msgstr "" #: src/hd-data.c:345 msgid "Swaziland" msgstr "" #: src/hd-data.c:346 msgid "Turks and Caicos Islands" msgstr "" #: src/hd-data.c:347 msgid "Chad" msgstr "" #: src/hd-data.c:348 msgid "Togo #" msgstr "" #: src/hd-data.c:349 msgid "Thailand #" msgstr "" #: src/hd-data.c:350 msgid "Tajikistan" msgstr "" #: src/hd-data.c:351 msgid "Tokelau" msgstr "" #: src/hd-data.c:352 msgid "Turkmenistan" msgstr "" #: src/hd-data.c:353 msgid "Tunisia" msgstr "" #: src/hd-data.c:354 msgid "Tonga" msgstr "" #: src/hd-data.c:355 msgid "Turkey" msgstr "" #: src/hd-data.c:356 msgid "Trinidad and Tobago #" msgstr "" #: src/hd-data.c:357 msgid "Tuvalu" msgstr "" #: src/hd-data.c:358 msgid "Taiwan" msgstr "" #: src/hd-data.c:359 msgid "Tanzania" msgstr "" #: src/hd-data.c:360 msgid "Ukraine" msgstr "" #: src/hd-data.c:361 msgid "Uganda" msgstr "" #: src/hd-data.c:362 msgid "United States/Alaska" msgstr "" #: src/hd-data.c:363 msgid "United States/Alabama" msgstr "" #: src/hd-data.c:364 #, fuzzy msgid "United States/Arkansas" msgstr "Tag der Vereinten Nationen" #: src/hd-data.c:365 #, fuzzy msgid "United States/Arizona" msgstr "Tag der Vereinten Nationen" #: src/hd-data.c:366 #, fuzzy msgid "United States/California" msgstr "Tag der Vereinten Nationen" #: src/hd-data.c:367 msgid "United States/Colorado" msgstr "" #: src/hd-data.c:368 msgid "United States/Connecticut" msgstr "" #: src/hd-data.c:369 msgid "United States/District of Columbia" msgstr "" #: src/hd-data.c:370 #, fuzzy msgid "United States/Delaware" msgstr "Tag der Vereinten Nationen" #: src/hd-data.c:371 msgid "United States/Florida" msgstr "" #: src/hd-data.c:372 msgid "United States/Georgia" msgstr "" #: src/hd-data.c:373 msgid "United States/Hawaii" msgstr "" #: src/hd-data.c:374 #, fuzzy msgid "United States/Iowa" msgstr "Tag der Vereinten Nationen" #: src/hd-data.c:375 msgid "United States/Idaho" msgstr "" #: src/hd-data.c:376 #, fuzzy msgid "United States/Illinois" msgstr "Tag der Vereinten Nationen" #: src/hd-data.c:377 #, fuzzy msgid "United States/Indiana" msgstr "Tag der Vereinten Nationen" #: src/hd-data.c:378 #, fuzzy msgid "United States/Kansas" msgstr "Tag der Vereinten Nationen" #: src/hd-data.c:379 msgid "United States/Kentucky" msgstr "" #: src/hd-data.c:380 msgid "United States/Louisiana" msgstr "" #: src/hd-data.c:381 msgid "United States/Massachusetts" msgstr "" #: src/hd-data.c:382 #, fuzzy msgid "United States/Maryland" msgstr "Tag der Vereinten Nationen" #: src/hd-data.c:383 msgid "United States/Maine" msgstr "" #: src/hd-data.c:384 msgid "United States/Michigan" msgstr "" #: src/hd-data.c:385 #, fuzzy msgid "United States/Minnesota" msgstr "Tag der Vereinten Nationen" #: src/hd-data.c:386 msgid "United States/Missouri" msgstr "" #: src/hd-data.c:387 msgid "United States/Mississippi" msgstr "" #: src/hd-data.c:388 #, fuzzy msgid "United States/Montana" msgstr "Tag der Vereinten Nationen" #: src/hd-data.c:389 msgid "United States/North Carolina" msgstr "" #: src/hd-data.c:390 msgid "United States/North Dakota" msgstr "" #: src/hd-data.c:391 msgid "United States/Nebraska" msgstr "" #: src/hd-data.c:392 msgid "United States/New Hampshire" msgstr "" #: src/hd-data.c:393 msgid "United States/New Jersey" msgstr "" #: src/hd-data.c:394 msgid "United States/New Mexico" msgstr "" #: src/hd-data.c:395 msgid "United States/Nevada" msgstr "" #: src/hd-data.c:396 msgid "United States/New York" msgstr "" #: src/hd-data.c:397 #, fuzzy msgid "United States/Ohio" msgstr "Tag der Vereinten Nationen" #: src/hd-data.c:398 msgid "United States/Oklahoma" msgstr "" #: src/hd-data.c:399 msgid "United States/Oregon" msgstr "" #: src/hd-data.c:400 msgid "United States/Pennsylvania" msgstr "" #: src/hd-data.c:401 msgid "United States/Rhode Island" msgstr "" #: src/hd-data.c:402 msgid "United States/South Carolina" msgstr "" #: src/hd-data.c:403 msgid "United States/South Dakota" msgstr "" #: src/hd-data.c:404 msgid "United States/Tennessee" msgstr "" #: src/hd-data.c:405 msgid "United States/Texas" msgstr "" #: src/hd-data.c:406 #, fuzzy msgid "United States/Utah" msgstr "Tag der Vereinten Nationen" #: src/hd-data.c:407 #, fuzzy msgid "United States/Virginia" msgstr "Tag der Vereinten Nationen" #: src/hd-data.c:408 msgid "United States/Vermont" msgstr "" #: src/hd-data.c:409 msgid "United States/Washington" msgstr "" #: src/hd-data.c:410 #, fuzzy msgid "United States/Wisconsin" msgstr "Tag der Vereinten Nationen" #: src/hd-data.c:411 msgid "United States/West Virginia" msgstr "" #: src/hd-data.c:412 msgid "United States/Wyoming" msgstr "" #: src/hd-data.c:413 msgid "Uruguay" msgstr "" #: src/hd-data.c:414 msgid "Uzbekistan" msgstr "" #: src/hd-data.c:415 msgid "St Vincent and Grenadines" msgstr "" #: src/hd-data.c:416 msgid "Venezuela" msgstr "" #: src/hd-data.c:417 msgid "British Virgin Islands" msgstr "" #: src/hd-data.c:418 msgid "U.S. Virgin Islands" msgstr "" #: src/hd-data.c:419 msgid "Viet Nam" msgstr "" #: src/hd-data.c:420 msgid "Vanuatu" msgstr "" #: src/hd-data.c:421 msgid "Wallis and Futuna Islands" msgstr "" #: src/hd-data.c:422 msgid "Samoa" msgstr "" #: src/hd-data.c:423 msgid "Yemen" msgstr "" #: src/hd-data.c:424 msgid "Mayotte" msgstr "" #: src/hd-data.c:425 msgid "Serbia and Montenegro" msgstr "" #: src/hd-data.c:426 msgid "South Africa" msgstr "" #: src/hd-data.c:427 msgid "Zambia" msgstr "" #: src/hd-data.c:428 msgid "Zimbabwe" msgstr "" #: src/hd-data.c:458 msgid "1st Advent" msgstr "1'ter Advent" #: src/hd-data.c:459 msgid "1st Sunday in Lent" msgstr "" #: src/hd-data.c:460 msgid "2nd Advent" msgstr "2'ter Advent" #: src/hd-data.c:461 msgid "2nd Sunday in Lent" msgstr "" #: src/hd-data.c:462 msgid "3rd Advent" msgstr "3'ter Advent" #: src/hd-data.c:463 msgid "3rd Sunday in Lent" msgstr "" #: src/hd-data.c:464 msgid "4th Advent" msgstr "4'ter Advent" #: src/hd-data.c:465 #, fuzzy msgid "4th Sunday in Lent" msgstr "Totensonntag" #: src/hd-data.c:466 msgid "7-5-3 Festival" msgstr "" #: src/hd-data.c:467 #, fuzzy msgid "Aborigines Day" msgstr "Prinzessin' Tag" #: src/hd-data.c:468 msgid "All Fool's Day" msgstr "1'ter April" #: src/hd-data.c:469 msgid "All Saints' Day" msgstr "Allerheiligen" #: src/hd-data.c:470 msgid "All Souls' Day" msgstr "Allerseelen" #: src/hd-data.c:471 #, fuzzy msgid "Alphabet Day" msgstr "Tag der Flagge" #: src/hd-data.c:472 msgid "Anniversary of Auckland" msgstr "" #: src/hd-data.c:473 msgid "Anniversary of Canterbury North" msgstr "" #: src/hd-data.c:474 msgid "Anniversary of Canterbury South" msgstr "" #: src/hd-data.c:475 msgid "Anniversary of Chatham Islands" msgstr "" #: src/hd-data.c:476 msgid "Anniversary of Hawkes' Bay" msgstr "" #: src/hd-data.c:477 msgid "Anniversary of Marlborough" msgstr "" #: src/hd-data.c:478 msgid "Anniversary of Nelson" msgstr "" #: src/hd-data.c:479 msgid "Anniversary of Otago" msgstr "" #: src/hd-data.c:480 msgid "Anniversary of Southland" msgstr "" #: src/hd-data.c:481 msgid "Anniversary of Taranaki" msgstr "" #: src/hd-data.c:482 msgid "Anniversary of Wellington" msgstr "" #: src/hd-data.c:483 msgid "Anniversary of Westland" msgstr "" #: src/hd-data.c:484 msgid "Anzac Day" msgstr "Anzac Tag" #: src/hd-data.c:485 #, fuzzy msgid "Arbor Day" msgstr "Tag der Arbeit" #: src/hd-data.c:486 #, fuzzy msgid "Armed Forces Day" msgstr "Tag der Streitkräfte" #: src/hd-data.c:487 msgid "Armistice Day" msgstr "Waffenstillstandstag" #: src/hd-data.c:488 msgid "Ash Monday" msgstr "Rosenmontag" #: src/hd-data.c:489 msgid "Ash Wednesday" msgstr "Aschermittwoch" #: src/hd-data.c:490 msgid "Ascension of Abdu'l-Baha" msgstr "" #: src/hd-data.c:491 msgid "Ascension of Baha'u'llah" msgstr "" #: src/hd-data.c:492 msgid "Birth of Baha'u'llah" msgstr "" #: src/hd-data.c:493 msgid "Birth of the Bab" msgstr "" #: src/hd-data.c:494 msgid "Day of the Covenant" msgstr "" #: src/hd-data.c:495 msgid "Declaration of the Bab" msgstr "" #: src/hd-data.c:496 msgid "First Day of Ridvan" msgstr "" #: src/hd-data.c:497 msgid "Martyrdom of the Bab" msgstr "" #: src/hd-data.c:498 #, fuzzy msgid "Bahá'i New Year's Day" msgstr "Neujahr" #: src/hd-data.c:499 msgid "Ninth Day of Ridvan" msgstr "" #: src/hd-data.c:500 msgid "Twelfth Day of Ridvan" msgstr "" #: src/hd-data.c:501 msgid "Bank Holiday" msgstr "Feiertag" #: src/hd-data.c:502 #, fuzzy msgid "Basque National Day" msgstr "Nationalfeiertag der Lappen" #: src/hd-data.c:503 msgid "Battle of Boyne" msgstr "Schlacht von Boyne" #: src/hd-data.c:504 #, fuzzy msgid "Battle of Puebla" msgstr "Schlacht von Boyne" #: src/hd-data.c:505 msgid "Beginning of Financial Year" msgstr "" #: src/hd-data.c:506 #, fuzzy msgid "Benito Juárez Day" msgstr "Benito Juarez Tag" #: src/hd-data.c:507 #, fuzzy msgid "Bodhidharma's Birthday" msgstr "Des Königs Geburtstag" #: src/hd-data.c:508 #, fuzzy msgid "Bosses' Day" msgstr "St. Josefstag" #: src/hd-data.c:509 msgid "Boxing Day" msgstr "2'ter Weihnachtstag" #: src/hd-data.c:510 msgid "Bringing Home the Herds Day" msgstr "" #: src/hd-data.c:511 msgid "Bringing in the Harvest Day" msgstr "" #: src/hd-data.c:512 #, fuzzy msgid "Buddha's Birthday" msgstr "Des Königs Geburtstag" #: src/hd-data.c:513 msgid "Burns Night" msgstr "Brandnacht" #: src/hd-data.c:514 #, fuzzy msgid "Camoes Day" msgstr "St. Jamestag" #: src/hd-data.c:515 msgid "Carnival" msgstr "" #: src/hd-data.c:516 msgid "Beltane" msgstr "" #: src/hd-data.c:517 msgid "Imbolg" msgstr "" #: src/hd-data.c:518 msgid "Lughnasa" msgstr "" #: src/hd-data.c:519 #, fuzzy msgid "Samhain/Celtic New Year's Day" msgstr "Neujahr" #: src/hd-data.c:520 msgid "Children's Day" msgstr "Tag der Kinder" #: src/hd-data.c:521 msgid "Cycle" msgstr "" #: src/hd-data.c:522 #, fuzzy msgid "Chinese New Year's Day" msgstr "Neujahr" #: src/hd-data.c:523 #, fuzzy msgid "Chinese New Year's Eve" msgstr "Neujahr" #: src/hd-data.c:524 msgid "Christmas Day" msgstr "1'ter Weihnachtstag" #: src/hd-data.c:525 msgid "Christmas Eve" msgstr "Heiligabend" #: src/hd-data.c:526 msgid "Christ's Ascension Day" msgstr "Christi Himmelfahrt" #: src/hd-data.c:527 #, fuzzy msgid "Chrysanthenum Day" msgstr "1'ter Weihnachtstag" #: src/hd-data.c:528 #, fuzzy msgid "Citizenship Day" msgstr "Tag der Kinder" #: src/hd-data.c:529 #, fuzzy msgid "Civic Holiday" msgstr "Feiertag" #: src/hd-data.c:530 msgid "Columbus Day" msgstr "Kolumbustag" #: src/hd-data.c:531 msgid "Coming of Age Day" msgstr "" #: src/hd-data.c:532 #, fuzzy msgid "Confucius' Birthday" msgstr "Der Kronprinzessin Geburtstag" #: src/hd-data.c:533 msgid "Constitution Anniversary" msgstr "Jahrestag der Verfassung" #: src/hd-data.c:534 #, fuzzy msgid "Coptic New Year's Day" msgstr "Neujahr" #: src/hd-data.c:535 #, fuzzy msgid "Cosmonauts' Day" msgstr "Krönungstag" #: src/hd-data.c:536 #, fuzzy msgid "Cross Raising Day" msgstr "Krönungstag" #: src/hd-data.c:537 msgid "Culture Day" msgstr "Kulturtag" #: src/hd-data.c:538 msgid "Day after Mid-Autumn Festival" msgstr "" #: src/hd-data.c:539 msgid "Day after Tomb-Sweeping Day" msgstr "" #: src/hd-data.c:540 msgid "Day of Andalucia" msgstr "" #: src/hd-data.c:541 msgid "Day of Catalonia" msgstr "" #: src/hd-data.c:542 msgid "Day of Galicia" msgstr "" #: src/hd-data.c:543 msgid "Day of Prayer and Repentance" msgstr "Buß- und Bettag" #: src/hd-data.c:544 msgid "Day of Reconciliation" msgstr "" #: src/hd-data.c:545 msgid "Defenders of Motherland Day" msgstr "" #: src/hd-data.c:546 #, fuzzy msgid "Double-9 Day" msgstr "Nobel Tag" #: src/hd-data.c:547 msgid "Dragon Boat Festival" msgstr "" #: src/hd-data.c:548 msgid "Dynasty Day" msgstr "Tag des Herrscherhauses" #: src/hd-data.c:549 msgid "Easter Monday" msgstr "Ostermontag" #: src/hd-data.c:550 msgid "Easter Sunday" msgstr "Ostersonntag" #: src/hd-data.c:551 msgid "Lunar Eclipse" msgstr "" #: src/hd-data.c:552 msgid "Solar Eclipse" msgstr "" #: src/hd-data.c:553 msgid "Annular" msgstr "" #: src/hd-data.c:554 msgid "Partial" msgstr "" #: src/hd-data.c:555 msgid "Penumbral" msgstr "" #: src/hd-data.c:556 msgid "Total" msgstr "" #: src/hd-data.c:557 msgid "Eindhoven's Liberation" msgstr "Eindhoven's Befreiung" #: src/hd-data.c:558 msgid "Election Day" msgstr "Wahltag" #: src/hd-data.c:559 #, fuzzy msgid "Emperor's Birthday" msgstr "Des Königs Geburtstag" #: src/hd-data.c:560 #, fuzzy msgid "Equinox Day" msgstr "Wahltag" #: src/hd-data.c:561 #, fuzzy msgid "Ethiopic New Year's Day" msgstr "Neujahr" #: src/hd-data.c:562 msgid "Father's Day" msgstr "Vatertag" #: src/hd-data.c:563 msgid "Feast of Corpus Christi" msgstr "Fronleichnam" #: src/hd-data.c:564 #, fuzzy msgid "Feast of Fortune" msgstr "Fronleichnam" #: src/hd-data.c:565 #, fuzzy msgid "Feast of Heart Jesus" msgstr "Fest des Theotokos" #: src/hd-data.c:566 msgid "Festival of Lanterns" msgstr "" #: src/hd-data.c:567 msgid "Festival of Sadeh" msgstr "" #: src/hd-data.c:568 msgid "Flag Day" msgstr "Tag der Flagge" #: src/hd-data.c:569 msgid "Flemish Culture Day" msgstr "Flämischer Kulturtag" #: src/hd-data.c:570 msgid "Founding of the Communist Party" msgstr "" #: src/hd-data.c:571 msgid "French Culture Day" msgstr "Französischer Kulturtag" #: src/hd-data.c:572 #, fuzzy msgid "French Revolutionary" msgstr "Tag der Revolution" #: src/hd-data.c:573 #, fuzzy msgid "Friendship Day" msgstr "Präsidenten Tag" #: src/hd-data.c:574 msgid "German Unity Day" msgstr "Tag der Deutschen Einheit" #: src/hd-data.c:575 msgid "Good Friday" msgstr "Karfreitag" #: src/hd-data.c:576 msgid "Good Saturday/Easter Eve" msgstr "Karsamstag/Ostervorabend" #: src/hd-data.c:577 #, fuzzy msgid "Grandparents' Day" msgstr "Präsidenten Tag" #: src/hd-data.c:578 #, fuzzy msgid "Greenery Day" msgstr "Bettag" #: src/hd-data.c:579 msgid "Grotto Day" msgstr "Grottentag" #: src/hd-data.c:580 #, fuzzy msgid "Groundhog Day" msgstr "Grottentag" #: src/hd-data.c:581 msgid "Guadalupe Virgin's Day" msgstr "Tag der Jungfrau von Guadalupe" #: src/hd-data.c:582 msgid "Guy Fawke's Day" msgstr "Guy Fawke's Tag" #: src/hd-data.c:583 msgid "Halloween" msgstr "Halloween" #: src/hd-data.c:584 msgid "Health and Sport's Day" msgstr "" #: src/hd-data.c:585 msgid "Hannukah/Festival of Lights" msgstr "" #: src/hd-data.c:586 msgid "Lag B'Omer" msgstr "" #: src/hd-data.c:587 msgid "Pesach/Passover" msgstr "" #: src/hd-data.c:588 msgid "Purim/Feast of Lots" msgstr "" #: src/hd-data.c:589 #, fuzzy msgid "Rosh Hashana/New Year's Day" msgstr "Neujahr" #: src/hd-data.c:590 msgid "Shavuot/Giving of the Torah" msgstr "" #: src/hd-data.c:591 msgid "Shushan Purim" msgstr "" #: src/hd-data.c:592 msgid "Simchat Torah" msgstr "" #: src/hd-data.c:593 msgid "Sukkot/Feast of Tabernacles" msgstr "" #: src/hd-data.c:594 msgid "Tisha B'Av/Fasting Day" msgstr "" #: src/hd-data.c:595 msgid "Tu B'Shevat/New Year of Trees" msgstr "" #: src/hd-data.c:596 msgid "Yom Hashoah/Holocaust Memorial" msgstr "" #: src/hd-data.c:597 msgid "Yom Hazikaron/Soldiers Memorial" msgstr "" #: src/hd-data.c:598 #, fuzzy msgid "Yom Ha Azmaut/Independence Day" msgstr "Unabhängigkeitstag" #: src/hd-data.c:599 msgid "Yom Kippur/Atonement Day" msgstr "" #: src/hd-data.c:600 msgid "Yom Yerushalayim/Jerusalem Day" msgstr "" #: src/hd-data.c:601 msgid "Holy Innocent's Day" msgstr "Tag der heiligen Unschuldigen" #: src/hd-data.c:602 msgid "Holy Trinity" msgstr "" #: src/hd-data.c:603 #, fuzzy msgid "Huravee Day" msgstr "Bettag" #: src/hd-data.c:604 msgid "Independence Day" msgstr "Unabhängigkeitstag" #: src/hd-data.c:605 #, fuzzy msgid "Independence Movement Day" msgstr "Unabhängigkeitstag" #: src/hd-data.c:606 #, fuzzy msgid "Independence Proclamation" msgstr "Proklamation der Unabhängigkeit" #: src/hd-data.c:607 #, fuzzy msgid "Indian New Year's Day" msgstr "Neujahr" #: src/hd-data.c:608 #, fuzzy msgid "Aga Khan's Birthday" msgstr "Des Königs Geburtstag" #: src/hd-data.c:609 msgid "Ashura'" msgstr "" #: src/hd-data.c:610 msgid "Eid-al-Adha" msgstr "" #: src/hd-data.c:611 msgid "Eid-al-Fitr" msgstr "" #: src/hd-data.c:612 msgid "Eid-i-Milad-un-Nabi" msgstr "" #: src/hd-data.c:613 msgid "Ghadir" msgstr "" #: src/hd-data.c:614 msgid "Imamat Day" msgstr "" #: src/hd-data.c:615 #, fuzzy msgid "Islamic New Year's Day" msgstr "Neujahr" #: src/hd-data.c:616 msgid "Nuzul-al-Qur'an" msgstr "" #: src/hd-data.c:617 #, fuzzy msgid "Quds Day" msgstr "Kolumbustag" #: src/hd-data.c:618 msgid "Ramadan" msgstr "" #: src/hd-data.c:619 msgid "Shab-e-Bara't" msgstr "" #: src/hd-data.c:620 msgid "Shab-e-Mi'raj" msgstr "" #: src/hd-data.c:621 msgid "Shab-e Qadr" msgstr "" #: src/hd-data.c:622 msgid "Waqf-al-Arafat" msgstr "" #: src/hd-data.c:623 #, fuzzy msgid "Japanese New Year's Day" msgstr "Neujahr" #: src/hd-data.c:624 msgid "Japanese New Year's Eve" msgstr "" #: src/hd-data.c:625 msgid "Jesus' Circumcision" msgstr "" #: src/hd-data.c:626 msgid "Kwanzaa" msgstr "" #: src/hd-data.c:627 msgid "Labour Day" msgstr "Tag der Arbeit" #: src/hd-data.c:628 #, fuzzy msgid "Labour Thanksgiving Day" msgstr "Erntedankfest" #: src/hd-data.c:629 #, fuzzy msgid "Lao Tze's Birthday" msgstr "Des Königs Geburtstag" #: src/hd-data.c:630 msgid "Liberation Day" msgstr "Tag der Befreiung" #: src/hd-data.c:631 #, fuzzy msgid "Marine Day" msgstr "Maifeiertag" #: src/hd-data.c:632 msgid "Martinimas" msgstr "Martinstag" #: src/hd-data.c:633 msgid "Martin L. King's Day" msgstr "Martin L. King's Tag" #: src/hd-data.c:634 #, fuzzy msgid "Martyrs' Day" msgstr "Maifeiertag" #: src/hd-data.c:635 msgid "Mary's Annunciation Day" msgstr "Mariä Verkündigung" #: src/hd-data.c:636 msgid "Mary's Ascension Day" msgstr "Mariä Himmelfahrt" #: src/hd-data.c:637 msgid "Mary's Candlemas" msgstr "" #: src/hd-data.c:638 #, fuzzy msgid "Mary's Expectation" msgstr "Mariä Verkündigung" #: src/hd-data.c:639 msgid "Mary's Immaculate Conception" msgstr "Mariä Empfängnis" #: src/hd-data.c:640 #, fuzzy msgid "Mary's Maternity" msgstr "Mariä Himmelfahrt" #: src/hd-data.c:641 msgid "Mary's Name" msgstr "" #: src/hd-data.c:642 msgid "Mary's Nativity" msgstr "" #: src/hd-data.c:643 msgid "Mary's Sacrifice" msgstr "" #: src/hd-data.c:644 #, fuzzy msgid "Mary's Visitation" msgstr "Mariä Verkündigung" #: src/hd-data.c:645 msgid "Mary - Blessed Virgin" msgstr "" #: src/hd-data.c:646 msgid "Maundy Thursday" msgstr "Gründonnerstag" #: src/hd-data.c:647 msgid "May Day" msgstr "Maifeiertag" #: src/hd-data.c:648 #, fuzzy msgid "St John's/Midsummer Day" msgstr "St. Hanstag" #: src/hd-data.c:649 msgid "Mid-Autumn Festival" msgstr "" #: src/hd-data.c:650 msgid "Mid-Spring Festival" msgstr "" #: src/hd-data.c:651 msgid "Mid-Year Festival" msgstr "" #: src/hd-data.c:652 msgid "Waxing Half Moon" msgstr "" #: src/hd-data.c:653 msgid "Full Moon" msgstr "" #: src/hd-data.c:654 msgid "Waning Half Moon" msgstr "" #: src/hd-data.c:655 msgid "New Moon" msgstr "" #: src/hd-data.c:656 msgid "Mother's Day" msgstr "Muttertag" #: src/hd-data.c:657 #, fuzzy msgid "Mother in Law's Day" msgstr "Muttertag" #: src/hd-data.c:658 msgid "Music Water Banquet" msgstr "" #: src/hd-data.c:659 #, fuzzy msgid "National Foundation Day" msgstr "Volkstrauertag" #: src/hd-data.c:660 msgid "National Holiday" msgstr "Nationalfeiertag" #: src/hd-data.c:661 #, fuzzy msgid "National Mourning Day" msgstr "Nationalfeiertag" #: src/hd-data.c:662 msgid "New Year's Day" msgstr "Neujahr" #: src/hd-data.c:663 #, fuzzy msgid "Nurses' Day" msgstr "Prinzessin' Tag" #: src/hd-data.c:664 msgid "Old-Armenic New Year" msgstr "" #: src/hd-data.c:665 msgid "Old-Egyptic New Year" msgstr "" #: src/hd-data.c:666 #, fuzzy msgid "Orthodox New Year's Day" msgstr "Neujahr" #: src/hd-data.c:667 msgid "Our Lady Aparecida Day" msgstr "" #: src/hd-data.c:668 msgid "Palm Sunday" msgstr "Palmsonntag" #: src/hd-data.c:669 #, fuzzy msgid "Parent's Day" msgstr "Präsidenten Tag" #: src/hd-data.c:670 #, fuzzy msgid "Passion Sunday" msgstr "Palmsonntag" #: src/hd-data.c:671 msgid "Peace Festival" msgstr "" #: src/hd-data.c:672 msgid "Peach Festival" msgstr "" #: src/hd-data.c:673 msgid "Whitsunday/Pentecost" msgstr "Pfingstsonntag" #: src/hd-data.c:674 #, fuzzy msgid "Noruz/Persian New Year's Day" msgstr "Neujahr" #: src/hd-data.c:675 msgid "Prayer Day" msgstr "Bettag" #: src/hd-data.c:676 #, fuzzy msgid "Presidential Inauguration" msgstr "Berichtstag des Präsidenten" #: src/hd-data.c:677 #, fuzzy msgid "Presidents' Day" msgstr "Präsidenten Tag" #: src/hd-data.c:678 #, fuzzy msgid "Presidents' Inform" msgstr "Berichtstag des Präsidenten" #: src/hd-data.c:679 #, fuzzy msgid "President Lincoln's Birthday" msgstr "Präsidenten Tag" #: src/hd-data.c:680 msgid "Princess' Day" msgstr "Prinzessin' Tag" #: src/hd-data.c:681 msgid "Quinquagesima Sunday" msgstr "" #: src/hd-data.c:682 msgid "Reformation Day" msgstr "Reformationstag" #: src/hd-data.c:683 msgid "Remembrance/Memorial Day" msgstr "Gedenktag" #: src/hd-data.c:684 msgid "Republic Day" msgstr "Tag der Republik" #: src/hd-data.c:685 msgid "Respect for the Aged Day" msgstr "" #: src/hd-data.c:686 msgid "Revolution Day" msgstr "Tag der Revolution" #: src/hd-data.c:687 #, fuzzy msgid "Rio de Janeiro Anniversary" msgstr "Jahrestag der Verfassung" #: src/hd-data.c:688 #, fuzzy msgid "Rogation Sunday" msgstr "Totensonntag" #: src/hd-data.c:689 #, fuzzy msgid "Sao Paulo Anniversary" msgstr "Jahrestag der Verfassung" #: src/hd-data.c:690 msgid "Sapporo Snow Festival" msgstr "" #: src/hd-data.c:691 msgid "Season Change/Bean-Festival" msgstr "" #: src/hd-data.c:692 #, fuzzy msgid "Septuagesima Sunday" msgstr "Palmsonntag" #: src/hd-data.c:693 #, fuzzy msgid "Seven Sleepers Day" msgstr "St. Stefanstag" #: src/hd-data.c:694 #, fuzzy msgid "Sexagesima Sunday" msgstr "Palmsonntag" #: src/hd-data.c:695 msgid "Shrove Tuesday/Mardi Gras" msgstr "Fasching/Fastnacht" #: src/hd-data.c:696 #, fuzzy msgid "Solstice Day" msgstr "Waffenstillstandstag" #: src/hd-data.c:697 msgid "Soot-Sweeping Day" msgstr "" #: src/hd-data.c:698 msgid "Spring Festival" msgstr "" #: src/hd-data.c:699 msgid "Start of common month" msgstr "" #: src/hd-data.c:700 msgid "Start of leap month" msgstr "" #: src/hd-data.c:701 msgid "Star Festival" msgstr "" #: src/hd-data.c:702 #, fuzzy msgid "St Andrew's Day" msgstr "St. Georgstag" #: src/hd-data.c:703 #, fuzzy msgid "St Bartholomew Day" msgstr "St. Berchtoldstag" #: src/hd-data.c:704 #, fuzzy msgid "St Berchtold's Day" msgstr "St. Berchtoldstag" #: src/hd-data.c:705 #, fuzzy msgid "St David's Day" msgstr "St. Davidstag" #: src/hd-data.c:706 #, fuzzy msgid "St Edward's Day" msgstr "St. Edwardstag" #: src/hd-data.c:707 #, fuzzy msgid "St George's Day" msgstr "St. Georgstag" #: src/hd-data.c:708 #, fuzzy msgid "St James' Day" msgstr "St. Jamestag" #: src/hd-data.c:709 #, fuzzy msgid "St Joseph's Day" msgstr "St. Josefstag" #: src/hd-data.c:710 #, fuzzy msgid "St Laurentius Day" msgstr "St. Valentinstag" #: src/hd-data.c:711 #, fuzzy msgid "St Nicholas' Day" msgstr "St. Nikolaustag" #: src/hd-data.c:712 #, fuzzy msgid "St Nicholas' Eve" msgstr "St. Nikolaus Vorabend" #: src/hd-data.c:713 #, fuzzy msgid "St Patrick's Day" msgstr "St. Patrickstag" #: src/hd-data.c:714 msgid "St Peter and St Paul" msgstr "" #: src/hd-data.c:715 #, fuzzy msgid "St Stephen's Day" msgstr "St. Stefanstag" #: src/hd-data.c:716 #, fuzzy msgid "St Valentine's Day" msgstr "St. Valentinstag" #: src/hd-data.c:717 msgid "Sunday of the Dead" msgstr "" #: src/hd-data.c:718 msgid "Swallow Day" msgstr "Schwalbentag" #: src/hd-data.c:719 #, fuzzy msgid "Sweetest Day" msgstr "Tag der Veteranen" #: src/hd-data.c:720 msgid "Sylvester/New Year's Eve" msgstr "" #: src/hd-data.c:721 msgid "Teacher's Day" msgstr "Tag der Lehrer" #: src/hd-data.c:722 #, fuzzy msgid "Thai New Year's Day" msgstr "Neujahr" #: src/hd-data.c:723 #, fuzzy msgid "Thanksgiving Day" msgstr "Erntedankfest" #: src/hd-data.c:724 msgid "The King's Birthday" msgstr "Des Königs Geburtstag" #: src/hd-data.c:725 msgid "The Queen's Birthday" msgstr "Der Königin Geburtstag" #: src/hd-data.c:726 msgid "Epiphany/Three King's Day" msgstr "Epiphanias/Heilige Drei Könige" #: src/hd-data.c:727 #, fuzzy msgid "Tiradentes Day" msgstr "Präsidenten Tag" #: src/hd-data.c:728 msgid "Tomb-Sweeping Day" msgstr "" #: src/hd-data.c:729 #, fuzzy msgid "Transfiguration Day" msgstr "Tag der Befreiung" #: src/hd-data.c:730 #, fuzzy msgid "Tynwald Day" msgstr "Tag des Herrscherhauses" #: src/hd-data.c:731 msgid "Valborg's Eve" msgstr "" #: src/hd-data.c:732 msgid "Venice Carnival" msgstr "" #: src/hd-data.c:733 msgid "Veteran's Day" msgstr "Tag der Veteranen" #: src/hd-data.c:734 msgid "Victoria Day" msgstr "Victoriatag" #: src/hd-data.c:735 msgid "Victory Day" msgstr "Siegestag" #: src/hd-data.c:736 msgid "Whit Monday" msgstr "Pfingstmontag" #: src/hd-data.c:737 #, fuzzy msgid "Women's Day" msgstr "Muttertag" #: src/hd-data.c:738 #, fuzzy msgid "Women's Shrove Day" msgstr "Weiberfastnacht" #: src/hd-data.c:739 msgid "World Animal Day" msgstr "Welt-Tierschutztag" #: src/hd-data.c:740 #, fuzzy msgid "Youth Day" msgstr "Muttertag" #: src/hd-data.c:746 msgid "Adelaide Cup Day" msgstr "" #: src/hd-data.c:747 #, fuzzy msgid "Admission Day" msgstr "Waffenstillstandstag" #: src/hd-data.c:748 #, fuzzy msgid "Alaska Day" msgstr "Tag der Flagge" #: src/hd-data.c:749 msgid "Aleksis Kivi Day" msgstr "" #: src/hd-data.c:750 msgid "Alice-Springs Show Day" msgstr "" #: src/hd-data.c:751 #, fuzzy msgid "All Saints' Eve" msgstr "Allerheiligen" #: src/hd-data.c:752 #, fuzzy msgid "Americas Day" msgstr "Tag der Streitkräfte" #: src/hd-data.c:753 #, fuzzy msgid "Angam Day" msgstr "Anzac Tag" #: src/hd-data.c:755 msgid "Anniversary of Amir's Succession" msgstr "" #: src/hd-data.c:756 msgid "Anniversary of Armed Struggle" msgstr "" #: src/hd-data.c:757 msgid "Anniversary of Green March" msgstr "" #: src/hd-data.c:758 #, fuzzy msgid "Antillian Day" msgstr "Allerheiligen" #: src/hd-data.c:759 msgid "Arab League Day" msgstr "" #: src/hd-data.c:761 msgid "Archbishop Makarios' Memorial Day" msgstr "" #: src/hd-data.c:762 msgid "Archbishop Makarios' Name-Day" msgstr "" #: src/hd-data.c:763 #, fuzzy msgid "Arengo Anniversary" msgstr "Jahrestag der Verfassung" #: src/hd-data.c:764 #, fuzzy msgid "Army Coup Day" msgstr "Tag der Streitkräfte" #: src/hd-data.c:765 msgid "Arrival of the Swiss" msgstr "" #: src/hd-data.c:766 #, fuzzy msgid "Artigas' Birthday" msgstr "Des Königs Geburtstag" #: src/hd-data.c:767 #, fuzzy msgid "Asuncion Day" msgstr "Wahltag" #: src/hd-data.c:768 msgid "Ataturk Memorial Day" msgstr "" #: src/hd-data.c:769 msgid "Authority's Power Day" msgstr "" #: src/hd-data.c:770 #, fuzzy msgid "Ba'ath Revolution Day" msgstr "Tag der Revolution" #: src/hd-data.c:771 msgid "Baron Bliss Day" msgstr "" #: src/hd-data.c:772 #, fuzzy msgid "Bataan Day" msgstr "Tag der Veteranen" #: src/hd-data.c:773 #, fuzzy msgid "Battle of Angamos" msgstr "Schlacht von Boyne" #: src/hd-data.c:774 #, fuzzy msgid "Battle of Boyacá" msgstr "Schlacht von Boyne" #: src/hd-data.c:775 #, fuzzy msgid "Battle of Carabobo" msgstr "Schlacht von Boyne" #: src/hd-data.c:776 #, fuzzy msgid "Battle of Iquique" msgstr "Schlacht von Boyne" #: src/hd-data.c:777 #, fuzzy msgid "Battle of Las Piedras" msgstr "Schlacht von Boyne" #: src/hd-data.c:778 #, fuzzy msgid "Battle of Näfels" msgstr "Schlacht von Boyne" #: src/hd-data.c:779 msgid "Beginning of Summer" msgstr "" #: src/hd-data.c:780 #, fuzzy msgid "Belgrade's Day" msgstr "Tag der Lehrer" #: src/hd-data.c:781 #, fuzzy msgid "Bennington Battle Day" msgstr "Benito Juarez Tag" #: src/hd-data.c:782 msgid "Blessing of the Water" msgstr "" #: src/hd-data.c:783 msgid "Bloomsday" msgstr "" #: src/hd-data.c:784 #, fuzzy msgid "Boganda Day" msgstr "2'ter Weihnachtstag" #: src/hd-data.c:785 #, fuzzy msgid "Bonaire Day" msgstr "2'ter Weihnachtstag" #: src/hd-data.c:786 #, fuzzy msgid "Boqueron Battle Day" msgstr "Krönungstag" #: src/hd-data.c:787 #, fuzzy msgid "Botswana Day" msgstr "2'ter Weihnachtstag" #: src/hd-data.c:788 #, fuzzy msgid "Bounty Day" msgstr "2'ter Weihnachtstag" #: src/hd-data.c:789 msgid "Bunker Hill Day" msgstr "" #: src/hd-data.c:790 msgid "Burning of Jan Hus" msgstr "Verbrennung des Jan Hus" #: src/hd-data.c:791 #, fuzzy msgid "Canberra Day" msgstr "Bettag" #: src/hd-data.c:792 #, fuzzy msgid "Caricom Day" msgstr "1'ter Weihnachtstag" #: src/hd-data.c:793 msgid "Casimir Pulaski's Birthday" msgstr "" #: src/hd-data.c:794 #, fuzzy msgid "Cassinga Day" msgstr "2'ter Weihnachtstag" #: src/hd-data.c:795 msgid "Cayenne Festival" msgstr "" #: src/hd-data.c:796 msgid "Cesar Chavez Day" msgstr "" #: src/hd-data.c:797 #, fuzzy msgid "Charter Day" msgstr "Vatertag" #: src/hd-data.c:798 #, fuzzy msgid "Chiang Kai-shek's Birthday" msgstr "Des Königs Geburtstag" #: src/hd-data.c:799 #, fuzzy msgid "Children's White Sunday" msgstr "Tag der Kinder" #: src/hd-data.c:800 #, fuzzy msgid "Colon Day" msgstr "Tag der Revolution" #: src/hd-data.c:801 #, fuzzy msgid "Colorado Day" msgstr "Krönungstag" #: src/hd-data.c:802 #, fuzzy msgid "Commonwealth Day" msgstr "Krönungstag" #: src/hd-data.c:803 #, fuzzy msgid "Compact Day" msgstr "Krönungstag" #: src/hd-data.c:804 msgid "Confederal Agreement Day" msgstr "" #: src/hd-data.c:805 msgid "Coronation Day" msgstr "Krönungstag" #: src/hd-data.c:806 #, fuzzy msgid "Cup Match Day" msgstr "Maifeiertag" #: src/hd-data.c:807 #, fuzzy msgid "Custom Chief's Day" msgstr "Tag der Kinder" #: src/hd-data.c:808 msgid "C. Mapinduzi Day" msgstr "" #: src/hd-data.c:809 msgid "Darwin Show Day" msgstr "" #: src/hd-data.c:810 msgid "Day of Goodwill" msgstr "" #: src/hd-data.c:811 msgid "Day of Students Revolt" msgstr "Tag der Studentenrevolte" #: src/hd-data.c:812 msgid "Day of the Free Laos" msgstr "" #: src/hd-data.c:813 #, fuzzy msgid "Death of H. Christophe" msgstr "Fronleichnam" #: src/hd-data.c:814 msgid "Death of J. Dessalines" msgstr "" #: src/hd-data.c:815 msgid "Death of President Abdallah" msgstr "" #: src/hd-data.c:816 msgid "Death of President Cheikh" msgstr "" #: src/hd-data.c:817 msgid "Death of President Soilih" msgstr "" #: src/hd-data.c:818 msgid "Death of Qaid-i-Azam" msgstr "" #: src/hd-data.c:819 msgid "Death of T. Louverture" msgstr "" #: src/hd-data.c:820 #, fuzzy msgid "Defenders Day" msgstr "Unabhängigkeitstag" #: src/hd-data.c:821 msgid "Dia del Padre" msgstr "" #: src/hd-data.c:822 msgid "Dia de los Maestros" msgstr "" #: src/hd-data.c:823 #, fuzzy msgid "Discovery Day" msgstr "Siegestag" #: src/hd-data.c:824 msgid "Downfall of the Dergue" msgstr "" #: src/hd-data.c:825 msgid "Dry Season Celebration" msgstr "" #: src/hd-data.c:826 #, fuzzy msgid "Dr. Sun Yat-sen's Birthday" msgstr "Der Königin Geburtstag" #: src/hd-data.c:827 #, fuzzy msgid "Duarte's Birthday" msgstr "Der Königin Geburtstag" #: src/hd-data.c:828 #, fuzzy msgid "Easter Tuesday" msgstr "Ostersonntag" #: src/hd-data.c:829 #, fuzzy msgid "Economic Liberation Day" msgstr "Tag der Befreiung" #: src/hd-data.c:830 #, fuzzy msgid "Eight Hours Day" msgstr "Siegestag" #: src/hd-data.c:831 msgid "Elections for National Assembly" msgstr "" #: src/hd-data.c:832 msgid "Errol Barrow Day" msgstr "" #: src/hd-data.c:833 #, fuzzy msgid "Evacuation Day" msgstr "Wahltag" #: src/hd-data.c:834 msgid "Eve of Epiphany" msgstr "" #: src/hd-data.c:835 msgid "Expedition of the 33" msgstr "" #: src/hd-data.c:836 msgid "E. Hostos' Birthday" msgstr "" #: src/hd-data.c:837 #, fuzzy msgid "Family Day" msgstr "Maifeiertag" #: src/hd-data.c:838 #, fuzzy msgid "FAO Day" msgstr "Tag der Flagge" #: src/hd-data.c:839 #, fuzzy msgid "Farmers' Day" msgstr "Vatertag" #: src/hd-data.c:840 #, fuzzy msgid "Father Leval Day" msgstr "Vatertag" #: src/hd-data.c:841 msgid "Feast of Our Theotokos" msgstr "Fest des Theotokos" #: src/hd-data.c:842 #, fuzzy msgid "Fisherman's Day" msgstr "Vatertag" #: src/hd-data.c:843 #, fuzzy msgid "Foundation of NPLA Day" msgstr "Krönungstag" #: src/hd-data.c:844 msgid "Founding of People's Party" msgstr "" #: src/hd-data.c:845 msgid "Garifuna Day" msgstr "" #: src/hd-data.c:847 msgid "General San Martin's Anniversary" msgstr "" #: src/hd-data.c:848 #, fuzzy msgid "Gospel Day" msgstr "Nobel Tag" #: src/hd-data.c:849 #, fuzzy msgid "Guacanaste Day" msgstr "Tag des Herrscherhauses" #: src/hd-data.c:850 msgid "Gustavus Adolphus' Day" msgstr "Gustav Adolph Tag" #: src/hd-data.c:851 #, fuzzy msgid "Heritage Day" msgstr "Waffenstillstandstag" #: src/hd-data.c:852 #, fuzzy msgid "Heroes Day" msgstr "Vatertag" #: src/hd-data.c:853 msgid "Hobart Show Day" msgstr "" #: src/hd-data.c:854 #, fuzzy msgid "Holy Wednesday" msgstr "Mittwoch" #: src/hd-data.c:855 #, fuzzy msgid "Ho Chi Minh's Birthday" msgstr "Des Königs Geburtstag" #: src/hd-data.c:856 #, fuzzy msgid "Human Rights Day" msgstr "Tag der Deutschen Einheit" #: src/hd-data.c:857 msgid "Hurricane Supplication Day" msgstr "" #: src/hd-data.c:858 #, fuzzy msgid "Hurricane Thanksgiving Day" msgstr "Erntedankfest" #: src/hd-data.c:859 #, fuzzy msgid "Independence of Cartagena" msgstr "Unabhängigkeitstag" #: src/hd-data.c:860 #, fuzzy msgid "Independence of Cuenca" msgstr "Unabhängigkeitstag" #: src/hd-data.c:861 #, fuzzy msgid "Independence of Guayaquil" msgstr "Unabhängigkeitstag" #: src/hd-data.c:862 #, fuzzy msgid "Independence of Quito" msgstr "Unabhängigkeitstag" #: src/hd-data.c:863 msgid "Indian Arrival Day" msgstr "" #: src/hd-data.c:864 #, fuzzy msgid "Internal Autonomy Day" msgstr "Internationaler Frauentag" #: src/hd-data.c:865 #, fuzzy msgid "Jefferson Davis' Birthday" msgstr "Der Kronprinzessin Geburtstag" #: src/hd-data.c:866 #, fuzzy msgid "June Holiday" msgstr "Feiertag" #: src/hd-data.c:867 #, fuzzy msgid "J. Barbosa's Birthday" msgstr "Des Königs Geburtstag" #: src/hd-data.c:868 #, fuzzy msgid "J. Chilembwe Day" msgstr "Tag der Kinder" #: src/hd-data.c:869 #, fuzzy msgid "J. Diego's Birthday" msgstr "Des Königs Geburtstag" #: src/hd-data.c:870 #, fuzzy msgid "J. Robert's Birthday" msgstr "Der Königin Geburtstag" #: src/hd-data.c:871 msgid "Kamarampaka Day" msgstr "" #: src/hd-data.c:872 #, fuzzy msgid "Kartini Day" msgstr "Martinstag" #: src/hd-data.c:873 #, fuzzy msgid "Catherine Show Day" msgstr "Vatertag" #: src/hd-data.c:874 msgid "Kiev Day" msgstr "" #: src/hd-data.c:875 #, fuzzy msgid "Kim Il-Sung's Birthday" msgstr "Des Königs Geburtstag" #: src/hd-data.c:876 #, fuzzy msgid "Kim Jong-Il's Birthday" msgstr "Des Königs Geburtstag" #: src/hd-data.c:877 msgid "King Kamehameha Day" msgstr "" #: src/hd-data.c:878 msgid "King Rama I Memorial Day/Chakri" msgstr "" #: src/hd-data.c:879 #, fuzzy msgid "King Rama V Memorial Day" msgstr "Gedenktag" #: src/hd-data.c:880 msgid "Knabenschiessen" msgstr "" #: src/hd-data.c:881 msgid "Konstantin and Methodius" msgstr "" #: src/hd-data.c:882 msgid "Lapp National Holiday" msgstr "Nationalfeiertag der Lappen" #: src/hd-data.c:883 msgid "Launceston Cup Day" msgstr "" #: src/hd-data.c:884 #, fuzzy msgid "Liberty Day" msgstr "Tag der Befreiung" #: src/hd-data.c:885 msgid "Loss of Muslim Nation" msgstr "" #: src/hd-data.c:886 msgid "Luxembourg City Kermis" msgstr "" #: src/hd-data.c:887 #, fuzzy msgid "Lyndon B. Johnson Day" msgstr "St. Hanstag" #: src/hd-data.c:888 #, fuzzy msgid "L. Rivera's Birthday" msgstr "Des Königs Geburtstag" #: src/hd-data.c:889 #, fuzzy msgid "Madaraka Day" msgstr "Maifeiertag" #: src/hd-data.c:890 #, fuzzy msgid "Mahatma Gandhi's Birthday" msgstr "Des Königs Geburtstag" #: src/hd-data.c:891 #, fuzzy msgid "Malvinas Day" msgstr "Maifeiertag" #: src/hd-data.c:892 #, fuzzy msgid "Manila Day" msgstr "Maifeiertag" #: src/hd-data.c:893 #, fuzzy msgid "Maputo City Day" msgstr "Maifeiertag" #: src/hd-data.c:894 msgid "Marien Ngouabi Day" msgstr "" #: src/hd-data.c:895 #, fuzzy msgid "Maryland Day" msgstr "Maifeiertag" #: src/hd-data.c:896 msgid "Melbourne Cup Day" msgstr "" #: src/hd-data.c:897 #, fuzzy msgid "Merchant Day" msgstr "Tag der Deutschen Einheit" #: src/hd-data.c:898 #, fuzzy msgid "St John's/Midsummers Eve" msgstr "Johannisvorabend" #: src/hd-data.c:899 #, fuzzy msgid "Missionary Day" msgstr "Maifeiertag" #: src/hd-data.c:900 msgid "Mi-Carême Day" msgstr "" #: src/hd-data.c:901 #, fuzzy msgid "Morazan Day" msgstr "Maifeiertag" #: src/hd-data.c:902 #, fuzzy msgid "Mosheshoe's Day" msgstr "Muttertag" #: src/hd-data.c:903 msgid "Motherhood and Beauty Day" msgstr "" #: src/hd-data.c:904 #, fuzzy msgid "Naming Day" msgstr "2'ter Weihnachtstag" #: src/hd-data.c:905 #, fuzzy msgid "National Bun Day" msgstr "Volkstrauertag" #: src/hd-data.c:906 #, fuzzy msgid "National Heroes Day" msgstr "Nationalfeiertag" #: src/hd-data.c:907 #, fuzzy msgid "National Redemption Day" msgstr "Volkstrauertag" #: src/hd-data.c:908 msgid "National Resistance Day" msgstr "Tag des nationalen Widerstandes" #: src/hd-data.c:909 #, fuzzy msgid "National Revival Day" msgstr "Tag des nationalen Widerstandes" #: src/hd-data.c:910 #, fuzzy msgid "National Unity Day" msgstr "Volkstrauertag" #: src/hd-data.c:911 #, fuzzy msgid "Ndadaye Day" msgstr "Bettag" #: src/hd-data.c:912 #, fuzzy msgid "Neutrality Day" msgstr "Tag der Deutschen Einheit" #: src/hd-data.c:913 #, fuzzy msgid "Nevada Day" msgstr "Nobel Tag" #: src/hd-data.c:914 msgid "New Regime Anniversary" msgstr "" #: src/hd-data.c:915 msgid "Nobel Day" msgstr "Nobel Tag" #: src/hd-data.c:916 #, fuzzy msgid "Noi Day" msgstr "Nobel Tag" #: src/hd-data.c:917 #, fuzzy msgid "OAU Day" msgstr "Anzac Tag" #: src/hd-data.c:918 #, fuzzy msgid "October Holiday" msgstr "Nationalfeiertag" #: src/hd-data.c:919 msgid "Oil Industry Day" msgstr "" #: src/hd-data.c:920 msgid "Our Lady of Altagracia Day" msgstr "" #: src/hd-data.c:921 msgid "Our Lady of Camarin Day" msgstr "" #: src/hd-data.c:922 msgid "Our Lady of Las Mercedes Day" msgstr "" #: src/hd-data.c:923 msgid "Our Lady of Los Angeles Day" msgstr "" #: src/hd-data.c:924 msgid "Our Lady of Seven Sorrows" msgstr "" #: src/hd-data.c:925 msgid "Our Lady of Victories Day" msgstr "" #: src/hd-data.c:926 #, fuzzy msgid "Panama City Day" msgstr "Tag der Deutschen Einheit" #: src/hd-data.c:927 #, fuzzy msgid "Panamerica Day" msgstr "Bettag" #: src/hd-data.c:928 msgid "Paris Peace Agreement Day" msgstr "" #: src/hd-data.c:929 #, fuzzy msgid "Patriot's Day" msgstr "St. Patrickstag" #: src/hd-data.c:930 #, fuzzy msgid "People's Uprising Day" msgstr "Maiaufstand der Tschechen" #: src/hd-data.c:931 msgid "People Power Day" msgstr "" #: src/hd-data.c:932 msgid "Philippine-American Friendship" msgstr "" #: src/hd-data.c:933 #, fuzzy msgid "Pichincha Day" msgstr "Victoriatag" #: src/hd-data.c:934 #, fuzzy msgid "Picnic Day" msgstr "Prinzessin' Tag" #: src/hd-data.c:935 #, fuzzy msgid "Pioneer Day" msgstr "Bettag" #: src/hd-data.c:936 #, fuzzy msgid "Poya Day" msgstr "Bettag" #: src/hd-data.c:937 msgid "Prince Kalanianaole Day" msgstr "" #: src/hd-data.c:938 #, fuzzy msgid "Prince of Wales' Birthday" msgstr "Der Kronprinzessin Geburtstag" #: src/hd-data.c:939 #, fuzzy msgid "Proclamation Day" msgstr "Krönungstag" #: src/hd-data.c:940 msgid "Qaid-i-Azam's Birthday" msgstr "" #: src/hd-data.c:941 msgid "Ratu Sukuma Day" msgstr "" #: src/hd-data.c:942 #, fuzzy msgid "Recreation Day" msgstr "Reformationstag" #: src/hd-data.c:943 #, fuzzy msgid "Referendum Day" msgstr "Reformationstag" #: src/hd-data.c:944 #, fuzzy msgid "Regatta Day" msgstr "Reformationstag" #: src/hd-data.c:945 msgid "Regency Exchange" msgstr "" #: src/hd-data.c:946 #, fuzzy msgid "Restoration Day" msgstr "Reformationstag" #: src/hd-data.c:947 #, fuzzy msgid "Return Day" msgstr "Tag der Veteranen" #: src/hd-data.c:948 #, fuzzy msgid "Reunification Day" msgstr "Reformationstag" #: src/hd-data.c:949 #, fuzzy msgid "Rizal Day" msgstr "Anzac Tag" #: src/hd-data.c:950 #, fuzzy msgid "Rwagasore Day" msgstr "Tag der Arbeit" #: src/hd-data.c:951 #, fuzzy msgid "Saba Day" msgstr "Tag der Arbeit" #: src/hd-data.c:952 #, fuzzy msgid "San Jacinto Day" msgstr "St. Jean Baptiste Tag" #: src/hd-data.c:953 #, fuzzy msgid "San José Day" msgstr "St. Hanstag" #: src/hd-data.c:954 msgid "SAR Establishment Day" msgstr "" #: src/hd-data.c:955 #, fuzzy msgid "School Holiday" msgstr "Nationalfeiertag" #: src/hd-data.c:956 msgid "Sechseläuten" msgstr "" #: src/hd-data.c:957 #, fuzzy msgid "Separation Day" msgstr "Tag der Befreiung" #: src/hd-data.c:958 msgid "Seretse Khama Day" msgstr "" #: src/hd-data.c:959 #, fuzzy msgid "Settlers Day" msgstr "Tag der Veteranen" #: src/hd-data.c:960 #, fuzzy msgid "Seward's Day" msgstr "St. Edwardstag" #: src/hd-data.c:961 #, fuzzy msgid "Shaheed Day" msgstr "Vatertag" #: src/hd-data.c:962 msgid "Sheep Festival" msgstr "" #: src/hd-data.c:963 #, fuzzy msgid "Sheikh Zayed's Ascension Day" msgstr "Mariä Himmelfahrt" #: src/hd-data.c:964 msgid "Simon Bolivar's Day" msgstr "" #: src/hd-data.c:965 #, fuzzy msgid "Sinai-Liberation Day" msgstr "Tag der Befreiung" #: src/hd-data.c:966 #, fuzzy msgid "Slave-Liberation Day" msgstr "Tag der Befreiung" #: src/hd-data.c:967 msgid "Sniff the Breeze Day" msgstr "" #: src/hd-data.c:968 msgid "Solidarity Day" msgstr "" #: src/hd-data.c:969 #, fuzzy msgid "Somers Day" msgstr "Muttertag" #: src/hd-data.c:970 #, fuzzy msgid "Statia-American Day" msgstr "St. Patrickstag" #: src/hd-data.c:971 #, fuzzy msgid "Student's Day" msgstr "Präsidenten Tag" #: src/hd-data.c:972 #, fuzzy msgid "St Agata Day" msgstr "St. Knutstag" #: src/hd-data.c:973 #, fuzzy msgid "St Canute's Day" msgstr "St. Knutstag" #: src/hd-data.c:974 #, fuzzy msgid "St Cedilia's Day" msgstr "St. Luciastag" #: src/hd-data.c:975 #, fuzzy msgid "St Charles' Day" msgstr "St. Jamestag" #: src/hd-data.c:976 #, fuzzy msgid "St Demetrius' Day" msgstr "St. Jamestag" #: src/hd-data.c:977 #, fuzzy msgid "St Dévote Day" msgstr "St. Josefstag" #: src/hd-data.c:978 #, fuzzy msgid "St Eliah's Day" msgstr "St. Luciastag" #: src/hd-data.c:979 #, fuzzy msgid "St Jean Baptiste Day" msgstr "St. Jean Baptiste Tag" #: src/hd-data.c:980 #, fuzzy msgid "St Lucia's Day" msgstr "St. Luciastag" #: src/hd-data.c:981 #, fuzzy msgid "St Marguerite's Day" msgstr "St. Knutstag" #: src/hd-data.c:982 #, fuzzy msgid "St Maroon's Day" msgstr "St. Hanstag" #: src/hd-data.c:983 #, fuzzy msgid "St Michael's Day" msgstr "St. Nikolaustag" #: src/hd-data.c:984 #, fuzzy msgid "St Olav's Day" msgstr "St. Davidstag" #: src/hd-data.c:985 #, fuzzy msgid "St Olav's Eve" msgstr "St. Hans Vorabend" #: src/hd-data.c:986 msgid "St Paul's Shipswreck" msgstr "" #: src/hd-data.c:987 msgid "St Rose of Lima" msgstr "" #: src/hd-data.c:988 #, fuzzy msgid "St Ursula's Day" msgstr "St. Luciastag" #: src/hd-data.c:989 #, fuzzy msgid "St Vincent de Paul's Day" msgstr "St. Valentinstag" #: src/hd-data.c:990 #, fuzzy msgid "Suez Victory Day" msgstr "Siegestag" #: src/hd-data.c:991 msgid "Sultan Qaboos' Birthday" msgstr "" #: src/hd-data.c:992 msgid "Svetitskhovloba" msgstr "" #: src/hd-data.c:993 #, fuzzy msgid "Sweden Day" msgstr "Präsidenten Tag" #: src/hd-data.c:994 #, fuzzy msgid "S. Doe's Birthday" msgstr "Der Königin Geburtstag" #: src/hd-data.c:995 msgid "Tennant-Creek Show Day" msgstr "" #: src/hd-data.c:996 #, fuzzy msgid "Territory Day" msgstr "Siegestag" #: src/hd-data.c:997 msgid "The Crown Princesse's Birthday" msgstr "Der Kronprinzessin Geburtstag" #: src/hd-data.c:998 msgid "The Crown Princesse's Name-Day" msgstr "Der Kronprinzessin Namenstag" #: src/hd-data.c:999 #, fuzzy msgid "The Crown Prince's Birthday" msgstr "Der Kronprinzessin Geburtstag" #: src/hd-data.c:1000 msgid "The King's Name-Day" msgstr "Des Königs Namenstag" #: src/hd-data.c:1001 msgid "The Queen's Name-Day" msgstr "Der Königin Namenstag" #: src/hd-data.c:1002 msgid "Topou I Day" msgstr "" #: src/hd-data.c:1003 #, fuzzy msgid "Town Meeting Day" msgstr "2'ter Weihnachtstag" #: src/hd-data.c:1004 #, fuzzy msgid "Traditional Day" msgstr "Krönungstag" #: src/hd-data.c:1005 #, fuzzy msgid "Transfer Day" msgstr "Bettag" #: src/hd-data.c:1006 #, fuzzy msgid "Truman Day" msgstr "Reformationstag" #: src/hd-data.c:1007 #, fuzzy msgid "Union Day" msgstr "Krönungstag" #: src/hd-data.c:1008 msgid "Union with Sweden dissolved" msgstr "Union mit Schweden aufgelöst" #: src/hd-data.c:1009 msgid "United Nations Day" msgstr "Tag der Vereinten Nationen" #: src/hd-data.c:1010 #, fuzzy msgid "Unity Factory Day" msgstr "Siegestag" #: src/hd-data.c:1011 #, fuzzy msgid "Victor-Schoelcher Day" msgstr "Siegestag" #: src/hd-data.c:1012 msgid "Vidovdan" msgstr "" #: src/hd-data.c:1013 #, fuzzy msgid "West Virginia Day" msgstr "Victoriatag" #: src/hd-data.c:1014 msgid "Whitsun Eve" msgstr "Pfingstvorabend" #: src/hd-data.c:1015 #, fuzzy msgid "W. Tubman's Birthday" msgstr "Der Königin Geburtstag" #: src/hd-data.c:1016 #, fuzzy msgid "Yap Day" msgstr "Maifeiertag" #: src/hd-data.c:1017 msgid "Day of Czech Statehood" msgstr "" #: src/hd-data.c:1082 msgid "Zi/Rat" msgstr "" #: src/hd-data.c:1082 msgid "Chou/Ox" msgstr "" #: src/hd-data.c:1083 msgid "Yin/Tiger" msgstr "" #: src/hd-data.c:1083 msgid "Mao/Rabbit" msgstr "" #: src/hd-data.c:1084 msgid "Chen/Dragon" msgstr "" #: src/hd-data.c:1084 msgid "Si/Snake" msgstr "" #: src/hd-data.c:1085 msgid "Wu/Horse" msgstr "" #: src/hd-data.c:1085 msgid "Wei/Sheep" msgstr "" #: src/hd-data.c:1086 msgid "Shen/Monkey" msgstr "" #: src/hd-data.c:1086 msgid "You/Rooster" msgstr "" #: src/hd-data.c:1087 msgid "Xu/Dog" msgstr "" #: src/hd-data.c:1087 msgid "Hai/Pig" msgstr "" #: src/hd-data.c:1284 #, fuzzy msgid "Ast" msgstr "'ter" #: src/hd-data.c:1397 src/hd-data.c:1480 msgid "Bah" msgstr "" #: src/hd-data.c:1547 msgid "Cel" msgstr "" #: src/hd-data.c:1689 src/hd-data.c:2222 #, fuzzy msgid "Chi" msgstr "Chr" #: src/hd-data.c:1803 src/hd-data.c:2322 src/hd-data.c:3839 #, c-format msgid "Cannot calculate lunisolar calendar for %d correctly" msgstr "" #: src/hd-data.c:2224 src/hd-data.c:3727 #, fuzzy msgid "Jap" msgstr "Jan" #: src/hd-data.c:2420 msgid "Chr" msgstr "Chr" #: src/hd-data.c:2654 src/hd-data.c:4171 msgid "FRR" msgstr "" #: src/hd-data.c:2775 src/hd-data.c:2957 #, fuzzy msgid "Heb" msgstr "Feb" #: src/hd-data.c:3187 src/hd-data.c:3616 msgid "Isl" msgstr "" #: src/hd-data.c:4241 src/hd-data.c:4336 msgid "AMO" msgstr "" #: src/hd-data.c:4262 src/hd-data.c:4334 msgid "EGO" msgstr "" #: src/hd-data.c:4444 msgid "OxN" msgstr "" #: src/hd-data.c:4446 msgid "OxO" msgstr "" #: src/hd-data.c:4647 src/hd-data.c:4776 msgid "Per" msgstr "" #: src/hd-data.c:4844 msgid "Zod" msgstr "" #: src/hd-use.c:928 msgid " day" msgstr " Tag" #: src/hd-use.c:1973 src/hd-use.c:1978 src/hd-use.c:1982 src/hd-use.c:1989 #: src/hd-use.c:1993 src/hd-use.c:2089 src/hd-use.c:2273 msgid "Eternal holiday list" msgstr "Ewige Feiertagsliste" #: src/hd-use.c:1977 #, 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:1981 #, 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:1988 #, c-format msgid "%s:%*sThe year %d is A leap year" msgstr "%s:%*sDas Jahr %d ist EIN Schaltjahr" #: src/hd-use.c:1992 #, c-format msgid "%s:%*sThe year %d is NO leap year" msgstr "%s:%*sDas Jahr %d ist KEIN Schaltjahr" #: src/hd-use.c:2242 #, c-format msgid " = %+4d day" msgstr " = %+4d Tag" #: src/hd-use.c:2244 #, c-format msgid " = %+4d days" msgstr " = %+4d Tage" #: src/hd-use.c:2271 #, c-format msgid "%s%s contains %d maximum entries now!%s" msgstr "%s%s hat nun %d Maximaleinträge!%s" #: src/help.c:64 #, 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:74 #, fuzzy msgid "# Day number (must be defined)" msgstr "Tag-Gruppe (genau ein Mitglied muß definiert werden):" #: src/help.c:75 #, fuzzy msgid "# Year number (must be defined)" msgstr "Jahr-Gruppe (genau ein Mitglied muß definiert werden):" #: src/help.c:76 #, fuzzy msgid "# Weekday name (may be defined)" msgstr "Wochentagsname-Gruppe (ein Mitglied darf definiert werden):" #: src/help.c:77 msgid "Month group (exactly one member must be defined):" msgstr "Monat-Gruppe (genau ein Mitglied muß definiert werden):" #: src/help.c:78 msgid "# Month number" msgstr "" #: src/help.c:79 #, fuzzy msgid "# Month name" msgstr "Vollständiger Monatsname" #: src/help.c:80 msgid "Highlighting group (all members must be defined):" msgstr "Hervorhebung-Gruppe (alle Mitglieder müssen definiert werden):" #: src/help.c:81 msgid "Start of highlighting sequence/marking character" msgstr "Start von Hervorhebungssequenz/Markierungszeichen" #: src/help.c:83 msgid "End of highlighting sequence/marking character" msgstr "Ende von Hervorhebungssequenz/Markierungszeichen" #: src/help.c:85 msgid "Character replacement:" msgstr "Zeichenersetzung:" #: src/help.c:86 #, fuzzy, c-format msgid "Space/blank ('%c') character" msgstr "Leerzeichen (' ')" #: src/help.c:87 #, fuzzy, c-format msgid "Underscore ('%c') character" msgstr "Unterstrichzeichen ('_')" #: src/help.c:88 #, fuzzy, c-format msgid "Percent ('%c') character" msgstr "Prozentzeichen ('%')" #: src/help.c:89 #, fuzzy, c-format msgid "Backslash ('%c') character" msgstr "Leerzeichen (' ')" #: src/help.c:90 msgid "All format elements marked by # may optionally" msgstr "" #: src/help.c:91 msgid "contain a format instruction, which template is like:" msgstr "" #: src/help.c:92 msgid "[ALIGNMENT [SIGN] [ZERO] WIDTH [STYLE] [SUFFIX] FORMAT]" msgstr "" #: src/help.c:93 #, fuzzy msgid "ALIGNMENT group (exactly one member must be defined):" msgstr "Monat-Gruppe (genau ein Mitglied muß definiert werden):" #: src/help.c:94 msgid "Field contents placed at the left margin using width WIDTH" msgstr "" #: src/help.c:96 msgid "Field contents placed in centered manner using width WIDTH" msgstr "" #: src/help.c:98 msgid "Field contents placed at the right margin using width WIDTH" msgstr "" #: src/help.c:100 msgid "SIGN (may be defined):" msgstr "" #: src/help.c:101 msgid "Numerical value is provided with leading sign" msgstr "" #: src/help.c:102 msgid "ZERO (may be defined):" msgstr "" #: src/help.c:103 #, fuzzy msgid "Numerical value is filled with leading zero(es)" msgstr "Tageszahl mit führenden Nullen" #: src/help.c:104 msgid "WIDTH (must be defined):" msgstr "" #: src/help.c:105 #, c-format msgid "Field has the width N (%d...%d)" msgstr "" #: src/help.c:106 #, fuzzy msgid "STYLE group (exactly one member may be defined):" msgstr "Jahr-Gruppe (genau ein Mitglied muß definiert werden):" #: src/help.c:107 msgid "Field contents is converted to upper-case letters" msgstr "" #: src/help.c:108 msgid "Field contents is converted to lower-case letters" msgstr "" #: src/help.c:109 msgid "Field contents is converted to capitalized words" msgstr "" #: src/help.c:110 msgid "SUFFIX (may be defined):" msgstr "" #: src/help.c:111 msgid "Numerical value is provided with an ordinal number suffix" msgstr "" #: src/help.c:113 #, fuzzy msgid "FORMAT group (exactly one member must be defined):" msgstr "Monat-Gruppe (genau ein Mitglied muß definiert werden):" #: src/help.c:114 msgid "Field contents is not cut after position WIDTH" msgstr "" #: src/help.c:115 msgid "Field contents is cut after position WIDTH" msgstr "" #: src/help.c:129 msgid "legal holidays" msgstr "gesetzlichen Feiertage" #: src/help.c:130 msgid "holidays" msgstr "Feiertage" #: src/help.c:131 msgid "Mondays" msgstr "Montage" #: src/help.c:132 msgid "Tuesdays" msgstr "Dienstage" #: src/help.c:133 msgid "Wednesdays" msgstr "Mittwoche" #: src/help.c:134 msgid "Thursdays" msgstr "Donnerstage" #: src/help.c:135 msgid "Fridays" msgstr "Freitage" #: src/help.c:136 msgid "Saturdays" msgstr "Samstage" #: src/help.c:137 msgid "Sundays" msgstr "Sonntage" #: src/help.c:138 msgid "Mondays...Thursdays" msgstr "Montage...Donnerstage" #: src/help.c:139 msgid "Mondays...Fridays" msgstr "Montage...Freitage" #: src/help.c:169 #, c-format msgid "%s: Use `%s %s' with one of these arguments" msgstr "%s: Benutze `%s %s' mit einem dieser Argumente" #: src/help.c:242 msgid "OPTION" msgstr "OPTION" #: src/help.c:255 msgid " Display help text and quit program" msgstr " Hilfetext ausgeben und Programm beenden" #: src/help.c:272 msgid " Display extended help text and quit program" msgstr " Erweiterten Hilfetext ausgeben und Programm beenden" #: src/help.c:290 msgid " Display software license and quit program" msgstr " Softwarelizenz ausgeben und Programm beenden" #: src/help.c:301 #, fuzzy msgid " Display version information and quit program" msgstr " Versionsnummer ausgeben und Programm beenden" #: src/help.c:312 #, fuzzy, c-format msgid " Set EXIT status of program to %d on `%s' etc." msgstr "" " Setze Programm EXIT Status auf 127 bei --help, --version etc." #: src/help.c:325 #, c-format msgid " Create response file for the `%cFILE' option" msgstr " Antwortdatei für die `%cDATEI' Option erzeugen" #: src/help.c:329 #, c-format msgid " %-3s = Store arguments of command line in file %s" msgstr " %-3s = Schreibe Argumente der Kommandozeile in Datei %s" #: src/help.c:343 #, c-format msgid "" " Create shell script which contains the arguments of command line" msgstr " Shell script mit den Argumenten der Kommandozeile erzeugen" #: src/help.c:345 #, c-format msgid " %-3s = File name of the shell script" msgstr " %-3s = Dateiname des shell scripts" #: src/help.c:359 #, fuzzy 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:363 #, fuzzy, c-format msgid " %-3s = \"DVAR%s%s%s\" definitions separated by `%s' characters" msgstr "" " %-3s = Definitionen der Form \"dvar%s`%s%s'\" getrennt durch `%s' " "Zeichen" #: src/help.c:368 #, fuzzy, c-format msgid "" " E.g. %sv a%s1127%sb%s054 Set `a' to Nov 27 and `b' to May 4" msgstr "" " z.B. %sv a%s1127%sb%s054 Setze `a' auf 27 Nov und `b' auf 4 " "Mai" #: src/help.c:380 msgid " Export local date variables from file to file" msgstr " Lokale Datumvariablen von Datei zu Datei exportieren" #: src/help.c:392 #, fuzzy, c-format msgid " Define global text variable(s) \"TVAR->%ca...%cz\"" msgstr " Globale Textvariable(n) \"tvar->%ca...%cz\" definieren" #: src/help.c:397 #, fuzzy, c-format msgid " %-3s = \"TVAR%sTEXT\" definitions separated by `%s' characters" msgstr "" " %-3s = Definitionen der Form \"dvar%s`%s%s'\" getrennt durch `%s' " "Zeichen" #: src/help.c:402 #, fuzzy, c-format msgid "" " E.g. %sr %ca%sfoo%s%cb%sbar Set `%ca' to `foo' and `%cb' to " "`bar'" msgstr "" " z.B. %sr %ca%sfoo%s%cb%sbar Setze `%ca' auf `foo' und `%cb' " "auf `bar'" #: src/help.c:408 #, fuzzy, c-format msgid "" " = \"TVAR[%s|%c%s]COMMAND\" definitions separated by `%s' characters" msgstr " Ausdrücken, die durch `%s' Zeichen getrennt sind" #: src/help.c:413 #, fuzzy, c-format msgid "" " E.g. %sr %ca%sfoo Assign output of command `foo' to `%ca'" msgstr "" " z.B. %sr %ca%sfoo%s%cb%sbar Setze `%ca' auf `foo' und `%cb' " "auf `bar'" #: src/help.c:425 msgid " Export local text variables from file to file" msgstr " Lokale Textvariablen von Datei zu Datei exportieren" #: src/help.c:437 src/help.c:467 #, 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:442 #, 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:447 #, fuzzy msgid " is a LOWER-CASE-LETTER, it means a non-exclusion!" msgstr "" " KLEINBUCHSTABE ist, so bedeutet das einen `nicht'-Ausschluß" #: src/help.c:451 #, c-format msgid " %c = Exclusion of all %s" msgstr " %c = Ausschluß aller %s" #: src/help.c:472 #, 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]]" #: src/help.c:476 #, c-format msgid " expressions separated by `%s' characters" msgstr " Ausdrücken, die durch `%s' Zeichen getrennt sind" #: src/help.c:489 #, c-format msgid " Display only those fixed dates, whose text is matched by %s" msgstr " Nur die Termine ausgeben, in denen %s im Text enthalten ist" #: src/help.c:494 #, c-format msgid " %-3s = Any text respectively \"regular expression\" you like" msgstr " %-3s = Jeder beliebige Text bzw. \"reguläre Ausdruck\"" #: src/help.c:507 #, c-format msgid " Ignore case distinctions if `%s' option is given" msgstr "" #: src/help.c:519 #, fuzzy, c-format msgid " Revert the sense of matching of the `%s' option" msgstr " Antwortdatei für die `%cDATEI' Option erzeugen" #: src/help.c:530 #, fuzzy msgid " Display some debug information" msgstr " Einige Debug-Informationen ausgeben" #: src/help.c:538 #, fuzzy, c-format msgid "" " [%-3s] = internal Information if program internal maximums are reached" msgstr "" " [%-3s] = internal Informationen bei Erreichen programminterner Maxima" #: src/help.c:547 msgid "" " = handled Like `internal' and file names which are handled" msgstr "" " = handled Wie `internal' und zudem gehandhabte Dateinamen" #: src/help.c:555 msgid "" " = unhandled Like `internal' and file names which are unhandled" msgstr "" " = unhandled Wie `internal' und zudem nicht gehandhabte Dateinamen" #: src/help.c:563 msgid " = all Like `handled' and `unhandled' together" msgstr " = all Wie `handled' und `unhandled' zusammen" #: src/help.c:571 msgid "" " = abort Like `all' and abort if file name can't be handled" msgstr "" " = abort Wie `all' und Abbruch bei ungehandhabten Dateinamen" #: src/help.c:581 msgid " Use special format for calendar sheet" msgstr " Spezial-Kalenderformat für Kalenderblatt verwenden" #: src/help.c:584 msgid " [MOD] = - Use standard format for calendar sheet" msgstr " [MOD] = - Standard-Kalenderformat für Kalenderblatt verwenden" #: src/help.c:595 #, fuzzy msgid " Use leap year rule of Eastern Orthodox churches" msgstr " Schaltjahrregel der östlichen orthodoxen Kirchen verwenden" #: src/help.c:605 #, fuzzy msgid " Provide calendar sheet with week numbers" msgstr " Kalenderblatt mit ISO-Wochennummern ausstatten" #: src/help.c:616 #, c-format msgid " Determine type of week numbers (actual: %s)" msgstr "" #: src/help.c:617 msgid "Standard" msgstr "" #: src/help.c:623 #, c-format msgid " %-3s = yes ISO-8601:1988 week numbers" msgstr "" #: src/help.c:630 #, fuzzy msgid " = no Standard week numbers" msgstr " Kalenderblatt mit ISO-Wochennummern ausstatten" #: src/help.c:641 msgid " Suppress output of calendar sheet explicitly" msgstr " Ausgabe des Kalenderblatts explizit unterdrücken" #: src/help.c:654 #, c-format msgid " Direct output through external `%s' pager" msgstr " Ausgabe durch externen `%s' Paginierer lenken" #: src/help.c:660 src/help.c:662 msgid " Direct output through simple internal pager" msgstr " Ausgabe durch einfachen internen Paginierer lenken" #: src/help.c:679 msgid " Disable highlighting of text, holiday resp., actual day" msgstr "" " Text, Feiertag bzw. aktuelles Datum ohne Hervorhebung ausgeben" #: src/help.c:694 msgid " Forces highlighting sequences if output is redirected/piped" msgstr "" " Beläßt Hervorhebungssequenzen in Ausgabe bei Ausgabeumlenkung" #: src/help.c:706 msgid "" " Set highlighting sequence pairs 1 (=actual day) and 2 (=holiday)" msgstr "" " Setze Hervorhebungssequenz-Paare 1 (=aktueller Tag) und 2 " "(=Feiertag)" #: src/help.c:710 #, c-format msgid " %-3s = Highlighting sequence pairs separated by `%s' characters" msgstr " %-3s = Durch `%s' Zeichen getrennte Hervorhebungssequenz-Paare" #: src/help.c:715 #, fuzzy, c-format msgid "" " E.g. %sH \\x2%s\\xAE Use hex values 2 and AE for sequence 1" msgstr "" " z.B. %sH \\x2%s\\xAE Benutze Hex-Wert 2 und AE für Sequenz 1" #: src/help.c:720 #, fuzzy, c-format msgid "" " E.g. %sH %s%s*%s* Use characters `*' and `*' for sequence 2" msgstr "" " z.B. %sH %s%s*%s* Benutze Zeichen `*' und `*' für Sequenz 2" #: src/help.c:731 msgid " Modify format of year calendar" msgstr " Format des Jahreskalenders festlegen" #: src/help.c:735 #, fuzzy, 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" #: src/help.c:747 msgid " Use consecutive day of year in calendar sheet" msgstr " Fortlaufenden Tag des Jahres im Kalenderblatt verwenden" #: src/help.c:751 msgid " [MOD] = b Use both date notations (day of month+year)" msgstr "" " [MOD] = b Beide Datumnotationen (Tag des Monats+Jahres) verwenden" #: src/help.c:763 msgid " Use consecutive day of year in eternal holiday list" msgstr "" " Fortlaufenden Tag des Jahres in ewiger Feiertagsliste verwenden" #: src/help.c:767 src/help.c:783 msgid " [MOD] = b Use both date notations (day of month+year)" msgstr "" " [MOD] = b Beide Datumnotationen (Tag des Monats+Jahres) verwenden" #: src/help.c:779 msgid " Use consecutive day of year in fixed date list" msgstr " Fortlaufenden Tag des Jahres in Terminliste verwenden" #: src/help.c:794 #, fuzzy, c-format msgid " Set starting day of week (actual: %s)" msgstr " Starttag der Woche festlegen" #: src/help.c:827 #, c-format msgid " Send output via `%s' program to user" msgstr " Versenden der Ausgabe via `%s' Programm an Benutzer" #: src/help.c:856 msgid "UNKNOWN" msgstr "" #: src/help.c:859 #, c-format msgid " [%-3s] = Email address, otherwise eMail is send to user `%s'" msgstr "" #: src/help.c:877 #, c-format msgid " Display eternal holiday list (Year in range: %d...%d)" msgstr " Ewige Feiertagsliste ausgeben (Jahr im Bereich: %d...%d)" #: src/help.c:880 msgid " n = Legal days and memorial days" msgstr " n = Gesetzliche Feiertage und Gedenktage" #: src/help.c:882 msgid " N = Legal days only" msgstr " N = Nur gesetzliche Feiertage" #: src/help.c:884 src/help.c:1630 #, c-format msgid " [MOD] = %s Descending sort order" msgstr " [MOD] = %s Absteigend sortiert" #: src/help.c:896 #, fuzzy msgid " Suppress leading blank line of eternal holiday list" msgstr " Ewige Feiertagsliste ohne Überschrift ausgeben" #: src/help.c:906 msgid " Exclude title of eternal holiday list" msgstr " Ewige Feiertagsliste ohne Überschrift ausgeben" #: src/help.c:918 #, fuzzy msgid " Provide eternal holiday list with astronomical data" msgstr " Ewige Feiertagsliste mit christlichen Feiertagen ausstatten" #: src/help.c:930 #, fuzzy msgid " Provide eternal holiday list with Bahá'i calendar holidays" msgstr " Ewige Feiertagsliste ohne Standardfeiertage ausstatten" #: src/help.c:942 #, fuzzy msgid " Provide eternal holiday list with Bahá'i calendar months" msgstr " Ewige Feiertagsliste ohne Standardfeiertage ausstatten" #: src/help.c:954 #, fuzzy msgid " Provide eternal holiday list with Celtic calendar holidays" msgstr " Ewige Feiertagsliste ohne Standardfeiertage ausstatten" #: src/help.c:966 #, fuzzy msgid "" " Provide eternal holiday list with Chinese flexible calendar " "holidays" msgstr " Ewige Feiertagsliste mit christlichen Feiertagen ausstatten" #: src/help.c:978 #, fuzzy msgid "" " Provide eternal holiday list with Chinese flexible calendar months" msgstr " Ewige Feiertagsliste mit christlichen Feiertagen ausstatten" #: src/help.c:990 #, fuzzy msgid " Provide eternal holiday list with Chinese calendar holidays" msgstr " Ewige Feiertagsliste mit christlichen Feiertagen ausstatten" #: src/help.c:1002 #, fuzzy msgid " Provide eternal holiday list with Chinese calendar months" msgstr " Ewige Feiertagsliste mit christlichen Feiertagen ausstatten" #: src/help.c:1014 #, fuzzy msgid "" " Provide eternal holiday list with Christian Western calendar " "holidays" msgstr " Ewige Feiertagsliste mit christlichen Feiertagen ausstatten" #: src/help.c:1026 #, fuzzy msgid " Provide eternal holiday list with Coptic calendar months" msgstr " Ewige Feiertagsliste ohne Standardfeiertage ausstatten" #: src/help.c:1038 #, fuzzy msgid " Provide eternal holiday list with Ethiopic calendar months" msgstr " Ewige Feiertagsliste ohne Standardfeiertage ausstatten" #: src/help.c:1050 #, fuzzy msgid "" " Provide eternal holiday list with French Revolutionary calendar " "months" msgstr " Ewige Feiertagsliste ohne Standardfeiertage ausstatten" #: src/help.c:1062 #, fuzzy msgid " Provide eternal holiday list with Hebrew calendar holidays" msgstr " Ewige Feiertagsliste ohne Standardfeiertage ausstatten" #: src/help.c:1074 #, fuzzy msgid " Provide eternal holiday list with Hebrew calendar months" msgstr " Ewige Feiertagsliste ohne Standardfeiertage ausstatten" #: src/help.c:1086 #, fuzzy msgid "" " Provide eternal holiday list with Indian civil-calendar months" msgstr " Ewige Feiertagsliste mit christlichen Feiertagen ausstatten" #: src/help.c:1098 #, fuzzy msgid "" " Provide eternal holiday list with Islamic civil-calendar holidays" msgstr " Ewige Feiertagsliste ohne Standardfeiertage ausstatten" #: src/help.c:1110 #, fuzzy msgid "" " Provide eternal holiday list with Islamic civil-calendar months" msgstr " Ewige Feiertagsliste ohne Standardfeiertage ausstatten" #: src/help.c:1122 #, fuzzy msgid "" " Provide eternal holiday list with Japanese flexible calendar " "holidays" msgstr " Ewige Feiertagsliste ohne Standardfeiertage ausstatten" #: src/help.c:1134 #, fuzzy msgid "" " Provide eternal holiday list with Japanese flexible calendar months" msgstr " Ewige Feiertagsliste ohne Standardfeiertage ausstatten" #: src/help.c:1146 #, fuzzy msgid " Provide eternal holiday list with Japanese calendar holidays" msgstr " Ewige Feiertagsliste ohne Standardfeiertage ausstatten" #: src/help.c:1158 #, fuzzy msgid " Provide eternal holiday list with Japanese calendar months" msgstr " Ewige Feiertagsliste ohne Standardfeiertage ausstatten" #: src/help.c:1171 #, fuzzy msgid "" " Provide eternal holiday list with multicultural New Year holidays" msgstr " Ewige Feiertagsliste ohne Standardfeiertage ausstatten" #: src/help.c:1183 #, fuzzy msgid " Provide eternal holiday list with Old-Armenic calendar months" msgstr " Ewige Feiertagsliste ohne Standardfeiertage ausstatten" #: src/help.c:1195 #, fuzzy msgid " Provide eternal holiday list with Old-Egyptic calendar months" msgstr " Ewige Feiertagsliste ohne Standardfeiertage ausstatten" #: src/help.c:1207 #, fuzzy msgid "" " Provide eternal holiday list with Orthodox new-calendar holidays" msgstr " Ewige Feiertagsliste ohne Standardfeiertage ausstatten" #: src/help.c:1219 #, fuzzy msgid "" " Provide eternal holiday list with Orthodox old-calendar holidays" msgstr " Ewige Feiertagsliste ohne Standardfeiertage ausstatten" #: src/help.c:1231 #, fuzzy msgid "" " Provide eternal holiday list with Persian Jalaali-calendar holidays" msgstr " Ewige Feiertagsliste ohne Standardfeiertage ausstatten" #: src/help.c:1243 #, fuzzy msgid "" " Provide eternal holiday list with Persian Jalaali-calendar months" msgstr " Ewige Feiertagsliste mit christlichen Feiertagen ausstatten" #: src/help.c:1255 #, fuzzy msgid " Provide eternal holiday list with zodiacal marker data" msgstr " Ewige Feiertagsliste ohne Standardfeiertage ausstatten" #: src/help.c:1267 msgid " Provide eternal holiday list with country specific holidays" msgstr "" " Ewige Feiertagsliste mit landesspezifischen Feiertagen ausstatten" #: src/help.c:1271 #, fuzzy, c-format msgid " %-3s = Single country resp., territory code or a list of these," msgstr " %-3s = Einzelner Landeskode oder Liste von Landeskodes," #: src/help.c:1276 #, fuzzy, c-format msgid "" " which are connected by `%s' characters. Countries/territories," msgstr " die durch `%s' Zeichen verbunden werden" #: src/help.c:1281 msgid " marked by # have an incomplete recording of holidays" msgstr "" #: src/help.c:1285 #, fuzzy, c-format msgid " %-*s = Holidays in %s" msgstr " %s = %s Feiertage" #: src/help.c:1306 msgid "" " Set reference value for rise/set time respectively shadow length" msgstr "" #: src/help.c:1310 #, c-format msgid " %-3s = Angular value respectively factor in range: %+.1f...%+.1f" msgstr "" #: src/help.c:1321 #, fuzzy msgid " Set base data of Earth's atmosphere" msgstr " Starttag der Woche festlegen" #: src/help.c:1325 #, fuzzy, c-format msgid " %-3s = Air pressure and temperature separated by `%s' character" msgstr " %-3s = Durch `%s' Zeichen getrennte Hervorhebungssequenz-Paare" #: src/help.c:1328 #, c-format msgid " Air pressure in Millibar (actual: %.3f)" msgstr "" #: src/help.c:1333 #, c-format msgid " Air temperature in degrees Celsius (actual: %+.3f)" msgstr "" #: src/help.c:1343 #, fuzzy msgid " Limit rise/set times of Sun to the day" msgstr " 1. Darstellung des Textes" #: src/help.c:1355 msgid " Represent astronomical times and data with utmost precision" msgstr "" #: src/help.c:1365 #, fuzzy, c-format msgid " Execute `%c%c[%s]' shell commands" msgstr " # B = `%c%c[%s]' Shell-Kommando nicht ausführen" #: src/help.c:1368 #, c-format msgid " and \"TVAR[%s|%c%s]COMMAND\" assignments" msgstr "" #: src/help.c:1380 msgid " Change base time of astronomical functions" msgstr "" #: src/help.c:1383 msgid " respectively, change cycle-starting time" msgstr "" #: src/help.c:1393 #, 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:1401 #, 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:1417 msgid " Change cycle-ending time" msgstr "" #: src/help.c:1421 #, 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:1435 msgid " Change cycle-timestep" msgstr "" #: src/help.c:1439 #, c-format msgid " %-3s = MMMM|HH%s[MM] Timestep value (actual: %02d%s%02d)" msgstr "" #: src/help.c:1452 #, fuzzy msgid " Change base year of calendar" msgstr " Format des Jahreskalenders festlegen" #: src/help.c:1456 #, c-format msgid " %-3s = [%s|%s]YYYY Year offset value (actual: %d)" msgstr "" #: src/help.c:1468 msgid " Set period of Gregorian Reformation" msgstr " Setze Zeitraum der Gregorianischen Reformation" #: src/help.c:1470 #, c-format msgid " Actual respected period: %02d-%02d %s %0*d" msgstr " Aktuell berücksichtigter Zeitraum: %02d-%02d %s %0*d" #: src/help.c:1476 #, c-format msgid " %-*d%*s = Set period to: %02d-%02d %s %0*d" msgstr " %-*d%*s = Setze Zeitraum auf: %02d-%02d %s %0*d" #: src/help.c:1484 #, 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 Setze Zeitraum explizit" #: src/help.c:1498 #, 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:1501 #, fuzzy, c-format msgid " Actual: (%s) `%s' (%s)" msgstr " Aktuelles Format: (%s) `%s' (%s)" #: src/help.c:1503 msgid "self-defined" msgstr "Selbstdefiniert" #: src/help.c:1508 #, fuzzy, c-format msgid " %-6s = Format is: `%s' (%s)" msgstr " %-6s = Setze Format auf: `%s' (%s)" #: src/help.c:1516 #, fuzzy, c-format msgid " %-3s = Define individual format. Respected format elements are:" msgstr "" " %-3s = Eigenes Format definieren. Berücksichtigte Formatelemente sind:" #: src/help.c:1559 msgid " Define translatable country specific special character pairs" msgstr "" #: src/help.c:1563 #, c-format msgid " %-3s = UPPER-CASE-LETTER\"\"LOWER-CASE-LETTER... definitions" msgstr "" #: src/help.c:1568 #, c-format msgid "" " E.g. a `%s%s%s%s%s%s%s%s' %-3s causes the correct conversion of" msgstr "" #: src/help.c:1573 msgid "" " the preceding special characters in an individual date format," msgstr "" #: src/help.c:1577 msgid "" " which has a STYLE format instruction component, and that, how" msgstr "" #: src/help.c:1581 #, fuzzy msgid " they are used by the character set used in Germany" msgstr " die durch `%s' Zeichen verbunden werden" #: src/help.c:1590 #, c-format msgid "+++ FIXED DATES +++" msgstr "+++ TERMINE +++" #: src/help.c:1611 #, c-format msgid " Use standard resource file `.%s%s' for fixed date list" msgstr " Benutze Standard-Ressourcendatei `.%s%s' für Terminliste" #: src/help.c:1616 #, c-format msgid " Use standard resource file `%s%s' for fixed date list" msgstr " Benutze Standard-Ressourcendatei `%s%s' für Terminliste" #: src/help.c:1620 src/help.c:2160 msgid " Implies period: Today" msgstr " Impliziert Zeitraum: Heute" #: src/help.c:1624 msgid " c = Display only those dates, for which fixed dates exists" msgstr " c = Nur die Daten ausgeben, zu denen Termine vorliegen" #: src/help.c:1628 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:1640 msgid "" " [MOD] = One or more of the following modifiers which are marked by #" msgstr "" " [MOD] = Einer oder mehr der folgenden Modifizierer; hier markiert mit #" #: src/help.c:1653 #, fuzzy, c-format msgid " %-3s = Heading/Title text used for fixed date list" msgstr " # x = Terminliste ohne Überschrift ausgeben" #: src/help.c:1656 #, fuzzy, c-format msgid " Actual: `%s'" msgstr " = %s Rückwärts" #: src/help.c:1669 msgid " # g[MOD] = Group fixed dates by day using text MOD" msgstr "" " # g[MOD] = Benutze Trenntext MOD für tageweise Gruppierung" #: src/help.c:1681 msgid " 1. Representation of text" msgstr " 1. Darstellung des Textes" #: src/help.c:1693 msgid " = Set width of the biorhythm text graphics" msgstr " = Breite der Biorhythmus-Textgrafik festlegen" #: src/help.c:1697 #, c-format msgid " %-3s = %d...%d Length of a single axis" msgstr "" " %-3s = %d...%d Länge einer einzelnen Achse" #: src/help.c:1710 #, fuzzy msgid " = Set height of the Moon phase text graphics" msgstr " = Höhe der Mondphasen-Textgrafik festlegen" #: src/help.c:1714 #, c-format msgid " %-3s = %d...%d Total number of lines" msgstr " %-3s = %d...%d Gesamtanzahl der Zeilen" #: src/help.c:1726 msgid " # a = Display origin of fixed date" msgstr " # a = Herkunft des Termins ausgeben" #: src/help.c:1738 msgid " # A = Display using alternative list format" msgstr " # A = Alternatives Listenformat verwenden" #: src/help.c:1750 msgid " # e = Include legal days and memorial days" msgstr "" " # e = Gesetzliche Feiertage und Gedenktage einfügen" #: src/help.c:1752 msgid " # E = Include legal days only" msgstr " # E = Nur gesetzliche Feiertage einfügen" #: src/help.c:1762 #, fuzzy msgid " # k = Display week number" msgstr " # k = ISO-Wochennummer ausgeben" #: src/help.c:1774 msgid " # o = Omit repeating date part of fixed dates" msgstr " # o = Datumfeld nur einmal ausgeben" #: src/help.c:1786 #, fuzzy msgid "" " # Q = Suppress leading blank line of fixed dates list" msgstr " # U = Datumfeld nicht ausgeben" #: src/help.c:1798 msgid " # U = Suppress date part of fixed dates" msgstr " # U = Datumfeld nicht ausgeben" #: src/help.c:1810 #, fuzzy msgid " # J = Suppress text part of fixed dates" msgstr " # U = Datumfeld nicht ausgeben" #: src/help.c:1822 msgid " # x = Exclude title of fixed date list" msgstr " # x = Terminliste ohne Überschrift ausgeben" #: src/help.c:1834 msgid " # z = Display consecutive number of fixed date" msgstr " # z = Fortlaufende Postennummer ausgeben" #: src/help.c:1846 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:1854 msgid " 2. Respected period" msgstr " 2. Berücksichtigter Zeitraum" #: src/help.c:1866 msgid " = Manage `29-FEBRUARY' in non-leap years" msgstr "" " = Den `29-FEBRUAR' in Nicht-Schaltjahren handhaben" #: src/help.c:1874 #, c-format msgid " %-3s = february Respect at `28-FEBRUARY'" msgstr "" " %-3s = february Am `28-FEBRUAR' berücksichtigen" #: src/help.c:1883 #, c-format msgid " %-3s = march Respect at `01-MARCH'" msgstr "" " %-3s = march Am `01-MÄRZ' berücksichtigen" #: src/help.c:1896 msgid "" " # d = Include actual date if list of periods is " "generated" msgstr "" " # d = Aktuelles Datum einschliessen bei Datumliste" #: src/help.c:1908 msgid "" " # l = Generate list of periods instead of a single " "period" msgstr " # l = Datumliste anstelle Einzeldatum" #: src/help.c:1924 msgid " # Nd = Single absolute day N" msgstr " # Nd = Einzelner absoluter Tag N" #: src/help.c:1926 #, c-format msgid " # %cdN = Single absolute day N" msgstr " # %cdN = Einzelner absoluter Tag N" #: src/help.c:1931 msgid " # NMOD = Single day N relative to today" msgstr " # NMOD = Einzelner Tag N relativ zu heute" #: src/help.c:1933 #, c-format msgid " MOD = %s Forwards" msgstr " MOD = %s Vorwärts" #: src/help.c:1935 #, c-format msgid " = %s Backwards" msgstr " = %s Rückwärts" #: src/help.c:1938 msgid " # Nw = Complete week N" msgstr " # Nw = Gesamte Woche N" #: src/help.c:1942 msgid "" " N = 0 1st week / last week of previous year" msgstr "" " N = 0 1'te Woche / letzte Woche im Vorjahr" #: src/help.c:1946 msgid " N = 1...52 1st...52nd week (always)" msgstr " N = 1...52 1'te...52'te Woche (stets)" #: src/help.c:1950 msgid " N = 53 53rd week (sometimes)" msgstr " N = 53 53'te Woche (manchmal)" #: src/help.c:1952 msgid " N = 99 Last week" msgstr " N = 99 Letzte Woche" #: src/help.c:1955 #, fuzzy, c-format msgid " # %s%s = Single day %s of month %s" msgstr " # `%s%s' = Einzelner Tag `%s' im Monat `%s'" #: src/help.c:1961 #, fuzzy, c-format msgid " # %s%sN = Single N'th weekday %s of month %s" msgstr " # `%s%s'N = Einzelner N'ter Wochentag `%s' im Monat `%s'" #: src/help.c:1966 #, fuzzy, c-format msgid " N = 1...4 1st...4th weekday %s (always)" msgstr "" " N = 1...4 1'ter...4'ter Wochentag `%s' (stets)" #: src/help.c:1971 #, fuzzy, c-format msgid " N = 5 5th weekday %s (sometimes)" msgstr " N = 5 5'ter Wochentag `%s' (manchmal)" #: src/help.c:1975 #, fuzzy, c-format msgid " N = 9 Last weekday %s" msgstr " N = 9 Letzter Wochentag `%s'" #: src/help.c:1979 #, fuzzy, c-format msgid " # %cdN%s = Single N'th weekday %s" msgstr " # %cdN`%s' = Einzelner N'ter Wochentag `%s'" #: src/help.c:1984 #, fuzzy, c-format msgid " N = 1...51 1st...51st weekday %s (always)" msgstr "" " N = 1...51 1'ter...51'ter Wochentag `%s' (stets)" #: src/help.c:1989 #, fuzzy, c-format msgid " N = 52|53 52|53rd weekday %s (sometimes)" msgstr "" " N = 52|53 52|53'ter Wochentag `%s' (manchmal)" #: src/help.c:1993 #, fuzzy, c-format msgid " N = 99 Last weekday %s" msgstr " N = 99 Letzter Wochentag `%s'" #: src/help.c:1998 #, fuzzy, 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:2003 #, fuzzy, c-format msgid "" " N = 0 %s which isn't located in 1st week" msgstr "" " N = 0 `%s' der nicht in der 1'ten Woche ist" #: src/help.c:2008 #, fuzzy, c-format msgid " N = 1...51 %s of 1st...51st week (always)" msgstr "" " N = 1...51 `%s' der 1'ten...51'ten Woche (stets)" #: src/help.c:2013 #, fuzzy, c-format msgid " N = 52|53 %s of 52|53rd week (sometimes)" msgstr "" " N = 52|53 `%s' der 52|53'ten Woche (manchmal)" #: src/help.c:2017 #, fuzzy, c-format msgid " N = 99 %s of last week" msgstr " N = 99 `%s' der letzten Woche" #: src/help.c:2023 #, 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:2029 #, 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'= Einzelner N'ter Wochentag relativ zu " "Ostersonntag" #: src/help.c:2035 #, 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:2041 #, 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'= Einzelner N'ter Wochentag relativ zu heute" #: src/help.c:2047 #, 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:2053 #, fuzzy, 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:2061 msgid " # t|T = List tomorrow" msgstr " # t|T = Datumliste von morgen" #: src/help.c:2078 msgid " # w|W[MOD] = List complete week" msgstr " # w|W[MOD] = Datumliste der gesamten Woche" #: src/help.c:2082 #, 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:2087 #, c-format msgid "" " = %s List yesterday until starting day of week" msgstr "" " = %s Liste von gestern bis Anfang der Woche" #: src/help.c:2107 msgid " # m|M[MOD] = List complete month" msgstr " # m|M[MOD] = Datumliste des gesamten Monats" #: src/help.c:2111 #, 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:2116 #, c-format msgid "" " = %s List yesterday until starting day of month" msgstr "" " = %s Liste von gestern bis Anfang des Monats" #: src/help.c:2136 msgid " # y|Y[MOD] = List complete year" msgstr " # y|Y[MOD] = Datumliste des gesamten Jahres" #: src/help.c:2140 #, 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:2145 #, c-format msgid "" " = %s List yesterday until starting day of year" msgstr "" " = %s Liste von gestern bis Anfang des Jahres" #: src/help.c:2158 msgid " Use alternative file(s) instead of standard resource file" msgstr "" " Benutze alternative Datei(en) anstelle Standard-Ressourcendatei" #: src/help.c:2164 msgid " f = Display only those dates, for which fixed dates exists" msgstr " f = Nur die Daten ausgeben, zu denen Termine vorliegen" #: src/help.c:2168 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:2172 #, 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:2183 msgid " Define additional resource file line" msgstr " Zusätzliche Ressourcendateizeile definieren" #: src/help.c:2185 #, c-format msgid " %-3s = Any possible resource file line" msgstr " %-3s = Jede mögliche Zeile einer Ressourcendatei" #: src/help.c:2195 #, c-format msgid "%cDATE" msgstr "%cDATUM" #: src/help.c:2197 msgid "Use given `DATE' instead of today's date" msgstr "Vorgegebenes `DATUM' anstelle heutiges Datum verwenden" #: src/help.c:2201 #, fuzzy, 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:2208 #, 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:2217 #, c-format msgid "%cFILE" msgstr "%cDATEI" #: src/help.c:2219 msgid "Preload options and commands from `FILE'" msgstr "Lädt Optionen und Kommandos aus `DATEI' vor" #: src/help.c:2223 msgid "COMMAND" msgstr "KOMMANDO" #: src/help.c:2225 #, c-format msgid "%s = Month in range: %d...%d" msgstr "%s = Monat im Bereich: %d...%d" #: src/help.c:2230 #, 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:2235 #, 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:2241 #, 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:2247 #, c-format msgid "%s%*s = Year in range: %d...%d" msgstr "%s%*s = Jahr im Bereich: %d...%d" #: src/help.c:2251 #, 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:2256 #, fuzzy, 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 %s%s%s" #: src/help.c:2282 #, fuzzy, c-format msgid " %sh, %s Display this help text and quit program" msgstr " Hilfetext ausgeben und Programm beenden" #: src/help.c:2285 #, fuzzy, c-format msgid " %shh, %s Display extended help text and quit program" msgstr " Erweiterten Hilfetext ausgeben und Programm beenden" #: src/help.c:2289 #, fuzzy, c-format msgid " %sL, %s Display software license and quit program" msgstr " Softwarelizenz ausgeben und Programm beenden" #: src/help.c:2293 #, fuzzy, c-format msgid " %sV, %s Display version information and quit program" msgstr " Versionsnummer ausgeben und Programm beenden" #: src/help.c:2301 #, fuzzy, c-format msgid " %sp, %s Direct output through external `%s' pager" msgstr " Ausgabe durch externen `%s' Paginierer lenken" #: src/help.c:2308 src/help.c:2313 #, fuzzy, c-format msgid " %sp, %s Direct output through simple internal pager" msgstr " Ausgabe durch einfachen internen Paginierer lenken" #: src/help.c:2338 msgid "This software doesn't claim completeness, correctness or usability." msgstr "Diese Software erhebt keinen Anspruch auf Vollständigkeit," #: src/help.c:2342 msgid "On principle I will not be liable for ANY damages or losses (implicit" msgstr "Verwendungsfähigkeit oder Korrektheit. Für JEDWEDE Schäden oder" #: src/help.c:2346 msgid "or explicit), which result from using or handling my software." msgstr "Verluste (implizit oder explizit), die aus Nutzung oder Handhabung" #: src/help.c:2350 msgid "If you use this software, you agree without any exception to this" msgstr "meiner Software hervorgehen, wird grundsätzlich keine Haftung" #: src/help.c:2352 msgid "agreement, which binds you LEGALLY !!" msgstr "" "übernommen. Bei Verwendung dieser Software erklärt sich der Benutzer\n" "mit dieser Vereinbarung in vollem Umfang einverstanden." #: src/help.c:2357 msgid "This program is free software; you can redistribute it and/or modify" msgstr "Dieses Programm ist freie Software; Sie können es weitervertreiben" #: src/help.c:2361 msgid "it under the terms of the `GNU General Public License' as published by" msgstr "und/oder verändern innerhalb der Bestimmungen der `GNU General Public" #: src/help.c:2365 #, fuzzy msgid "the `Free Software Foundation'; either version 3, or (at your option)" msgstr "License'; herausgegeben von der `Free Software Foundation';" #: src/help.c:2367 msgid "any later version." msgstr "in der Version 2 oder jeder späteren Version." #: src/help.c:2372 msgid "You should have received a copy of the `GNU General Public License'" msgstr "Sie sollten eine Kopie der `GNU General Public License' zusammen mit" #: src/help.c:2374 msgid "along with this program; if not, write to the:" msgstr "diesem Programm erhalten haben; falls nicht, schreiben Sie an die:" #: src/help.c:2423 #, 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:2451 #, fuzzy, c-format msgid "Use `%s %s|[%s?]" msgstr "Benutze `%s %s' oder " #: src/help.c:2460 #, fuzzy msgid "for more information." msgstr "`%s %s|[%s?]' für mehr Information." #: src/help.c:2564 src/tcal.c:197 src/txt2gcal.c:136 src/gcal2txt.c:136 #, fuzzy, c-format msgid "Email bug reports to <%s>" msgstr "Fehlerberichte via eMail an " #: src/help.c:2566 #, c-format msgid "GNU gcal home page: <%s>" msgstr "" #: src/help.c:2568 #, c-format msgid "General help using GNU software: <%s>" msgstr "" #: src/help.c:2594 src/tcal.c:219 src/txt2gcal.c:158 src/gcal2txt.c:158 #, 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:2598 src/tcal.c:222 src/txt2gcal.c:161 src/gcal2txt.c:161 #, 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:2600 src/tcal.c:224 src/txt2gcal.c:163 src/gcal2txt.c:163 #, c-format msgid "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." msgstr "die TAUGLICHKEIT oder die VERWENDBARKEIT ZU EINEM ANGEGEBENEN ZWECK." #: src/help.c:2616 #, fuzzy, c-format msgid "%s: The Gregorian calendar program (GNU cal) %s" msgstr ":%*s Das GNU Kalenderprogramm (" #: src/help.c:2624 #, c-format msgid "Usage: %s [[OPTION...] [%cDATE] [%cFILE...]] [COMMAND]" msgstr "Aufruf: %s [[OPTION...] [%cDATUM] [%cDATEI...]] [KOMMANDO]" #: src/help.c:2627 #, c-format msgid "Usage: %s [[OPTION...] [%cFILE...]] [COMMAND]" msgstr "Aufruf: %s [[OPTION...] [%cDATEI...]] [KOMMANDO]" #: src/help.c:2703 src/help.c:2849 msgid " 4.0 or 4.02" msgstr " 4.0 oder 4.02" #: src/help.c:2711 src/help.c:2857 msgid " later than 5.0" msgstr " neuer als 5.0" #: src/help.c:2722 src/help.c:2864 msgid "++ 3.0 or later" msgstr "++ 3.0 oder neuer" #: src/help.c:2749 src/help.c:2970 msgid "5.1 or earlier" msgstr "5.1 oder älter" #: src/help.c:2752 src/help.c:2973 src/help.c:3128 src/help.c:3198 msgid "unknown compiler" msgstr "unbekannter Kompilierer" #: src/help.c:2787 src/help.c:2876 src/help.c:3010 src/help.c:3032 #: src/help.c:3101 src/help.c:3138 src/help.c:3156 src/help.c:3213 #: src/help.c:3428 msgid " on " msgstr " am " #: src/help.c:2826 msgid "(bad version)" msgstr "(fehlerhafte Version)" #: src/help.c:2873 msgid "unknown compiler (SDK?)" msgstr "unbekannter Kompilierer (SDK?)" #: src/help.c:2941 msgid " later than 4.5" msgstr " neuer als 4.5" #: src/help.c:2951 msgid "++ 1.0 or later" msgstr "++ 1.0 oder neuer" #: src/help.c:2959 msgid " 1.0 or 1.5?" msgstr " 1.0 oder 1.5?" #: src/help.c:3074 msgid "unknown " msgstr "unbekannt " #: src/help.c:3086 #, c-format msgid "version %d.%d" msgstr "Version %d.%d" #: src/help.c:3089 src/help.c:3122 src/help.c:3248 #, c-format msgid "version %d" msgstr "Version %d" #: src/help.c:3091 #, c-format msgid "unknown version" msgstr "unbekannte Version" #: src/help.c:3205 #, c-format msgid " (%.4s for Alpha)" msgstr " (%.4s für Alpha)" #: src/help.c:3208 #, c-format msgid " (%.4s for VAX)" msgstr " (%.4s für VAX)" #: src/help.c:3359 msgid " (NetBSD before 0.9)" msgstr " (NetBSD vor 0.9)" #: src/help.c:3359 msgid " (NetBSD 1.2 or later)" msgstr " (NetBSD 1.2 oder neuer)" #: src/help.c:3366 msgid " (FreeBSD 2.0 or later)" msgstr " (FreeBSD 2.0 oder neuer)" #: src/help.c:3369 msgid " (BSD/386 1.1 or later)" msgstr " (BSD/386 1.1 oder neuer)" #: src/print.c:544 src/print.c:978 src/print.c:1033 msgid "CW" msgstr "KW" #: src/print.c:565 msgid "Week" msgstr "Woche" #: src/rc-insert.c:1706 src/rc-insert.c:2824 msgid "pm" msgstr "pm" #: src/rc-insert.c:1715 src/rc-insert.c:2833 msgid "am" msgstr "am" #: src/rc-insert.c:2018 src/rc-insert.c:2028 msgid "d'\"" msgstr "" #: src/rc-insert.c:2038 msgid "h'\"" msgstr "" #: src/rc-insert.c:3728 src/rc-utils.c:2585 #, c-format msgid "" "Cannot execute command in file `%s'\n" "Line: %ld %s" msgstr "" "Kommando kann nicht ausgeführt werden in Datei `%s'\n" "Zeile %ld: %s" #: src/rc-insert.c:3750 src/rc-utils.c:2609 #, c-format msgid "" "Command executed (exit code=%d) in file `%s'\n" "Line %ld: %s" msgstr "" "Kommando ausgeführt (Status=%d) in Datei `%s'\n" "Zeile %ld: %s" #: src/rc-use.c:513 msgid "Emo" msgstr "Emo" #: src/rc-use.c:518 msgid "Int" msgstr "Gei" #: src/rc-use.c:523 msgid "Phy" msgstr "Phy" #: src/rc-use.c:1086 src/rc-use.c:1177 msgid "`Eternal holiday list'" msgstr "`Ewige Feiertagsliste'" #: src/rc-use.c:1877 src/rc-use.c:1926 src/rc-use.c:2015 src/rc-use.c:2107 msgid "`Internal'" msgstr "`Intern'" #: src/rc-use.c:2339 #, c-format msgid " ; Week %s" msgstr " ; Woche %s" #: src/rc-use.c:2348 #, c-format msgid "Week %s" msgstr "Woche %s" #: src/rc-utils.c:397 src/rc-utils.c:414 #, fuzzy, c-format msgid "" "%s: invalid date given -- %s\n" "%s\n" "%s\n" msgstr "" "%s: ungültiges Datum angegeben -- %c%s\n" "%s\n" #: src/rc-utils.c:3269 #, 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:3272 src/rc-utils.c:3686 #, c-format msgid "Line %ld: %s" msgstr "Zeile %ld: %s" #: src/rc-utils.c:3633 src/utils.c:274 #, fuzzy, c-format msgid "%s: abort, " msgstr "" "\n" "%s: Abbruch, " #: src/rc-utils.c:3641 #, fuzzy, c-format msgid "illegal variable definition in file `%s'" msgstr "" "illegale Textvariablen-Definition in Datei `%s'\n" "Zeile %ld: %s" #: src/rc-utils.c:3643 #, c-format msgid "illegal definition of variable `%c'" msgstr "" #: src/rc-utils.c:3650 #, fuzzy, c-format msgid "illegal variable operation in file `%s'" msgstr "" "illegale Datumvariablen-Operation in Datei `%s'\n" "Zeile %ld: %s" #: src/rc-utils.c:3652 #, c-format msgid "illegal operation on variable `%c'" msgstr "" #: src/rc-utils.c:3658 #, fuzzy, c-format msgid "variable `%c' undefined in file `%s'" msgstr "Datumvariable `%c' undefiniert in Datei `%s'." #: src/rc-utils.c:3662 #, fuzzy, c-format msgid "invalid value assigned to variable `%c' in file `%s'" msgstr "Datumwert ungültig (Variable `%c') in Datei `%s'." #: src/rc-utils.c:3683 #, fuzzy, c-format msgid "Invalid argument in command line given -- %s" msgstr " %-3s = Schreibe Argumente der Kommandozeile in Datei %s" #: src/rc-utils.c:3695 #, fuzzy, c-format msgid "Argument `%s' of command line ignored." msgstr "Argument `%s' in Kommandozeile ignoriert" #: src/rc-utils.c:3698 #, c-format msgid "Line %ld ignored: %s" msgstr "Zeile %ld ignoriert: %s" #: src/tty.c:424 #, fuzzy, c-format msgid "%s: for more, <%s> to quit..." msgstr "Weiter mit , <%s> zum Beenden..." #: src/tty.c:1019 #, fuzzy, c-format msgid "environment variable `%s' not found" msgstr "" "\n" "Umgebungsvariable `%s' nicht vorhanden" #: src/tty.c:1026 #, fuzzy, c-format msgid "environment variable `%s' not set" msgstr "" "\n" "Umgebungsvariable `%s' nicht gesetzt" #: src/tty.c:1066 #, fuzzy msgid "`termcap' file not found" msgstr "" "\n" "`termcap' Datei wurde nicht vorgefunden" #: src/tty.c:1071 #, fuzzy, c-format msgid "unknown terminal type defined in `%s'" msgstr "" "\n" "Unbekannter Terminaltyp in `%s' eingetragen" #: src/tty.c:1080 #, c-format msgid "" "\n" "%s: warning, %s.\n" "\n" msgstr "" #: src/utils.c:280 #, c-format msgid "" "invalid year for computing Easter Sundays date\n" "Year must be in range (%d...%d)" msgstr "" "unzulässiges Jahr für Ostertagsberechnung\n" "Jahr muß im Bereich (%d...%d) sein" #: src/utils.c:284 src/tcal.c:324 src/txt2gcal.c:263 src/gcal2txt.c:263 #, c-format msgid "`%s' line %ld: virtual memory exhausted (%s=%d)" msgstr "`%s' Zeile %ld: virtueller Speicher erschöpft (%s=%d)" #: src/utils.c:289 #, c-format msgid "" "invalid date part in file `%s'\n" "Line %ld: %s" msgstr "" "unzulässiger Datumeintrag in Datei `%s'\n" "Zeile %ld: %s" #: src/utils.c:294 #, 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:299 #, 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:303 #, c-format msgid "" "malformed %s in file `%s'\n" "Line %ld: %s" msgstr "" "mißgebildetes %s in Datei `%s'\n" "Zeile %ld: %s" #: src/utils.c:308 #, c-format msgid "" "invalid recursive/cyclic %s in file `%s'\n" "Line %ld: %s" msgstr "" "rekursives/zyklisches %s unzulässig in Datei `%s'\n" "Zeile %ld: %s" #: src/utils.c:312 #, c-format msgid "file `%s' not found" msgstr "Datei `%s' nicht gefunden" #: src/utils.c:316 #, 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:322 #, c-format msgid "" "missing `whitespace' character after date part in file `%s'\n" "Line %ld: %s" msgstr "" "fehlendes `whitespace' Trennzeichen nach Datumteil in Datei `%s'\n" "Zeile %ld: %s" #: src/utils.c:327 #, c-format msgid "" "file `%s' can't be written\n" "Storage media full!" msgstr "" "kann Datei `%s' nicht schreiben\n" "Speichermedium ist voll!" #: src/utils.c:332 #, fuzzy, c-format msgid "sending eMail to <%s> failed" msgstr "versenden der eMail an `%s' hat versagt" #: src/utils.c:334 src/utils.c:352 #, c-format msgid "" "\n" "`%s' line %ld: " msgstr "" "\n" "`%s' Zeile %ld: " #: src/utils.c:341 #, fuzzy, c-format msgid "`%s' line %ld: (`%s') `%s%d' failed" msgstr "`%s' Zeile %ld: (`%s') `%s%d' hat versagt" #: src/utils.c:350 #, c-format msgid "read error in file `%s'" msgstr "Lesefehler in Datei `%s'" #: src/utils.c:358 #, c-format msgid "" "illegal character in response file `%s'\n" "Line %ld: %s" msgstr "" "illegales Zeichen in Antwortdatei `%s'\n" "Zeile %ld: %s" #: src/utils.c:364 src/tcal.c:330 src/txt2gcal.c:269 src/gcal2txt.c:269 #, 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:369 #, c-format msgid "(`%s') date format `%s' is invalid" msgstr "(`%s') Datumformat `%s' ist ungültig" #: src/utils.c:375 #, c-format msgid "%s in search pattern `%s'" msgstr "%s im Suchmuster `%s'" #: src/utils.c:378 #, c-format msgid "invalid search pattern `%s' specified" msgstr "ungültiges Suchmuster `%s' angegeben" #: src/utils.c:383 src/tcal.c:338 src/txt2gcal.c:274 src/gcal2txt.c:274 #, c-format msgid "`%s' line %ld: (`%s') unmanaged error (%d)" msgstr "`%s' Zeile %ld: (`%s') unbehandelter Fehler (%d)" #: src/utils.c:403 src/tcal.c:358 src/txt2gcal.c:294 src/gcal2txt.c:294 #, c-format msgid "" "\n" "%s: program aborted by signal %d\n" msgstr "" "\n" "%s: Programmabbruch durch Signal %d\n" #: src/utils.c:1080 msgid "th" msgstr "'ter" #: src/utils.c:1084 msgid "st" msgstr "'ter" #: src/utils.c:1088 msgid "nd" msgstr "'ter" #: src/utils.c:1092 msgid "rd" msgstr "'ter" #: src/utils.c:1123 src/utils.c:1174 src/utils.c:1225 msgid "invalid day" msgstr "ungültiger Tag" #: src/utils.c:1128 msgid "Mon" msgstr "Mon" #: src/utils.c:1133 msgid "Tue" msgstr "Die" #: src/utils.c:1138 msgid "Wed" msgstr "Mit" #: src/utils.c:1143 msgid "Thu" msgstr "Don" #: src/utils.c:1148 msgid "Fri" msgstr "Fre" #: src/utils.c:1153 msgid "Sat" msgstr "Sam" #: src/utils.c:1158 msgid "Sun" msgstr "Son" #: src/utils.c:1179 msgid "Mo" msgstr "Mo" #: src/utils.c:1184 msgid "Tu" msgstr "Di" #: src/utils.c:1189 msgid "We" msgstr "Mi" #: src/utils.c:1194 msgid "Th" msgstr "Do" #: src/utils.c:1199 msgid "Fr" msgstr "Fr" #: src/utils.c:1204 msgid "Sa" msgstr "Sa" #: src/utils.c:1209 msgid "Su" msgstr "So" #: src/utils.c:1226 msgid "Monday" msgstr "Montag" #: src/utils.c:1226 msgid "Tuesday" msgstr "Dienstag" #: src/utils.c:1226 msgid "Wednesday" msgstr "Mittwoch" #: src/utils.c:1226 msgid "Thursday" msgstr "Donnerstag" #: src/utils.c:1227 msgid "Friday" msgstr "Freitag" #: src/utils.c:1227 msgid "Saturday" msgstr "Samstag" #: src/utils.c:1227 msgid "Sunday" msgstr "Sonntag" #: src/utils.c:1243 src/utils.c:1320 msgid "invalid month" msgstr "ungültiger Monat" #: src/utils.c:1248 msgid "Jan" msgstr "Jan" #: src/utils.c:1253 msgid "Feb" msgstr "Feb" #: src/utils.c:1258 msgid "Mar" msgstr "Mär" #: src/utils.c:1263 msgid "Apr" msgstr "Apr" #: src/utils.c:1268 msgid "May" msgstr "Mai" #: src/utils.c:1273 msgid "Jun" msgstr "Jun" #: src/utils.c:1278 msgid "Jul" msgstr "Jul" #: src/utils.c:1283 msgid "Aug" msgstr "Aug" #: src/utils.c:1288 msgid "Sep" msgstr "Sep" #: src/utils.c:1293 msgid "Oct" msgstr "Okt" #: src/utils.c:1298 msgid "Nov" msgstr "Nov" #: src/utils.c:1303 msgid "Dec" msgstr "Dez" #: src/utils.c:1321 msgid "January" msgstr "Januar" #: src/utils.c:1321 msgid "February" msgstr "Februar" #: src/utils.c:1322 msgid "March" msgstr "März" #: src/utils.c:1322 msgid "April" msgstr "April" #: src/utils.c:1332 #, fuzzy msgid "May " msgstr "Maifeiertag" #: src/utils.c:1333 msgid "June" msgstr "Juni" #: src/utils.c:1333 msgid "July" msgstr "Juli" #: src/utils.c:1334 msgid "August" msgstr "August" #: src/utils.c:1334 msgid "September" msgstr "September" #: src/utils.c:1335 msgid "October" msgstr "Oktober" #: src/utils.c:1335 msgid "November" msgstr "November" #: src/utils.c:1335 msgid "December" msgstr "Dezember" #: src/tcal.c:191 #, fuzzy, c-format msgid "Usage: %s [--%s | --%s] | [--%s=[+|-]NUMBER] [ARGUMENT...]\n" msgstr "" "Aufruf: %s [--help | --version] | [--shift=[+|-]ZAHL] [ARGUMENT...]\n" #: src/tcal.c:320 src/txt2gcal.c:259 src/gcal2txt.c:259 #, c-format msgid "" "\n" "%s: abort, " msgstr "" "\n" "%s: Abbruch, " #: src/tcal.c:335 #, c-format msgid "shift value `%s' is invalid" msgstr "Versatzwert `%s' ist ungültig" #: src/tcal.c:907 #, fuzzy, c-format msgid "%s: option `--%s' requires an argument" msgstr "%s: Option `%s' benötigt ein Argument" #: src/tcal.c:1071 #, c-format msgid "%s: error during program execution of `%s'\n" msgstr "%s: Fehler bei Programmausführung von `%s'\n" #: src/txt2gcal.c:131 #, fuzzy, c-format msgid "Usage: %s [--%s | --%s] | [TEXT-FILE | -] [DATE-PART]\n" msgstr "Aufruf: %s [--help | --version] | [TEXTDATEI | -] [DATUMTEIL]\n" #: src/txt2gcal.c:755 src/gcal2txt.c:754 #, c-format msgid "%s: no regular file\n" msgstr "%s: keine reguläre Datei\n" #: src/txt2gcal.c:760 src/gcal2txt.c:759 #, c-format msgid "%s: file not found\n" msgstr "%s: Datei nicht gefunden\n" #: src/gcal2txt.c:131 #, fuzzy, c-format msgid "Usage: %s [--%s | --%s] | [RESOURCE-FILE | -]\n" msgstr "Aufruf: %s [--help | --version] | [RESSOURCENDATEI | -]\n" #~ msgid "Day number with leading spaces" #~ msgstr "Tageszahl mit führenden Leerzeichen" #~ msgid "Day number with leading zeroes and trailing suffix" #~ msgstr "Tageszahl mit führenden Nullen und nachfolgendem Anhang" #~ msgid "Day number with leading spaces and trailing suffix" #~ msgstr "Tageszahl mit führenden Leerzeichen und nachfolgendem Anhang" #~ msgid "Abbreviated month name (3 letters)" #~ msgstr "Abgekürzter Monatsname (3 Buchstaben)" #~ msgid "Month number with leading zero" #~ msgstr "Monatszahl mit führender Null" #~ msgid "Month number with leading space" #~ msgstr "Monatszahl mit führendem Leerzeichen" #~ msgid "Complete year number with leading zeroes" #~ msgstr "Vollständige Jahreszahl mit führenden Nullen" #~ msgid "Complete year number with leading spaces" #~ msgstr "Vollständige Jahreszahl mit führenden Leerzeichen" #~ msgid "Last two digits of year number with leading zero" #~ msgstr "Letzten zwei Ziffern der Jahreszahl mit führender Null" #~ msgid "Last two digits of year number with leading space" #~ msgstr "Letzten zwei Ziffern der Jahreszahl mit führendem Leerzeichen" #~ msgid "Complete weekday name" #~ msgstr "Vollständiger Wochentagsname" #~ msgid "Abbreviated weekday name (3 letters)" #~ msgstr "Abgekürzter Wochentagsname (3 Buchstaben)" #~ msgid "Abbreviated weekday name (2 letters)" #~ msgstr "Abgekürzter Wochentagsname (2 Buchstaben)" #~ msgid "y" #~ msgstr "j" #~ msgid "m" #~ msgstr "m" #~ msgid "w" #~ msgstr "w" #~ msgid "d" #~ msgstr "t" #~ msgid "Swiss" #~ msgstr "Schweizerische" #~ msgid "Czech" #~ msgstr "Tschechische" #~ msgid "German" #~ msgstr "Deutsche" #~ msgid "Danish" #~ msgstr "Dänische" #~ msgid "Spanish" #~ msgstr "Spanische" #~ msgid "Finnish" #~ msgstr "Finnische" #~ msgid "Dutch" #~ msgstr "Niederländische" #~ msgid "Polish" #~ msgstr "Polnische" #~ msgid "Thai" #~ msgstr "Thailändische" #~ msgid "U.S. American" #~ msgstr "US amerikanische" #~ msgid "Std" #~ msgstr "Std" #~ msgid "Trinity Sunday" #~ msgstr "Dreifaltigkeitsfest" #~ msgid "Slav Missionaries Method's Day" #~ msgstr "Tag der Slavischen Missionierung" #~ msgid "Ferragosto" #~ msgstr "Ferragosto" #~ msgid "Puebla's Battle" #~ msgstr "Schlacht von Puebla" #~ msgid "Breed fusion Day" #~ msgstr "Tag der Rassenverschmelzung" #~ msgid "Olsok Eve" #~ msgstr "Olsok Vorabend" #~ msgid "Midsummer's Day" #~ msgstr "Johannistag" #~ msgid "Sylvester" #~ msgstr "Silvester" #~ msgid "Walpurgis Night" #~ msgstr "Walpurgisnacht" #~ msgid "" #~ " %-3s = Definition of \"tvar%s`text'\" separated by `%s' characters" #~ msgstr "" #~ " %-3s = Definitionen der Form \"tvar%s`text'\" getrennt durch `%s' " #~ "Zeichen" #~ msgid " %-3s = Any text you like, metacharacters are not respected" #~ msgstr "" #~ " %-3s = Jeder beliebige Text, Metazeichen werden nicht berücksichtigt" #~ msgid " %-3s = Email address" #~ msgstr " %-3s = eMail Adresse" #~ msgid " Range: [%s%s]%s%s[%s%s]%s" #~ msgstr " Bereich: [%s%s]%s%s[%s%s]%s" #~ msgid "" #~ "%sh|hh = Help screen; %sL = License; %sV = Version; %su = Suppress " #~ "calendar sheet" #~ msgstr "" #~ "%sh|hh = Hilfetext; %sL = Lizenz; %sV = Version; %su = Kalender " #~ "unterdrücken" #~ msgid "%si[-] = Special calendar format; " #~ msgstr "%si[-] = Spezial-Kalenderformat; " #~ msgid "%sp = Simple pager; " #~ msgstr "%sp = Paginierer; " #~ msgid "%sH yes = Use highlighting" #~ msgstr "%sH yes = Mit Hervorhebungen" #~ msgid "" #~ "%sb %-3s = Year calendar with 1|2|3|4|6|12 blocks; %sH no = Disable " #~ "highlighting" #~ msgstr "" #~ "%sb %-3s = Jahreskalender in 1|2|3|4|6|12 Blöcken; %sH no = Ohne " #~ "Hervorhebungen" #~ msgid "%sj[] = Output of consecutive day of year (Modifiers: [b n nb" #~ msgstr "" #~ "%sj[] = Fortlaufenden Tag des Jahres ausgeben (Modifizierer: [b n nb" #~ msgid "" #~ "%ss %-3s = Starting day of week (%s = 0|today | %d|%s | %d|%s | ... | %d|" #~ "%s)" #~ msgstr "" #~ "%ss %-3s = Starttag der Woche (%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] = Ewige Feiertagsliste ausgeben (Jahr im Bereich: %d...%d)" #~ msgid "" #~ "%sc|C[] = Fixed date list of file `.%s%s'; %sf|F %s[%s%s%s...]=Use file " #~ "%s" #~ msgstr "" #~ "%sc|C[] = Terminliste aus Datei `.%s%s'; %sf|F %s[%s%s%s...]=Benutze " #~ "Datei %s" #~ msgid "" #~ "%sc|C[] = Fixed date list of file `%s%s'; %sf|F %s[%s%s%s...]=Use file %s" #~ msgstr "" #~ "%sc|C[] = Terminliste aus Datei `%s%s'; %sf|F %s[%s%s%s...]=Benutze " #~ "Datei %s" #~ msgid "" #~ "%s = Month in range: %d...%d List: %s[%s%s]%s...%s%s" #~ "[%s%s]" #~ msgstr "" #~ "%s = Monat im Bereich: %d...%d Liste: %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 "" #~ " oder: Monatsname|%s[%s|%s|%s] Bereich: %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 = Jahr im Bereich: %d...%d%*s%*s Liste: [%s%s]%s%s...%s[%s" #~ "%s]%s" #~ msgid "" #~ " Range: [%s%s]%s%s[%s%s]%s" #~ msgstr "" #~ " Bereich: [%s%s]%s%s[%s%s]%s" #~ msgid "Compilation options:" #~ msgstr "Kompilations-Optionen:" #~ msgid "Gregorian Reformation: %02d-%02d %s %0*d" #~ msgstr "Gregorianische Reformation: %02d-%02d %s %0*d" #~ msgid "Date format: (%s) `%s' (%s)" #~ msgstr "Datumformat: (%s) `%s' (%s)" #~ msgid "or (if this fails) to ." #~ msgstr "oder (falls das fehlschlägt) an ." #~ msgid "" #~ " +++ If you specify two digits for the year I DON'T assume %2d%s +++" #~ msgstr "" #~ " +++ Bei zweistelliger Jahresangabe wird NICHT von %2d%s ausgegangen +" #~ "++" #~ msgid " +++ `%s' is free software, enjoy =8^) +++" #~ msgstr " +++ `%s' ist freie Software, viel Spaß damit =8^) +++" #~ msgid " on %s" #~ msgstr " am %s" #~ msgid " unknown date" #~ msgstr " unbekanntes Datum" #~ msgid "" #~ "%s: invalid date given -- %s\n" #~ "%s\n" #~ msgstr "" #~ "%s: ungültiges Datum angegeben -- %s\n" #~ "%s\n" #~ msgid "Abort!" #~ msgstr "Abbruch!" #~ msgid "NULL argument" #~ msgstr "NULL-Argument" #~ msgid "regexp too big" #~ msgstr "regulärer Ausdruck zu groß" #~ msgid "out of space" #~ msgstr "kein Speicherplatz" #~ msgid "too many ()" #~ msgstr "zu viele ()" #~ msgid "unmatched ()" #~ msgstr "unpassende ()" #~ msgid "junk on end" #~ msgstr "Plunder am Ende" #~ msgid "*+ operand could be empty" #~ msgstr "*+ Operand könnte leer sein" #~ msgid "nested *?+" #~ msgstr "geschachtelte *?+" #~ msgid "invalid [] range" #~ msgstr "ungültiger [] Bereich" #~ msgid "unmatched []" #~ msgstr "unpassende []" #~ msgid "internal urp" #~ msgstr "internes Problem" #~ msgid "?+* follows nothing" #~ msgstr "?+* wird von nichts gefolgt" #~ msgid "trailing \\" #~ msgstr "nachfolgendes \\" #~ msgid "internal disaster" #~ msgstr "interne Katastrophe" #~ msgid "NULL parameter" #~ msgstr "NULL-Parameter" #~ msgid "corrupted program" #~ msgstr "Programm verdorben" #~ msgid "memory corruption" #~ msgstr "Speicher verdorben" #~ msgid "corrupted pointers" #~ msgstr "Programmzeiger verdorben" #~ msgid "internal foulup" #~ msgstr "interne Kollision" #~ msgid "start `%c' " #~ msgstr "Start `%c' " #~ msgid "anchored " #~ msgstr "verankert " #~ msgid "must have \"%s\"" #~ msgstr "muß haben \"%s\"" #~ msgid "corrupted opcode" #~ msgstr "Operationskode verdorben" #~ msgid "" #~ "illegal date variable operation (%s)\n" #~ "%s\n" #~ msgstr "" #~ "illegale Datumvariablen-Operation (%s)\n" #~ "%s\n" #~ msgid "" #~ "illegal text variable definition (%s)\n" #~ "%s\n" #~ msgstr "" #~ "illegale Textvariablen-Definition (%s)\n" #~ "%s\n" gcal-3.6.3/po/POTFILES.in0000644000175000017500000000074112125364452011553 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 src/file-io.c src/gcal.c src/hd-astro.c src/hd-data.c src/hd-use.c src/help.c src/print.c src/rc-astro.c src/rc-check.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-3.6.3/po/nl.gmo0000644000175000017500000012116512125376135011120 00000000000000Þ•Â,­<,ð:$ñ:4;=K;J‰;?Ô;H<']<J…<6Ð<5=,==Ej=3°=(ä=6 >ED>CŠ>-Î>Mü> J? V?c?l?q? ??¬?Ì?'ì?+@;@@|@%@#¶@Ú@ó@)A2A$OA+tA& A%ÇA(íA&B=B=ZB"˜B#»B ßB!C "C-C @CKC ^CiC |C‡CšC5œCÒC ÖCâCêCòCDD!D.0D _DlD{DƒDŒD•D­DÍDíD E'EBEXEmE†EžE¸EÐEØE ìEöEúE F FF%F -F;FAFZF sFF‰FF ”FžF±FËFèFýFG-G@G\G dGoGŠGŽG–GžG µG ÂGÏGØGèGH HHH#H+H3Hk@k FkPkokŽk®kÇk ækòk lll7 l Xl5el›l£l#¸l!Ülþlm mm +m9m¤Am(æn9o9Io\ƒo<àoCp'apE‰p8Ïp>q2GqIzq9Äq(þq9'rFar7¨r,àrP s ^s jsxss†s žs ªs¸sÒs%ës/t=Att,št(Çtðt u&#uJu#iu(u%¶u$Üu)v%+vQvInv,¸v)åv*w':wbwww–w«wÊwÞwüwx0x12xdx hxtx}x †x ‘xŸx ²x;¾x úxyyy'y0yHyhy!ˆyªyÅyàyöy z$z~^~{~Ž~~·~Æ~ Ú~ ç~ó~ü~ /6JP T^dj|Œ“¢ ²½Í Ýë ô€#€,€F€ a€n€€ € ›€¦€¯€´€»€ € ̀ր؀ë€þ€-@TXa)z ¤° ÁÌÕÞõ‚ ‚‚'‚ .‚ 9‚E‚ ^‚j‚y‚$’‚ ·‚Ä‚ׂß‚ ç‚ñ‚/ƒ6ƒ:ƒKƒTƒ]ƒaƒ jƒ:uƒ*°ƒ(Ûƒ,„11„5c„0™„0Ê„*û„&…-…5… L… W…b… e… o…|……‘… ™…£… ³…¾…Æ…Í…Ö… ó…ý…†,†>†T†e†w†ˆ†#ž†"†å†þ†‡"‡:‡W‡l‡ r‡ |‡Ї š‡¨‡%º‡!à‡ˆ ˆ,ˆ DˆNˆ Vˆ cˆnˆ sˆ}ˆ„ˆ”ˆˆ¤ˆ «ˆµˆÔˆðˆ ‰‰‰ (‰2‰ C‰M‰U‰\‰r‰ z‰‡‰މ“‰›‰Ÿ‰µ‰º‰‰ʉÒ‰Ö‰Þ‰â‰è‰ù‰Š Š(Š,Š1Š5Š :ŠEŠ MŠXŠ `ŠjŠ |Š‡ŠŸŠ¤Š¬Š´Š¼ŠËŠÓŠ ÚŠèŠ ñŠüŠ ‹‹‹ !‹-.‹\‹ c‹o‹x‹}‹ƒ‹Š‹Ž‹”‹¥‹ »‹ ȋӋ ê‹ø‹Œ Œ/ŒLŒcŒrŒ ‚Œ ŽŒ˜ŒœŒ  Œ¬Œ´Œ»Œ¾ŒÂŒÉŒ ьیñŒ & <GP ` j uˆ›­³ »Åâ+Ž!,ŽNŽ _Ž kŽ yŽ ‡Ž‘Ž—ŽŸŽ·Ž¼ŽÄŽÙŽ ìŽöŽúŽ0=4-r ¦ª²Êâçú /8 A O\k|„œ¡ ¶ÁÒØ á!ë ‘ ‘'‘;‘A‘I‘^‘ r‘ }‘‡‘ œ‘¦‘ő͑ԑݑ)ð‘’5’8’Q’n’ t’’•’™’ ¢’ ­’»’Ã’ Ç’ Ñ’Þ’ ô’ ÿ’ “ “ $“0“ 6“"C“ f“ r“ |“†“˜“ ©“´“ ½“/É“ù“” ” ,” 8” D”P” e” q”” ”ž” ½”Ç”$Þ”•••&•?•C•J• S•^• w•• ˆ•”•"§•!ʕ앖–0–E–Y–l–„–•–¨–¿–Õ–ê–ý–—,—@—S—c—v—‡———«—º—Á— È—Õ—Þ— á—ì—ý— ˜ ˜9˜Q˜X˜i˜o˜v˜<‹˜4Ș&ý˜$™%'™M™Q™ Y™c™l™ t™™š™¡™º™Ö™Û™ â™ì™š$š5šNšfšš™š¶šКíš%›-›F›_›w›Ž›¨›Á›×›ï› œ$œ;œUœtœŽœ©œÆœàœùœ+Jf‚œ¼Úð ž"ž@ž^ž~žœž·žΞäžýžŸ3ŸRŸmŸ†Ÿ ŽŸšŸ ¢Ÿ¬Ÿ´Ÿ¶ŸËŸÜŸíŸýŸ      % , > D I K Q 3X !Œ /® Þ  ü  ¡¡¡&¡*¡F3¡ z¡,ˆ¡ µ¡¿¡%Ò¡&ø¡¢ '¢5¢E¢^¢n¢ÿôù[™´Hˆ(ô'Zb‘±3LÐsL ŽÝ9;)‘‰Wl„5 ­:¼2“¹›(oà¨-PPÚýí Ê!–ºù3€¨®S _šq©KkžCU?˜«÷õ$£5²6t´<J‚«ñ¸+,© d°^>¬¾!eë~¦Âof6³·^Ÿ%ògf¸€t@GG|Ì™ÇNvFe8Íì…HáøD:{i*ÀIC¾7¨ÅW—UyÀs¥ýNM„pZ ^ª]Çt¯ÆïO±,rÞƒ²¿ðŒ‚°mãJyaVÑ8‘¯6öÄ®Ñü¿ÖÌ Ï›R›wÔI»Y qw¥äÛ°SáúE jXM“cª1¦NƒŠÁ}žêd†¡…ûcÜ+Ä¡aÉ.ë;„ƒY`æóó­ŽM DzŒµ"/\‡2«©)®ljíä·»Bk³/\duð_¼ÉÕnÓnŽE,%aiL*v …à|-V’èTg0”W3Yî)¶ˆ{‡Ù —AÒDV‚Ôc[¢¾ .=T=½r?Ë.*¶z“ph%³ å»xº1{¿'÷o&’f(Õ¡•¤‰AhÝSrø~BÐ0µ‹ÞU§+œ¢§P‰ª¤TK"jŠ?”–}HFûç£vJ‹&à2#l¸† ™A&[B˜—e£n@•üŠQ}'ËE bÓþæ$Ò¶èb>-59×êœ4ÂÁßΕ7u:;q$þ<g½OÆméF§ß¹ã˜ÛÙ¥¤>sœm¼=¬æú0  Gh ñï#ç’È7†ÈQ¬#Kš± !éx·òÿŸ~‹ö´ºµz€XšyÚÜX\1Î/쯇ZÏ<â­Øõâx8IwuÊØåk¹–Ÿ×CR_4Á²p`À]Q"ˆîO4½9Í”@RÂ|`i¢]Ō֞ %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%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 BarbudaAnzac DayAprAprilArbor DayArgentinaArmed Forces DayArmeniaArmistice DayArubaAscension of Abdu'l-BahaAscension of Baha'u'llahAsh 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 BoyneBeginning of Financial YearBelarusBelgiumBelizeBeltaneBenin #BermudaBhutan #Birth of Baha'u'llahBirth of the BabBloomsdayBoliviaBosnia-HerzegovinaBosses' DayBotswanaBouvet IslandBoxing DayBrazilBritish Virgin IslandsBulgariaBurkina FasoBurns NightBurundi #Cambodia #CameroonCanadaCanada/AlbertaCanada/British ColumbiaCanada/ManitobaCanada/New BrunswickCanada/Newfoundland and LabradorCanada/Nordwest 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 DayCocos Islands (Keeling)ColombiaColumbus DayComorosCompiled with %s%s for %s%s%s%sConfucius' BirthdayConstitution AnniversaryCook IslandsCoptic New Year's DayCosmonauts' DayCosta RicaCreatedCroatiaCubaCycleCyprusCzech 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 RepublicEaster MondayEaster SundayEaster TuesdayEcuadorEgyptEid-al-AdhaEid-al-FitrEindhoven's LiberationEl SalvadorElection DayEmperor's BirthdayEnd of highlighting sequence/marking characterEpiphany/Three King's DayEquatorial GuineaEritreaEstoniaEthiopiaEthiopic New Year's DayFORMAT group (exactly one member must be defined):FRRFalkland Islands (Malvinas)FaroesFather's DayFebFebruaryFederated 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 MoonGabon #GambiaGeorgiaGerman Unity DayGermanyGermany/Baden-WürttembergGermany/BavariaGermany/BerlinGermany/BrandenburgGermany/BremenGermany/HamburgGermany/HesseGermany/Lower SaxonyGermany/Mecklenburg-West PomeraniaGermany/North Rhine-WestphaliaGermany/Rhineland PalatinateGermany/SaarGermany/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 #InternalIraqIrelandIslIslamic 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 VisitationMauritaniaMauritiusMayMay May DayMayotteMexicoMoMonMonacoMondayMondaysMondays...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 RidvanNiueNorfolk IslandsNorthern 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 DayPresident Lincoln's BirthdayPrincess' DayPuerto RicoPurim/Feast of LotsQatarRamadanRepublic 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 GrasSi/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 monthSuSudanSukkot/Feast of TabernaclesSunSundaySundaysSuriname #Svalbard and Jan Mayen IslandsSwazilandSwedenSwitzerlandSwitzerland/AargauSwitzerland/Appenzell AusserrhodenSwitzerland/Appenzell InnerrhodenSwitzerland/Basel-LandSwitzerland/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)TaiwanTajikistanTanzaniaThThailand #Thanksgiving DayThuThursdayThursdaysTisha B'Av/Fasting DayTogo #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') 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/WyomingUruguayUzbekistanVanuatuVenezuelaViet NamWWIDTH (must be defined):Wallis and Futuna IslandsWaning Half MoonWaxing Half MoonWeWedWednesdayWednesdaysWeekWeek %sWei/SheepWestern SaharaWu/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]command linecontain a format instruction, which template is like:defaultenvironment variableenvironment variable `%s' not foundenvironment variable `%s' not setfailedholidaysinvalid monthlegal holidaysresponse filesuccessProject-Id-Version: gcal-3.00 Report-Msgid-Bugs-To: bug-gcal@gnu.org POT-Creation-Date: 2013-03-29 21:40+0100 PO-Revision-Date: 2008-06-12 20:29+0200 Last-Translator: Mark Haanen Language-Team: Dutch Language: nl MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Generator: KBabel 1.11.4 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)%s%s bevat nu %d maxima als invoer!%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 dubbelzinnig%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: niet herkende 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-BarbudaAnzac DayapraprilBoomfeestdagArgentiniëStrijdkrachtendagArmeniëWapenstilstanddagArubaHeengaan van Abdu'l-BaháHeengaan van Bahá'u'lláhAswoensdagAsjoeraaugaugustusAustraliëAustralië/CanberraAustralië/Nieuw-Zuid-WalesAustralië/Noordelijk TerritoriumAustralië/QueenslandAustralië/Zuid-AustraliëAustralië/TasmaniëAustralië/VictoriaAustralië/West-AustraliëOostenrijkAzerbeidzjanBackslash ('%c') karakterBahBahamasBahreinNaw-Rúz (Bahá'í nieuwjaar)Bangladesh #BankvakantieBarbadosSlag om de BoyneBegin van het financieel jaarWit-RuslandBelgiëBelizeBeltaineBenin #BermudaBhutan #Geboortedag van Bahá'u'lláhGeboortedag van de BábBloomsdayBoliviaBosnië-HerzegovinaBazendagBotswanaBouvetTweede KerstdagBraziliëBritse MaagdeneilandenBulgarijeBurkina FasoBurnsnachtBurundi #Cambodja #KameroenCanadaCanada/AlbertaCanada/Brits-ColumbiaCanada/ManitobaCanada/New BrunswickCanada/Newfoundland en LabradorCanada/Northwest TerritoriesCanada/Nova ScotiaCanada/OntarioCanada/Prins EdwardeilandCanada/QuébecCanada/SaskatchewanCanada/YukonKaapverdiëCarnavalCaymaneilandenKelCentraal-Afrikaanse Republiek #TsjaadKaraktervervanging:DraakChiKinderdagChiliChinaChinees nieuwjaarChinees oudjaarOsChrHemelvaartsdagEerste KerstdagKerstavondChristmaseilandBurgerschapsdagCocoseilandenColumbiaColumbusdagComorenGecompileerd met %s%s voor %s%s%s%sGeboortedag van ConfuciusVerjaardag van de grondwetCookeilandenKoptisch nieuwjaarKosmonautendagCosta RicaAangemaaktKroatiëCubaCyclusCyprusTsjechië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 republiekTweede PaasdagEerste PaasdagPaasdinsdagEcuadorEgypteOfferfeestSuikerfeestBevrijding van EindhovenEl SalvadorVerkiezingsdagVerjaardag van de KeizerEinde van markeersequentie/merktekenDriekoningenEquatoriaal-GuineaEritreaEstlandEthiopiëEthiopisch nieuwjaarAFKAPGEDRAG (verplicht één kiezen uit lijst):FRRFalklandeilandenFaeröerVaderdagfebfebruariMicronesiaVeldinhoud 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 maanGabon #GambiaGeorgiëDag van de Duitse herenigingDuitslandDuitsland/Baden-WürttembergDuitsland/BeierenDuitsland/BerlijnDuitsland/BrandenburgDuitsland/BremenDuitsland/HamburgDuitsland/HessenDuitsland/NedersaksenDuitsland/Mecklenburg-Voor-PommerenDuitsland/Noord-Rijnland-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 natuurgroenGroenlandGrenadaMarmottendagGuadeloupeGuamGuatemalaGuineaGuinee-Bissau #Guyana #VarkenHaïtiHalloweenChanoeka (Feest van het licht)Dag van gezondheid en sportHeard en McDonaldeilandenHebSchortelwoensdagHondurasHong KongMensenrechtendagHongarijeIJslandImbolcOnafhankelijkheidsdagIndia #Indonesië #InternIrakIerlandIslIslamitisch nieuwjaarIranIsraëlItaliëJamaicajanjanuariJapJapanJapans nieuwjaarJapans oudjaarBesnijdenis des HerenJordaniëjuljulijunjuniKazachstanKenya #Kiribati #KoeweitKirgiziëDag van de ArbeidLag baOmerGeboortedag van Lao TzeLaosLetlandLibanonLesothoBevrijdingsdagLiberiaLibië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 VisitatieMauritaniëMauritiusmeimeiEenmeifeestMayotteMexicomamaaMonacomaandagmaandagenmaandagen...vrijdagenmaandagen...donderdagenMongolië #Maand (kies exact één uit de lijst):MontserratMarkokkoSchoonmoederdagMoederdagMozambiqueMyanmar #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ánNiueNorfolkNoordelijke 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-GuineaParaguayOuderdagGedeeltelijkePassiezondagVredesfestivalPerzikenfestivalHybrideProcent ('%c') karakterPeruPesach (joods Pasen)FilipijnenPitcairneilandenPolenPortugalGebedsdagGeboortedag van president LincolnPrinsessendagPuerto RicoPoerim (Lotenfeest)QatarRamadanDag 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)AapVastenavondSlangSierra LeoneSimchat Thora (Vreugde van de Wet)Singapore #SlowakijeSloveniëZonsverduisteringSalomonseilandenZonnewendeSomaliëZuid-AfrikaZuid-Georgië en de Zuidelijke SandwicheilandenSpatie/blanco ('%c') karakterSpanjeLentefestivalSri Lanka #Sint-HelenaMidzomerdagSaint Kitts en NevisSaint LuciaSint NicolaasSinterklaasavondValentijnsdagSaint Vincent en de GrenadinesStandaardStart van gewone maandBegin van markeersequentie/merktekenStart van schrikkelmaandzoSoedanSoekot (Loofhuttenfeest)zonzondagzondagenSuriname #Spitsbergen en Jan MayenSwazilandZwedenZwitserlandZwitserland/AargauZwitserland/Appenzell AusserrhodenZwitserland/Appenzell InnerrhodenZwitserland/Bazel-LandschapZwitserland/Basel-StadZwitserland/BernZwitserland/FribourgZwitserland/GenèveZwitserland/GlarusZwitserland/GraubündenZwitserland/JuraZwitserland/LuzernZwitserland/NeuchâtelZwitserland/NidwaldenZwitserland/ObwaldenZwitserland/SchwyzZwitserland/SolothurnZwitserland/Sankt GallenZwitserland/ThurgauZwitserland/TicinoZwitserland/UriZwitserland/WallisZwitserland/VaudZwitserland/ZugZwitserland/ZürichOudejaarsavondSyriëTaiwanTadzjikistanTanzaniadoThailand #Thanksgiving DaydondonderdagdonderdagenTisja be'Aaw (Verwoesting van de Eerste en Tweede Tempel)Togo #Tokelau-eilandenTongaGeheleTrinidad 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.UgandaOekraïneUnderscore ('%c') karakterVerenigde 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/WyomingUruguayOezbekistanVanuatuVenezuelaVietnamWBREEDTE (verplicht):Wallis en FutunaLaatste kwartierEerste kwartierwowoewoensdagwoensdagenWeekWeek %sSchaapWestelijke SaharaPaardHondJJemenTijgerJom 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]commandoregeleen formatinstructie bevatten met de syntax:standaardomgevingsvariabeleomgevingsvariabele '%s' niet gevondenomgevingsvariabele '%s' niet ingesteldmisluktvakantiedagenongeldige maandwettelijke vakantiedagenantwoordbestandgeluktgcal-3.6.3/po/lt.gmo0000644000175000017500000001777012125376135011134 00000000000000Þ•¹äû¬ ˜™ ›§¯·ÆÎ ×áé ïù  %-5<DL Ucj s€‰ ›ª¯µ»Ä Ì Ùäìôù"+>F LXjrzƒŠ’ ™§¸¿ÇÏ Õ ßí ,C JT \g lv}ƒ Œ–ž¦«³ºÀÈÎ Õà çòù    )46=FKQ b m x‚Š‘ ˜£ «¶ÈÐÖ Þ ê ø !(-6<CT] bnw~ ‡“™¡´» Á ÌÙ á ìù  #06 < GQ Xd ˆ“ œ§¯µ½ ÄÑØßæî  $ ,6?APRX_îhW Yfox‡Ž –  ª °»ÄÓ Û åð÷ÿ " - 7 A OZatƒŠ‘ ˜¢ ª ·ÂÊÓØßóõ ü $. 6D V`gpx €Œž¶¾ ÆÐ Õá%õ$@] fr z… Œ–Ÿ ¦ °º ÃÍÔÛäìôý  (08@IY aoqy‚ˆŽ  § ³¾ÆÎ Öâ êõ  "+> PZbk r| ƒŽ”› ²½  ÌÖ Þ ê÷ # ) 5 C M X e ozŠ’¬µ ½ ÉÕ Þêñú  '-5=MTX_g‚ — ¡® ¶ ÀÊÌÜÞæ î ]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: 2013-03-29 21:40+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-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-3.6.3/po/fr.po0000644000175000017500000044661412125376134010762 00000000000000# Messages français pour GNU concernant gcal. # Copyright © 2004 Free Software Foundation, Inc. # Michel Robitaille , traducteur depuis/since 1996. # msgid "" msgstr "" "Project-Id-Version: GNU gcal 3.00\n" "Report-Msgid-Bugs-To: bug-gcal@gnu.org\n" "POT-Creation-Date: 2013-03-29 21:40+0100\n" "PO-Revision-Date: 2004-05-10 11:00-0500\n" "Last-Translator: Michel Robitaille \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" "Plural-Forms: nplurals=2; plural=(n > 1);\n" #: src/file-io.c:1561 #, c-format msgid "Try to write %s `%s'... %s%s%s" msgstr "Tentative d'écriture %s « %s »... %s%s%s" #: src/file-io.c:1564 src/file-io.c:1689 src/file-io.c:1702 msgid "failed" msgstr "échec" #: src/file-io.c:1564 src/file-io.c:1689 src/file-io.c:1702 msgid "success" msgstr "succès" #: src/file-io.c:1684 #, 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:1685 msgid " `HERE' " msgstr " « ICI » " #: src/file-io.c:1697 #, 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:352 src/gcal.c:523 src/gcal.c:2028 msgid "ARG" msgstr "PARAMÈTRE(S)" #: src/gcal.c:1080 src/hd-data.c:69 msgid "Germany" msgstr "Allemagne" #: src/gcal.c:1081 msgid "U.S.A." msgstr "É.U." #: src/gcal.c:1082 src/hd-data.c:72 msgid "Great Britain" msgstr "Grande-Bretagne" #: src/gcal.c:1858 msgid "default" msgstr "défaut" #: src/gcal.c:1957 msgid ":" msgstr ":" #: src/gcal.c:1967 msgid "Y" msgstr "A" #: src/gcal.c:1972 msgid "M" msgstr "M" #: src/gcal.c:1977 msgid "W" msgstr "S" #: src/gcal.c:1982 msgid "D" msgstr "J" #: src/gcal.c:2073 #, fuzzy msgid "Fixed date list:" msgstr "Liste de dates fixes" #: src/gcal.c:2090 src/gcal.c:2105 msgid "environment variable" msgstr "variable d'environnement" #: src/gcal.c:2274 #, 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:2461 src/gcal.c:2489 src/gcal.c:6232 src/rc-use.c:1828 #: src/rc-use.c:1888 src/rc-use.c:1937 src/rc-use.c:2207 src/rc-utils.c:390 #: src/rc-utils.c:411 src/utils.c:342 src/utils.c:365 src/utils.c:384 #: src/utils.c:679 src/tcal.c:331 src/tcal.c:339 src/txt2gcal.c:270 #: src/txt2gcal.c:275 src/gcal2txt.c:270 src/gcal2txt.c:275 msgid "Internal" msgstr "Interne" #: src/gcal.c:2870 msgid "response file" msgstr "fichier réponse" #: src/gcal.c:2870 src/gcal.c:2878 msgid "Created" msgstr "Créé" #: src/gcal.c:2878 msgid "shell script" msgstr "script" #: src/gcal.c:3089 #, 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:3141 #, 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:4951 src/gcal.c:4984 msgid "command line" msgstr "ligne de commande" #: src/gcal.c:5901 #, c-format msgid "%s: option `%s' is ambiguous" msgstr "%s: l'option « %s » est ambiguë" #: src/gcal.c:5906 src/tcal.c:895 src/txt2gcal.c:716 src/gcal2txt.c:715 #, c-format msgid "%s: unrecognized option `%s'" msgstr "%s: l'option « %s » n'est pas reconnue" #: src/gcal.c:5909 #, c-format msgid "%s: invalid option -- %s" msgstr "%s: l'option %s est invalide" #: src/gcal.c:5916 #, 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' doesn't allow an argument" msgstr "%s: l'option « %s » ne permet pas d'argument" #: src/gcal.c:5927 #, c-format msgid "%s: option `%s' requires an argument" msgstr "%s: l'option « %s » requiert un argument" #: src/gcal.c:5931 #, c-format msgid "%s: option requires an argument -- %s" msgstr "%s: l'option -- %s requiert un argument" #: src/gcal.c:5936 src/tcal.c:941 #, c-format msgid "%s: option with invalid argument -- %s" msgstr "%s: l'argument -- %s de l'option est invalide" #: src/gcal.c:5941 #, c-format msgid "%s: option with ambiguous argument -- %s" msgstr "%s: l'argument -- %s de l'option est ambiguë" #: src/gcal.c:6001 #, 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:63 msgid "Australia" msgstr "Australie" #: src/hd-data.c:64 src/hd-data.c:112 msgid "Belgium" msgstr "Belgique" #: src/hd-data.c:65 src/hd-data.c:121 msgid "Brazil" msgstr "Brésil" #: src/hd-data.c:66 msgid "Canada" msgstr "Canada" #: src/hd-data.c:67 msgid "Switzerland" msgstr "Suisse" #: src/hd-data.c:68 src/hd-data.c:174 msgid "China" msgstr "Chine" #: src/hd-data.c:70 src/hd-data.c:208 msgid "Spain" msgstr "Espagne" #: src/hd-data.c:71 src/hd-data.c:215 msgid "France" msgstr "France" #: src/hd-data.c:73 src/hd-data.c:244 msgid "Israel" msgstr "Israël" #: src/hd-data.c:74 src/hd-data.c:249 msgid "Italy" msgstr "Italie" #: src/hd-data.c:75 src/hd-data.c:252 msgid "Japan" msgstr "Japon" #: src/hd-data.c:76 src/hd-data.c:260 msgid "Republic of Korea" msgstr "République de Corée" #: src/hd-data.c:77 src/hd-data.c:292 msgid "Mexico" msgstr "Mexique" #: src/hd-data.c:78 src/hd-data.c:301 msgid "Netherlands" msgstr "Pays-Bas" #: src/hd-data.c:79 src/hd-data.c:307 msgid "New Zealand" msgstr "Nouvelle Zélande" #: src/hd-data.c:80 src/hd-data.c:319 msgid "Portugal" msgstr "Portugal" #: src/hd-data.c:81 src/hd-data.c:325 msgid "Russian Federation" msgstr "Fédération de Russie" #: src/hd-data.c:82 msgid "United States" msgstr "États-Unis" #: src/hd-data.c:84 msgid "Andorra" msgstr "Andorre" #: src/hd-data.c:85 msgid "United Arab Emirates" msgstr "Émirats Arabes Unis" #: src/hd-data.c:86 msgid "Afghanistan" msgstr "Afghanistan" #: src/hd-data.c:87 msgid "Antigua and Barbuda" msgstr "Antigua et Barbade" #: src/hd-data.c:88 msgid "Anguilla" msgstr "Anguilla" #: src/hd-data.c:89 msgid "Albania" msgstr "Albanie" #: src/hd-data.c:90 msgid "Armenia" msgstr "Arménie" #: src/hd-data.c:91 msgid "Netherlands Antilles/Bonaire" msgstr "Antilles néerlandaises/Bonaire" #: src/hd-data.c:92 msgid "Netherlands Antilles/Curaçao" msgstr "Antilles néerlandaises/Curaçao" #: src/hd-data.c:93 msgid "Netherlands Antilles/St Maarten" msgstr "Antilles néerlandaises/St Maarten" #: src/hd-data.c:94 msgid "Netherlands Antilles/Saba and Statia" msgstr "Antilles néerlandaises/Saba et Statia" #: src/hd-data.c:95 msgid "Angola #" msgstr "Angola #" #: src/hd-data.c:96 msgid "Argentina" msgstr "Argentine" #: src/hd-data.c:97 msgid "American Samoa" msgstr "ÃŽles Samoa (E.U)" #: src/hd-data.c:98 msgid "Austria" msgstr "Autriche" #: src/hd-data.c:99 msgid "Australia/Canberra" msgstr "Australie/Canberra" #: src/hd-data.c:100 msgid "Australia/Northern Territory" msgstr "Australie/Territoire du Nord" #: src/hd-data.c:101 msgid "Australia/Queensland" msgstr "Australie/Queensland" #: src/hd-data.c:102 msgid "Australia/Southern Australia" msgstr "Australie/Australie Méridionale" #: src/hd-data.c:103 msgid "Australia/New South Wales" msgstr "Australie/Nouvelle Galles du Sud" #: src/hd-data.c:104 msgid "Australia/Tasmania" msgstr "Australie/Tasmanie" #: src/hd-data.c:105 msgid "Australia/Victoria" msgstr "Australie/Victoria" #: src/hd-data.c:106 msgid "Australia/Western Australia" msgstr "Australie/Australie Occidentale" #: src/hd-data.c:107 msgid "Aruba" msgstr "Aruba" #: src/hd-data.c:108 msgid "Azerbaijan" msgstr "Azerbaïdjan" #: src/hd-data.c:109 msgid "Bosnia-Herzegovina" msgstr "Bosnie-Herzégovine" #: src/hd-data.c:110 msgid "Barbados" msgstr "Barbade" #: src/hd-data.c:111 msgid "Bangladesh #" msgstr "Bangladesh #" #: src/hd-data.c:113 msgid "Burkina Faso" msgstr "Burkina" #: src/hd-data.c:114 msgid "Bulgaria" msgstr "Bulgarie" #: src/hd-data.c:115 msgid "Bahrain" msgstr "Bahreïn" #: src/hd-data.c:116 msgid "Burundi #" msgstr "Burundi #" #: src/hd-data.c:117 msgid "Benin #" msgstr "Bénin #" #: src/hd-data.c:118 msgid "Bermuda" msgstr "Bermudes" #: src/hd-data.c:119 msgid "Brunei" msgstr "" #: src/hd-data.c:120 msgid "Bolivia" msgstr "Bolivie" #: src/hd-data.c:122 msgid "Bahamas" msgstr "Bahamas" #: src/hd-data.c:123 msgid "Bhutan #" msgstr "Bhutan #" #: src/hd-data.c:124 msgid "Bouvet Island" msgstr "ÃŽle Bouvet" #: src/hd-data.c:125 msgid "Botswana" msgstr "Botswana" #: src/hd-data.c:126 msgid "Belarus" msgstr "Bélarus" #: src/hd-data.c:127 msgid "Belize" msgstr "Belize" #: src/hd-data.c:128 msgid "Canada/Alberta" msgstr "Canada/Alberta" #: src/hd-data.c:129 msgid "Canada/British Columbia" msgstr "Canada/Colombie Britannique" #: src/hd-data.c:130 msgid "Canada/Manitoba" msgstr "Canada/Manitoba" #: src/hd-data.c:131 msgid "Canada/New Brunswick" msgstr "Canada/Nouveau Brunswick" #: src/hd-data.c:132 msgid "Canada/Newfoundland and Labrador" msgstr "Canada/Terre-Neuve et Labrador" #: src/hd-data.c:133 msgid "Canada/Nova Scotia" msgstr "Canada/Nouvelle Écosse" #: src/hd-data.c:134 msgid "Canada/Nordwest Territories" msgstr "Canada/Territoires du Nord Ouest" #: src/hd-data.c:135 msgid "Canada/Ontario" msgstr "Canada/Ontario" #: src/hd-data.c:136 msgid "Canada/Prince Edward Island" msgstr "Canada/ÃŽle du Prince Édouard" #: src/hd-data.c:137 msgid "Canada/Québec" msgstr "Canada/Québec" #: src/hd-data.c:138 msgid "Canada/Saskatchewan" msgstr "Canada/Saskatchewan" #: src/hd-data.c:139 msgid "Canada/Yukon" msgstr "Canada/Yukon" #: src/hd-data.c:140 msgid "Cocos Islands (Keeling)" msgstr "ÃŽles Cocos (Keeling)" #: src/hd-data.c:141 msgid "Democratic Republic of Congo #" msgstr "République Démocratique du Congo #" #: src/hd-data.c:142 msgid "Central African Republic #" msgstr "République Centre Africaine #" #: src/hd-data.c:143 msgid "Republic of Congo #" msgstr "République du Congo #" #: src/hd-data.c:144 msgid "Switzerland/Aargau" msgstr "Suisse/Aargau" #: src/hd-data.c:145 msgid "Switzerland/Appenzell Innerrhoden" msgstr "Suisse/Appenzell Innerrhoden" #: src/hd-data.c:146 msgid "Switzerland/Appenzell Ausserrhoden" msgstr "Suisse/Appenzell Ausserrhoden" #: src/hd-data.c:147 msgid "Switzerland/Bern" msgstr "Suisse/Berne" #: src/hd-data.c:148 msgid "Switzerland/Basel-Land" msgstr "Suisse/Basel-Land" #: src/hd-data.c:149 msgid "Switzerland/Basel-Stadt" msgstr "Suisse/Basel-Stadt" #: src/hd-data.c:150 msgid "Switzerland/Fribourg" msgstr "Suisse/Fribourg" #: src/hd-data.c:151 msgid "Switzerland/Genève" msgstr "Suisse/Genève" #: src/hd-data.c:152 msgid "Switzerland/Glarus" msgstr "Suisse/Glarus" #: src/hd-data.c:153 msgid "Switzerland/Graubünden" msgstr "Suisse/Graubünden" #: src/hd-data.c:154 msgid "Switzerland/Jura" msgstr "Suisse/Jura" #: src/hd-data.c:155 msgid "Switzerland/Luzern" msgstr "Suisse/Luzern" #: src/hd-data.c:156 msgid "Switzerland/Neuchâtel" msgstr "Suisse/Neuchâtel" #: src/hd-data.c:157 msgid "Switzerland/Nidwalden" msgstr "Suisse/Nidwalden" #: src/hd-data.c:158 msgid "Switzerland/Obwalden" msgstr "Suisse/Obwalden" #: src/hd-data.c:159 msgid "Switzerland/St Gallen" msgstr "Suisse/St Gallen" #: src/hd-data.c:160 #, fuzzy msgid "Switzerland/Schaffhausen" msgstr "Suisse/Schwyz" #: src/hd-data.c:161 msgid "Switzerland/Solothurn" msgstr "Suisse/Solothurn" #: src/hd-data.c:162 msgid "Switzerland/Schwyz" msgstr "Suisse/Schwyz" #: src/hd-data.c:163 msgid "Switzerland/Thurgau" msgstr "Suisse/Thurgau" #: src/hd-data.c:164 msgid "Switzerland/Ticino" msgstr "Suisse/Ticino" #: src/hd-data.c:165 msgid "Switzerland/Uri" msgstr "Suissse/Uri" #: src/hd-data.c:166 msgid "Switzerland/Vaud" msgstr "Suisse/Vaud" #: src/hd-data.c:167 msgid "Switzerland/Valais" msgstr "Suisse/Valais" #: src/hd-data.c:168 msgid "Switzerland/Zug" msgstr "Suisse/Zug" #: src/hd-data.c:169 msgid "Switzerland/Zürich" msgstr "Suisse/Zürich" #: src/hd-data.c:170 msgid "Côte d'Ivoire" msgstr "Côte d'Ivoire" #: src/hd-data.c:171 msgid "Cook Islands" msgstr "ÃŽles Cook" #: src/hd-data.c:172 msgid "Chile" msgstr "Chili" #: src/hd-data.c:173 msgid "Cameroon" msgstr "Cameroun" #: src/hd-data.c:175 msgid "Colombia" msgstr "Colombie" #: src/hd-data.c:176 msgid "Costa Rica" msgstr "Costa Rica" #: src/hd-data.c:177 msgid "Cuba" msgstr "Cuba" #: src/hd-data.c:178 msgid "Cape Verde" msgstr "Cap Vert" #: src/hd-data.c:179 msgid "Christmas Islands" msgstr "ÃŽles de Christmas" #: src/hd-data.c:180 msgid "Cyprus" msgstr "Chypre" #: src/hd-data.c:181 msgid "Czech Republic" msgstr "République Tchèque" #: src/hd-data.c:182 msgid "Germany/Brandenburg" msgstr "Allemagne/Brandebourg" #: src/hd-data.c:183 msgid "Germany/Berlin" msgstr "Allemagne/Berlin" #: src/hd-data.c:184 msgid "Germany/Baden-Württemberg" msgstr "Allemagne/Bade-Würtemberg" #: src/hd-data.c:185 msgid "Germany/Bavaria" msgstr "Allemagne/Bavière" #: src/hd-data.c:186 msgid "Germany/Bremen" msgstr "Allemagne/Brême" #: src/hd-data.c:187 msgid "Germany/Hesse" msgstr "Allemagne/Hesse" #: src/hd-data.c:188 msgid "Germany/Hamburg" msgstr "Allemagne/Hambourg" #: src/hd-data.c:189 msgid "Germany/Mecklenburg-West Pomerania" msgstr "Allemagne/Mecklenbour Poméranie Antérieure" #: src/hd-data.c:190 msgid "Germany/Lower Saxony" msgstr "Allemagne/Basse Saxe" #: src/hd-data.c:191 msgid "Germany/North Rhine-Westphalia" msgstr "Allemagne/Rhénanie du Nord Westphalie" #: src/hd-data.c:192 msgid "Germany/Rhineland Palatinate" msgstr "Allemagne/Rhénanie-Palatinat" #: src/hd-data.c:193 msgid "Germany/Schleswig-Holstein" msgstr "Allemagne/Schleswig-Holstein" #: src/hd-data.c:194 msgid "Germany/Saar" msgstr "Allemagne/Sarre" #: src/hd-data.c:195 msgid "Germany/Saxony" msgstr "Allemagne/Saxe" #: src/hd-data.c:196 msgid "Germany/Saxony-Anhalt" msgstr "Allemagne/Saxe-Anhalt" #: src/hd-data.c:197 msgid "Germany/Thuringia" msgstr "Allemagne/Thuringe" #: src/hd-data.c:198 msgid "Djibouti" msgstr "Djibouti" #: src/hd-data.c:199 msgid "Denmark" msgstr "Danemark" #: src/hd-data.c:200 msgid "Dominica" msgstr "Dominique" #: src/hd-data.c:201 msgid "Dominican Republic" msgstr "République dominicaine" #: src/hd-data.c:202 msgid "Algeria" msgstr "Algérie" #: src/hd-data.c:203 msgid "Ecuador" msgstr "Equateur" #: src/hd-data.c:204 msgid "Estonia" msgstr "Estonie" #: src/hd-data.c:205 msgid "Egypt" msgstr "Égypte" #: src/hd-data.c:206 msgid "Western Sahara" msgstr "Sahara de l'Ouest" #: src/hd-data.c:207 msgid "Eritrea" msgstr "Érytrée" #: src/hd-data.c:209 msgid "Ethiopia" msgstr "Éthiopie" #: src/hd-data.c:210 msgid "Finland" msgstr "Finlande" #: src/hd-data.c:211 msgid "Fiji #" msgstr "Fiji #" #: src/hd-data.c:212 msgid "Falkland Islands (Malvinas)" msgstr "ÃŽles Falkland (Malvinas)" #: src/hd-data.c:213 msgid "Federated States of Micronesia" msgstr "États fédérés de Micronésie" #: src/hd-data.c:214 msgid "Faroes" msgstr "ÃŽles Féroé" #: src/hd-data.c:216 msgid "Gabon #" msgstr "Gabon #" #: src/hd-data.c:217 msgid "Great Britain/England and Wales" msgstr "Grande-Bretagne/Angleterre et pays de Galles" #: src/hd-data.c:218 msgid "Great Britain/Northern Ireland" msgstr "Grande-Bretagne/Ireland du Nord" #: src/hd-data.c:219 msgid "Great Britain/Scotland" msgstr "Grande-Bretagne/Écosse" #: src/hd-data.c:220 msgid "Grenada" msgstr "Grenade" #: src/hd-data.c:221 msgid "Georgia" msgstr "Georgie" #: src/hd-data.c:222 msgid "French Guiana" msgstr "Guinée Française" #: src/hd-data.c:223 msgid "Ghana" msgstr "Ghana" #: src/hd-data.c:224 msgid "Gibraltar" msgstr "Gibraltar" #: src/hd-data.c:225 msgid "Greenland" msgstr "Groenland" #: src/hd-data.c:226 msgid "Gambia" msgstr "Gambie" #: src/hd-data.c:227 msgid "Guinea" msgstr "Guinée" #: src/hd-data.c:228 msgid "Guadeloupe" msgstr "Guadeloupe" #: src/hd-data.c:229 msgid "Equatorial Guinea" msgstr "Guinée équatoriale" #: src/hd-data.c:230 msgid "Greece" msgstr "Grèce" #: src/hd-data.c:231 msgid "South Georgia and South Sandwich Islands" msgstr "Georgie du Sud et ÃŽles Sandwich du Sud" #: src/hd-data.c:232 msgid "Guatemala" msgstr "Guatémala" #: src/hd-data.c:233 msgid "Guam" msgstr "Guam" #: src/hd-data.c:234 msgid "Guinea-Bissau #" msgstr "Guinée-Bissau #" #: src/hd-data.c:235 msgid "Guyana #" msgstr "Guyane #" #: src/hd-data.c:236 msgid "Hong Kong" msgstr "Hong Kong" #: src/hd-data.c:237 msgid "Heard and Mc Donald Islands" msgstr "ÃŽles Heard et Mc Donald" #: src/hd-data.c:238 msgid "Honduras" msgstr "Honduras" #: src/hd-data.c:239 msgid "Croatia" msgstr "Croatie" #: src/hd-data.c:240 msgid "Haiti" msgstr "Haiti" #: src/hd-data.c:241 msgid "Hungary" msgstr "Hongrie" #: src/hd-data.c:242 msgid "Indonesia #" msgstr "Indonésie #" #: src/hd-data.c:243 msgid "Ireland" msgstr "Ireland" #: src/hd-data.c:245 msgid "India #" msgstr "Indes #" #: src/hd-data.c:246 msgid "Iraq" msgstr "Iraq" #: src/hd-data.c:247 msgid "Islamic Republic of Iran" msgstr "République Islamique d'Iran" #: src/hd-data.c:248 msgid "Iceland" msgstr "Iceland" #: src/hd-data.c:250 msgid "Jamaica" msgstr "Jamaique" #: src/hd-data.c:251 msgid "Jordan" msgstr "Jordanie" #: src/hd-data.c:253 msgid "Kenya #" msgstr "Kenya #" #: src/hd-data.c:254 msgid "Kyrgyzstan" msgstr "Kyrgyzstan" #: src/hd-data.c:255 msgid "Cambodia #" msgstr "Cambodge #" #: src/hd-data.c:256 msgid "Kiribati #" msgstr "Kiribati #" #: src/hd-data.c:257 msgid "Comoros" msgstr "Comores" #: src/hd-data.c:258 msgid "St Kitts and Nevis" msgstr "St Kitts et Nevis" #: src/hd-data.c:259 msgid "Democratic People's Republic of Korea" msgstr "République populaire démocratique de Corée" #: src/hd-data.c:261 msgid "Kuwait" msgstr "Kuwait" #: src/hd-data.c:262 msgid "Cayman Islands" msgstr "ÃŽles Cayman" #: src/hd-data.c:263 msgid "Kazakhstan" msgstr "Kazakhstan" #: src/hd-data.c:264 msgid "Laos People's Democratic Republic #" msgstr "République démocratique populaire du Laos" #: src/hd-data.c:265 msgid "Lebanon" msgstr "Liban" #: src/hd-data.c:266 msgid "St Lucia" msgstr "Ste Lucie" #: src/hd-data.c:267 msgid "Liechtenstein" msgstr "Liechtenstein" #: src/hd-data.c:268 msgid "Sri Lanka #" msgstr "Sri Lanka #" #: src/hd-data.c:269 msgid "Liberia" msgstr "Libéria" #: src/hd-data.c:270 msgid "Lesotho" msgstr "Lesotho" #: src/hd-data.c:271 msgid "Lithuania" msgstr "Lithuanie" #: src/hd-data.c:272 msgid "Luxembourg" msgstr "Luxembourg" #: src/hd-data.c:273 msgid "Latvia" msgstr "Lettonie" #: src/hd-data.c:274 msgid "Libyan Arab Jamahiriya (Libya)" msgstr "Jamahiriya arabe libyenne populaire et socialiste (Libye)" #: src/hd-data.c:275 msgid "Morocco" msgstr "Maroc" #: src/hd-data.c:276 msgid "Monaco" msgstr "Monaco" #: src/hd-data.c:277 msgid "Republic of Moldova" msgstr "République de Moldavie" #: src/hd-data.c:278 msgid "Madagascar #" msgstr "Madagascar #" #: src/hd-data.c:279 msgid "Marshall Islands" msgstr "ÃŽles Marshall" #: src/hd-data.c:280 msgid "Former Yugoslav Republic of Macedonia" msgstr "ex-République yougoslave de Macédoine" #: src/hd-data.c:281 msgid "Mali" msgstr "Mali" #: src/hd-data.c:282 msgid "Mongolia #" msgstr "Mongolie #" #: src/hd-data.c:283 msgid "Macau" msgstr "Macao" #: src/hd-data.c:284 msgid "Northern Marian Islands (Saipan)" msgstr "ÃŽles Mariannes du Nord (Saipan)" #: src/hd-data.c:285 msgid "Martinique" msgstr "Martinique" #: src/hd-data.c:286 msgid "Mauritania" msgstr "Mauritanie" #: src/hd-data.c:287 msgid "Montserrat" msgstr "Montserrat" #: src/hd-data.c:288 msgid "Malta" msgstr "Malte" #: src/hd-data.c:289 msgid "Mauritius" msgstr "Maurice" #: src/hd-data.c:290 msgid "Maldives" msgstr "Maldives" #: src/hd-data.c:291 msgid "Malawi" msgstr "Malawi" #: src/hd-data.c:293 msgid "Malaysia #" msgstr "Malaysie #" #: src/hd-data.c:294 msgid "Mozambique" msgstr "Mozambique" #: src/hd-data.c:295 msgid "Namibia" msgstr "Namibie" #: src/hd-data.c:296 msgid "New Caledonia" msgstr "Nouvelle Calédonie" #: src/hd-data.c:297 msgid "Niger" msgstr "Niger" #: src/hd-data.c:298 msgid "Norfolk Islands" msgstr "ÃŽles Norfolk" #: src/hd-data.c:299 msgid "Nigeria" msgstr "Nigéria" #: src/hd-data.c:300 msgid "Nicaragua" msgstr "Nicaragua" #: src/hd-data.c:302 msgid "Myanmar (Burma) #" msgstr "Myanmar (Birmanie) #" #: src/hd-data.c:303 msgid "Norway" msgstr "Norvège" #: src/hd-data.c:304 msgid "Nepal #" msgstr "Népal #" #: src/hd-data.c:305 msgid "Nauru" msgstr "Nauru" #: src/hd-data.c:306 msgid "Niue" msgstr "Niue" #: src/hd-data.c:308 msgid "Oman" msgstr "Oman" #: src/hd-data.c:309 msgid "Panama" msgstr "Panama" #: src/hd-data.c:310 msgid "Peru" msgstr "Pérou" #: src/hd-data.c:311 msgid "French Polynesia" msgstr "Polynésie Française" #: src/hd-data.c:312 msgid "Papua New Guinea" msgstr "Papouasie-Nouvelle-Guinée" #: src/hd-data.c:313 msgid "Philippines" msgstr "Philippines" #: src/hd-data.c:314 msgid "Pakistan" msgstr "Pakistan" #: src/hd-data.c:315 msgid "Poland" msgstr "Pologne" #: src/hd-data.c:316 msgid "Saint-Pierre and Miquelon" msgstr "Saint-Pierre et Miquelon" #: src/hd-data.c:317 msgid "Pitcairn" msgstr "ÃŽles Pitcairn" #: src/hd-data.c:318 msgid "Puerto Rico" msgstr "Porto Rico" #: src/hd-data.c:320 msgid "Palau" msgstr "Belau" #: src/hd-data.c:321 msgid "Paraguay" msgstr "Paraguay" #: src/hd-data.c:322 msgid "Qatar" msgstr "Qatar" #: src/hd-data.c:323 msgid "Réunion" msgstr "Réunion" #: src/hd-data.c:324 msgid "Romania" msgstr "Romanie" #: src/hd-data.c:326 msgid "Rwanda" msgstr "Rwanda" #: src/hd-data.c:327 msgid "Saudi Arabia" msgstr "Arabie Saudite" #: src/hd-data.c:328 msgid "Solomon Islands" msgstr "ÃŽles Salomon" #: src/hd-data.c:329 msgid "Seychellen" msgstr "Seychelles" #: src/hd-data.c:330 msgid "Sudan" msgstr "Soudan" #: src/hd-data.c:331 msgid "Sweden" msgstr "Suède" #: src/hd-data.c:332 msgid "Singapore #" msgstr "Singapore #" #: src/hd-data.c:333 msgid "St Helena" msgstr "Ste Hélène" #: src/hd-data.c:334 msgid "Slovenia" msgstr "Slovénie" #: src/hd-data.c:335 msgid "Svalbard and Jan Mayen Islands" msgstr "ÃŽles Svalbard et Jan Mayen" #: src/hd-data.c:336 msgid "Slovakia" msgstr "Slovakie" #: src/hd-data.c:337 msgid "Sierra Leone" msgstr "Sierra Leone" #: src/hd-data.c:338 msgid "San Marino" msgstr "San Marino" #: src/hd-data.c:339 msgid "Senegal" msgstr "Sénégal" #: src/hd-data.c:340 msgid "Somalia" msgstr "Somalie" #: src/hd-data.c:341 msgid "Suriname #" msgstr "Suriname #" #: src/hd-data.c:342 msgid "Sao Tomé and Principe" msgstr "Sao Tomé et Principe" #: src/hd-data.c:343 msgid "El Salvador" msgstr "El Salvador" #: src/hd-data.c:344 msgid "Syrian Arab Republic (Syria)" msgstr "République arabe syrienne (Syrie)" #: src/hd-data.c:345 msgid "Swaziland" msgstr "Swaziland" #: src/hd-data.c:346 msgid "Turks and Caicos Islands" msgstr "ÃŽles Turks et Caïcos" #: src/hd-data.c:347 msgid "Chad" msgstr "Tchad" #: src/hd-data.c:348 msgid "Togo #" msgstr "Togo #" #: src/hd-data.c:349 msgid "Thailand #" msgstr "Thaïlande #" #: src/hd-data.c:350 msgid "Tajikistan" msgstr "Tajikistan" #: src/hd-data.c:351 msgid "Tokelau" msgstr "Tokelau" #: src/hd-data.c:352 msgid "Turkmenistan" msgstr "Turkménistan" #: src/hd-data.c:353 msgid "Tunisia" msgstr "Tunisie" #: src/hd-data.c:354 msgid "Tonga" msgstr "Tonga" #: src/hd-data.c:355 msgid "Turkey" msgstr "Turquie" #: src/hd-data.c:356 msgid "Trinidad and Tobago #" msgstr "Trinidad et Tobago #" #: src/hd-data.c:357 msgid "Tuvalu" msgstr "Tuvalu" #: src/hd-data.c:358 msgid "Taiwan" msgstr "Taiwan" #: src/hd-data.c:359 msgid "Tanzania" msgstr "Tanzanie" #: src/hd-data.c:360 msgid "Ukraine" msgstr "Ukraine" #: src/hd-data.c:361 msgid "Uganda" msgstr "Ouganda" #: src/hd-data.c:362 msgid "United States/Alaska" msgstr "États-Unis/Alaska" #: src/hd-data.c:363 msgid "United States/Alabama" msgstr "États-Unis/Alabama" #: src/hd-data.c:364 msgid "United States/Arkansas" msgstr "États-Unis/Arkansas" #: src/hd-data.c:365 msgid "United States/Arizona" msgstr "États-Unis/Arizona" #: src/hd-data.c:366 msgid "United States/California" msgstr "États-Unis/Californie" #: src/hd-data.c:367 msgid "United States/Colorado" msgstr "États-Unis/Colorado" #: src/hd-data.c:368 msgid "United States/Connecticut" msgstr "États-Unis/Connecticut" #: src/hd-data.c:369 msgid "United States/District of Columbia" msgstr "États-Unis/District de Colombia" #: src/hd-data.c:370 msgid "United States/Delaware" msgstr "États-Unis/Delaware" #: src/hd-data.c:371 msgid "United States/Florida" msgstr "États-Unis/Floride" #: src/hd-data.c:372 msgid "United States/Georgia" msgstr "États-Unis/Georgie" #: src/hd-data.c:373 msgid "United States/Hawaii" msgstr "États-Unis/Hawaii" #: src/hd-data.c:374 msgid "United States/Iowa" msgstr "États-Unis/Iowa" #: src/hd-data.c:375 msgid "United States/Idaho" msgstr "États-Unis/Idaho" #: src/hd-data.c:376 msgid "United States/Illinois" msgstr "États-Unis/Illinois" #: src/hd-data.c:377 msgid "United States/Indiana" msgstr "États-Unis/Indiana" #: src/hd-data.c:378 msgid "United States/Kansas" msgstr "États-Unis/Kansas" #: src/hd-data.c:379 msgid "United States/Kentucky" msgstr "États-Unis/Kentucky" #: src/hd-data.c:380 msgid "United States/Louisiana" msgstr "États-Unis/Lousiane" #: src/hd-data.c:381 msgid "United States/Massachusetts" msgstr "États-Unis/Massachusetts" #: src/hd-data.c:382 msgid "United States/Maryland" msgstr "États-Unis/maryland" #: src/hd-data.c:383 msgid "United States/Maine" msgstr "États-Unis/Maine" #: src/hd-data.c:384 msgid "United States/Michigan" msgstr "États-Unis/Michigan" #: src/hd-data.c:385 msgid "United States/Minnesota" msgstr "États-Unis/Minnesota" #: src/hd-data.c:386 msgid "United States/Missouri" msgstr "États-Unis/Missouri" #: src/hd-data.c:387 msgid "United States/Mississippi" msgstr "États-Unis/Missisippi" #: src/hd-data.c:388 msgid "United States/Montana" msgstr "États-Unis/Montana" #: src/hd-data.c:389 msgid "United States/North Carolina" msgstr "États-Unis/Caroline du Nord" #: src/hd-data.c:390 msgid "United States/North Dakota" msgstr "États-Unis/Dakota du Nord" #: src/hd-data.c:391 msgid "United States/Nebraska" msgstr "États-Unis/Nebraska" #: src/hd-data.c:392 msgid "United States/New Hampshire" msgstr "États-Unis/New Hampshire" #: src/hd-data.c:393 msgid "United States/New Jersey" msgstr "États-Unis/New Jersey" #: src/hd-data.c:394 msgid "United States/New Mexico" msgstr "États-Unis/Nouveau Mexique" #: src/hd-data.c:395 msgid "United States/Nevada" msgstr "États-Unis/Nevada" #: src/hd-data.c:396 msgid "United States/New York" msgstr "États-Unis/New York" #: src/hd-data.c:397 msgid "United States/Ohio" msgstr "États-Unis/Ohio" #: src/hd-data.c:398 msgid "United States/Oklahoma" msgstr "États-Unis/Oklahoma" #: src/hd-data.c:399 msgid "United States/Oregon" msgstr "États-Unis/Oregon" #: src/hd-data.c:400 msgid "United States/Pennsylvania" msgstr "États-Unis/Pennsylvanie" #: src/hd-data.c:401 msgid "United States/Rhode Island" msgstr "États-Unis/Rhode Island" #: src/hd-data.c:402 msgid "United States/South Carolina" msgstr "États-Unis/Caroline du Sud" #: src/hd-data.c:403 msgid "United States/South Dakota" msgstr "États-Unis/Dakota du Sud" #: src/hd-data.c:404 msgid "United States/Tennessee" msgstr "États-Unis/Tennessee" #: src/hd-data.c:405 msgid "United States/Texas" msgstr "États-Unis/Texas" #: src/hd-data.c:406 msgid "United States/Utah" msgstr "États-Unis/Utah" #: src/hd-data.c:407 msgid "United States/Virginia" msgstr "États-Unis/Virginie" #: src/hd-data.c:408 msgid "United States/Vermont" msgstr "États-Unis/Vermont" #: src/hd-data.c:409 msgid "United States/Washington" msgstr "États-Unis/Washington" #: src/hd-data.c:410 msgid "United States/Wisconsin" msgstr "États-Unis/Wisconsin" #: src/hd-data.c:411 msgid "United States/West Virginia" msgstr "États-Unis/Virgine de l'Ouest" #: src/hd-data.c:412 msgid "United States/Wyoming" msgstr "États-Unis/Wyoming" #: src/hd-data.c:413 msgid "Uruguay" msgstr "Uruguay" #: src/hd-data.c:414 msgid "Uzbekistan" msgstr "Uzbekistan" #: src/hd-data.c:415 msgid "St Vincent and Grenadines" msgstr "St Vincent et les Grenadines" #: src/hd-data.c:416 msgid "Venezuela" msgstr "Vénézuéla" #: src/hd-data.c:417 msgid "British Virgin Islands" msgstr "ÃŽles Vierges britanniques" #: src/hd-data.c:418 msgid "U.S. Virgin Islands" msgstr "ÃŽles Vierges américaines" #: src/hd-data.c:419 msgid "Viet Nam" msgstr "Viet Nam" #: src/hd-data.c:420 msgid "Vanuatu" msgstr "Vanuatu" #: src/hd-data.c:421 msgid "Wallis and Futuna Islands" msgstr "ÃŽles Wallis et Futuna" #: src/hd-data.c:422 msgid "Samoa" msgstr "Samoa" #: src/hd-data.c:423 msgid "Yemen" msgstr "Yémen" #: src/hd-data.c:424 msgid "Mayotte" msgstr "Mayotte" #: src/hd-data.c:425 msgid "Serbia and Montenegro" msgstr "Serbie et Monténégro" #: src/hd-data.c:426 msgid "South Africa" msgstr "Afrique du Sud" #: src/hd-data.c:427 msgid "Zambia" msgstr "Zambie" #: src/hd-data.c:428 msgid "Zimbabwe" msgstr "Zimbabwe" #: src/hd-data.c:458 msgid "1st Advent" msgstr "1er dimanche de l'Avant" #: src/hd-data.c:459 msgid "1st Sunday in Lent" msgstr "1er dimanche du Carême" #: src/hd-data.c:460 msgid "2nd Advent" msgstr "2e dimanche de l'Avant" #: src/hd-data.c:461 msgid "2nd Sunday in Lent" msgstr "2e dimanche du Carême" #: src/hd-data.c:462 msgid "3rd Advent" msgstr "3e dimanche de l'Avant" #: src/hd-data.c:463 msgid "3rd Sunday in Lent" msgstr "3e dimanche du Carême" #: src/hd-data.c:464 msgid "4th Advent" msgstr "4e dimanche de l'Avant" #: src/hd-data.c:465 msgid "4th Sunday in Lent" msgstr "4e dimanche du Carême" #: src/hd-data.c:466 msgid "7-5-3 Festival" msgstr "Festival 7-5-3" #: src/hd-data.c:467 msgid "Aborigines Day" msgstr "Fêtes des Arborigènes" #: src/hd-data.c:468 msgid "All Fool's Day" msgstr "Fête du Poisson d'Avril" #: src/hd-data.c:469 msgid "All Saints' Day" msgstr "Fête de la Toussaint" #: src/hd-data.c:470 msgid "All Souls' Day" msgstr "Fête de la Toussaint" #: src/hd-data.c:471 msgid "Alphabet Day" msgstr "Fête de l'Alphabet" #: src/hd-data.c:472 msgid "Anniversary of Auckland" msgstr "Anniversaire de Auckland" #: src/hd-data.c:473 msgid "Anniversary of Canterbury North" msgstr "Anniversaire de Canterbury Nord" #: src/hd-data.c:474 msgid "Anniversary of Canterbury South" msgstr "Anniversaire de Canterbury Sud" #: src/hd-data.c:475 msgid "Anniversary of Chatham Islands" msgstr "Anniversaire des ÃŽles Chatham" #: src/hd-data.c:476 msgid "Anniversary of Hawkes' Bay" msgstr "Anniversaire de la Baie Hawkes" #: src/hd-data.c:477 msgid "Anniversary of Marlborough" msgstr "Anniversaire de Marlborough" #: src/hd-data.c:478 msgid "Anniversary of Nelson" msgstr "Anniversaire de Nelson" #: src/hd-data.c:479 msgid "Anniversary of Otago" msgstr "Anniversaire de Otago" #: src/hd-data.c:480 msgid "Anniversary of Southland" msgstr "Anniversaire du Southland" #: src/hd-data.c:481 msgid "Anniversary of Taranaki" msgstr "Anniversaire de Taranaki" #: src/hd-data.c:482 msgid "Anniversary of Wellington" msgstr "Anniversaire de Wellington" #: src/hd-data.c:483 msgid "Anniversary of Westland" msgstr "Anniversaire de Westland" #: src/hd-data.c:484 msgid "Anzac Day" msgstr "Jour de Anzac" #: src/hd-data.c:485 msgid "Arbor Day" msgstr "Fête de Arbor" #: src/hd-data.c:486 msgid "Armed Forces Day" msgstr "Jour des Forces Armées (É.U.)" #: src/hd-data.c:487 msgid "Armistice Day" msgstr "Jour de l'Armistice" #: src/hd-data.c:488 msgid "Ash Monday" msgstr "Lundi des Cendres" #: src/hd-data.c:489 msgid "Ash Wednesday" msgstr "Mercredi des Cendres" #: src/hd-data.c:490 msgid "Ascension of Abdu'l-Baha" msgstr "Ascension de Abdu'l-Baha" #: src/hd-data.c:491 msgid "Ascension of Baha'u'llah" msgstr "Ascension de Baha'u'llah" #: src/hd-data.c:492 msgid "Birth of Baha'u'llah" msgstr "Naissance de Baha'u'llah" #: src/hd-data.c:493 msgid "Birth of the Bab" msgstr "Naissance de Bab" #: src/hd-data.c:494 msgid "Day of the Covenant" msgstr "Jour de l'Alliance" #: src/hd-data.c:495 msgid "Declaration of the Bab" msgstr "Déclaration de Bab" #: src/hd-data.c:496 msgid "First Day of Ridvan" msgstr "Premier Jour de Ridvan" #: src/hd-data.c:497 msgid "Martyrdom of the Bab" msgstr "Jour du martyr de Bab" #: src/hd-data.c:498 msgid "Bahá'i New Year's Day" msgstr "Jour du Nouvel An de Baha'i" #: src/hd-data.c:499 msgid "Ninth Day of Ridvan" msgstr "Neuvième Jour de Ridvan" #: src/hd-data.c:500 msgid "Twelfth Day of Ridvan" msgstr "Douzième Jour de Ridvan" #: src/hd-data.c:501 msgid "Bank Holiday" msgstr "Fête de la Banque" #: src/hd-data.c:502 msgid "Basque National Day" msgstr "Fête Nationale des Basques" #: src/hd-data.c:503 msgid "Battle of Boyne" msgstr "Jour la Bataille de Boyne" #: src/hd-data.c:504 msgid "Battle of Puebla" msgstr "Jour la Bataille de Puebla" #: src/hd-data.c:505 msgid "Beginning of Financial Year" msgstr "Début de l'Année Financière" #: src/hd-data.c:506 msgid "Benito Juárez Day" msgstr "Jour de Bénito Juárez" #: src/hd-data.c:507 msgid "Bodhidharma's Birthday" msgstr "Naissance de Bodhidharma" #: src/hd-data.c:508 msgid "Bosses' Day" msgstr "Jour de Bosses" #: src/hd-data.c:509 msgid "Boxing Day" msgstr "Boxing Day" #: src/hd-data.c:510 msgid "Bringing Home the Herds Day" msgstr "Jour du Retour à la Maison des Herds" #: src/hd-data.c:511 msgid "Bringing in the Harvest Day" msgstr "Jour de la Récolte" #: src/hd-data.c:512 msgid "Buddha's Birthday" msgstr "Anniversaire du Bouddha" #: src/hd-data.c:513 msgid "Burns Night" msgstr "Nuit des Feux" #: src/hd-data.c:514 msgid "Camoes Day" msgstr "Jour de Camoes" #: src/hd-data.c:515 msgid "Carnival" msgstr "Carnaval" #: src/hd-data.c:516 msgid "Beltane" msgstr "Beltane" #: src/hd-data.c:517 msgid "Imbolg" msgstr "Imbolg" #: src/hd-data.c:518 msgid "Lughnasa" msgstr "Lughnasa" #: src/hd-data.c:519 msgid "Samhain/Celtic New Year's Day" msgstr "Samhain/Jour du Nouvel An Celte" #: src/hd-data.c:520 msgid "Children's Day" msgstr "Journée des Enfants" #: src/hd-data.c:521 msgid "Cycle" msgstr "Cycle" #: src/hd-data.c:522 msgid "Chinese New Year's Day" msgstr "Jour du Nouvel An chinois" #: src/hd-data.c:523 msgid "Chinese New Year's Eve" msgstr "Veille du Nouvel An chinois" #: src/hd-data.c:524 msgid "Christmas Day" msgstr "Fête de Noël" #: src/hd-data.c:525 msgid "Christmas Eve" msgstr "Veille de Noël" #: src/hd-data.c:526 msgid "Christ's Ascension Day" msgstr "Ascension du Christ" #: src/hd-data.c:527 msgid "Chrysanthenum Day" msgstr "Jour du Chrysentème" #: src/hd-data.c:528 msgid "Citizenship Day" msgstr "Jour de la Citoyenneté" #: src/hd-data.c:529 msgid "Civic Holiday" msgstr "Congé civique" #: src/hd-data.c:530 msgid "Columbus Day" msgstr "Fête de Christophe Colomb (É.U.)" #: src/hd-data.c:531 msgid "Coming of Age Day" msgstr "Jour de la Venue de l'Âge" #: src/hd-data.c:532 msgid "Confucius' Birthday" msgstr "Naissance de Confucius" #: src/hd-data.c:533 msgid "Constitution Anniversary" msgstr "Anniversaire de la Constitution" #: src/hd-data.c:534 msgid "Coptic New Year's Day" msgstr "Jour du Nouvel An Copte" #: src/hd-data.c:535 msgid "Cosmonauts' Day" msgstr "Jour des Cosmonautes" #: src/hd-data.c:536 msgid "Cross Raising Day" msgstr "Jour du Soulèvement Croisé" #: src/hd-data.c:537 msgid "Culture Day" msgstr "Jour de la Culture" #: src/hd-data.c:538 msgid "Day after Mid-Autumn Festival" msgstr "Jour après le Festival de la Mi-automne" #: src/hd-data.c:539 msgid "Day after Tomb-Sweeping Day" msgstr "Jour après le Jour des Tombeaux" #: src/hd-data.c:540 msgid "Day of Andalucia" msgstr "Jour de Andalucia" #: src/hd-data.c:541 msgid "Day of Catalonia" msgstr "Jour de Catalonia" #: src/hd-data.c:542 msgid "Day of Galicia" msgstr "Jour de Galicia" #: src/hd-data.c:543 msgid "Day of Prayer and Repentance" msgstr "Jour de Prières et de Repentance" #: src/hd-data.c:544 msgid "Day of Reconciliation" msgstr "Jour de la Réconciliation" #: src/hd-data.c:545 msgid "Defenders of Motherland Day" msgstr "Jour des Défenseurs de la Terre Mère" #: src/hd-data.c:546 msgid "Double-9 Day" msgstr "Jour du Double-9" #: src/hd-data.c:547 msgid "Dragon Boat Festival" msgstr "Festival des bateaux Dragon" #: src/hd-data.c:548 msgid "Dynasty Day" msgstr "Jour de la Dynastie" #: src/hd-data.c:549 msgid "Easter Monday" msgstr "Lundi de Pâques" #: src/hd-data.c:550 msgid "Easter Sunday" msgstr "Dimanche de Pâques" #: src/hd-data.c:551 msgid "Lunar Eclipse" msgstr "Éclipse lunaire" #: src/hd-data.c:552 msgid "Solar Eclipse" msgstr "Éclipse solaire" #: src/hd-data.c:553 msgid "Annular" msgstr "Annulaire" #: src/hd-data.c:554 msgid "Partial" msgstr "Partiel" #: src/hd-data.c:555 msgid "Penumbral" msgstr "Pénombre" #: src/hd-data.c:556 msgid "Total" msgstr "Total" #: src/hd-data.c:557 msgid "Eindhoven's Liberation" msgstr "Jour de la Libération de Eindhoven" #: src/hd-data.c:558 msgid "Election Day" msgstr "Jour des Élections (É.U.)" #: src/hd-data.c:559 msgid "Emperor's Birthday" msgstr "Naissance de l'Empereur" #: src/hd-data.c:560 msgid "Equinox Day" msgstr "Jour de l'équinoxe" #: src/hd-data.c:561 msgid "Ethiopic New Year's Day" msgstr "Jour du Nouvel An Éthiopien" #: src/hd-data.c:562 msgid "Father's Day" msgstr "Fête des Pères" #: src/hd-data.c:563 msgid "Feast of Corpus Christi" msgstr "Fête de Corpus Christi" #: src/hd-data.c:564 msgid "Feast of Fortune" msgstr "Fête de la Fortune" #: src/hd-data.c:565 msgid "Feast of Heart Jesus" msgstr "Fête du Coeur de Jésus" #: src/hd-data.c:566 msgid "Festival of Lanterns" msgstr "Festival des Lanternes" #: src/hd-data.c:567 msgid "Festival of Sadeh" msgstr "Festival de Sadeh" #: src/hd-data.c:568 msgid "Flag Day" msgstr "Jour du Drapeau (É.U.)" #: src/hd-data.c:569 msgid "Flemish Culture Day" msgstr "Journée ce la Culture (Flandre)" #: src/hd-data.c:570 msgid "Founding of the Communist Party" msgstr "Fondation du Parti Communiste" #: src/hd-data.c:571 msgid "French Culture Day" msgstr "Journée de la Culture (France)" #: src/hd-data.c:572 msgid "French Revolutionary" msgstr "Jour de la Révolution Française" #: src/hd-data.c:573 msgid "Friendship Day" msgstr "Jour de l'Amitié" #: src/hd-data.c:574 msgid "German Unity Day" msgstr "Jour de la réunification de l'Allemagne" #: src/hd-data.c:575 msgid "Good Friday" msgstr "Vendredi Saint" #: src/hd-data.c:576 msgid "Good Saturday/Easter Eve" msgstr "Samedi Saint/Veille de Pâques" #: src/hd-data.c:577 msgid "Grandparents' Day" msgstr "Fête des Grand Parents" #: src/hd-data.c:578 msgid "Greenery Day" msgstr "Jour de la Verdure" #: src/hd-data.c:579 msgid "Grotto Day" msgstr "Fête de la Grotte" #: src/hd-data.c:580 msgid "Groundhog Day" msgstr "Jour de la Marmotte" #: src/hd-data.c:581 msgid "Guadalupe Virgin's Day" msgstr "Jour de la Vierge de la Guadeloupe" #: src/hd-data.c:582 msgid "Guy Fawke's Day" msgstr "Jour de Guy Fawke" #: src/hd-data.c:583 msgid "Halloween" msgstr "Halloween (CAN-É.U.)" #: src/hd-data.c:584 msgid "Health and Sport's Day" msgstr "Fête de la Santé et du Sport" #: src/hd-data.c:585 msgid "Hannukah/Festival of Lights" msgstr "Hhanouka/Fête des Lumières" #: src/hd-data.c:586 msgid "Lag B'Omer" msgstr "Lag ba Omer" #: src/hd-data.c:587 msgid "Pesach/Passover" msgstr "Pessahh/Pâque juive" #: src/hd-data.c:588 msgid "Purim/Feast of Lots" msgstr "Pourim/" #: src/hd-data.c:589 msgid "Rosh Hashana/New Year's Day" msgstr "Rosh Hashana/Jour du Nouvel An" #: src/hd-data.c:590 msgid "Shavuot/Giving of the Torah" msgstr "Shavouot/Don de la Torah" #: src/hd-data.c:591 msgid "Shushan Purim" msgstr "Shushan Purim" #: src/hd-data.c:592 msgid "Simchat Torah" msgstr "Simchat Torah" #: src/hd-data.c:593 msgid "Sukkot/Feast of Tabernacles" msgstr "Souccot/Fêtes des cabanes" #: src/hd-data.c:594 msgid "Tisha B'Av/Fasting Day" msgstr "Tisha be Av/Jour de Deuil" #: src/hd-data.c:595 msgid "Tu B'Shevat/New Year of Trees" msgstr "Tou bi Shvat/Nouvel An des Arbres" #: src/hd-data.c:596 msgid "Yom Hashoah/Holocaust Memorial" msgstr "Yom Hashoah/Jour du Mémorial de l'Holocauste" #: src/hd-data.c:597 msgid "Yom Hazikaron/Soldiers Memorial" msgstr "Yom Hazikaron/Jour du Mémorial des Soldats" #: src/hd-data.c:598 msgid "Yom Ha Azmaut/Independence Day" msgstr "Yom Ha Azmaut/Jour de l'Indépendance" #: src/hd-data.c:599 msgid "Yom Kippur/Atonement Day" msgstr "Yom Kipour/Jour du Grand Pardon" #: src/hd-data.c:600 msgid "Yom Yerushalayim/Jerusalem Day" msgstr "Yom Yerushalayim/Fête de Jérusalem" #: src/hd-data.c:601 msgid "Holy Innocent's Day" msgstr "Fête des Saints Innocents" #: src/hd-data.c:602 msgid "Holy Trinity" msgstr "Sainte Trinité" #: src/hd-data.c:603 msgid "Huravee Day" msgstr "Fête de Huravee" #: src/hd-data.c:604 msgid "Independence Day" msgstr "Fête de l'Indépendance" #: src/hd-data.c:605 msgid "Independence Movement Day" msgstr "Jour du Mouvement de l'Indépendance" #: src/hd-data.c:606 msgid "Independence Proclamation" msgstr "Proclamation de l'Indépendance" #: src/hd-data.c:607 msgid "Indian New Year's Day" msgstr "Jour du Nouvel An Indien" #: src/hd-data.c:608 msgid "Aga Khan's Birthday" msgstr "Naissance de Aga Khan" #: src/hd-data.c:609 msgid "Ashura'" msgstr "Ashura'" #: src/hd-data.c:610 msgid "Eid-al-Adha" msgstr "Eid-al-Adha" #: src/hd-data.c:611 msgid "Eid-al-Fitr" msgstr "Eid-al-Fitr" #: src/hd-data.c:612 msgid "Eid-i-Milad-un-Nabi" msgstr "Eid-i-Milad-un-Nabi" #: src/hd-data.c:613 msgid "Ghadir" msgstr "Ghadir" #: src/hd-data.c:614 msgid "Imamat Day" msgstr "Jour de Imamat" #: src/hd-data.c:615 msgid "Islamic New Year's Day" msgstr "Jour du Nouvel An Islamique" #: src/hd-data.c:616 msgid "Nuzul-al-Qur'an" msgstr "Nuzul-al-Qur'an" #: src/hd-data.c:617 msgid "Quds Day" msgstr "Jour de Quds" #: src/hd-data.c:618 msgid "Ramadan" msgstr "Ramadan" #: src/hd-data.c:619 msgid "Shab-e-Bara't" msgstr "Shab-e-Bara't" #: src/hd-data.c:620 msgid "Shab-e-Mi'raj" msgstr "Shab-e-Mi'raj" #: src/hd-data.c:621 msgid "Shab-e Qadr" msgstr "Shab-e Qadr" #: src/hd-data.c:622 msgid "Waqf-al-Arafat" msgstr "Waqf-al-Arafat" #: src/hd-data.c:623 msgid "Japanese New Year's Day" msgstr "Jour du Nouvel An japonais" #: src/hd-data.c:624 msgid "Japanese New Year's Eve" msgstr "Veille du Jour du Nouvel An Japonais" #: src/hd-data.c:625 msgid "Jesus' Circumcision" msgstr "Circoncision de Jésus" #: src/hd-data.c:626 msgid "Kwanzaa" msgstr "Kwanzaa" #: src/hd-data.c:627 msgid "Labour Day" msgstr "Fête du Travail" #: src/hd-data.c:628 msgid "Labour Thanksgiving Day" msgstr "Fête du Travail et de l'Action de Grâce" #: src/hd-data.c:629 msgid "Lao Tze's Birthday" msgstr "Naissance de Lao Tze" #: src/hd-data.c:630 msgid "Liberation Day" msgstr "Jour de la Libération" #: src/hd-data.c:631 msgid "Marine Day" msgstr "Fête de la Marine" #: src/hd-data.c:632 msgid "Martinimas" msgstr "Martinimas" #: src/hd-data.c:633 msgid "Martin L. King's Day" msgstr "Jour de Martin L. King (É.U.)" #: src/hd-data.c:634 msgid "Martyrs' Day" msgstr "Fête des Martyrs" #: src/hd-data.c:635 msgid "Mary's Annunciation Day" msgstr "Annonciation de la Vierge" #: src/hd-data.c:636 msgid "Mary's Ascension Day" msgstr "Assomption de la Vierge" #: src/hd-data.c:637 msgid "Mary's Candlemas" msgstr "Chandeleur" #: src/hd-data.c:638 msgid "Mary's Expectation" msgstr "Expectation de Marie" #: src/hd-data.c:639 msgid "Mary's Immaculate Conception" msgstr "Immaculée Conception" #: src/hd-data.c:640 msgid "Mary's Maternity" msgstr "Maternité de Marie" #: src/hd-data.c:641 msgid "Mary's Name" msgstr "Jour du Saint Nom de Marie" #: src/hd-data.c:642 msgid "Mary's Nativity" msgstr "Nativité de Marie" #: src/hd-data.c:643 msgid "Mary's Sacrifice" msgstr "Sacrifice de Marie" #: src/hd-data.c:644 msgid "Mary's Visitation" msgstr "Jour de la Visitation" #: src/hd-data.c:645 msgid "Mary - Blessed Virgin" msgstr "Immaculée Conception de Marie" #: src/hd-data.c:646 msgid "Maundy Thursday" msgstr "Jeudi Saint" #: src/hd-data.c:647 msgid "May Day" msgstr "1er Mai" #: src/hd-data.c:648 msgid "St John's/Midsummer Day" msgstr "Fête de la St-Jean/Jour du milieu de l'Été" #: src/hd-data.c:649 msgid "Mid-Autumn Festival" msgstr "Festival de la mi-automne" #: src/hd-data.c:650 msgid "Mid-Spring Festival" msgstr "Festival de la mi-printemps" #: src/hd-data.c:651 msgid "Mid-Year Festival" msgstr "Festival de la mi-année" #: src/hd-data.c:652 msgid "Waxing Half Moon" msgstr "Demi lune croissante" #: src/hd-data.c:653 msgid "Full Moon" msgstr "Pleine lune" #: src/hd-data.c:654 msgid "Waning Half Moon" msgstr "Demi lune décroissante" #: src/hd-data.c:655 msgid "New Moon" msgstr "Nouvelle lune" #: src/hd-data.c:656 msgid "Mother's Day" msgstr "Fête des Mères" #: src/hd-data.c:657 msgid "Mother in Law's Day" msgstr "Fête des Belles Mères" #: src/hd-data.c:658 msgid "Music Water Banquet" msgstr "Banquet de la musique d'eau" #: src/hd-data.c:659 msgid "National Foundation Day" msgstr "Fête de la Fondation Nationale" #: src/hd-data.c:660 msgid "National Holiday" msgstr "Fête Nationale" #: src/hd-data.c:661 msgid "National Mourning Day" msgstr "Jour de Deuil National" #: src/hd-data.c:662 msgid "New Year's Day" msgstr "Jour de l'An" #: src/hd-data.c:663 msgid "Nurses' Day" msgstr "Fête des Infirmières" #: src/hd-data.c:664 msgid "Old-Armenic New Year" msgstr "Ancien Nouvel An Arménien" #: src/hd-data.c:665 msgid "Old-Egyptic New Year" msgstr "Ancien Nouvel An Égyptien" #: src/hd-data.c:666 msgid "Orthodox New Year's Day" msgstr "Jour du Nouvel An Orthodoxe" #: src/hd-data.c:667 msgid "Our Lady Aparecida Day" msgstr "Fête de Notre Dame Aparecida" #: src/hd-data.c:668 msgid "Palm Sunday" msgstr "Dimanche des rameaux" #: src/hd-data.c:669 msgid "Parent's Day" msgstr "Fête des Parents" #: src/hd-data.c:670 msgid "Passion Sunday" msgstr "Dimanche de la Passion" #: src/hd-data.c:671 msgid "Peace Festival" msgstr "Festival de la Paix" #: src/hd-data.c:672 msgid "Peach Festival" msgstr "Festival de la Pêche" #: src/hd-data.c:673 msgid "Whitsunday/Pentecost" msgstr "Dimanche de la Pentecôte" #: src/hd-data.c:674 msgid "Noruz/Persian New Year's Day" msgstr "Jour du Nouvel An Perse/Noruz" #: src/hd-data.c:675 msgid "Prayer Day" msgstr "Jour de la Prière" #: src/hd-data.c:676 msgid "Presidential Inauguration" msgstr "Jour de l'Inauguration Présidentielle" #: src/hd-data.c:677 msgid "Presidents' Day" msgstr "Jour du Président (É.U.)" #: src/hd-data.c:678 msgid "Presidents' Inform" msgstr "Avis du Président" #: src/hd-data.c:679 msgid "President Lincoln's Birthday" msgstr "Naissance du Président Lincoln (É.U.)" #: src/hd-data.c:680 msgid "Princess' Day" msgstr "Fête de la Princesse" #: src/hd-data.c:681 msgid "Quinquagesima Sunday" msgstr "Dimanche des Quinquangénaires" #: src/hd-data.c:682 msgid "Reformation Day" msgstr "Jour de la Réforme (Slovénie)" #: src/hd-data.c:683 msgid "Remembrance/Memorial Day" msgstr "Jour du Souvenir" #: src/hd-data.c:684 msgid "Republic Day" msgstr "Fête de la République" #: src/hd-data.c:685 msgid "Respect for the Aged Day" msgstr "Jour de Respect des Aînés" #: src/hd-data.c:686 msgid "Revolution Day" msgstr "Jour de la Révolution" #: src/hd-data.c:687 msgid "Rio de Janeiro Anniversary" msgstr "Anniversaire de Rio de Janeiro" #: src/hd-data.c:688 msgid "Rogation Sunday" msgstr "Dimanche de Rogation" #: src/hd-data.c:689 msgid "Sao Paulo Anniversary" msgstr "Anniversaire de Sao Paulo" #: src/hd-data.c:690 msgid "Sapporo Snow Festival" msgstr "Festival des Neiges de Sapporo" #: src/hd-data.c:691 msgid "Season Change/Bean-Festival" msgstr "Changement de Saison/Festival des fèves" #: src/hd-data.c:692 msgid "Septuagesima Sunday" msgstr "Dimanche des Septuagénaires" #: src/hd-data.c:693 msgid "Seven Sleepers Day" msgstr "Jour des Sept Dormeurs" #: src/hd-data.c:694 msgid "Sexagesima Sunday" msgstr "Dimanche des Sexagénaires" #: src/hd-data.c:695 msgid "Shrove Tuesday/Mardi Gras" msgstr "Mardi Gras" #: src/hd-data.c:696 msgid "Solstice Day" msgstr "Jour du solstice" #: src/hd-data.c:697 msgid "Soot-Sweeping Day" msgstr "Jour du Balayage de la Suie" #: src/hd-data.c:698 msgid "Spring Festival" msgstr "Festival du Printemps" #: src/hd-data.c:699 msgid "Start of common month" msgstr "Début d'un mois commun" #: src/hd-data.c:700 msgid "Start of leap month" msgstr "Début du mois bissextile" #: src/hd-data.c:701 msgid "Star Festival" msgstr "Festival des Étoiles" #: src/hd-data.c:702 msgid "St Andrew's Day" msgstr "Fête de St-André" #: src/hd-data.c:703 msgid "St Bartholomew Day" msgstr "Fête de St-Bartholomew" #: src/hd-data.c:704 msgid "St Berchtold's Day" msgstr "Fête de St-Berchtold" #: src/hd-data.c:705 msgid "St David's Day" msgstr "Fête de St-David" #: src/hd-data.c:706 msgid "St Edward's Day" msgstr "Fête de St-Édouard" #: src/hd-data.c:707 msgid "St George's Day" msgstr "Fête de St-George" #: src/hd-data.c:708 msgid "St James' Day" msgstr "Fête de St-Jacques" #: src/hd-data.c:709 msgid "St Joseph's Day" msgstr "Fête de St-Joseph" #: src/hd-data.c:710 msgid "St Laurentius Day" msgstr "Fête de St-Laurentius" #: src/hd-data.c:711 msgid "St Nicholas' Day" msgstr "Fête de St-Nicolas" #: src/hd-data.c:712 msgid "St Nicholas' Eve" msgstr "Veille de la Fête de St-Nicholas" #: src/hd-data.c:713 msgid "St Patrick's Day" msgstr "Fête de St-Patrick" #: src/hd-data.c:714 msgid "St Peter and St Paul" msgstr "St-Pierre et St-Paul" #: src/hd-data.c:715 msgid "St Stephen's Day" msgstr "Fête de St-Stéphane" #: src/hd-data.c:716 msgid "St Valentine's Day" msgstr "Fête de St-Valentin" #: src/hd-data.c:717 msgid "Sunday of the Dead" msgstr "Dimanche des Morts" #: src/hd-data.c:718 msgid "Swallow Day" msgstr "Journée des Hirondelles" #: src/hd-data.c:719 msgid "Sweetest Day" msgstr "Jour de la Sympathie" #: src/hd-data.c:720 msgid "Sylvester/New Year's Eve" msgstr "St-Sylvestre/Veille du Nouvel An" #: src/hd-data.c:721 msgid "Teacher's Day" msgstr "Fête des Professeurs (Taïwan)" #: src/hd-data.c:722 msgid "Thai New Year's Day" msgstr "Jour du Nouvel An Thai" #: src/hd-data.c:723 msgid "Thanksgiving Day" msgstr "Jour de l'Action de Grâce" #: src/hd-data.c:724 msgid "The King's Birthday" msgstr "Naissance du Roi" #: src/hd-data.c:725 msgid "The Queen's Birthday" msgstr "Naissance de la Reine" #: src/hd-data.c:726 msgid "Epiphany/Three King's Day" msgstr "Épiphanie/Fête des Rois" #: src/hd-data.c:727 msgid "Tiradentes Day" msgstr "Jour de Tiradentes" #: src/hd-data.c:728 msgid "Tomb-Sweeping Day" msgstr "Jour des Tombeaux" #: src/hd-data.c:729 msgid "Transfiguration Day" msgstr "Jour de la Transfiguration" #: src/hd-data.c:730 msgid "Tynwald Day" msgstr "Jour de Tynwald" #: src/hd-data.c:731 msgid "Valborg's Eve" msgstr "Veille de Valborg" #: src/hd-data.c:732 msgid "Venice Carnival" msgstr "Carnaval de Venise" #: src/hd-data.c:733 msgid "Veteran's Day" msgstr "Jour du souvenir" #: src/hd-data.c:734 msgid "Victoria Day" msgstr "Fête de la Reine (Ca)/Fête de Dollard (Fr-Ca)" #: src/hd-data.c:735 msgid "Victory Day" msgstr "Jour de la Victoire" #: src/hd-data.c:736 msgid "Whit Monday" msgstr "Lundi de la Pentecôte" #: src/hd-data.c:737 msgid "Women's Day" msgstr "Fête des Femmes" #: src/hd-data.c:738 msgid "Women's Shrove Day" msgstr "Jour de la Confession des Femmes" #: src/hd-data.c:739 msgid "World Animal Day" msgstr "Journée mondiale des animaux" #: src/hd-data.c:740 msgid "Youth Day" msgstr "Fête des Jeunes" #: src/hd-data.c:746 msgid "Adelaide Cup Day" msgstr "Fête de la Coupe Adelaide" #: src/hd-data.c:747 msgid "Admission Day" msgstr "Jour de l'Admission" #: src/hd-data.c:748 msgid "Alaska Day" msgstr "Fête de l'Alaska" #: src/hd-data.c:749 msgid "Aleksis Kivi Day" msgstr "Jour de Aleksis Kivi" #: src/hd-data.c:750 msgid "Alice-Springs Show Day" msgstr "Jour de Alice-Springs" #: src/hd-data.c:751 msgid "All Saints' Eve" msgstr "Veille de la Toussaint" #: src/hd-data.c:752 msgid "Americas Day" msgstr "Fêtes des Amériques" #: src/hd-data.c:753 msgid "Angam Day" msgstr "Fête de Angam" #: src/hd-data.c:755 msgid "Anniversary of Amir's Succession" msgstr "Anniversaire de la Succession de Amir" #: src/hd-data.c:756 msgid "Anniversary of Armed Struggle" msgstr "Anniversaire de la Bataille Armée" #: src/hd-data.c:757 msgid "Anniversary of Green March" msgstr "Anniversaire de la Marche Verte" #: src/hd-data.c:758 msgid "Antillian Day" msgstr "Fête des Antilles" #: src/hd-data.c:759 msgid "Arab League Day" msgstr "Fête de la Ligue Arabe" #: src/hd-data.c:761 msgid "Archbishop Makarios' Memorial Day" msgstr "Jour du Mémorial de l'Archevêque Makarios" #: src/hd-data.c:762 msgid "Archbishop Makarios' Name-Day" msgstr "Jour de l'Archevêque Makarios" #: src/hd-data.c:763 msgid "Arengo Anniversary" msgstr "Anniversaire de Arengo" #: src/hd-data.c:764 msgid "Army Coup Day" msgstr "Jour du Coup de l'Armée" #: src/hd-data.c:765 msgid "Arrival of the Swiss" msgstr "Arrivée des Suisses" #: src/hd-data.c:766 msgid "Artigas' Birthday" msgstr "Fête de Artigas" #: src/hd-data.c:767 msgid "Asuncion Day" msgstr "Fête de l'Assomption" #: src/hd-data.c:768 msgid "Ataturk Memorial Day" msgstr "Jour du Mémorial de Ataturk" #: src/hd-data.c:769 msgid "Authority's Power Day" msgstr "Jour de la Force de l'Autorité" #: src/hd-data.c:770 msgid "Ba'ath Revolution Day" msgstr "Fête de la Révolution Ba'ath" #: src/hd-data.c:771 msgid "Baron Bliss Day" msgstr "Jour du Baron Bliss" #: src/hd-data.c:772 msgid "Bataan Day" msgstr "Jour de Bataan" #: src/hd-data.c:773 msgid "Battle of Angamos" msgstr "Jour la Bataille de Angamos" #: src/hd-data.c:774 msgid "Battle of Boyacá" msgstr "Jour la Bataille de Boyacá" #: src/hd-data.c:775 msgid "Battle of Carabobo" msgstr "Jour la Bataille de Carabobo" #: src/hd-data.c:776 msgid "Battle of Iquique" msgstr "Jour la Bataille de Iquique" #: src/hd-data.c:777 msgid "Battle of Las Piedras" msgstr "Jour la Bataille de Las Piedras" #: src/hd-data.c:778 msgid "Battle of Näfels" msgstr "Jour la Bataille de Näfels" #: src/hd-data.c:779 msgid "Beginning of Summer" msgstr "Début de l'Été" #: src/hd-data.c:780 msgid "Belgrade's Day" msgstr "Fête de Belgrade" #: src/hd-data.c:781 msgid "Bennington Battle Day" msgstr "Jour de la Bataille de Bennington" #: src/hd-data.c:782 msgid "Blessing of the Water" msgstr "Bénédiction de l'Eau" #: src/hd-data.c:783 msgid "Bloomsday" msgstr "Journée de la Floraison" #: src/hd-data.c:784 msgid "Boganda Day" msgstr "Fête de Boganda" #: src/hd-data.c:785 msgid "Bonaire Day" msgstr "Fête de Bonaire" #: src/hd-data.c:786 msgid "Boqueron Battle Day" msgstr "Jour la Bataille de Boqueron" #: src/hd-data.c:787 msgid "Botswana Day" msgstr "Fête du Botswana" #: src/hd-data.c:788 msgid "Bounty Day" msgstr "Fête de Bounty" #: src/hd-data.c:789 msgid "Bunker Hill Day" msgstr "Fête de Bunker Hill" #: src/hd-data.c:790 msgid "Burning of Jan Hus" msgstr "Jan Hus au bûcher" #: src/hd-data.c:791 msgid "Canberra Day" msgstr "Fête de Canberra" #: src/hd-data.c:792 msgid "Caricom Day" msgstr "Fête de la Caricom" #: src/hd-data.c:793 msgid "Casimir Pulaski's Birthday" msgstr "Anniversaire de Casimir Pulaski" #: src/hd-data.c:794 msgid "Cassinga Day" msgstr "Fête de Cassinga" #: src/hd-data.c:795 msgid "Cayenne Festival" msgstr "Festival de Cayenne" #: src/hd-data.c:796 msgid "Cesar Chavez Day" msgstr "Jour de César Chavez" #: src/hd-data.c:797 msgid "Charter Day" msgstr "Fête de Charter" #: src/hd-data.c:798 msgid "Chiang Kai-shek's Birthday" msgstr "Anniversaire de Chiang Kai-shek" #: src/hd-data.c:799 msgid "Children's White Sunday" msgstr "Dimanche Blancs des Enfants" #: src/hd-data.c:800 msgid "Colon Day" msgstr "Jour de Colon" #: src/hd-data.c:801 msgid "Colorado Day" msgstr "Fête du Colorado" #: src/hd-data.c:802 msgid "Commonwealth Day" msgstr "Jour du Commonwealth" #: src/hd-data.c:803 msgid "Compact Day" msgstr "Jour de Compact" #: src/hd-data.c:804 msgid "Confederal Agreement Day" msgstr "Jour de l'Accord Confédéral" #: src/hd-data.c:805 msgid "Coronation Day" msgstr "Fête du Couronnement" #: src/hd-data.c:806 msgid "Cup Match Day" msgstr "Jour du Match de la Coupe" #: src/hd-data.c:807 msgid "Custom Chief's Day" msgstr "Jour de la Coutume des Chefs" #: src/hd-data.c:808 msgid "C. Mapinduzi Day" msgstr "Fête de C. Mapinduzi" #: src/hd-data.c:809 msgid "Darwin Show Day" msgstr "Jour de Darwin" #: src/hd-data.c:810 msgid "Day of Goodwill" msgstr "Jour de la Bonne Volonté" #: src/hd-data.c:811 msgid "Day of Students Revolt" msgstr "Jour de la Révolte Étudiante" #: src/hd-data.c:812 msgid "Day of the Free Laos" msgstr "Jour de la Libération du Laos" #: src/hd-data.c:813 msgid "Death of H. Christophe" msgstr "Mort de H. Christophe" #: src/hd-data.c:814 msgid "Death of J. Dessalines" msgstr "Mort de J. Dessalines" #: src/hd-data.c:815 msgid "Death of President Abdallah" msgstr "Mort du Président Abdallah" #: src/hd-data.c:816 msgid "Death of President Cheikh" msgstr "Mort du Président Cheikh" #: src/hd-data.c:817 msgid "Death of President Soilih" msgstr "Mort du Président Soilih" #: src/hd-data.c:818 msgid "Death of Qaid-i-Azam" msgstr "Mort de Qaid-i-Azam" #: src/hd-data.c:819 msgid "Death of T. Louverture" msgstr "Mort de T. Louverture" #: src/hd-data.c:820 msgid "Defenders Day" msgstr "Jour des Défenseurs" #: src/hd-data.c:821 msgid "Dia del Padre" msgstr "Jour du Père" #: src/hd-data.c:822 msgid "Dia de los Maestros" msgstr "Jour des Maîtres" #: src/hd-data.c:823 msgid "Discovery Day" msgstr "Jour de la Découverte" #: src/hd-data.c:824 msgid "Downfall of the Dergue" msgstr "Chute de Dergue" #: src/hd-data.c:825 msgid "Dry Season Celebration" msgstr "Célébration de la Saison Sèche" #: src/hd-data.c:826 msgid "Dr. Sun Yat-sen's Birthday" msgstr "Anniversaire du Dr. Sun Yat-Sen" #: src/hd-data.c:827 msgid "Duarte's Birthday" msgstr "Anniversaire de Duarte" #: src/hd-data.c:828 msgid "Easter Tuesday" msgstr "Mardi de Pâques" #: src/hd-data.c:829 msgid "Economic Liberation Day" msgstr "Jour de la Libération Économique" #: src/hd-data.c:830 msgid "Eight Hours Day" msgstr "Jour des Huit Heures" #: src/hd-data.c:831 msgid "Elections for National Assembly" msgstr "Élection de l'Assemblée Nationale" #: src/hd-data.c:832 msgid "Errol Barrow Day" msgstr "Jour d'Errol Barrow" #: src/hd-data.c:833 msgid "Evacuation Day" msgstr "Jour de l'Évacuation" #: src/hd-data.c:834 msgid "Eve of Epiphany" msgstr "Veille de l'Épiphanie" #: src/hd-data.c:835 msgid "Expedition of the 33" msgstr "Expédition des 33" #: src/hd-data.c:836 msgid "E. Hostos' Birthday" msgstr "Anniversaire de E. Hostos" #: src/hd-data.c:837 msgid "Family Day" msgstr "Jour de la Famille" #: src/hd-data.c:838 msgid "FAO Day" msgstr "Jour de FAO" #: src/hd-data.c:839 msgid "Farmers' Day" msgstr "Fête des Fermiers" #: src/hd-data.c:840 msgid "Father Leval Day" msgstr "Fête du Père Leval" #: src/hd-data.c:841 msgid "Feast of Our Theotokos" msgstr "Fête de la Theotokos" #: src/hd-data.c:842 msgid "Fisherman's Day" msgstr "Jour des Pécheurs" #: src/hd-data.c:843 msgid "Foundation of NPLA Day" msgstr "Fête de la Fondation du NPLA" #: src/hd-data.c:844 msgid "Founding of People's Party" msgstr "Fondation du Parti du Peuple" #: src/hd-data.c:845 msgid "Garifuna Day" msgstr "Fête de Garifuna" #: src/hd-data.c:847 msgid "General San Martin's Anniversary" msgstr "Anniversaire du Général San Martin" #: src/hd-data.c:848 msgid "Gospel Day" msgstr "Jour de l'Évangile" #: src/hd-data.c:849 msgid "Guacanaste Day" msgstr "Fête de Guacanaste" #: src/hd-data.c:850 msgid "Gustavus Adolphus' Day" msgstr "Jour de Gustavus Adolphus" #: src/hd-data.c:851 msgid "Heritage Day" msgstr "Fête de l'Héritage" #: src/hd-data.c:852 msgid "Heroes Day" msgstr "Fête des Héros" #: src/hd-data.c:853 msgid "Hobart Show Day" msgstr "Jour de Hobart" #: src/hd-data.c:854 msgid "Holy Wednesday" msgstr "Mercredi Saint" #: src/hd-data.c:855 msgid "Ho Chi Minh's Birthday" msgstr "Anniversaire de Ho Chi Minh" #: src/hd-data.c:856 msgid "Human Rights Day" msgstr "Jour des Droits de la Personne" #: src/hd-data.c:857 msgid "Hurricane Supplication Day" msgstr "Jour de la Supplication de l'Ouragan" #: src/hd-data.c:858 msgid "Hurricane Thanksgiving Day" msgstr "Jour de Remerciement de l'Ouragan" #: src/hd-data.c:859 msgid "Independence of Cartagena" msgstr "Jour de l'Indépendance de Cartagène" #: src/hd-data.c:860 msgid "Independence of Cuenca" msgstr "Jour de l'Indépendance de Cuenca" #: src/hd-data.c:861 msgid "Independence of Guayaquil" msgstr "Jour de l'Indépendance de Guayaquil" #: src/hd-data.c:862 msgid "Independence of Quito" msgstr "Jour de l'Indépendance de Quito" #: src/hd-data.c:863 msgid "Indian Arrival Day" msgstr "Jour de l'Arrivée des Indiens" #: src/hd-data.c:864 msgid "Internal Autonomy Day" msgstr "Jour de l'Autonomie Interne" #: src/hd-data.c:865 msgid "Jefferson Davis' Birthday" msgstr "Anniversaire de Jefferson Davis" #: src/hd-data.c:866 msgid "June Holiday" msgstr "Congé de juin" #: src/hd-data.c:867 msgid "J. Barbosa's Birthday" msgstr "Anniversaire de J. Barbosa" #: src/hd-data.c:868 msgid "J. Chilembwe Day" msgstr "Jour de J. Chilembwe" #: src/hd-data.c:869 msgid "J. Diego's Birthday" msgstr "Anniversaire de J. Diego" #: src/hd-data.c:870 msgid "J. Robert's Birthday" msgstr "Anniversaire de J. Robert" #: src/hd-data.c:871 msgid "Kamarampaka Day" msgstr "Fête de Kamarampaka" #: src/hd-data.c:872 msgid "Kartini Day" msgstr "Fête de Kartini" #: src/hd-data.c:873 msgid "Catherine Show Day" msgstr "Jour de Catherine" #: src/hd-data.c:874 msgid "Kiev Day" msgstr "Fête de Kiev" #: src/hd-data.c:875 msgid "Kim Il-Sung's Birthday" msgstr "Anniversaire de Kim Il-Sung" #: src/hd-data.c:876 msgid "Kim Jong-Il's Birthday" msgstr "Anniversaire de Kim Jong-Il" #: src/hd-data.c:877 msgid "King Kamehameha Day" msgstr "Fête de King Kamehameha" #: src/hd-data.c:878 msgid "King Rama I Memorial Day/Chakri" msgstr "Fête du Mémorial de King Rama I/Chakri" #: src/hd-data.c:879 msgid "King Rama V Memorial Day" msgstr "Fête du Mémorial de King Rama V" #: src/hd-data.c:880 msgid "Knabenschiessen" msgstr "Knabenschiessen" #: src/hd-data.c:881 msgid "Konstantin and Methodius" msgstr "Konstantin et Methodius" #: src/hd-data.c:882 msgid "Lapp National Holiday" msgstr "Congé National de Lapp" #: src/hd-data.c:883 msgid "Launceston Cup Day" msgstr "Fête de la Coupe Launceston" #: src/hd-data.c:884 msgid "Liberty Day" msgstr "Fête de la Libération" #: src/hd-data.c:885 msgid "Loss of Muslim Nation" msgstr "Perte de la Nation Musulmane" #: src/hd-data.c:886 msgid "Luxembourg City Kermis" msgstr "Kermesse de la Ville de Luxembourg" #: src/hd-data.c:887 msgid "Lyndon B. Johnson Day" msgstr "Fête de Lyndon B. Johnson" #: src/hd-data.c:888 msgid "L. Rivera's Birthday" msgstr "Anniversaire de L. Rivera" #: src/hd-data.c:889 msgid "Madaraka Day" msgstr "Fête de Madaraka" #: src/hd-data.c:890 msgid "Mahatma Gandhi's Birthday" msgstr "Anniversaire de Mahatma Gandhi" #: src/hd-data.c:891 msgid "Malvinas Day" msgstr "Fête des ÃŽles Falkland (Malvinas)" #: src/hd-data.c:892 msgid "Manila Day" msgstr "Fête de Manila" #: src/hd-data.c:893 msgid "Maputo City Day" msgstr "Fête de la Ville de Maputo" #: src/hd-data.c:894 msgid "Marien Ngouabi Day" msgstr "Fête de Marien Ngouabi" #: src/hd-data.c:895 msgid "Maryland Day" msgstr "Fête du Maryland" #: src/hd-data.c:896 msgid "Melbourne Cup Day" msgstr "Fête de la Coupe de Melbourne" #: src/hd-data.c:897 msgid "Merchant Day" msgstr "Fête des Marchands" #: src/hd-data.c:898 msgid "St John's/Midsummers Eve" msgstr "Veille de la St-Jean/milieu de l'été" #: src/hd-data.c:899 msgid "Missionary Day" msgstr "Fête des Missionnaires" #: src/hd-data.c:900 msgid "Mi-Carême Day" msgstr "Fête de la Mi-Carême" #: src/hd-data.c:901 msgid "Morazan Day" msgstr "Fête de Morazan" #: src/hd-data.c:902 msgid "Mosheshoe's Day" msgstr "Fête de Mosheshoe" #: src/hd-data.c:903 msgid "Motherhood and Beauty Day" msgstr "Jour de la Maternité et de la Beauté" #: src/hd-data.c:904 msgid "Naming Day" msgstr "Jour des Noms" #: src/hd-data.c:905 msgid "National Bun Day" msgstr "Jour National du Petit Pain" #: src/hd-data.c:906 msgid "National Heroes Day" msgstr "Fête Nationale des Héros" #: src/hd-data.c:907 msgid "National Redemption Day" msgstr "Fête Nationale de la Rédemption" #: src/hd-data.c:908 msgid "National Resistance Day" msgstr "Fête Nationale de la Résistance" #: src/hd-data.c:909 msgid "National Revival Day" msgstr "Jour du Redressement National" #: src/hd-data.c:910 msgid "National Unity Day" msgstr "Fête Nationale de l'Unité" #: src/hd-data.c:911 msgid "Ndadaye Day" msgstr "Fête de Ndadaye" #: src/hd-data.c:912 msgid "Neutrality Day" msgstr "Fête de la Neutralité" #: src/hd-data.c:913 msgid "Nevada Day" msgstr "Fête du Névada" #: src/hd-data.c:914 msgid "New Regime Anniversary" msgstr "Anniversaire du Nouveau Régime" #: src/hd-data.c:915 msgid "Nobel Day" msgstr "Fête de Nobel" #: src/hd-data.c:916 msgid "Noi Day" msgstr "Fête de Noi" #: src/hd-data.c:917 msgid "OAU Day" msgstr "Fête de OAU" #: src/hd-data.c:918 msgid "October Holiday" msgstr "Fête d'Octobre" #: src/hd-data.c:919 msgid "Oil Industry Day" msgstr "Jour de l'Industrie Pétrolière" #: src/hd-data.c:920 msgid "Our Lady of Altagracia Day" msgstr "Fête de Notre Dame de Alagracia" #: src/hd-data.c:921 msgid "Our Lady of Camarin Day" msgstr "Fête de Notre Dame de Camarin" #: src/hd-data.c:922 msgid "Our Lady of Las Mercedes Day" msgstr "Fête de Notre Dame de Las Mercedes" #: src/hd-data.c:923 msgid "Our Lady of Los Angeles Day" msgstr "Fête de Notre Dame de Los Angeles" #: src/hd-data.c:924 msgid "Our Lady of Seven Sorrows" msgstr "Notre Dame des 7 Chagrins" #: src/hd-data.c:925 msgid "Our Lady of Victories Day" msgstr "Jour de Notre Dame des Victoires" #: src/hd-data.c:926 msgid "Panama City Day" msgstr "Fête de la Ville de Panama" #: src/hd-data.c:927 msgid "Panamerica Day" msgstr "Jour panaméricain" #: src/hd-data.c:928 msgid "Paris Peace Agreement Day" msgstr "Jour de Paix de l'Entente de Paris" #: src/hd-data.c:929 msgid "Patriot's Day" msgstr "Fête des Patriotes" #: src/hd-data.c:930 msgid "People's Uprising Day" msgstr "Jour du Soulèvement du Peuple" #: src/hd-data.c:931 msgid "People Power Day" msgstr "Jour de la Force du Peuple" #: src/hd-data.c:932 msgid "Philippine-American Friendship" msgstr "Amitié Philippine-États Unis d'Amérique" #: src/hd-data.c:933 msgid "Pichincha Day" msgstr "Fête de Pichincha" #: src/hd-data.c:934 msgid "Picnic Day" msgstr "Fête du Pique-Nique" #: src/hd-data.c:935 msgid "Pioneer Day" msgstr "Fête des Pionniers" #: src/hd-data.c:936 msgid "Poya Day" msgstr "Fête de Poya" #: src/hd-data.c:937 msgid "Prince Kalanianaole Day" msgstr "Fête du Prince Kalanianaole" #: src/hd-data.c:938 msgid "Prince of Wales' Birthday" msgstr "Anniversaire du Prince de Gale" #: src/hd-data.c:939 msgid "Proclamation Day" msgstr "Fête de la Proclamation" #: src/hd-data.c:940 msgid "Qaid-i-Azam's Birthday" msgstr "Anniversaire de Qaid-i-Azam" #: src/hd-data.c:941 msgid "Ratu Sukuma Day" msgstr "Fête de Ratu Sukuma" #: src/hd-data.c:942 msgid "Recreation Day" msgstr "Jour de la Récréation" #: src/hd-data.c:943 msgid "Referendum Day" msgstr "Fête du Référendum" #: src/hd-data.c:944 msgid "Regatta Day" msgstr "Fête de Regatta" #: src/hd-data.c:945 msgid "Regency Exchange" msgstr "Changement de Régence" #: src/hd-data.c:946 msgid "Restoration Day" msgstr "Jour de la Restoration" #: src/hd-data.c:947 msgid "Return Day" msgstr "Fête du Retour" #: src/hd-data.c:948 msgid "Reunification Day" msgstr "Fête de la Réunification" #: src/hd-data.c:949 msgid "Rizal Day" msgstr "Fête de Rizal" #: src/hd-data.c:950 msgid "Rwagasore Day" msgstr "Fête de Rwagasore" #: src/hd-data.c:951 msgid "Saba Day" msgstr "Fête de Saba" #: src/hd-data.c:952 msgid "San Jacinto Day" msgstr "Fête de San Jacinto" #: src/hd-data.c:953 msgid "San José Day" msgstr "Fête de San José" #: src/hd-data.c:954 msgid "SAR Establishment Day" msgstr "Jour de l'Établissement de SAR" #: src/hd-data.c:955 msgid "School Holiday" msgstr "Congé scolaire" #: src/hd-data.c:956 msgid "Sechseläuten" msgstr "Sechseläuten" #: src/hd-data.c:957 msgid "Separation Day" msgstr "Fête de la Séparation" #: src/hd-data.c:958 msgid "Seretse Khama Day" msgstr "Fête de Seretse Khama" #: src/hd-data.c:959 msgid "Settlers Day" msgstr "Jour des Pionniers" #: src/hd-data.c:960 msgid "Seward's Day" msgstr "Fête de Seward" #: src/hd-data.c:961 msgid "Shaheed Day" msgstr "Fête de Shaheed" #: src/hd-data.c:962 msgid "Sheep Festival" msgstr "Festival du Mouton" #: src/hd-data.c:963 msgid "Sheikh Zayed's Ascension Day" msgstr "Fête de l'Ascension de lSheikh Zayed" #: src/hd-data.c:964 msgid "Simon Bolivar's Day" msgstr "Fête de Simon Bolivar" #: src/hd-data.c:965 msgid "Sinai-Liberation Day" msgstr "Fête de la Libération du Sinaï" #: src/hd-data.c:966 msgid "Slave-Liberation Day" msgstr "Jour de la Libération des Esclaves" #: src/hd-data.c:967 msgid "Sniff the Breeze Day" msgstr "Jour de l'Odeur de la Brise" #: src/hd-data.c:968 msgid "Solidarity Day" msgstr "Fête de la Solidarité" #: src/hd-data.c:969 msgid "Somers Day" msgstr "Jour de Somers" #: src/hd-data.c:970 msgid "Statia-American Day" msgstr "Jour de Statia-Amérique" #: src/hd-data.c:971 msgid "Student's Day" msgstr "Fêtes des Étudiants" #: src/hd-data.c:972 msgid "St Agata Day" msgstr "Fête de St-Agathe" #: src/hd-data.c:973 msgid "St Canute's Day" msgstr "Fête de St-Canute" #: src/hd-data.c:974 msgid "St Cedilia's Day" msgstr "Fête de Ste-Cédilia" #: src/hd-data.c:975 msgid "St Charles' Day" msgstr "Fête de St-Charles" #: src/hd-data.c:976 msgid "St Demetrius' Day" msgstr "Fête de St-Démétrius" #: src/hd-data.c:977 msgid "St Dévote Day" msgstr "Fête de St-Dévote" #: src/hd-data.c:978 msgid "St Eliah's Day" msgstr "Fête de la St-Eliah" #: src/hd-data.c:979 msgid "St Jean Baptiste Day" msgstr "Fête de St-Jean Baptiste" #: src/hd-data.c:980 msgid "St Lucia's Day" msgstr "Fête de Ste-Lucie" #: src/hd-data.c:981 msgid "St Marguerite's Day" msgstr "Fête de la Ste-Marguerite" #: src/hd-data.c:982 msgid "St Maroon's Day" msgstr "Fête de St-Maroon" #: src/hd-data.c:983 msgid "St Michael's Day" msgstr "Fête de St-Michel" #: src/hd-data.c:984 msgid "St Olav's Day" msgstr "Fête de St-Olav" #: src/hd-data.c:985 msgid "St Olav's Eve" msgstr "Veille de la St-Olav" #: src/hd-data.c:986 msgid "St Paul's Shipswreck" msgstr "Épave de St-Paul" #: src/hd-data.c:987 msgid "St Rose of Lima" msgstr "Ste-Rose de Lima" #: src/hd-data.c:988 msgid "St Ursula's Day" msgstr "Fête de St-Ursule" #: src/hd-data.c:989 msgid "St Vincent de Paul's Day" msgstr "Fête de la St-Vincent de Paul" #: src/hd-data.c:990 msgid "Suez Victory Day" msgstr "Fête de la Victoire de Suez" #: src/hd-data.c:991 msgid "Sultan Qaboos' Birthday" msgstr "Anniversaire de Sultan Qaboos" #: src/hd-data.c:992 msgid "Svetitskhovloba" msgstr "Svetitskhovloba" #: src/hd-data.c:993 msgid "Sweden Day" msgstr "Fête de la Suède" #: src/hd-data.c:994 msgid "S. Doe's Birthday" msgstr "Anniversaire de S. Doe" #: src/hd-data.c:995 msgid "Tennant-Creek Show Day" msgstr "Jour de Tennant-Creek" #: src/hd-data.c:996 msgid "Territory Day" msgstr "Fête du Territoire" #: src/hd-data.c:997 msgid "The Crown Princesse's Birthday" msgstr "Anniversaire du Couronnement de la Princesse" #: src/hd-data.c:998 msgid "The Crown Princesse's Name-Day" msgstr "Couronnement de la Princesse" #: src/hd-data.c:999 msgid "The Crown Prince's Birthday" msgstr "Anniversaire du Couronnement du Prince" #: src/hd-data.c:1000 msgid "The King's Name-Day" msgstr "Fête du Roi" #: src/hd-data.c:1001 msgid "The Queen's Name-Day" msgstr "Fête de la Reine" #: src/hd-data.c:1002 msgid "Topou I Day" msgstr "Fête de Topou I" #: src/hd-data.c:1003 msgid "Town Meeting Day" msgstr "Jour du Conseil Municipal" #: src/hd-data.c:1004 msgid "Traditional Day" msgstr "Journée traditionnelle" #: src/hd-data.c:1005 msgid "Transfer Day" msgstr "Jour du Transfert" #: src/hd-data.c:1006 msgid "Truman Day" msgstr "Fête de Truman" #: src/hd-data.c:1007 msgid "Union Day" msgstr "Fête de l'Union" #: src/hd-data.c:1008 msgid "Union with Sweden dissolved" msgstr "Dissolution de l'Union d'avec la Suède" #: src/hd-data.c:1009 msgid "United Nations Day" msgstr "Journée des Nations Unies" #: src/hd-data.c:1010 msgid "Unity Factory Day" msgstr "Jour de l'Unité des Manifactures" #: src/hd-data.c:1011 msgid "Victor-Schoelcher Day" msgstr "Fête de Victor-Schoelcher" #: src/hd-data.c:1012 msgid "Vidovdan" msgstr "Vidovdan" #: src/hd-data.c:1013 msgid "West Virginia Day" msgstr "Fête de la Virginie de l'Ouest" #: src/hd-data.c:1014 msgid "Whitsun Eve" msgstr "Veille de la Pentecôte" #: src/hd-data.c:1015 msgid "W. Tubman's Birthday" msgstr "Anniversaire de W. Tubman" #: src/hd-data.c:1016 msgid "Yap Day" msgstr "Fête de Yap" #: src/hd-data.c:1017 msgid "Day of Czech Statehood" msgstr "" #: src/hd-data.c:1082 msgid "Zi/Rat" msgstr "Zi/Rat" #: src/hd-data.c:1082 msgid "Chou/Ox" msgstr "Chou/Boeuf" #: src/hd-data.c:1083 msgid "Yin/Tiger" msgstr "Yin/Tigre" #: src/hd-data.c:1083 msgid "Mao/Rabbit" msgstr "Mao/Lapin" #: src/hd-data.c:1084 msgid "Chen/Dragon" msgstr "Chen/Dragon" #: src/hd-data.c:1084 msgid "Si/Snake" msgstr "Si/Serpent" #: src/hd-data.c:1085 msgid "Wu/Horse" msgstr "Wu/Cheval" #: src/hd-data.c:1085 msgid "Wei/Sheep" msgstr "Wei/Mouton" #: src/hd-data.c:1086 msgid "Shen/Monkey" msgstr "Shen/Singe" #: src/hd-data.c:1086 msgid "You/Rooster" msgstr "You/Coq" #: src/hd-data.c:1087 msgid "Xu/Dog" msgstr "Xu/Chien" #: src/hd-data.c:1087 msgid "Hai/Pig" msgstr "Hai/Cochon" #: src/hd-data.c:1284 msgid "Ast" msgstr "Ast" #: src/hd-data.c:1397 src/hd-data.c:1480 msgid "Bah" msgstr "Bah" #: src/hd-data.c:1547 msgid "Cel" msgstr "Cel" #: src/hd-data.c:1689 src/hd-data.c:2222 msgid "Chi" msgstr "Chi" #: src/hd-data.c:1803 src/hd-data.c:2322 src/hd-data.c:3839 #, 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:2224 src/hd-data.c:3727 msgid "Jap" msgstr "Jap" #: src/hd-data.c:2420 msgid "Chr" msgstr "Chr" #: src/hd-data.c:2654 src/hd-data.c:4171 msgid "FRR" msgstr "FRR" #: src/hd-data.c:2775 src/hd-data.c:2957 msgid "Heb" msgstr "Héb" #: src/hd-data.c:3187 src/hd-data.c:3616 msgid "Isl" msgstr "Isl" #: src/hd-data.c:4241 src/hd-data.c:4336 msgid "AMO" msgstr "AMO" #: src/hd-data.c:4262 src/hd-data.c:4334 msgid "EGO" msgstr "EGO" #: src/hd-data.c:4444 msgid "OxN" msgstr "OxN" #: src/hd-data.c:4446 msgid "OxO" msgstr "OxO" #: src/hd-data.c:4647 src/hd-data.c:4776 msgid "Per" msgstr "Per" #: src/hd-data.c:4844 msgid "Zod" msgstr "Zod" #: src/hd-use.c:928 msgid " day" msgstr " jour" #: src/hd-use.c:1973 src/hd-use.c:1978 src/hd-use.c:1982 src/hd-use.c:1989 #: src/hd-use.c:1993 src/hd-use.c:2089 src/hd-use.c:2273 msgid "Eternal holiday list" msgstr "Liste permanente des jours de fête" #: src/hd-use.c:1977 #, 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:1981 #, 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:1988 #, 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:1992 #, 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:2242 #, c-format msgid " = %+4d day" msgstr " = %+4d jour" #: src/hd-use.c:2244 #, c-format msgid " = %+4d days" msgstr " = %+4d jours" #: src/hd-use.c:2271 #, 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:64 #, 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:74 msgid "# Day number (must be defined)" msgstr "# nombre du jour (doit être défini):" #: src/help.c:75 msgid "# Year number (must be defined)" msgstr "# nombre de l'année (doit être défini):" #: src/help.c:76 msgid "# Weekday name (may be defined)" msgstr "# nombre de la semaine (peut être défini):" #: src/help.c:77 msgid "Month group (exactly one member must be defined):" msgstr "Groupe mois (exactement un champs doit être défini):" #: src/help.c:78 msgid "# Month number" msgstr "# nombre du mois" #: src/help.c:79 msgid "# Month name" msgstr "# nom du mois" #: src/help.c:80 msgid "Highlighting group (all members must be defined):" msgstr "Mise en évidence des groupes (tous les membres doivent être définis):" #: src/help.c:81 msgid "Start of highlighting sequence/marking character" msgstr "Début de la séquence de mise en évidence (caractère marqueur)" #: src/help.c:83 msgid "End of highlighting sequence/marking character" msgstr "Fin de la séquence de mise en évidence (caractère marqueur)" #: src/help.c:85 msgid "Character replacement:" msgstr "Caractère de remplacement:" #: src/help.c:86 #, c-format msgid "Space/blank ('%c') character" msgstr "Caractère d'espacement (« %c »)" #: src/help.c:87 #, c-format msgid "Underscore ('%c') character" msgstr "Caractère de soulignement (« %c »)" #: src/help.c:88 #, c-format msgid "Percent ('%c') character" msgstr "Caractère de pourcentage (« %c »)" #: src/help.c:89 #, c-format msgid "Backslash ('%c') character" msgstr "Caractère barre oblique inverse (« %c »)" #: src/help.c:90 msgid "All format elements marked by # may optionally" msgstr "Tous les éléments de format marqués par # peuvent être ooptionnels" #: src/help.c:91 msgid "contain a format instruction, which template is like:" msgstr "contient une instruction de format, dont le patron est comme suit:" #: src/help.c:92 msgid "[ALIGNMENT [SIGN] [ZERO] WIDTH [STYLE] [SUFFIX] FORMAT]" msgstr "[ALIGNEMENT [SIGNE] [ZÉRO] LARGEUR [STYLE] [SUFFIXE] FORMAT]" #: src/help.c:93 msgid "ALIGNMENT group (exactly one member must be defined):" msgstr "Groupe d'alignement (exactement un membre doit être défini):" #: src/help.c:94 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:96 msgid "Field contents placed in centered manner using width WIDTH" msgstr "contenu du champ placé au centre utilisant la LARGEUR" #: src/help.c:98 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:100 msgid "SIGN (may be defined):" msgstr "SIGNE (peut être défini):" #: src/help.c:101 msgid "Numerical value is provided with leading sign" msgstr "La valeur numérique est précédée d'un signe" #: src/help.c:102 msgid "ZERO (may be defined):" msgstr "ZÉRO (peut être défini):" #: src/help.c:103 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:104 msgid "WIDTH (must be defined):" msgstr "LARGEUR (doit être définie):" #: src/help.c:105 #, c-format msgid "Field has the width N (%d...%d)" msgstr "Le champ est de largeur N (%d..%d)" #: src/help.c:106 msgid "STYLE group (exactly one member may be defined):" msgstr "Groupe de STYLE (exactement un membre peut être défini):" #: src/help.c:107 msgid "Field contents is converted to upper-case letters" msgstr "contenu du champ converti en majuscules" #: src/help.c:108 msgid "Field contents is converted to lower-case letters" msgstr "contenu du champ converti en minuscules" #: src/help.c:109 msgid "Field contents is converted to capitalized words" msgstr "contenu du champ converti en mots en majuscules" #: src/help.c:110 msgid "SUFFIX (may be defined):" msgstr "SUFFIXE (peut être défini):" #: src/help.c:111 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:113 msgid "FORMAT group (exactly one member must be defined):" msgstr "Groupe FORMAT (exactement un membre doit être défini):" #: src/help.c:114 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:115 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:129 msgid "legal holidays" msgstr "jours de fête légaux" #: src/help.c:130 msgid "holidays" msgstr "jours de fête" #: src/help.c:131 msgid "Mondays" msgstr "Lundi" #: src/help.c:132 msgid "Tuesdays" msgstr "Mardi" #: src/help.c:133 msgid "Wednesdays" msgstr "Mercredi" #: src/help.c:134 msgid "Thursdays" msgstr "Jeudi" #: src/help.c:135 msgid "Fridays" msgstr "Vendredi" #: src/help.c:136 msgid "Saturdays" msgstr "Samedi" #: src/help.c:137 msgid "Sundays" msgstr "Dimanche" #: src/help.c:138 msgid "Mondays...Thursdays" msgstr "Lundi...jeudi" #: src/help.c:139 msgid "Mondays...Fridays" msgstr "Lundi...vendredi" #: src/help.c:169 #, 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:242 msgid "OPTION" msgstr "OPTION" #: src/help.c:255 msgid " Display help text and quit program" msgstr " afficher l'aide-mémoire" #: src/help.c:272 msgid " Display extended help text and quit program" msgstr " afficher l'aide-mémoire étendu" #: src/help.c:290 msgid " Display software license and quit program" msgstr " afficher la license du logiciel" #: src/help.c:301 msgid " Display version information and quit program" msgstr " afficher la version du logiciel et quitter" #: src/help.c:312 #, 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:325 #, c-format msgid " Create response file for the `%cFILE' option" msgstr " créer un fichier réponse pour l'option « %cFILE »" #: src/help.c:329 #, 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:343 #, 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:345 #, c-format msgid " %-3s = File name of the shell script" msgstr " %-3s = Nom du fichier script" #: src/help.c:359 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:363 #, 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:368 #, 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:380 msgid " Export local date variables from file to file" msgstr "" " exporter les variables locales des dates d'un fichier à l'autre" #: src/help.c:392 #, 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:397 #, 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:402 #, 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:408 #, 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:413 #, 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:425 msgid " Export local text variables from file to file" msgstr "" " exporter les variables locales de texte d'un fichier à l'autre" #: src/help.c:437 src/help.c:467 #, 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:442 #, 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:447 msgid " is a LOWER-CASE-LETTER, it means a non-exclusion!" msgstr " est une MINUSCULE, cela implique une non-exclusion!" #: src/help.c:451 #, c-format msgid " %c = Exclusion of all %s" msgstr " %c = exclusion de tout %s" #: src/help.c:472 #, 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:476 #, c-format msgid " expressions separated by `%s' characters" msgstr " expressions séparées par des caractères « %s »" #: src/help.c:489 #, 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:494 #, 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:507 #, c-format msgid " Ignore case distinctions if `%s' option is given" msgstr " ignorer la casse si l'option « %s » est fournie" #: src/help.c:519 #, c-format msgid " Revert the sense of matching of the `%s' option" msgstr " renverser le sens du pairage de l'option « %s »" #: src/help.c:530 msgid " Display some debug information" msgstr " afficher quelques informations de débuggage" #: src/help.c:538 #, 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:547 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:555 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:563 msgid " = all Like `handled' and `unhandled' together" msgstr "" " = all identique à « handled » et « unhandled » ensemble" #: src/help.c:571 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:581 msgid " Use special format for calendar sheet" msgstr " utiliser un format spécial pour la feuille de calendrier" #: src/help.c:584 msgid " [MOD] = - Use standard format for calendar sheet" msgstr "" " [MOD] = - utiliser un format standard pour la feuille de calendrier" #: src/help.c:595 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:605 msgid " Provide calendar sheet with week numbers" msgstr "" " afficher la feuille de calendrier avec les numéros de semaine" #: src/help.c:616 #, c-format msgid " Determine type of week numbers (actual: %s)" msgstr " déterminer le type de numéros semaine (actuellement: %s)" #: src/help.c:617 msgid "Standard" msgstr "Standard" #: src/help.c:623 #, c-format msgid " %-3s = yes ISO-8601:1988 week numbers" msgstr " %-3s = yes numéros de semaine ISO-8601:1988" #: src/help.c:630 msgid " = no Standard week numbers" msgstr " = no numéros standards de semaine" #: src/help.c:641 msgid " Suppress output of calendar sheet explicitly" msgstr "" " supprimer la sortie de la feuille de calendrier explicitement" #: src/help.c:654 #, c-format msgid " Direct output through external `%s' pager" msgstr " relayer la sortie à un paginateur externe « %s »" #: src/help.c:660 src/help.c:662 msgid " Direct output through simple internal pager" msgstr " relayer la sortie au paginateur interne simple" #: src/help.c:679 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:694 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:706 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:710 #, 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:715 #, 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:720 #, 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:731 msgid " Modify format of year calendar" msgstr " modifier le format du calendrier de l'année" #: src/help.c:735 #, 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:747 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:751 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:763 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:767 src/help.c:783 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:779 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:794 #, 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:827 #, c-format msgid " Send output via `%s' program to user" msgstr " relayer la sortie via « %s »" #: src/help.c:856 msgid "UNKNOWN" msgstr "INCONNU" #: src/help.c:859 #, 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:877 #, 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:880 msgid " n = Legal days and memorial days" msgstr " n = jours légaux et fériés" #: src/help.c:882 msgid " N = Legal days only" msgstr " N = jours légaux seulement" #: src/help.c:884 src/help.c:1630 #, c-format msgid " [MOD] = %s Descending sort order" msgstr " [MOD] = %s ordre décroissant de trie" #: src/help.c:896 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:906 msgid " Exclude title of eternal holiday list" msgstr " exclure les titres de la liste perpétuelle des Fêtes" #: src/help.c:918 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:930 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:942 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:954 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:966 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:978 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:990 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:1002 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:1014 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:1026 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:1038 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:1050 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:1062 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:1074 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:1086 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:1098 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:1110 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:1122 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:1134 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:1146 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:1158 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:1171 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:1183 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:1195 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:1207 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:1219 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:1231 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:1243 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:1255 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:1267 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:1271 #, 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:1276 #, 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:1281 msgid " marked by # have an incomplete recording of holidays" msgstr " indiqués par # ont un registre incomplet des Fêtes" #: src/help.c:1285 #, c-format msgid " %-*s = Holidays in %s" msgstr " %-*s = Fêtes dans %s" #: src/help.c:1306 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:1310 #, 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:1321 msgid " Set base data of Earth's atmosphere" msgstr " utiliser la base de données de l'atmosphère terrestre" #: src/help.c:1325 #, 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:1328 #, c-format msgid " Air pressure in Millibar (actual: %.3f)" msgstr " pression de l'air en millibar (actuellement: %.3f)" #: src/help.c:1333 #, 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:1343 msgid " Limit rise/set times of Sun to the day" msgstr " limiter l'augmentation/fixer l'heure Solaire à celle du jour" #: src/help.c:1355 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:1365 #, c-format msgid " Execute `%c%c[%s]' shell commands" msgstr " exécuter les commandes « %c%c[%s] » du shell" #: src/help.c:1368 #, fuzzy, c-format msgid " and \"TVAR[%s|%c%s]COMMAND\" assignments" msgstr " et les affectations \"TVAR[%s|%c%s]COMMANDE\"" #: src/help.c:1380 msgid " Change base time of astronomical functions" msgstr " modifier la base de temps astronomique des fonctions" #: src/help.c:1383 msgid " respectively, change cycle-starting time" msgstr " respectivement, modifier le temps du début du cycle" #: src/help.c:1393 #, 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:1401 #, 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:1417 msgid " Change cycle-ending time" msgstr " modifier le temps du fin de cycle" #: src/help.c:1421 #, 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:1435 msgid " Change cycle-timestep" msgstr " modifier le cycle-pas-du-temps" #: src/help.c:1439 #, 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:1452 msgid " Change base year of calendar" msgstr " modifier l'année de base du calendrier" #: src/help.c:1456 #, 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:1468 msgid " Set period of Gregorian Reformation" msgstr " utiliser la période de la réforme grégorienne" #: src/help.c:1470 #, 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:1476 #, 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:1484 #, 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:1498 #, 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:1501 #, c-format msgid " Actual: (%s) `%s' (%s)" msgstr " format actuel: (%s) « %s » (%s)" #: src/help.c:1503 msgid "self-defined" msgstr "auto-défini" #: src/help.c:1508 #, c-format msgid " %-6s = Format is: `%s' (%s)" msgstr " %-6s = le format est: « %s » (%s)" #: src/help.c:1516 #, 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:1559 msgid " Define translatable country specific special character pairs" msgstr " définir une paire traduisible de caractères spéciaux du pays" #: src/help.c:1563 #, c-format msgid " %-3s = UPPER-CASE-LETTER\"\"LOWER-CASE-LETTER... definitions" msgstr " %-3s = définitions en MAJUSCULES\"\"MINUSCULES..." #: src/help.c:1568 #, 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:1573 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:1577 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:1581 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:1590 #, c-format msgid "+++ FIXED DATES +++" msgstr "+++ DATES FIXES +++" #: src/help.c:1611 #, 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:1616 #, 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:1620 src/help.c:2160 msgid " Implies period: Today" msgstr " période impliquée: Aujourd'hui" #: src/help.c:1624 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:1628 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:1640 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:1653 #, fuzzy, c-format msgid " %-3s = Heading/Title text used for fixed date list" msgstr "" " # x = exclure les titres de la liste des dates fixes" #: src/help.c:1656 #, fuzzy, c-format msgid " Actual: `%s'" msgstr " = %s passés" #: src/help.c:1669 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:1681 msgid " 1. Representation of text" msgstr " 1. représentation du texte" #: src/help.c:1693 msgid " = Set width of the biorhythm text graphics" msgstr "" " = fixer la largeur graphique textuelle du biorythme" #: src/help.c:1697 #, c-format msgid " %-3s = %d...%d Length of a single axis" msgstr " %-3s = %d...%d longueur d'un axe simple" #: src/help.c:1710 msgid " = Set height of the Moon phase text graphics" msgstr "" " = fixer la hauteur graphique textuelle des phases " "de la lune" #: src/help.c:1714 #, c-format msgid " %-3s = %d...%d Total number of lines" msgstr " %-3s = %d...%d nombre total de lignes" #: src/help.c:1726 msgid " # a = Display origin of fixed date" msgstr " # a = afficher l'origine des dates fixes" #: src/help.c:1738 msgid " # A = Display using alternative list format" msgstr "" " # A = afficher à l'aide d'une liste alternative de " "format" #: src/help.c:1750 msgid " # e = Include legal days and memorial days" msgstr " # e = inclure les jours légaux et fériés" #: src/help.c:1752 msgid " # E = Include legal days only" msgstr " # E = inclure les jours légaux seulement" #: src/help.c:1762 msgid " # k = Display week number" msgstr " # k = afficher les numéros de semaine" #: src/help.c:1774 msgid " # o = Omit repeating date part of fixed dates" msgstr "" " # o = omettre la répétition des champs des dates fixes" #: src/help.c:1786 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:1798 msgid " # U = Suppress date part of fixed dates" msgstr " # U = omettre la partie date des dates fixes" #: src/help.c:1810 msgid " # J = Suppress text part of fixed dates" msgstr " # J = omettre la partie texte des dates fixes" #: src/help.c:1822 msgid " # x = Exclude title of fixed date list" msgstr "" " # x = exclure les titres de la liste des dates fixes" #: src/help.c:1834 msgid " # z = Display consecutive number of fixed date" msgstr "" " # z = afficher les nombres consécutifs des dates fixes" #: src/help.c:1846 msgid "" " # Z = Display dates, for which fixed dates doesn't exist" msgstr "" " # Z = afficher les dates pour les dates fixes " "inexistantes" #: src/help.c:1854 msgid " 2. Respected period" msgstr " 2. période respectée" #: src/help.c:1866 msgid " = Manage `29-FEBRUARY' in non-leap years" msgstr "" " = gérer le « 29 février » pour les années non-" "bissextiles" #: src/help.c:1874 #, c-format msgid " %-3s = february Respect at `28-FEBRUARY'" msgstr "" " %-3s = february respecter le « 28 février »" #: src/help.c:1883 #, c-format msgid " %-3s = march Respect at `01-MARCH'" msgstr " %-3s = march respecter le « 1er mars »" #: src/help.c:1896 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:1908 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:1924 msgid " # Nd = Single absolute day N" msgstr " # Nd = jour simple absolu N" #: src/help.c:1926 #, c-format msgid " # %cdN = Single absolute day N" msgstr " # %cdN = jour simple absolu N" #: src/help.c:1931 msgid " # NMOD = Single day N relative to today" msgstr " # NMOD = jour simple N relatif au jour courant" #: src/help.c:1933 #, c-format msgid " MOD = %s Forwards" msgstr " MOD = %s futurs" #: src/help.c:1935 #, c-format msgid " = %s Backwards" msgstr " = %s passés" #: src/help.c:1938 msgid " # Nw = Complete week N" msgstr " # Nw = N semaines complètes" #: src/help.c:1942 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:1946 msgid " N = 1...52 1st...52nd week (always)" msgstr " N = 1...52 1ère...52e semaine (toujours)" #: src/help.c:1950 msgid " N = 53 53rd week (sometimes)" msgstr " N = 53 53e semaine (parfois)" #: src/help.c:1952 msgid " N = 99 Last week" msgstr " N = 99 dernière semaine" #: src/help.c:1955 #, c-format msgid " # %s%s = Single day %s of month %s" msgstr " # %s%s = jour unique %s du mois %s" #: src/help.c:1961 #, 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:1966 #, 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:1971 #, c-format msgid " N = 5 5th weekday %s (sometimes)" msgstr "" " N = 5 5e jour de semaine %s (quelques fois)" #: src/help.c:1975 #, c-format msgid " N = 9 Last weekday %s" msgstr " N = 9 dernier jour de semaine %s" #: src/help.c:1979 #, c-format msgid " # %cdN%s = Single N'th weekday %s" msgstr " # %cdN%s = Nième simple jour de semaine %s" #: src/help.c:1984 #, 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:1989 #, 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:1993 #, c-format msgid " N = 99 Last weekday %s" msgstr " N = 99 dernier jour de semaine %s" #: src/help.c:1998 #, 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:2003 #, 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:2008 #, 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:2013 #, 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:2017 #, c-format msgid " N = 99 %s of last week" msgstr " N = 99 %s de la dernière semaine" #: src/help.c:2023 #, 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:2029 #, 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:2035 #, 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:2041 #, 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:2047 #, 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:2053 #, 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:2061 msgid " # t|T = List tomorrow" msgstr " # t|T = afficher demain" #: src/help.c:2078 msgid " # w|W[MOD] = List complete week" msgstr " # w|W[MOD] = afficher une semaine complète" #: src/help.c:2082 #, 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:2087 #, 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:2107 msgid " # m|M[MOD] = List complete month" msgstr " # m|M[MOD] = afficher un mois complet" #: src/help.c:2111 #, 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:2116 #, 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:2136 msgid " # y|Y[MOD] = List complete year" msgstr " # y|Y[MOD] = afficher une année complète" #: src/help.c:2140 #, 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:2145 #, 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:2158 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:2164 msgid " f = Display only those dates, for which fixed dates exists" msgstr " f = afficher seulement les dates fixes existantes" #: src/help.c:2168 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:2172 #, 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:2183 msgid " Define additional resource file line" msgstr "" " utiliser des fichiers alternatifs au lieu du fichier standard de\n" " ressources" #: src/help.c:2185 #, c-format msgid " %-3s = Any possible resource file line" msgstr " %-3s = n'importe quel ligne d'un fichier ressource" #: src/help.c:2195 #, c-format msgid "%cDATE" msgstr "%cDATE" #: src/help.c:2197 msgid "Use given `DATE' instead of today's date" msgstr "Utiliser la « DATE » au lieu de la date courante" #: src/help.c:2201 #, 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:2208 #, 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:2217 #, c-format msgid "%cFILE" msgstr "%cFICHIER" #: src/help.c:2219 msgid "Preload options and commands from `FILE'" msgstr "Précharger les options et les commandes du « FICHIER »" #: src/help.c:2223 msgid "COMMAND" msgstr "COMMANDE" #: src/help.c:2225 #, c-format msgid "%s = Month in range: %d...%d" msgstr "%s = mois dans l'intervalle: %d...%d" #: src/help.c:2230 #, 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:2235 #, 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:2241 #, 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:2247 #, c-format msgid "%s%*s = Year in range: %d...%d" msgstr "%s%*s = intervalle des années: %d...%d" #: src/help.c:2251 #, 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:2256 #, 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:2282 #, 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:2285 #, 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:2289 #, c-format msgid " %sL, %s Display software license and quit program" msgstr " %sL, %s afficher la license du logiciel et quitter" #: src/help.c:2293 #, 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:2301 #, c-format msgid " %sp, %s Direct output through external `%s' pager" msgstr " %sp, %s relayer la sortie à un paginateur externe « %s »" #: src/help.c:2308 src/help.c:2313 #, c-format msgid " %sp, %s Direct output through simple internal pager" msgstr " %sp, %s relayer la sortie au paginateur interne simple" #: src/help.c:2338 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:2342 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:2346 msgid "or explicit), which result from using or handling my software." msgstr "(implicites ou explicites) résultant de son utilisation." #: src/help.c:2350 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:2352 msgid "agreement, which binds you LEGALLY !!" msgstr "cette entente qui vous lie LÉGALEMENT !!" #: src/help.c:2357 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:2361 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:2365 #, fuzzy msgid "the `Free Software Foundation'; either version 3, or (at your option)" msgstr "par la « Free Software Foundation »; soit pour la version 2, ou (selon" #: src/help.c:2367 msgid "any later version." msgstr "votre option) toutes autres version ultérieures." #: src/help.c:2372 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:2374 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:2423 #, 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:2451 #, c-format msgid "Use `%s %s|[%s?]" msgstr "Utiliser « %s %s|[%s?] »" #: src/help.c:2460 msgid "for more information." msgstr "pour plus informations." #: src/help.c:2564 src/tcal.c:197 src/txt2gcal.c:136 src/gcal2txt.c:136 #, c-format msgid "Email bug reports to <%s>" msgstr "Rapporter toutes anomalies à <%s>" #: src/help.c:2566 #, c-format msgid "GNU gcal home page: <%s>" msgstr "" #: src/help.c:2568 #, c-format msgid "General help using GNU software: <%s>" msgstr "" #: src/help.c:2594 src/tcal.c:219 src/txt2gcal.c:158 src/gcal2txt.c:158 #, 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:2598 src/tcal.c:222 src/txt2gcal.c:161 src/gcal2txt.c:161 #, 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:2600 src/tcal.c:224 src/txt2gcal.c:163 src/gcal2txt.c:163 #, c-format msgid "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." msgstr "raisons COMMERÇIALES ou pour RÉPONDRE À UN BESOIN PARTICULIER." #: src/help.c:2616 #, 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:2624 #, c-format msgid "Usage: %s [[OPTION...] [%cDATE] [%cFILE...]] [COMMAND]" msgstr "Usage: %s [[OPTION...] [%cDATE] [%cFICHIER...]] [COMMANDE]" #: src/help.c:2627 #, c-format msgid "Usage: %s [[OPTION...] [%cFILE...]] [COMMAND]" msgstr "Usage: %s [[OPTION...] [%cFICHIER...]] [COMMANDE]" #: src/help.c:2703 src/help.c:2849 msgid " 4.0 or 4.02" msgstr " 4.0 ou 4.02" #: src/help.c:2711 src/help.c:2857 msgid " later than 5.0" msgstr " plus récente que 5.0" #: src/help.c:2722 src/help.c:2864 msgid "++ 3.0 or later" msgstr "++ 3.0 ou plus récente" #: src/help.c:2749 src/help.c:2970 msgid "5.1 or earlier" msgstr "5.1 ou plus récente" #: src/help.c:2752 src/help.c:2973 src/help.c:3128 src/help.c:3198 msgid "unknown compiler" msgstr "compilateur inconnu" #: src/help.c:2787 src/help.c:2876 src/help.c:3010 src/help.c:3032 #: src/help.c:3101 src/help.c:3138 src/help.c:3156 src/help.c:3213 #: src/help.c:3428 msgid " on " msgstr " sur " #: src/help.c:2826 msgid "(bad version)" msgstr "(mauvaise version)" #: src/help.c:2873 msgid "unknown compiler (SDK?)" msgstr "compilateur inconnu (SDK?)" #: src/help.c:2941 msgid " later than 4.5" msgstr " plus récente que 4.5" #: src/help.c:2951 msgid "++ 1.0 or later" msgstr "++ 1.0 ou plus" #: src/help.c:2959 msgid " 1.0 or 1.5?" msgstr " 1.0 ou 1.5?" #: src/help.c:3074 msgid "unknown " msgstr "inconnu " #: src/help.c:3086 #, c-format msgid "version %d.%d" msgstr "Version %d.%d" #: src/help.c:3089 src/help.c:3122 src/help.c:3248 #, c-format msgid "version %d" msgstr "Version %d" #: src/help.c:3091 #, c-format msgid "unknown version" msgstr "version inconnue" #: src/help.c:3205 #, c-format msgid " (%.4s for Alpha)" msgstr " (%.4s sur Alpha)" #: src/help.c:3208 #, c-format msgid " (%.4s for VAX)" msgstr " (%.4s sous VAX)" #: src/help.c:3359 msgid " (NetBSD before 0.9)" msgstr " (NetBSD avant 0.9)" #: src/help.c:3359 msgid " (NetBSD 1.2 or later)" msgstr " (NetBSD 1.2 ou plus)" #: src/help.c:3366 msgid " (FreeBSD 2.0 or later)" msgstr " (FreeBSD 2.0 ou plus)" #: src/help.c:3369 msgid " (BSD/386 1.1 or later)" msgstr " (BSD/386 1.1 ou plus)" #: src/print.c:544 src/print.c:978 src/print.c:1033 msgid "CW" msgstr "CW" #: src/print.c:565 msgid "Week" msgstr "Semaine" #: src/rc-insert.c:1706 src/rc-insert.c:2824 msgid "pm" msgstr "pm" #: src/rc-insert.c:1715 src/rc-insert.c:2833 msgid "am" msgstr "am" #: src/rc-insert.c:2018 src/rc-insert.c:2028 msgid "d'\"" msgstr "°'\"" #: src/rc-insert.c:2038 msgid "h'\"" msgstr "h'\"" #: src/rc-insert.c:3728 src/rc-utils.c:2585 #, 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:3750 src/rc-utils.c:2609 #, 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:513 msgid "Emo" msgstr "Emo" #: src/rc-use.c:518 msgid "Int" msgstr "Int" #: src/rc-use.c:523 msgid "Phy" msgstr "Phy" #: src/rc-use.c:1086 src/rc-use.c:1177 msgid "`Eternal holiday list'" msgstr "« Liste perpétuelle des fêtes »" #: src/rc-use.c:1877 src/rc-use.c:1926 src/rc-use.c:2015 src/rc-use.c:2107 msgid "`Internal'" msgstr "« Interne »" #: src/rc-use.c:2339 #, c-format msgid " ; Week %s" msgstr " ; Semaine %s" #: src/rc-use.c:2348 #, c-format msgid "Week %s" msgstr "Semaine %s" #: src/rc-utils.c:397 src/rc-utils.c:414 #, 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:3269 #, 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:3272 src/rc-utils.c:3686 #, c-format msgid "Line %ld: %s" msgstr "Ligne %ld: %s" #: src/rc-utils.c:3633 src/utils.c:274 #, c-format msgid "%s: abort, " msgstr "%s: abandon, " #: src/rc-utils.c:3641 #, c-format msgid "illegal variable definition in file `%s'" msgstr "Définition de variable illégale dans le fichier « %s »" #: src/rc-utils.c:3643 #, c-format msgid "illegal definition of variable `%c'" msgstr "définition illégale de variable « %c »" #: src/rc-utils.c:3650 #, 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:3652 #, c-format msgid "illegal operation on variable `%c'" msgstr "opération illégale sur la variable « %c »" #: src/rc-utils.c:3658 #, c-format msgid "variable `%c' undefined in file `%s'" msgstr "Variable « %c » est indéfinie dans le fichier « %s »" #: src/rc-utils.c:3662 #, 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:3683 #, c-format msgid "Invalid argument in command line given -- %s" msgstr "Argument invalide dans la ligne de commande fournie -- %s" #: src/rc-utils.c:3695 #, c-format msgid "Argument `%s' of command line ignored." msgstr "Argument « %s » de la ligne de commande est ignoré." #: src/rc-utils.c:3698 #, c-format msgid "Line %ld ignored: %s" msgstr "Ligne %ld ignorée: %s" #: src/tty.c:424 #, c-format msgid "%s: for more, <%s> to quit..." msgstr "%s: pour en savoir plus, <%s> pour quitter..." #: src/tty.c:1019 #, c-format msgid "environment variable `%s' not found" msgstr "la variable d'environnement « %s » n'a pas été repérée" #: src/tty.c:1026 #, c-format msgid "environment variable `%s' not set" msgstr "la variable d'environnement « %s » n'est pas initialisée" #: src/tty.c:1066 msgid "`termcap' file not found" msgstr "fichier « termcap » non repéré" #: src/tty.c:1071 #, c-format msgid "unknown terminal type defined in `%s'" msgstr "type de terminal inconnu défini dans « %s »" #: src/tty.c:1080 #, c-format msgid "" "\n" "%s: warning, %s.\n" "\n" msgstr "" "\n" "%s: AVERTISSEMENT, %s.\n" "\n" #: src/utils.c:280 #, 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:284 src/tcal.c:324 src/txt2gcal.c:263 src/gcal2txt.c:263 #, 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:289 #, 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:294 #, 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:299 #, 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:303 #, 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:308 #, 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:312 #, c-format msgid "file `%s' not found" msgstr "fichier « %s » non repéré" #: src/utils.c:316 #, 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:322 #, 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:327 #, 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:332 #, c-format msgid "sending eMail to <%s> failed" msgstr "échec d'expédition de courrier vers « %s »" #: src/utils.c:334 src/utils.c:352 #, c-format msgid "" "\n" "`%s' line %ld: " msgstr "" "\n" "« %s » ligne %ld: " #: src/utils.c:341 #, c-format msgid "`%s' line %ld: (`%s') `%s%d' failed" msgstr "« %s » ligne %ld: (« %s ») « %s%d » a échoué" #: src/utils.c:350 #, c-format msgid "read error in file `%s'" msgstr "Erreur de lecture de « %s »" #: src/utils.c:358 #, 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:364 src/tcal.c:330 src/txt2gcal.c:269 src/gcal2txt.c:269 #, 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:369 #, c-format msgid "(`%s') date format `%s' is invalid" msgstr "(« %s ») le format de la date « %s » est invalide" #: src/utils.c:375 #, c-format msgid "%s in search pattern `%s'" msgstr "%s dans le patron de recherche « %s »" #: src/utils.c:378 #, c-format msgid "invalid search pattern `%s' specified" msgstr "patron de recherche « %s » invalide" #: src/utils.c:383 src/tcal.c:338 src/txt2gcal.c:274 src/gcal2txt.c:274 #, c-format msgid "`%s' line %ld: (`%s') unmanaged error (%d)" msgstr "« %s » ligne %ld: (« %s ») erreur imprévue (%d)" #: src/utils.c:403 src/tcal.c:358 src/txt2gcal.c:294 src/gcal2txt.c:294 #, c-format msgid "" "\n" "%s: program aborted by signal %d\n" msgstr "" "\n" "%s: programme stoppé par le signal %d\n" #: src/utils.c:1080 msgid "th" msgstr "ième" #: src/utils.c:1084 msgid "st" msgstr "er" #: src/utils.c:1088 msgid "nd" msgstr "ième" #: src/utils.c:1092 msgid "rd" msgstr "ième" #: src/utils.c:1123 src/utils.c:1174 src/utils.c:1225 msgid "invalid day" msgstr "jour invalide" #: src/utils.c:1128 msgid "Mon" msgstr "Lun" #: src/utils.c:1133 msgid "Tue" msgstr "Mar" #: src/utils.c:1138 msgid "Wed" msgstr "Mer" #: src/utils.c:1143 msgid "Thu" msgstr "Jeu" #: src/utils.c:1148 msgid "Fri" msgstr "Ven" #: src/utils.c:1153 msgid "Sat" msgstr "Sam" #: src/utils.c:1158 msgid "Sun" msgstr "Dim" #: src/utils.c:1179 msgid "Mo" msgstr "Lu" #: src/utils.c:1184 msgid "Tu" msgstr "Ma" #: src/utils.c:1189 msgid "We" msgstr "Me" #: src/utils.c:1194 msgid "Th" msgstr "Je" #: src/utils.c:1199 msgid "Fr" msgstr "Ve" #: src/utils.c:1204 msgid "Sa" msgstr "Sa" #: src/utils.c:1209 msgid "Su" msgstr "Di" #: src/utils.c:1226 msgid "Monday" msgstr "Lundi" #: src/utils.c:1226 msgid "Tuesday" msgstr "Mardi" #: src/utils.c:1226 msgid "Wednesday" msgstr "Mercredi" #: src/utils.c:1226 msgid "Thursday" msgstr "Jeudi" #: src/utils.c:1227 msgid "Friday" msgstr "Vendredi" #: src/utils.c:1227 msgid "Saturday" msgstr "Samedi" #: src/utils.c:1227 msgid "Sunday" msgstr "Dimanche" #: src/utils.c:1243 src/utils.c:1320 msgid "invalid month" msgstr "mois invalide" #: src/utils.c:1248 msgid "Jan" msgstr "Jan" #: src/utils.c:1253 msgid "Feb" msgstr "Fév" #: src/utils.c:1258 msgid "Mar" msgstr "Mar" #: src/utils.c:1263 msgid "Apr" msgstr "Avr" #: src/utils.c:1268 msgid "May" msgstr "Mai" #: src/utils.c:1273 msgid "Jun" msgstr "Jui" #: src/utils.c:1278 msgid "Jul" msgstr "Jui" #: src/utils.c:1283 msgid "Aug" msgstr "Aoû" #: src/utils.c:1288 msgid "Sep" msgstr "Sep" #: src/utils.c:1293 msgid "Oct" msgstr "Oct" #: src/utils.c:1298 msgid "Nov" msgstr "Nov" #: src/utils.c:1303 msgid "Dec" msgstr "Déc" #: src/utils.c:1321 msgid "January" msgstr "Janvier" #: src/utils.c:1321 msgid "February" msgstr "Février" #: src/utils.c:1322 msgid "March" msgstr "Mars" #: src/utils.c:1322 msgid "April" msgstr "Avril" #: src/utils.c:1332 msgid "May " msgstr "Mai" #: src/utils.c:1333 msgid "June" msgstr "Juin" #: src/utils.c:1333 msgid "July" msgstr "Juillet" #: src/utils.c:1334 msgid "August" msgstr "Août" #: src/utils.c:1334 msgid "September" msgstr "Septembre" #: src/utils.c:1335 msgid "October" msgstr "Octobre" #: src/utils.c:1335 msgid "November" msgstr "Novembre" #: src/utils.c:1335 msgid "December" msgstr "Décembre" #: src/tcal.c:191 #, c-format msgid "Usage: %s [--%s | --%s] | [--%s=[+|-]NUMBER] [ARGUMENT...]\n" msgstr "Usage: %s [--%s | --%s] | [--%s=[+|-]NOMBRE] [ARGUMENT...]\n" #: src/tcal.c:320 src/txt2gcal.c:259 src/gcal2txt.c:259 #, c-format msgid "" "\n" "%s: abort, " msgstr "" "\n" "%s: abandon, " #: src/tcal.c:335 #, c-format msgid "shift value `%s' is invalid" msgstr "valeur de décalage « %s » invalide" #: src/tcal.c:907 #, c-format msgid "%s: option `--%s' requires an argument" msgstr "%s: l'option « %s » requiert un argument" #: src/tcal.c:1071 #, 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:131 #, c-format msgid "Usage: %s [--%s | --%s] | [TEXT-FILE | -] [DATE-PART]\n" msgstr "Usage: %s [--%s | --%s] | [FICHIER-TEXTE | -] [DATES]\n" #: src/txt2gcal.c:755 src/gcal2txt.c:754 #, c-format msgid "%s: no regular file\n" msgstr "%s: pas un fichier régulier\n" #: src/txt2gcal.c:760 src/gcal2txt.c:759 #, c-format msgid "%s: file not found\n" msgstr "%s: fichier n'a pas été repéré.\n" #: src/gcal2txt.c:131 #, 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 "regexp too big" #~ msgstr "expression régulière trop grosse" #~ msgid "out of space" #~ msgstr "Manque d'espace" #~ msgid "too many ()" #~ msgstr "trop de ()" #~ msgid "unmatched ()" #~ msgstr "() non pairées" #~ 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 "invalid [] range" #~ msgstr "Intervalle [] invalide" #~ msgid "unmatched []" #~ msgstr "[] non pairées" #~ 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-3.6.3/po/es.gmo0000644000175000017500000032441212125376135011116 00000000000000Þ•Œ|,mÜXv ‘v"žvÁvÕvCævA*wElwB²w+õwL!xKnxKºxJyMQyDŸyFäyF+z@rzA³zFõzF<{=ƒ{6Á{7ø{10|7b|'š|AÂ|E}CJ}AŽ}IÐ}H~Hc~?¬~*ì~!F9$€4¥?ÚM€Hh€H±€Pú€JKK–+â+‚?:‚6z‚4±‚=æ‚@$ƒJeƒ>°ƒJïƒI:„K„„JЄE…Da…J¦…Dñ…16†1h†9š†4Ô†< ‡@F‡2‡‡<º‡9÷‡01ˆ*bˆJˆ<؈M‰7c‰N›‰?ê‰B*Š.mŠNœŠ.ëŠB‹(]‹-†‹;´‹-ð‹CŒ#bŒ†ŒK¤ŒJðŒ?;H{'ÄJì57Ž!mŽ4Ž&ÄŽ"ëŽ6.Je.°Cß:#F^6¥3Ü5‘AF‘?ˆ‘5È‘,þ‘J+’Ev’3¼’(ð’6“/P“+€“7¬“7ä“E”:b” ”0¾”(ï”2•EK•C‘•DÕ•E–C`–N¤–Ló–O@—B—DÓ—P˜Di˜B®˜Hñ˜K:™I†™FЙDšO\šM¬šGúšGB›JŠ›JÕ›M œKnœ=ºœEøœK>@ŠEË9ž.Kž7zž-²žJàž=+Ÿ-iŸJ—Ÿ0âŸ= 6Q Cˆ 7Ì =¡8B¡9{¡/µ¡?å¡@%¢0f¢2—¢FÊ¢&£H8£.£B°£Bó£X6¤c¤]ó¤5Q¥:‡¥EÂ¥G¦,P¦@}¦E¾¦*§E/§Eu§A»§Cý§EA¨7‡¨@¿¨:©-;©i©I‰©IÓ©ª;9ª:uª=°ª;îª8*«<c«> «@ß«M ¬6n¬;¥¬á¬ó¬­­3­J­ _­ l­ y­ „­ ­­B¦­é­Bî­1®A®(Q®z®® ž®«®º®Ú®ú®¯$¯-¯#G¯'k¯&“¯/º¯+ê¯ °;"°+^°а%ž°#İè°±)±@±$]±+‚±&®±%Õ±(û±&$²K²=h²"¦²#ɲ í²!³"0³ S³a³q³³ •³ ³ ³³¾³ ѳܳ ï³ú³ ´´+´5-´c´g´k´z´ ‹´ ™´¥´ ¹´Ä´Ì´Ý´å´ü´ µµ+µ.:µ iµvµ …µ’µ 𵤵­µ ¶µ×µõµ ¶-¶M¶l¶‡¶¢¶½¶Ó¶è¶··3·K·S· g· u··ƒ·‰· ™·!£·Å·ã· ö·&¸'¸8¸ @¸ N¸\¸q¸ƒ¸‰¸¢¸ »¸ ƸÔ¸ܸ à¸í¸¹¹ ¹¹*¹D¹a¹v¹“¹¦¹¹¹Õ¹ݹ ó¹þ¹º/º3º;ºCº Zº gºtº}ºº ¡º¬º¾ºкàºóº»»-»>»Z»n»v»~»»”»œ»¤»·»Í»Õ»Þ»ó»¼ ¼$¼ ;¼G¼ O¼[¼o¼ ‚¼޼ —¼ ¤¼ ¯¼ ½¼ȼϼë¼½½%½7½@½ P½]½ p½ |½†½—½Ÿ½ ¢½­½ ¶½Á½Ƚ×½ï½ÿ½ ¾5¾Q¾d¾s¾¾ž¾ ²¾ ¿¾4̾0¿ 2¿ =¿I¿R¿ m¿z¿¿ž¿­¿±¿Ì¿Ý¿â¿ ù¿ ÀÀÀ0À?ÀWÀ]ÀcÀzÀ‘À™ÀÀ ´À ÂÀÐÀâÀôÀ ÁÁ*Á 3Á =Á JÁWÁ9iÁ£Á´Á ¼ÁÈÁèÁ .Â;ÂQÂ` pÂ{ƒ‹ ¢Â ®Â¼ÂÏÂÕÂÜÂëÂúÂüÂH ÃUÃsÃàñÃÈÃ×ÃçÃÄÄ1ÄEÄZÄqÄˆÄ¤Ä¾ÄØÄíÄÅÅÅ (Å6Å%RÅxÅ—ÅŸÅ ³Å ÁÅÏÅØÅáÅ ôÅÆÆ3ÆHÆ_Æ qÆ}Æ‘Æ •Æ £Æ±ÆÀÆØÆàÆ æÆ òÆþÆÇ"Ç 9Ç EÇRÇrÇŒÇÇ.£ÇÒÇìÇ þÇ ÈÈ#È+È@ÈIÈaÈpȀȕÈ2ÈÐÈÔÈ ðÈ ûÈÉÉ É-ÉEÉVÉkɂɆÉÉ®ÉÃÉ0ÕÉ1Ê18Ê*jÊ.•Ê:ÄÊ;ÿÊ:;ËvË–Ë˥˹ËÉËÚËãË%÷ËÌ4ÌOÌoÌrÌyÌ ŒÌšÌ«ÌÀÌÄÌËÌÓÌ âÌìÌôÌ ûÌ Í)Í1ÍBÍJÍeÍuÍ„Í˜Í§Í ·ÍÅÍ"ÚÍýÍÎ 9ÎFÎUÎkΆΘΟΠ¥Î ¯Î»Î ÔÎßÎ ñÎÿÎÏ>ÏUÏ \Ï iÏsÏ {Ï †Ï”Ï£Ï ºÏÅÏ ÊÏÔÏÛÏëÏÐÐÐ#Ð )Ð3ÐOÐfЂР†Ð “Ð1žÐÐÐçÐ÷Ð ÑÑ'Ñ 0Ñ:ÑKÑ SÑ_ÑzÑ•ÑAÑ ßÑêÑñÑÒÒ6ÒPÒgÒÒ—ÒŸÒ²Ò ÈÒÔÒØÒáÒ,÷Ò$Ó)Ó1Ó5ÓLÓeÓlÓrÓˆÓ™Ó­ÓÂÓÊÓÎÓÖÓÚÓàÓøÓÔ*Ô>ÔEÔIÔNÔRÔ WÔdÔ tÔ €Ô‹Ô“ԜԳÔÊÔÞÔþÔ Õ"Õ2ÕKÕRÕ ZÕeÕ zÕ…Õ Õ¨Õ#»ÕßÕõÕüÕ'Ö7Ö?ÖGÖVÖ ^ÖjÖ ‰Ö—Ö ¬Ö ¹ÖÃÖÙÖ âÖ ðÖûÖ×(×4*×_× e× r××.™×È× Ï×Ú×ã×è× î× û× ØØ!Ø%Ø+Ø >ØIØZØ oØ zØ…Ø šØ§Ø½ØÕØêØûØÙ+Ù <ÙHÙXÙiÙ {ÙˆÙ ˜Ù £Ù­Ù±Ù¶Ù¾ÙÆÙ ØÙåÙìÙûÙÚ#Ú5ÚDÚGÚKÚRÚYÚaÚsÚ ‡Ú1’Ú ÄÚ ÏÚÛÚãÚóÚ ÛÛ .Û9ÛMÛ_Û gÛrÛƒÛ›Û¯ÛÀÛÖÛîÛÜÜ.Ü 4Ü@Ü HÜTÜqÜ$Ü´ÜÔÜ ãÜ îÜüÜÝÝ +Ý 7ÝAÝGÝOÝcÝ hÝrÝzÝ ŠÝ«ÝÈÝÏÝÓÝ/ÜÝ9 Þ-FÞ tÞ€ÞÞ˜ÞŸÞ£Þ«Þ»ÞÌÞáÞöÞEûÞAßYßpߋߣßÀßÜßößààà!à 'à3à:àJàYàjà sà€àšà¢à ±à¿àÎà Ýàçàøàáá+á0á@á _áká oá }á ˆá”áá¤á­á ¶á(Ááêáâ!â1âDâ\â vâ„â •â¡âµâÌâÒâÛâðâøâãã&ã 6ãBãSã lãyããŸã³ãÌã Üãçãùãä #ä-ä=äEäaä tä‚ä‰ä’ä¤äºä0Ñäååå'åAå_åeå uå ƒåŽå¤å»åÑåÕå Þå èåõåæ æ.æ6æ:æ IæSægæ}æ æœæ ¯æ¼æ Îæ Ùæ åæ óæ ç ç)ç8ç Uçaç {ç‰ç ’ç Ÿç­çÁç Öçâç÷çè è è,è;è KèXè `èkè }è(Šè³èÐèÖè æè òèÿèé"é5éEéVéféué‡é–é¦éµé Åé ÏéÝéòé ê#ê3êFêXêaêpê„ê”ê¥ê¶ê Çê Õêãêôê ëë.ë?ëOëbë|ë•ë žë¬ë0Âëóëì ì)ì,ì2ìCì_ìwì{ì‚ì•ì ì¨ìÇì ×ì ãìíì ôì ÿì íí"+í!Nípí‡íŸí°íÅíÙíìíîî(î?îUîjîƒî–î¬îÂîÖîéîùî ïï-ïAïZïwï ~ï‰ï ’ï ï ·ïÅïÈï Üïçïøïð3ðRðfðzðð:¤ð=ßðDñCbñ¦ñªñ ³ñ½ñÌñãñêñòñò òòò-ò =òJò^ò tò5ò)µòßòþòóó#ó+ó4ó<ó CóPóiópó †ó’ó¦ó­óµó¼óÄó àóêóôô .ô<ôRôgô}ô”ô­ôÄôÞô"õôõ.õDõYõmõ„õšõ­õÂõÙõñõöö8öOögöö˜ö®öÅöÚööö÷(÷?÷\÷w÷Š÷¡÷¶÷Ñ÷ì÷ ø$ø<øPøcøyøø©øÅøÝøóøù= ù0Kù8|ùKµù7ú.9úhú(yú ¢ú ­ú»ú ÃúÍú Ýúëú û ûû#û,û.ûCû\ûvû‡û–û§ûªû ®û ¸ûÃûÈû ÐûÚûìû ûû üü (ü4üGüXüaühüjürü xü‚ü¡üÀüàüùüCý \ý hýrý‰ýý—ý ý7¤ý#ÜýAþ*Bþ/mþþ ´þ¿þ%Øþ.þþ-ÿ0ÿ Cÿ5Pÿ†ÿŠÿ’ÿ#§ÿ!Ëÿíÿ.ôÿ#7MQ4Z#"³(Ö'ÿ8'+` Œ1˜ Ê3Ø5 %B4hNFì3&BHi²>µô÷ú  - JWsv~EÇÐá%ù$/ T _emÓ,â!>4DsE¸Cþ(BMkR¹? LL N™ Oè G8 Q€ CÒ I G` N¨ =÷ B5 ?x 6¸ Cï '3 i[ TÅ GDbJ§OòGBFŠ*Ñ üT+r:žCÙEQcNµSMXI¦+ð+?H6ˆ5¿?õC5Ry@ÌO M]O«IûCE=‰PÇD+]1‰>»+ú;&Ab6¤@Û0*M,xR¥7øO09€YºBPW:¨Rã16;h(¤3ÍF1HEz&À çNQW=©Qç/9Pi8º!ó> ,T + -­ CÛ Q!=q!J¯!Bú!S="?‘"?Ñ"6#BH#@‹#2Ì#0ÿ#B0$Ms$5Á$1÷$8)%Cb%2¦%EÙ%A&Ha&Rª&;ý&=9'0w'9¨'Jâ'H-(Hv(H¿(F)QO)O¡)Wñ)FI*H*[Ù*I5+G+LÇ+R,Pg,K¸,I-TN-R£-Pö-PG.Q˜.Sê.P>/N/;Þ/40QO09¡0NÛ0G*18r17«1?ã1J#2Hn27·2kï2=[3Q™33ë3>4A^4H 4Hé4P25<ƒ5XÀ5Y61s6?¥6Gå6"-7EP7'–7F¾7G8\M8rª8l9AŠ9<Ì9J :KT:5 :LÖ:F#;+j;=–;GÔ;K<Fh<E¯<Nõ<@D=F…=3Ì=">F#>Aj> ¬>AÍ><?2L?<?5¼?Hò?>;@Lz@RÇ@GAAbA¤A·AÈAãAþAB 0B >B JB WB dB rB.|B«B3±BåBöB1C9C#BCfCwC0ˆC#¹CÝCäCëC( D 3D,TD)D5«D0áD E= E(^E‡E"¢E ÅEæEF/ FPF)oF1™F+ËF*÷F/"G2RG'…G>­GìG! H-HJH-jH˜H®HÁHÔHîHþH I&I >IKI cIpIˆI˜I§I7©IáIåIéIJJ ,J8JNJ]JeJzJ!‚J¤JÁJÚJ÷J-K=KOK_KuK }K‹K”K#œKÀKßK#÷K!L =L^L"}L L»LÑLæLÿLM1MIMPMcM xM†MŠMM §M$µMÚMúM NCN^NzN‚N–N­NÃNØNÞNøNO(O=OEOIO^OwO{O ‚OŒOŸO½OÜOñO P P3PRPZP yP„P&¢PÉPÍPÕPÝP ûP QQQ4QMQ\QoQ‚Q“Q§QºQÑQäQöQR#R+R4RERLRTR\R sR”R œR¦RÀRÓR çRñR SS"S2SRSeSwS€S‘S ¡S­SÆS#ÍSñS T(T/TATJT ^T0kTœT ¬T¶TËTÑT ÔTÞTçTöTþTU*U;USU pU‘U§U·UÖUæUûU VBV@^V ŸVªV½VÆVãVôVW #W1W5WTWkWpWW žW«W¯WÌWßWüWXX%!X GXQXUXuX …X XžX²XÅXÔXêXóXYY"YE?Y…Y¥Y ­Y »Y"ÜYÿYZ 5Z@ZYZpZ ˆZ“ZšZ!¢ZÄZÉZÜZòZ [[[*[:[<[MW[*¥[,Ð[ý[\"\8\H\"_\‚\\½\Ï\â\ú\]1]N]k]]™] ]§]¼])Ó]+ý]")^ L^V^k^z^’^›^¤^º^Ë^Ý^û^!_;_O_d_{___¨_!¹_Û_ã_ ê_ ö_``)` B`N`$c`#ˆ`¬`°`2È`"û`a0aDaLaaa iaŠa“a®aÅaÛaîa3ýa1b5bObbbxbb”b£b¼bÑbïbc cc4cNcI`c?ªc?êc@*dCkdR¯dKeHNe%—e½e ÄeÎeäeöe f f)k^kvkzkŽk5¢kØkñk l)l>lOl Xlbllˆl#˜l'¼läl=íl+m:mAm$Zm!m¡m¼mÔmïmn n/n HnTnXn`n1~n°nµn½nÁnÞnüno o"o7oModolopovozoo(oÆoãoûoppppp(p“FM“0”“#Å“é“&ì“”””%”,” 5”C”Y”`”t”„”›” ¢”®”µ”½”Û”#픕)•A•P•g•}•”•¬•ƕޕù•#–5–L–c–y–Ž–¦–½–Ñ–ç–ÿ–—-—E—b—z—“—®—Æ—Ý—ì—˜!˜=˜Z˜!t˜–˜¶˜ʘâ˜ø˜™.™N™l™…™š™®™Æ™Þ™ø™š/šFšašFiš=°š?îšT.›Bƒ›8Æ›ÿ›4œ JœVœjœ rœ|œœ¦œÁœÛœïœøœ8N_n‚ ‡ ’ ¤ ®¸Óåû ž!ž2žJž hžsž|ž~ž‡ž ž&—ž#¾ž&âž Ÿ#*ŸDNŸ “ŸŸ±ŸΟÕŸÝŸæŸ>êŸ%) BO -’ 0À ñ  ¡$¡5<¡3r¡¦¡©¡Ç¡9Ú¡¢ ¢$¢+8¢-d¢’¢D™¢Þ¢ù¢££C£&b£%‰£#¯£0Ó£C¤2H¤{¤8‹¤ Ĥ7Ò¤B ¥$M¥>r¥t±¥C&¦j¦.|¦H«¦ô¦:÷¦2§5§#8§\§ r§€§Ÿ§,³§à§ ã§ñ§@ô§5¨D¨[¨1{¨­¨,¨ ï¨û¨~yTìŠÇn¨R¢lû™îÁÔ¹‡,dVØ …VƺZÅ<;OØŸ |s‹*ƒ[Š¿ÍÑ F߃×(©†ts+@þØÉÕ×Ä?Ç7 ó¥fDÓ#:2òAùd+Et©žsâáóòwèi°M ÙzºÖ“Ïj³`¸¾†.Î|†½p`¯¡„”¬Ú†±‚…:-fZ„Û"ÿ’3nãN¯Wʳû—c¥®Ÿ¹MPùïD0Ûa½ˆ6Ö‹è>íþã‚ì¡–…0:()ä‚téÕUÍÜ3$[äf]gÇŽæA& ;ö…jˆá\¤L®ôy_Þ'Î^üûÉÌÜußkuhe #¹·Âë 'PWnS_ý#Þé`=KZÌL ªT»« çxCž¾¶_  ¬8oˆzU"=Ì¢Q+ ÚfŸ¼oŽ2Yw4H8”qP8${Q@S¥X5ð¦J1PË\ŒìBïë4»g }xIÚŒTVkõ¶±3<ݘÿ,”€lu‘ÁßíÃá‘Ká˜LM&÷Šñd)v.ݳÕÞ1IºŽ¾im$~So‡;¦a¤©r£Ð£2R“Q«dšË9É'ZQ¼ $’²¢¼„ª›êF-=’ŒBƒeÚ<fÅD}T2v{g]u(œšV¯=_àoŽª `™Ö1W¹éÒBsö¢·’þ“x‰bS.b¡ÂÃ+ÛqÒ.5ÏÈ® ¬¿7X9éʬÓzV5^E,ºõŸ?‚Ê~/Í–R°/'ïJ Üqˆ[¿ä‰vm”Œ¥ò¾±r’èpè ›qÈÄeŠÅ2„,O¸²‘Ìï÷p•“cÆviX56³%Ýn†â)æÙ!Y z¸.JcÝ„% ŽD™¤EX—{ù-$=xT¶äL‡‹-îLWy'+ Á!íïv•…(sƒO\\¦Š?L!UYÜpÙ°,íSär˜å€­‡<y6*E[">ý¶Õñ´$Ñúåž÷ù­¶3§eÃ&€>´ÚŒ áÎ[ß7®k}hOðå¯ô ®§©X»>sþå*ª:àçtbaÈ™¾ø@jcž‡-Rû£Ëhój|æ]ŒÑëÿ`3#€Á4Âé_Št¨0FYÐùƒ´U<¸\êMã8CÄ1b6O0¦î šPóÿ“cÐFµKÒ•ëìªl‚Í&Ä¿uÜGH |{&¹~Ñô²4GúK873ò(10 ynê"ÖA¼ãQè§ýö±iÇ{™}õìë;,Â/vðã×e|ðCå¥òóô4p—/÷;øö@b¨!ÌYE]¼ÙοA×ROÔ§0œß>æžôbIõÑü| ¨-NA îÆš{°^µI+:%œæÀrÛ‹GÕ‰*œ:2wÓÿ6Dr~·)W÷^Æí‘þÒ mÔÛ?€àjÀC"‹R¤¸ % ­kÂi lXý´‰NIZà mKû`o«)ÍkB…5 nw©à5† F‘j*Êx¡Î­Cʼnàm7_oõ½HG<zÓÆ”ðË9QM¨ü»~g*%FÒ¢MÊ@ñA‚öpH.Àh­=øŸâW}ÓÏâøÀ6DJd!ÈÞÇȰêµU•/%}µx>H&;e„NdgИ³CøI›üÙkJiUˆh#'G²–J–m—£‡–¬1VÐØ^ÏwGÞ€µSTËÔ/»´ É·¦Åa(¯ü)9BÝ Y]wz‰g—l^Zc "7•›8Ïç«Áýañ úÀñ竺Ö4±ÔPy\ƒ@›?qœH?]K½šh ‹NNâãê·¡BØu˜lqˆ×!a½#§E9çúrúÄ9tÉ[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/Nordwest 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 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/SaarGermany/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' DayGuy Fawke's 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 DayNorfolk IslandsNorthern 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-LandSwitzerland/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 Report-Msgid-Bugs-To: bug-gcal@gnu.org POT-Creation-Date: 2013-03-29 21:40+0100 PO-Revision-Date: 2011-08-24 12:05-0500 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 %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á/Territorios del NoroesteCanadá/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 LlenaGabón #GambiaDía de GarifunaAniversario del General San MartínGeorgiaDí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/SaarAlemania/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 AdolfoDía de Guy FawkeGuyana #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 NorfolkIslas 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-LandSuiza/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-3.6.3/po/stamp-po0000644000175000017500000000001212125376136011452 00000000000000timestamp gcal-3.6.3/po/insert-header.sin0000644000175000017500000000124012125375415013237 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-3.6.3/po/Makefile.in.in0000644000175000017500000003334312125375415012455 00000000000000# -*- buffer-read-only: t -*- vi: set ro: # DO NOT EDIT! GENERATED AUTOMATICALLY! # Makefile for PO directory in any package using GNU gettext. # Copyright (C) 1995-1997, 2000-2006 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.16 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: all-@USE_NLS@ all-yes: stamp-po all-no: # $(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 test -n '$(MSGID_BUGS_ADDRESS)' || test '$(PACKAGE_BUGREPORT)' = '@'PACKAGE_BUGREPORT'@'; then \ msgid_bugs_address='$(MSGID_BUGS_ADDRESS)'; \ else \ msgid_bugs_address='$(PACKAGE_BUGREPORT)'; \ fi; \ $(XGETTEXT) --default-domain=$(DOMAIN) --directory=$(top_srcdir) \ --add-comments=TRANSLATORS: $(XGETTEXT_OPTIONS) \ --files-from=$(srcdir)/POTFILES.in \ --copyright-holder='$(COPYRIGHT_HOLDER)' \ --msgid-bugs-address="$$msgid_bugs_address" 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-3.6.3/po/de.gmo0000644000175000017500000010174212125376135011076 00000000000000Þ•„< \€ "Ž ± C A!EH!BŽ!+Ñ!Lý!KJ"K–"Mâ"@0#=q#1¯#Aá#C#$Ag$I©$Hó$H<%?…%*Å%$ð%+&+A&?m&4­&Eâ&D('Dm'1²'@ä'2%(9X(0’(*Ã(<î(M+)7y)N±)?*B@*Nƒ*.Ò*B+(D+-m+;›+-×+C,#I,m,J‹,?Ö,H-J_-5ª-6à-J..b.3‘.5Å.Aû.?=/5}/,³/Jà/E+03q0/¥07Õ07 1EE1 ‹1(¬1EÕ1.2JJ2=•2-Ó263C837|3=´38ò3/+4?[4@›4FÜ4&#5HJ5.“5,Â5@ï5*06E[6E¡6Cç67+7Ic7I­7÷7;86O8;†8Â8Ô8ä8ü89+9 @9 M9 Z9 e9 q9~9B‡9Ê9BÏ9:":(2:[:`:g:$n:“:#­:'Ñ:+ù:+%;Q;e;~;)“;½;$Ú;%ÿ;(%<&N<u<"’<#µ< Ù<!ú<"= ?=M=]=m= = Œ= —= ¢=­=¼=¾=Â=Ñ=á= ð=ú=þ= > > >+>/> 6>C> S>^> q>}>…>0ˆ>¹>Ð>ß>ã> ú> ? ?9#?]?}?–?¥? ­?¹?Ö?í?ñ? ú? @ @"@ 9@F@.J@y@“@ ¨@µ@Í@ä@è@ñ@ú@AA$A(A/A7AHA PA\A uA ƒAŽA¥A¼A ÌA1ÖABAB^BoBsB|B€BˆBŒB‘B•B šB¥B'»BãBòB C4C.ICxC|C‚C —C¢CºCÏCìCüCDD DDDD0D1DD vDƒD”D¬D »DÅDÉDÒDÙDÝDEåD +E7E ;E(FE oE}EE ¦E³EÂEÅEÉE ÒEÜE àEêE0F5F8FÁNOOO O ,O 9OFObOeOmOpOyOŠO¢O ²O ½OVËO"Q%1QWQHiQC²QMöQKDR-RI¾RHSIQSL›SBèS>+T4jTKŸTFëTB2UFuUE¼UFVCIV+V$¹V,ÞV, W@8W=yWF·W?þWH>X5‡X>½X>üX;;Y4wY*¬Y3×YO Z8[ZG”ZIÜZK&[:r[9­[8ç[0 \8Q\AŠ\9Ì\=]#D]'h]K]>Ü]G^Mc^@±^9ò^D,_6q_7¨_<à_H`Bf`=©`1ç`EaE_a6¥a9Üa>b=UbI“b%Ýb.cK2c=~cO¼cE d8Rd;‹dIÇdAeISe?e=ÝeBfC^fP¢f$ófKg3dg7˜g;Ðg( hD5hLzhHÇh=iENiE”i%ÚiGjDHjGjÕjèjùjk-kFkXkgk vk ‚k Žk›k>¤kãk>èk'l6l0Elvl{lƒl%‹l±l$Çl#ìl.m,?mlm†m¢m%½m#ãm&n'.n/Vn+†n²n&Ín'ôn$o%Ao%goo£oµoÇo ×o äo ño þo ppp !p -p ;p GpQpUp[p pp|p‹pp–pŸp²pÆp ÞpépòpBõp8qJqYq]qqq …q ‘q<q!Úqüq r"r *r4rEr^rbrkr ƒr rœr²rºr0¾rïrs$s -s:sMsQsYshs~ssšsžs¦s¯s És Õsàsùs tt3tEt Ut?_tŸt>½tütuuuu&u*u/u3u8uGu.cu’u¤u ¼uDÊu-v=vBvHv ]vhv}vv£v³v ·vÃvÆvÊvÑvÙvìv8w ;wEwVwvw ~wˆwŒw•wœw wB¨w ëw÷wûw,x/x?x OxYxjx}x€x„xŒx•x ™x£x1¶xèxëxïx÷x y yyy=yZyqy‡yŸyC¶yAúyC×z3{'J{r{u{y{ ‚{Œ{{®{KÉ{:|0P|6|¸| Ê| Ö|à|ã|ç| ð|ú|} }}'}6}DI}IŽ}0Ø}6 ~@~W~~`~Bß~".% Tbs…8Æ à4ê@€6`€—€1§€Ù€3ë€@%`O†FÖ‚-4‚Nb‚±‚B¶‚ù‚ü‚ƒ ƒ'ƒ 7ƒDƒcƒhƒoƒ tƒƒ—ƒ¶ƒ Ƀ ÔƒvD] i7…Y@­øa#Æ¡=(/d'8¥PMW]_¢t3×íÞ–HŸwU?bD)i,œ4FnáKq¸ì* “)õÄ\› .PÉ5Š{‹Ury·d^w•£AŒê<È´fI϶W|üãØð æO„:ëÌA JO&$¬eƒ Õ!m2E|T[NÇà:E.p-"k6¿7cL<e8605p$þlCÊ2èÔTÛ;1î ÙÁ*ôh—aÑÍvÖ÷co¾= ,'rVý~93#+X’` ‘‡\ ª (Z”‰fߎòB¦Ò9_™Z½S4‚zn«ÿx&â§±ÎÂù©GHtl²ÅƒQ˜Ã ó¨„F[Y°¤Czs?JXÐÝñ~hQ€%>µoºG¼Ü³IsKb¯¹guÀïä%>ÓÚ+‚0"!V}q@Ljûú®1-}x;N€»mˆgyMR{BžSåé^†çukË/ j`Ršö %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 earlier:ARGAll 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 DayEmoEnd 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' DayGuy Fawke's DayHalloweenHighlighting group (all members must be defined):Holy Innocent's DayIf you use this software, you agree without any exception to thisIndependence DayIntInternalJanJanuaryJulJulyJunJuneLabour 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 SundayPhyPrayer 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 open%sresource file `%s'... %s%s%sTry to write %s `%s'... %s%s%sTuTueTuesdayTuesdaysU.S.A.Union with Sweden dissolvedUnited 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'`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.40 Report-Msgid-Bugs-To: bug-gcal@gnu.org POT-Creation-Date: 2013-03-29 21:40+0100 PO-Revision-Date: 1997-04-09 23:42+0000 Last-Translator: Thomas Esken Language-Team: German Language: de MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8-bit %s: Abbruch, %s: Programmabbruch durch Signal %d `%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 des Monats = %s Liste von gestern bis Anfang der Woche = %s Liste von gestern bis Anfang des Jahres N = 0 1'te Woche / letzte Woche im Vorjahr N = 1...52 1'te...52'te Woche (stets) N = 53 53'te Woche (manchmal) N = 99 Letzte Woche = Den `29-FEBRUAR' in Nicht-Schaltjahren handhaben = 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 %c = Ausschluß aller %s 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 Ausdrücken, die durch `%s' Zeichen getrennt sind # %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] = Einzelner Tag N relativ zur Datumvariablen # %cdN = Einzelner absoluter Tag N # A = Alternatives Listenformat verwenden # E = Nur gesetzliche Feiertage einfügen # NMOD = Einzelner Tag N relativ zu heute # Nd = Einzelner absoluter Tag N # Nw = Gesamte Woche N # U = Datumfeld nicht ausgeben # Z = Nur Daten ausgeben, für die keine Termine vorliegen # a = Herkunft des Termins ausgeben # d = Aktuelles Datum einschliessen bei Datumliste # e = Gesetzliche Feiertage und Gedenktage einfügen # g[MOD] = Benutze Trenntext MOD für tageweise Gruppierung # l = Datumliste anstelle Einzeldatum # 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 = abort Wie `all' und Abbruch bei ungehandhabten Dateinamen = all Wie `handled' und `unhandled' zusammen = handled Wie `internal' und zudem gehandhabte Dateinamen = unhandled Wie `internal' und zudem nicht gehandhabte Dateinamen Aktuell berücksichtigter Zeitraum: %02d-%02d %s %0*d Antwortdatei für die `%cDATEI' Option erzeugen Shell script mit den Argumenten der Kommandozeile erzeugen Zusätzliche Ressourcendateizeile definieren Ausgabe durch externen `%s' Paginierer lenken Ausgabe durch einfachen internen Paginierer lenken 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, in denen %s im Text enthalten ist Softwarelizenz ausgeben und Programm beenden Ewige Feiertagsliste ohne Überschrift ausgeben Lokale Datumvariablen von Datei zu Datei exportieren Lokale Textvariablen von Datei zu Datei exportieren Beläßt Hervorhebungssequenzen in Ausgabe bei Ausgabeumlenkung Impliziert Zeitraum: Heute Format des Jahreskalenders festlegen Ewige Feiertagsliste mit landesspezifischen Feiertagen ausstatten Versenden der Ausgabe via `%s' Programm an Benutzer Setze Hervorhebungssequenz-Paare 1 (=aktueller Tag) und 2 (=Feiertag) Anordnung der Datumelemente mit dem Formattext %s festlegen Setze Zeitraum der Gregorianischen Reformation Ausgabe des Kalenderblatts 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 Spezial-Kalenderformat für Kalenderblatt verwenden Benutze Standard-Ressourcendatei `%s%s' für Terminliste Benutze Standard-Ressourcendatei `.%s%s' für Terminliste %-3s = Einzelne Datei oder durch `%s' Zeichen verbundene Liste von Dateien [MOD] = %s Absteigend sortiert [MOD] = Einer oder mehr der folgenden Modifizierer; hier markiert mit # %-*d%*s = Setze Zeitraum auf: %02d-%02d %s %0*d %-3s = Jede mögliche Zeile einer Ressourcendatei %-3s = Jeder beliebige Text bzw. "reguläre Ausdruck" %-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 = Eines oder mehrere der folgenden Zeichen. Wenn Zeichen ein %-3s = Schreibe Argumente der Kommandozeile in Datei %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 [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.5 neuer als 5.0 n = Gesetzliche Feiertage und Gedenktage am %cDATUM%cDATEI%s = Monat im Bereich: %d...%d%s im Suchmuster `%s'%s%*s = Jahr im Bereich: %d...%d%s%s hat nun %d Maximaleinträge!%s%s: Benutze `%s %s' mit einem dieser Argumente%s: Fehler bei Programmausführung von `%s' %s: Datei nicht gefunden %s: ungültige Option -- %s%s: keine reguläre Datei %s: Option `%s' erlaubt kein Argument%s: Option `%s' ist nicht eindeutig%s: Option `%s' benötigt ein Argument%s: Option benötigt ein Argument -- %s%s: Option mit nicht eindeutigem Argument -- %s%s: Option mit unzulässigem Argument -- %s%s: unbekannte Option `%s'%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 +++1'ter Advent2'ter Advent3'ter Advent4'ter Advent5.1 oder älter.ARG1'ter AprilAllerheiligenAllerseelenAnzac TagAprAprilWaffenstillstandstagRosenmontagAschermittwochAugAugustFeiertagSchlacht von Boyne2'ter WeihnachtstagVerbrennung des Jan HusBrandnachtKOMMANDOKWKommando kann nicht ausgeführt werden in Datei `%s' Zeile %ld: %sZeichenersetzung:Tag der KinderChrChristi Himmelfahrt1'ter WeihnachtstagHeiligabendKolumbustagKommando ausgeführt (Status=%d) in Datei `%s' Zeile %ld: %sKompiliert mit %s%s für %s%s%s%sJahrestag der VerfassungKrönungstagErzeugtKulturtagBuß- und BettagTag der StudentenrevolteDezDezemberTag des HerrscherhausesOstermontagOstersonntagEindhoven's BefreiungWahltagEmoEnde von Hervorhebungssequenz/MarkierungszeichenEpiphanias/Heilige Drei KönigeEwige FeiertagslisteVatertagFronleichnamFest des TheotokosFebFebruarTag der FlaggeFlämischer KulturtagFrFranzösischer KulturtagFreFreitagFreitageTag der Deutschen EinheitDeutschlandKarfreitagKarsamstag/OstervorabendGroßbritannienGrottentagTag der Jungfrau von GuadalupeGustav Adolph TagGuy Fawke's TagHalloweenHervorhebung-Gruppe (alle Mitglieder müssen definiert werden):Tag der heiligen Unschuldigenmeiner Software hervorgehen, wird grundsätzlich keine HaftungUnabhängigkeitstagGeiInternJanJanuarJulJuliJunJuniTag der ArbeitNationalfeiertag der LappenSchalttag auf `%02d-%s' gesetzt in Datei `%s'.Tag der BefreiungZeile %ld ignoriert: %sZeile %ld: %sdie TAUGLICHKEIT oder die VERWENDBARKEIT ZU EINEM ANGEGEBENEN ZWECK.Post von \`%s' (%02d-%s-%04d %02d%s%02d%s%02dMärMärzMartin L. King's TagMartinstagMariä VerkündigungMariä HimmelfahrtMariä EmpfängnisGründonnerstagMaiMaifeiertagMoMonMontagMontageMontage...FreitageMontage...DonnerstageMonat-Gruppe (genau ein Mitglied muß definiert werden):MuttertagNationalfeiertagTag des nationalen WiderstandesNeujahrNobel TagNovNovemberOPTIONOktOktoberVerwendungsfähigkeit oder Korrektheit. Für JEDWEDE Schäden oderPalmsonntagPhyBettagLädt Optionen und Kommandos aus `DATEI' vorPrinzessin' TagReformationstagGedenktagTag der RepublikTag der RevolutionSaSamSamstagSamstageSepSeptemberFasching/FastnachtStart von Hervorhebungssequenz/MarkierungszeichenSoSonSonntagSonntageSchwalbentagTag der LehrerDoDer Kronprinzessin GeburtstagDer Kronprinzessin NamenstagDes Königs GeburtstagDes Königs NamenstagDer Königin GeburtstagDer Königin Namenstagund 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 weitervertreibenDiese Software erhebt keinen Anspruch auf Vollständigkeit,DonDonnerstagDonnerstageVersuche (Ebene: %02d) Include-Datei `%s' zu öffnen... %s%s%sVersuche%sRessourcendatei `%s' zu öffnen... %s%s%sVersuche %s `%s' zu schreiben... %s%s%sDiDieDienstagDienstageUSAUnion mit Schweden aufgelöstTag der Vereinten NationenAufruf: %s [%s|%s{[?|h|??|hh|L|V]|{%sHKNOR%sXb%sijn%sq%ssu%s}}] [[%s] [%s]]Aufruf: %s [[OPTION...] [%cDATUM] [%cDATEI...]] [KOMMANDO]Aufruf: %s [[OPTION...] [%cDATEI...]] [KOMMANDO]Vorgegebenes `DATUM' anstelle heutiges Datum verwendenTag der VeteranenVictoriatagSiegestagMiMitMittwochMittwocheWocheWoche %sPfingstmontagPfingstvorabendPfingstsonntagWelt-TierschutztagSie sollten eine Kopie der `GNU General Public License' zusammen mit`%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 erschöpft (%s=%d)`Ewige Feiertagsliste'`Intern'übernommen. Bei Verwendung dieser Software erklärt sich der Benutzer mit dieser Vereinbarung in vollem Umfang einverstanden.diesem Programm erhalten haben; falls nicht, schreiben Sie an die:amin der Version 2 oder jeder späteren Version.KommandozeileGrundeinstellungUmgebungsvariableVersagtkann Datei `%s' nicht schreiben Speichermedium ist voll!Datei `%s' nicht gefundenFeiertageillegales Zeichen in Antwortdatei `%s' Zeile %ld: %sungültiges N'ter Wochentagsfeld(%d) in Datei `%s' Zeile %ld: %sunzulässiger 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: %srekursives/zyklisches %s unzulässig in Datei `%s' Zeile %ld: %sungültiges Suchmuster `%s' angegebenunzulässiges Jahr für Ostertagsberechnung Jahr muß im Bereich (%d...%d) seinund/oder verändern innerhalb der Bestimmungen der `GNU General Publicgesetzlichen Feiertagemißgebildetes %s in Datei `%s' Zeile %ld: %sfehlendes `whitespace' Trennzeichen nach Datumteil in Datei `%s' Zeile %ld: %s'terVerluste (implizit oder explizit), die aus Nutzung oder Handhabungpm'terLesefehler in Datei `%s'AntwortdateiSelbstdefiniertshell scriptVersatzwert `%s' ist ungültig'terErfolg'terunbekannt unbekannter Kompiliererunbekannter Kompilierer (SDK?)unbekannte VersionVersion %dVersion %d.%dgcal-3.6.3/po/ca.gmo0000644000175000017500000032004512125376135011070 00000000000000Þ•„<,a\Xàu áu"îuv%vC6vAzvE¼vBw+EwLqwK¾wK xJVxM¡xDïxF4yF{y@ÂyAzFEzFŒz=Óz6{7H{1€{7²{Aê{E,|Cr|A¶|Iø|HB}H‹}?Ô}*~!?~$a~4†~?»~Mû~HIH’PÛJ,€Kw€+À+ï€?6[4’=Ç@‚JF‚>‘‚JЂIƒKeƒJ±ƒEüƒDB„J‡„DÒ„1…1I…9{…4µ…<ê…@'†2h†<›†9؆0‡*C‡Jn‡<¹‡Mö‡7DˆN|ˆ?ˈB ‰.N‰N}‰.̉Bû‰(>Š-gŠ;•Š-ÑŠCÿŠ#C‹g‹K…‹JÑ‹?ŒH\Œ'¥ŒJÍŒ5!N4p&¥"Ìï6ŽJFŽ.‘ŽCÀŽ:F?6†3½5ñA'?i5©,ßJ ‘EW‘3‘(Ñ‘6ú‘/1’+a’7’7Å’Eý’:C“ ~“0Ÿ“(Г2ù“E,”Cr”D¶”Eû”CA•N…•LÔ•O!–Bq–D´–Pù–DJ—B—HÒ—K˜Ig˜F±˜Dø˜O=™M™GÛ™G#šJkšJ¶šM›KO›=››EÙ›Kœ@kœE¬œ9òœ.,7[-“JÁ= ž-JžJxž0Þ=ôž62ŸCiŸ7­Ÿ=åŸ8# 9\ /– ?Æ @¡2G¡Fz¡&Á¡Hè¡.1¢B`¢B£¢Xæ¢c?£]££5¤:7¤Er¤G¸¤,¥@-¥En¥*´¥EߥE%¦Ak¦C­¦Eñ¦77§@o§:°§-맨I9¨Iƒ¨ͨ;é¨:%©=`©;ž©8Ú©<ª>Pª@ªMЪ6«;U«‘«£«³«Ë«ã«ú« ¬ ¬ )¬ 4¬ @¬M¬BV¬™¬Bž¬á¬ñ¬(­*­/­ N­[­j­Š­ª­±­$¸­Ý­#÷­'®&C®/j®+š® Æ®;Ò®+¯:¯%N¯#t¯˜¯±¯)Ưð¯$ °+2°&^°%…°(«°&Ô°û°=±"V±#y± ±!¾±"à± ²²!²1² E²P² c²n² ²Œ² Ÿ²ª²½²̲Û²5ݲ³³³*³ ;³ I³U³ i³t³|³³•³¬³»³˳Û³.ê³ ´&´ 5´B´ J´T´]´ f´‡´¥´½´Ý´ý´µ7µRµmµƒµ˜µ±µɵãµûµ¶ ¶ %¶/¶3¶9¶ I¶!S¶u¶“¶ ¦¶&°¶×¶è¶ ð¶ þ¶ ·!·3·9·R· k· v·„·Œ· ··²·¶· ½·Ç·Ú·ô·¸&¸C¸V¸i¸…¸¸ £¸®¸ĸ߸ã¸ë¸ó¸ ¹ ¹$¹-¹=¹ Q¹\¹n¹€¹¹£¹µ¹˹ݹî¹ ºº&º.º=ºDºLºTºgº}º…ºŽº£º´º ʺÔº ëº÷º ÿº »» 2»>» G» T» _» m»x»»›»·»λà»é» ù»¼ ¼ %¼/¼@¼H¼ K¼V¼ _¼j¼q¼€¼˜¼¨¼ ½¼Þ¼ú¼ ½½8½G½ [½ h½4u½0ª½ Û½ æ½ò½û½ ¾#¾6¾G¾V¾Z¾u¾†¾‹¾ ¢¾ ®¾º¾¾¾Ù¾è¾¿¿ ¿#¿:¿B¿F¿ ]¿ k¿y¿‹¿¿ ­¿»¿Ó¿ Ü¿ æ¿ ó¿À9ÀLÀ]À eÀqÀ‘ÀªÀ¾À ×ÀäÀúÀ Á Á$Á,Á4ÁFÁ KÁ WÁeÁxÁ~Á…Á”Á£Á¥ÁHµÁþÁÂ8ÂIÂZÂiÂy–¬ÂÃÂ×ÂìÂÃÃ6ÃPÃjÃÖÚãà ºÃÈÃ%äà Ä)Ä1Ä EÄ SÄaÄjÄsÄ †Ä“ĪÄÅÄÚÄñÄ ÅÅ#Å 'Å 5ÅCÅRÅjÅrÅ xÅ „ÅŤŴŠËÅ ×ÅäÅÆÆ"Æ.5ÆdÆ~Æ ÆœÆ¤ÆµÆ½ÆÒÆÛÆóÆÇÇ'Ç2/ÇbÇfÇ ‚Ç ÇšÇ¡Ç ²Ç¿Ç×ÇèÇýÇÈÈ!È@ÈUÈ0gÈ1˜È1ÊÈ*üÈ.'É:VÉ;‘É:ÍÉÊ(Ê/Ê7ÊKÊ[ÊdÊ%xʞʵÊÐÊðÊóÊúÊ ËË,ËAËEËLËTË cËmËuË |Ë ‰ËªË²ËÃËËËæËöËÌÌ(Ì 8ÌFÌ"[Ì~ÌÌ ºÌÇÌÖÌìÌÍÍ Í &Í 0Í<Í UÍ`Í r̀͠ͿÍÖÍ ÝÍ êÍôÍ üÍ ÎÎ$Î ;ÎFÎ KÎUÎ\Îl΃ΓΜΤΠªÎ´ÎÐÎçÎÏ Ï Ï1ÏQÏhÏxÏ ŒÏ™Ï¨Ï ±Ï»ÏÌÏ ÔÏàÏûÏÐAÐ `ÐkÐrЃÐзÐÑÐèÐÑÑ Ñ3Ñ IÑUÑYÑbÑ,xѥѪѲѶÑÍÑæÑíÑóÑ ÒÒ.ÒCÒKÒOÒWÒ[ÒaÒyÒ‘Ò«Ò¿ÒÆÒÊÒÏÒÓÒ ØÒåÒ õÒ Ó ÓÓÓ4ÓKÓ_ÓÓ ˜Ó£Ó³ÓÌÓÓÓ ÛÓæÓ ûÓÔ Ô)Ô#<Ô`ÔvÔ}Ô'Ô¸ÔÀÔÈÔ×Ô ßÔëÔ ÕÕ -Õ :ÕDÕZÕ cÕ qÕ|Õ“Õ©Õ4«ÕàÕ æÕ óÕÖ.ÖIÖ PÖ[ÖdÖiÖ oÖ |Ö ‡Ö’Ö¢Ö¦Ö¬Ö ¿ÖÊÖÛÖ ðÖ ûÖ× ×(×>×V×k×|××¬× ½×É×Ù×ê× ü× Ø Ø $Ø.Ø2Ø7Ø?ØGØ YØfØmØ|ØØ¤Ø¶ØÅØÈØÌØÓØÚØâØôØ Ù1Ù EÙ PÙ\ÙdÙtÙ ˆÙ•Ù ¯ÙºÙÎÙàÙ èÙóÙÚÚ0ÚAÚWÚoÚ‡ÚœÚ¯Ú µÚÁÚ ÉÚÕÚòÚ$Û5ÛUÛ dÛ oÛ}Û†ÛÛ ¬Û ¸ÛÂÛÈÛÐÛäÛ éÛóÛûÛ Ü,ÜIÜPÜTÜ/]Ü9Ü-ÇÜ õÜÝÝÝ Ý$Ý,Ý<ÝMÝbÝwÝE|ÝÂÝÚÝñÝ Þ$ÞAÞ]ÞwÞ‘Þ•Þ™Þ¢Þ ¨Þ´Þ»ÞËÞÚÞëÞ ôÞßß#ß 2ß@ßOß ^ßhßyßߓ߬߱ßÁß àßìß ðß þß ààà%à.à 7à(Bàkàˆà¢à²àÅàÝà ÷àá á"á6áMáSá\áqáyá‰á˜á§á ·áÃáÔá íáúáâ â4âMâ ]âhâzâ‰â ¤â®â¾âÆâââ õâã ãã%ã;ã0RãƒãœãŸã¨ãÂãàãæã öã ää%ä<äRäVä _ä iävä…ä ¡ä¯ä·ä»ä ÊäÔäèäþä åå 0å=å Oå Zå få tå ‚åŽåªå¹å Öåâå üå æ æ æ.æBæ WæcæxææŠæ Ÿæ­æ¼æ ÌæÙæ áæìæ þæ( ç4çQçWç gç sç€çç£ç¶çÆç×çççöçèè'è6è Fè Pè^èsè‹è¤è´èÇèÙèâèñèéé&é7é Hé VédéuéŠéŸé¯éÀéÐéãéýéê ê-ê0Cêtêˆê œêªê­ê³êÄêàêøêüêëë ë)ëHë Xë dënë uë €ë ë™ë"¬ë!Ïëñëì ì1ìFìZìmì…ì–ì©ìÀìÖìëìþìí*í>íQíaítí…í•í©íÂíßí æíñí úíî î-î0î DîOî`î|î›îºîÎîâî÷î: ï=GïD…ïCÊïðð ð%ð4ðKðRðZðlð rð~ð„ð•ð ¥ð²ðÆð Üð5çð)ñGñfñiñ‡ñ‹ñ“ñœñ¤ñ «ñ¸ñÑñØñ îñúñòòò$ò,ò HòRònòƒò –ò¤òºòÏòåòüòó,óFó"]ó€ó–ó¬óÁóÕóìóôô*ôAôYômô„ô ô·ôÏôéôõõ-õBõ^õwõõ§õÄõßõòõ öö9öTöqöŒö¤ö¸öËöáöøö÷-÷E÷[÷m÷=u÷0³÷8ä÷Kø7iø.¡øÐø(áø ù ù#ù +ù5ù EùSù iù vù‚ù‹ù”ù–ù«ùÄùÞùïùþùúú ú ú+ú0ú 8úBúTú cú oú{ú úœú¯úÀúÉúÐúÒúÚú àúêú û(ûHûaûC€û Äû ÐûÚûñûøûÿûü7 ü#DüAhü*ªü/Õüý ý'ý%@ý.fý•ý˜ý «ý5¸ýîýòýúý#þ!3þUþ.\þ‹þŸþµþ¹þ4Âþ#÷þ"ÿ(>ÿ'gÿ8ÿ+Èÿ ôÿ1 23@5t%ª4ÐNFT›&ªHÑ>\_b z ˆ• ²¿ÛÞæéò%A$Q v añ$ .C=VC”EØB+aKOÙJ)ItK¾L IWN¡@ðL1 K~ NÊ ? BY >œ 6Û B EU J› Fæ B- Jp L» I >R *‘ ¼  Û <ü F9U€PÖL'UtPÊN-j-˜?Æ65=6s@ªLë88JqH¼OJUB =ãN!Ap)²1Ü1,@;m=©:ç?"9b(œ-ÅLó?@E€;ÆICLF7×I1YE‹*Ñ8üG52}F°$÷J<M‡9ÕF/VI†>Ð!:1)l+–$Â:çF"@iHª?óe3>™:Ø< @P @‘ 0Ò '!@+!Al!%®!=Ô!4"8G"?€"EÀ"E#NL#]›#$ù#8$0W$7ˆ$?À$>%6?%>v%=µ%Gó%F;&K‚&<Î&? 'MK'>™'=Ø'A(FX(EŸ(@å(?&)If)H°)Dù)D>*Cƒ*DÇ*= +<J+3‡+B»+Dþ+0C,Mt,.Â,Añ,:3-:n-c©-? .7M.‡….< /LJ/D—/OÜ/8,0<e0:¢0CÝ07!1GY16¡19Ø1I2!\2H~28Ç2C3CD3\ˆ3˜å3`~4Cß48#5I\5F¦5=í5E+6Iq6+»6Nç6D67E{7JÁ7G 8ET8Fš8Dá8@&9#g9G‹9MÓ9 !:?B:9‚:;¼:5ø:3.;?b;A¢;Fä;L+<?x<?¸<ø< ==4=N=g= ƒ= Ž= š= ¨= ´= Á=IË=>H>c>v>)Š>´>"¹> Ü>ê>û>#?>?E?N?m??2«?/Þ?4@+C@o@:†@6Á@ø@5A2LAA%›A(ÁAêA'B*0B)[B(…B$®B'ÓBûBDC ^C#C£C!ÂC.äCD(D:DLD`DuDD¢DºDÏDçDüDE#E6E38ElEpEtE‡E¡E ´E¿E ÕEâEëEþE F(F;FMFdF;uF±FÂFÒFèF ðFüFG"G1GPG!fG ˆG©GÉG æGH!H6HIHaHxH‘H¨H¯HÁHÕHäHèHîHII3IQI eI3oI£I½IÆIÙIóI JJ%J=JVJhJ{JƒJ‡JšJµJ¹J ¿JÊJ ÞJÿJK3KQKfK {KœK¥K ¾KÊK æKL LLL 5L CLQLZLnL †L”L¦L¹LÊLÞLñLMM-MMM eMrM{MŠM‘M™M¢M¸MØMàMéMNN+N?NYNhNqN€NŸN µNÃNÌN ÜN êNöN OO-O?OZO mOwO OO °O ½OÇOÛOáO äOïO ÷OP PP:PKPaP ~PŸP³PÃPáPñP QQ:$Q=_QQ¦QµQ¾QÜQìQ R R+R/RHR\RaR}R ŒR–RšR¸RÌRëRðRõRS!S*S.S JSWSiSyS‹S S²S ÈS ÒSßS ïSüSMTeT|T „TT"¯TÒTèT UU%U:U OUZUcUlU‹UU¢U·UÍUÓUÙU êUøUúUKV#aV!…V§V·VÓVãV#ûVW!8WZWlWW•W«WÇWáWûWX%X)X2XFX YX(zX#£X ÇXÑX åXóXYYY0Y@YXYwY“Y²YÇYÚYòYöYZZ -ZNZVZ ]Z iZuZ‰ZŸZ ¸ZÄZ!ÙZûZ[[32[f[{[[ [¨[»[Ä[Ü[å[ô[\\ 1\.<\k\o\~\‘\ £\¯\ Â\Ï\æ\ú\]3]7]>]]]t]9†]6À]6÷]4.^7c^W›^Só^5G_*}_¨_ ¯_º_Ï_â_ô_ ``7`T`s`v`~`™`ª`¾`×` Û`å`ø` aaa%a!5aWa`azaƒaŸa°aÀaÕaåaöab*b Ibjb †b”b¦b¿bÛbîbõb ûbc c5c Gc Uc#cc‡c¦c½cÅc ×cäcìcücd d =dGd LdVd]dmd†d™d¢d«d²d#Ãdçdeee/e-?eme‡e¢e»e ÐeÞe çeñeff!f@f ]fDgf ¬f¹fÀf Øf!ùfg7gPglg„ggªg ½gÊgÎgÕg>ðg/h4hs NsYs ss s Žs˜sŸs¨s¼s Ás Îs Ùs çstt$t(t11t6ct+štÆtÜt ìtötýtu u!u;uQufuGku³uÌuìuv"vAv_v v v¤v¨v±v·vÈvÐvìvÿvww)wAwIw]wnww ™w¤wºwØwÜwûw xx *x4x8x IxWxfxoxxx xx(£x Ìxíxyy3y#Qyuyˆy Ÿy«yÅyßy åyñy zz'zýŠ5<‹$r‹—‹š‹º‹¾‹Æ‹׋à‹ è‹õ‹ ŒŒ&Œ5ŒGŒ NŒYŒ`ŒiŒ…Œ"”Œ·ŒÑŒëŒþŒ'<Rj€™¯ÅÚ,ŽAŽSŽgŽ}ޔާ޽ިŽîŽ4I_sާ¿Öõ$:Nh‚ ¼Óæø ‘#‘;‘V‘m‘‚‘š‘?¢‘4â‘?’MW’9¥’0ß’“$$“ I“T“h“ p“{““¢“»“Ì“à“é“ñ“ó“ ”&”<”S”b”z”}””Š”œ” ¤” ¯”º”Ï”â”ø”•*•;•Y• r•|•ƒ• …•• –•% •!Æ•!è• –!)–FK–’–›–®–Å–Í–Õ–Þ–:â–$—HB—0‹—9¼—ö—˜"˜<˜6T˜‹˜,Ž˜»˜9˘™ ™™('™+P™|™8‚™»™Ù™÷™û™@š(Rš&{š2¢š1ÕšI›DQ› –›F¤› ë›Fù›A@œ3‚œD¶œYûœIUŸ.¹Oè8žB:ž}ž€ž1‚ž´ž Çž=Óž Ÿ$ŸCŸEŸMŸ PŸ\ŸrŸ2ŸŸ5ÖŸ    BÛfÈc‚ôcC™=f%LŽË‰€>,dÚð%‘½?:RÁròš%£ˆþm$Xº' ìÝŒKØ )€gµ"‹¨³#2ŠZö¢óšÇãê;™‚im6˜å¡gXæîwòs„¶ò_Ô5§BºN _ó¾õnsØ*þNŸßÚ( üÔx&[ZN’©Î_ÓJ¡qv\qql A¡y´z9‚Z>,¢wì pFì uIbWÀ«…ýjYvIm? k¼ WùM9`¤A¬¾œðû;[ÝÑz§Ìj4{2BŠ\E˜º¯é¿£Ï?vŽ]´ X`b¥ÞáS/–¹ ’¦Ë+Ü?~ISzºÍH¾ßøÒUAà,gϪ¬kß¾R‰»Z{–2¯i ÆbnS€Áù)àÓš¯[Å[®Ì(Ö.'GwD_s,<­U¿âq3økMÊpQ @.13#ÐÙPPGV…fL¯6›Öɰ3ù‰ã|Š1FøÈ%ä.E/p5þÙÄfF”ïG[Æ8·+[xëä©M7íau6c³ A Ú‘¨]<•xc=€íúöœT ^ÑR ÷âëxǾñÜâÖ§|£UUÓÃC /V\‡mK†#èo“µ¨U«ck—C@DN÷e†;’œ”5çØJ&ƉÍAý]Üš:„,sHR•×ÿÅ3¬iÆîWޤ÷aú•è7]cø*"Ž2ó1>é‹Ì?  ˜‘)ºæ70yÞ`J>Â-N¬ÝiXœmaû„5…‹<žWç7ÅZ¦ZëÑWb©46 î×ê+¤°UÊñõõþÖóŒ²-}.ÏDàLJ½åVjFä`Â`ÐÁ'P*0;í½Q®¦ÿÑ@("‡zØG0´ÊÛt$L©¢  µ®ô”‘üβYE”ùÕq0¹LŒa“znlC¸\Še™}ÿñÛ)8¸=~½edPK×°rÁ D ŸwsVƒ ÔÕ¶©úŸš]²²J̆ö…“¶¹¨*TÒÇ«FÿÑ{\å^o€dÔÉo®ÀþÙú] J‡Àè‚&DªQž$óê'/­w†Øœ&Ÿ¿üÀH`D+ò-…—:ô±hÐèPÕâ1F„rƒm:îÓ­¼­Ë0µPˆ˜Ö-jƒ;T7±·oM69Þë«ûAá¯ßLïzMÈðŒ>ˆd9b3Éñ­„*¡%y2HR¦!îIýëÒf  ð ¶W'Ï-Õ¦R»/é™3‡¤ x{jï㪲ŽSn=› H^_OV@rrò2éÃ)Äh†¼× l~ÚKçËpíGì€8¸ÛEagæM%÷{u’dˆh¿l =-8ðv\~•BphÛ5tT÷{ÒtÞªâKžÙN—G6¥ôÃ+I¼»§õ¢"oÊÅE~t"B¹å®–³ô<¼ù¨H9évÈg ï!q7ïø)¥±ç»Í—|04ns› íLá.8ÍÏÂQV·ž+ü}^Qu!äB<üT·gko|Ä1·À*}ÉeÔ¡Jìбæ#i™j:Òæ„"ƤOi¥› ÿK Þr&½¥5l͵S¢xu”ä^ñ‹|£!'hC±›OÄÎ/~Y‰X´õß°fÊãªÚ³}ŸaEýêÎ4Y4Ý‚°?û.öƒ:—hSê@‹,‚y¹eåý ЏÄú¸ <çˆàw¶O×}>Ð#Õ!£X•Ü^QÙèܘ;YÌÁÃO´Œ|dƒ§žÃÇt–CY$OË$k!áv³È(yu$(ƒp8#’tö“=Ýû–T¬eÎ_“àIÅá¿l«1n9&‘@Ó y4»ãbÉ( %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/Nordwest 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 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/SaarGermany/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' DayGuy Fawke's 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 DayNorfolk IslandsNorthern 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-LandSwitzerland/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: 2013-03-29 21:40+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 %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à/Territoris del Nord-oestCanadà/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/SaarAlemanya/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 AdolphusDia del Noi FawkesGuyana #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 NorfolkIlles 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-LandSuï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-3.6.3/po/tr.po0000644000175000017500000042033512125376135010771 00000000000000# Gcal Turkish Translation. # Copyright (C) 2002 Free Software Foundation, Inc. # A. Burak Ilgicioglu , 2002. # msgid "" msgstr "" "Project-Id-Version: gcal 3.00\n" "Report-Msgid-Bugs-To: bug-gcal@gnu.org\n" "POT-Creation-Date: 2013-03-29 21:40+0100\n" "PO-Revision-Date: 2002-02-13 21:25GMT +2\n" "Last-Translator: A. Burak Ilgicioglu \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-Generator: KBabel 0.9.5\n" #: src/file-io.c:1561 #, c-format msgid "Try to write %s `%s'... %s%s%s" msgstr "%s `%s'... %s%s%s yazmayı deneyin" #: src/file-io.c:1564 src/file-io.c:1689 src/file-io.c:1702 msgid "failed" msgstr "baÅŸarısız" #: src/file-io.c:1564 src/file-io.c:1689 src/file-io.c:1702 msgid "success" msgstr "baÅŸarılı" #: src/file-io.c:1684 #, 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:1685 msgid " `HERE' " msgstr "'BURASI'" #: src/file-io.c:1697 #, 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:352 src/gcal.c:523 src/gcal.c:2028 msgid "ARG" msgstr "ARG" #: src/gcal.c:1080 src/hd-data.c:69 msgid "Germany" msgstr "Almanya" #: src/gcal.c:1081 msgid "U.S.A." msgstr "A.B.D." #: src/gcal.c:1082 src/hd-data.c:72 msgid "Great Britain" msgstr "Büyük Britanya" #: src/gcal.c:1858 msgid "default" msgstr "öntanımlı" #: src/gcal.c:1957 msgid ":" msgstr ":" #: src/gcal.c:1967 msgid "Y" msgstr "Y" #: src/gcal.c:1972 msgid "M" msgstr "A" #: src/gcal.c:1977 msgid "W" msgstr "H" #: src/gcal.c:1982 msgid "D" msgstr "G" #: src/gcal.c:2073 #, fuzzy msgid "Fixed date list:" msgstr "Sabit tarih listesi" #: src/gcal.c:2090 src/gcal.c:2105 msgid "environment variable" msgstr "çevresel deÄŸiÅŸken" #: src/gcal.c:2274 #, 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:2461 src/gcal.c:2489 src/gcal.c:6232 src/rc-use.c:1828 #: src/rc-use.c:1888 src/rc-use.c:1937 src/rc-use.c:2207 src/rc-utils.c:390 #: src/rc-utils.c:411 src/utils.c:342 src/utils.c:365 src/utils.c:384 #: src/utils.c:679 src/tcal.c:331 src/tcal.c:339 src/txt2gcal.c:270 #: src/txt2gcal.c:275 src/gcal2txt.c:270 src/gcal2txt.c:275 msgid "Internal" msgstr "Dahili" #: src/gcal.c:2870 msgid "response file" msgstr "cevap dosyası" #: src/gcal.c:2870 src/gcal.c:2878 msgid "Created" msgstr "OluÅŸturuldu" #: src/gcal.c:2878 msgid "shell script" msgstr "kabuk betiÄŸi" #: src/gcal.c:3089 #, 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:3141 #, 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:4951 src/gcal.c:4984 msgid "command line" msgstr "komut satırı" #: src/gcal.c:5901 #, c-format msgid "%s: option `%s' is ambiguous" msgstr "%s: `%s' seçeneÄŸi belirsiz" #: src/gcal.c:5906 src/tcal.c:895 src/txt2gcal.c:716 src/gcal2txt.c:715 #, c-format msgid "%s: unrecognized option `%s'" msgstr "%s: bilinmeyen seçenek `%s'" #: src/gcal.c:5909 #, c-format msgid "%s: invalid option -- %s" msgstr "%s: geçersiz seçenek -- %s" #: src/gcal.c:5916 #, 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' doesn't allow an argument" msgstr "%s: `%s' seçeneÄŸi bir argümana izin vermiyor" #: src/gcal.c:5927 #, c-format msgid "%s: option `%s' requires an argument" msgstr "%s: `%s' seçeneÄŸi bir argüman gerektirir" #: src/gcal.c:5931 #, c-format msgid "%s: option requires an argument -- %s" msgstr "%s: seçeneÄŸi bir argüman gerektirir -- %s" #: src/gcal.c:5936 src/tcal.c:941 #, c-format msgid "%s: option with invalid argument -- %s" msgstr "%s: geçersiz argümanlı seçenek -- %s" #: src/gcal.c:5941 #, c-format msgid "%s: option with ambiguous argument -- %s" msgstr "%s: belirsiz argümanlı seçenek --%s" #: src/gcal.c:6001 #, 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:63 msgid "Australia" msgstr "Avustralya" #: src/hd-data.c:64 src/hd-data.c:112 msgid "Belgium" msgstr "Belçika" #: src/hd-data.c:65 src/hd-data.c:121 msgid "Brazil" msgstr "Brezilya" #: src/hd-data.c:66 msgid "Canada" msgstr "Kanada" #: src/hd-data.c:67 msgid "Switzerland" msgstr "İsviçre" #: src/hd-data.c:68 src/hd-data.c:174 msgid "China" msgstr "Çin" #: src/hd-data.c:70 src/hd-data.c:208 msgid "Spain" msgstr "İspanya" #: src/hd-data.c:71 src/hd-data.c:215 msgid "France" msgstr "Fransa" #: src/hd-data.c:73 src/hd-data.c:244 msgid "Israel" msgstr "İsrail" #: src/hd-data.c:74 src/hd-data.c:249 msgid "Italy" msgstr "İtalya" #: src/hd-data.c:75 src/hd-data.c:252 msgid "Japan" msgstr "Japonya" #: src/hd-data.c:76 src/hd-data.c:260 msgid "Republic of Korea" msgstr "Kore Cumhuriyeti" #: src/hd-data.c:77 src/hd-data.c:292 msgid "Mexico" msgstr "Meksika" #: src/hd-data.c:78 src/hd-data.c:301 msgid "Netherlands" msgstr "Hollanda" #: src/hd-data.c:79 src/hd-data.c:307 msgid "New Zealand" msgstr "Yeni Zelanda" #: src/hd-data.c:80 src/hd-data.c:319 msgid "Portugal" msgstr "Portekiz" #: src/hd-data.c:81 src/hd-data.c:325 msgid "Russian Federation" msgstr "Rusya Federasyonu" #: src/hd-data.c:82 msgid "United States" msgstr "BirleÅŸik Devletler" #: src/hd-data.c:84 msgid "Andorra" msgstr "Andorra" #: src/hd-data.c:85 msgid "United Arab Emirates" msgstr "BirleÅŸik Arap Emirlikleri" #: src/hd-data.c:86 msgid "Afghanistan" msgstr "Afganistan" #: src/hd-data.c:87 msgid "Antigua and Barbuda" msgstr "Antigua ve Barbuda" #: src/hd-data.c:88 msgid "Anguilla" msgstr "Anguilla" #: src/hd-data.c:89 msgid "Albania" msgstr "Arnavutluk" #: src/hd-data.c:90 msgid "Armenia" msgstr "Ermenistan" #: src/hd-data.c:91 msgid "Netherlands Antilles/Bonaire" msgstr "Hollanda Antilleri/Bonaire" #: src/hd-data.c:92 msgid "Netherlands Antilles/Curaçao" msgstr "Hollanda Antilleri/Curaçao" #: src/hd-data.c:93 msgid "Netherlands Antilles/St Maarten" msgstr "Hollanda Antilleri/St Maarten" #: src/hd-data.c:94 msgid "Netherlands Antilles/Saba and Statia" msgstr "Hollanda Antilleri/Saba ve Statia" #: src/hd-data.c:95 msgid "Angola #" msgstr "Angola #" #: src/hd-data.c:96 msgid "Argentina" msgstr "Arjantin" #: src/hd-data.c:97 msgid "American Samoa" msgstr "Amerikan Samoası" #: src/hd-data.c:98 msgid "Austria" msgstr "Avusturya" #: src/hd-data.c:99 msgid "Australia/Canberra" msgstr "Avustralya/Canberra" #: src/hd-data.c:100 msgid "Australia/Northern Territory" msgstr "Avustralya/Kuzey Bölgesi" #: src/hd-data.c:101 msgid "Australia/Queensland" msgstr "Avustralya/Queensland" #: src/hd-data.c:102 msgid "Australia/Southern Australia" msgstr "Avustralya/Güney Avustralya" #: src/hd-data.c:103 msgid "Australia/New South Wales" msgstr "Avustralya/Yeni Güney Galler" #: src/hd-data.c:104 msgid "Australia/Tasmania" msgstr "Avustralya/Tazmanya" #: src/hd-data.c:105 msgid "Australia/Victoria" msgstr "Avustralya/Victoria" #: src/hd-data.c:106 msgid "Australia/Western Australia" msgstr "Avustralya/Batı Avustralya" #: src/hd-data.c:107 msgid "Aruba" msgstr "Aruba" #: src/hd-data.c:108 msgid "Azerbaijan" msgstr "Azerbaycan" #: src/hd-data.c:109 msgid "Bosnia-Herzegovina" msgstr "Bosna-Hersek" #: src/hd-data.c:110 msgid "Barbados" msgstr "Barbados" #: src/hd-data.c:111 msgid "Bangladesh #" msgstr "BangladeÅŸ #" #: src/hd-data.c:113 msgid "Burkina Faso" msgstr "Burkina Faso" #: src/hd-data.c:114 msgid "Bulgaria" msgstr "Bulgaristan" #: src/hd-data.c:115 msgid "Bahrain" msgstr "Bahreyn" #: src/hd-data.c:116 msgid "Burundi #" msgstr "Burundi #" #: src/hd-data.c:117 msgid "Benin #" msgstr "Benin #" #: src/hd-data.c:118 msgid "Bermuda" msgstr "Bermuda" #: src/hd-data.c:119 msgid "Brunei" msgstr "" #: src/hd-data.c:120 msgid "Bolivia" msgstr "Bolivya" #: src/hd-data.c:122 msgid "Bahamas" msgstr "Bahamalar" #: src/hd-data.c:123 msgid "Bhutan #" msgstr "Bhutan #" #: src/hd-data.c:124 msgid "Bouvet Island" msgstr "Bouvet Adası" #: src/hd-data.c:125 msgid "Botswana" msgstr "Botswana" #: src/hd-data.c:126 msgid "Belarus" msgstr "Belarus" #: src/hd-data.c:127 msgid "Belize" msgstr "Belize" #: src/hd-data.c:128 msgid "Canada/Alberta" msgstr "Kanada/Alberta" #: src/hd-data.c:129 msgid "Canada/British Columbia" msgstr "Kanada/Britanya Kolumbiyası" #: src/hd-data.c:130 msgid "Canada/Manitoba" msgstr "Kanada/Manitoba" #: src/hd-data.c:131 msgid "Canada/New Brunswick" msgstr "Kanada/Yeni Brunswick" #: src/hd-data.c:132 msgid "Canada/Newfoundland and Labrador" msgstr "Kanada/Newfoundland ve Labrador" #: src/hd-data.c:133 msgid "Canada/Nova Scotia" msgstr "Kanada/Nova Scotia" #: src/hd-data.c:134 msgid "Canada/Nordwest Territories" msgstr "Kanada/Nordwest Territories" #: src/hd-data.c:135 msgid "Canada/Ontario" msgstr "Kanada/Ontario" #: src/hd-data.c:136 msgid "Canada/Prince Edward Island" msgstr "Kanada/Prens Edward Adası" #: src/hd-data.c:137 msgid "Canada/Québec" msgstr "Kanada/Québec" #: src/hd-data.c:138 msgid "Canada/Saskatchewan" msgstr "Kanada/Saskatchewan" #: src/hd-data.c:139 msgid "Canada/Yukon" msgstr "Kanada/Yukon" #: src/hd-data.c:140 msgid "Cocos Islands (Keeling)" msgstr "Cocos Adaları(Keeling)" #: src/hd-data.c:141 msgid "Democratic Republic of Congo #" msgstr "Demokratik Kongo Cumhuriyeti #" #: src/hd-data.c:142 msgid "Central African Republic #" msgstr "Orta Afrika Cumhuriyeti #" #: src/hd-data.c:143 msgid "Republic of Congo #" msgstr "Kongo Cumhuriyeti #" #: src/hd-data.c:144 msgid "Switzerland/Aargau" msgstr "İsviçre/Aargau" #: src/hd-data.c:145 msgid "Switzerland/Appenzell Innerrhoden" msgstr "İsvçre/Appenzell Innerrhoden" #: src/hd-data.c:146 msgid "Switzerland/Appenzell Ausserrhoden" msgstr "İsviçre/Appenzell Ausserrhoden" #: src/hd-data.c:147 msgid "Switzerland/Bern" msgstr "İsviçre/Bern" #: src/hd-data.c:148 msgid "Switzerland/Basel-Land" msgstr "İsviçre/Basel-Land" #: src/hd-data.c:149 msgid "Switzerland/Basel-Stadt" msgstr "İsviçre/Basel-Stadt" #: src/hd-data.c:150 msgid "Switzerland/Fribourg" msgstr "İsviçre/Fribourg" #: src/hd-data.c:151 msgid "Switzerland/Genève" msgstr "İsviçre/Cenevre" #: src/hd-data.c:152 msgid "Switzerland/Glarus" msgstr "İsviçre/Glarus" #: src/hd-data.c:153 msgid "Switzerland/Graubünden" msgstr "İsviçre/Graubünden" #: src/hd-data.c:154 msgid "Switzerland/Jura" msgstr "İsviçre/Jura" #: src/hd-data.c:155 msgid "Switzerland/Luzern" msgstr "İsviçre/Luzern" #: src/hd-data.c:156 msgid "Switzerland/Neuchâtel" msgstr "İsviçre/Neuchâtel" #: src/hd-data.c:157 msgid "Switzerland/Nidwalden" msgstr "İsviçre/Nidwalden" #: src/hd-data.c:158 msgid "Switzerland/Obwalden" msgstr "İsviçre/Obwalden" #: src/hd-data.c:159 msgid "Switzerland/St Gallen" msgstr "İsviçre/St Gallen" #: src/hd-data.c:160 #, fuzzy msgid "Switzerland/Schaffhausen" msgstr "İsviçre/Schwyz" #: src/hd-data.c:161 msgid "Switzerland/Solothurn" msgstr "İsviçre/Solothurn" #: src/hd-data.c:162 msgid "Switzerland/Schwyz" msgstr "İsviçre/Schwyz" #: src/hd-data.c:163 msgid "Switzerland/Thurgau" msgstr "İsviçre/Thurgau" #: src/hd-data.c:164 msgid "Switzerland/Ticino" msgstr "İsviçre/Ticino" #: src/hd-data.c:165 msgid "Switzerland/Uri" msgstr "İsviçre/Uri" #: src/hd-data.c:166 msgid "Switzerland/Vaud" msgstr "İsviçre/Vaud" #: src/hd-data.c:167 msgid "Switzerland/Valais" msgstr "İsviçre/Valais" #: src/hd-data.c:168 msgid "Switzerland/Zug" msgstr "İsviçre/Zug" #: src/hd-data.c:169 msgid "Switzerland/Zürich" msgstr "İsviçre/Zürih" #: src/hd-data.c:170 msgid "Côte d'Ivoire" msgstr "FildiÅŸi Sahili" #: src/hd-data.c:171 msgid "Cook Islands" msgstr "Cook Adaları" #: src/hd-data.c:172 msgid "Chile" msgstr "Åžili" #: src/hd-data.c:173 msgid "Cameroon" msgstr "Kamerun" #: src/hd-data.c:175 msgid "Colombia" msgstr "Kolombiya" #: src/hd-data.c:176 msgid "Costa Rica" msgstr "Kosta Rika" #: src/hd-data.c:177 msgid "Cuba" msgstr "Küba" #: src/hd-data.c:178 msgid "Cape Verde" msgstr "Cape Verde" #: src/hd-data.c:179 msgid "Christmas Islands" msgstr "Christmas Adaları" #: src/hd-data.c:180 msgid "Cyprus" msgstr "Kıbrıs" #: src/hd-data.c:181 msgid "Czech Republic" msgstr "Çek Cumhuriyeti" #: src/hd-data.c:182 msgid "Germany/Brandenburg" msgstr "Almanya/Brandenburg" #: src/hd-data.c:183 msgid "Germany/Berlin" msgstr "Almanya/Berlin" #: src/hd-data.c:184 msgid "Germany/Baden-Württemberg" msgstr "Almanya/Baden-Württemberg" #: src/hd-data.c:185 msgid "Germany/Bavaria" msgstr "Almanya/Bavyera" #: src/hd-data.c:186 msgid "Germany/Bremen" msgstr "Almanya/Bremen" #: src/hd-data.c:187 msgid "Germany/Hesse" msgstr "Almanya/Hesse" #: src/hd-data.c:188 msgid "Germany/Hamburg" msgstr "Almanya/Hamburg" #: src/hd-data.c:189 msgid "Germany/Mecklenburg-West Pomerania" msgstr "Almanya/Mecklenburg-West Pomerania" #: src/hd-data.c:190 msgid "Germany/Lower Saxony" msgstr "Almanya/AÅŸağı Saksonya" #: src/hd-data.c:191 msgid "Germany/North Rhine-Westphalia" msgstr "Almanya/Kuzey Rhine-Westphalia" #: src/hd-data.c:192 msgid "Germany/Rhineland Palatinate" msgstr "Almanya/Rhineland Palatinate" #: src/hd-data.c:193 msgid "Germany/Schleswig-Holstein" msgstr "Almanya/Schleswig-Holstein" #: src/hd-data.c:194 msgid "Germany/Saar" msgstr "Almanya/Saar" #: src/hd-data.c:195 msgid "Germany/Saxony" msgstr "Almanya/Saksonya" #: src/hd-data.c:196 msgid "Germany/Saxony-Anhalt" msgstr "Almanya/Saxony-Anhalt" #: src/hd-data.c:197 msgid "Germany/Thuringia" msgstr "Almanya/Thuringia" #: src/hd-data.c:198 msgid "Djibouti" msgstr "Cibuti" #: src/hd-data.c:199 msgid "Denmark" msgstr "Danimarka" #: src/hd-data.c:200 msgid "Dominica" msgstr "Dominik" #: src/hd-data.c:201 msgid "Dominican Republic" msgstr "Dominik Cumhuriyeti" #: src/hd-data.c:202 msgid "Algeria" msgstr "Cezayir" #: src/hd-data.c:203 msgid "Ecuador" msgstr "Ekvator" #: src/hd-data.c:204 msgid "Estonia" msgstr "Estonya" #: src/hd-data.c:205 msgid "Egypt" msgstr "Mısır" #: src/hd-data.c:206 msgid "Western Sahara" msgstr "Batı Sahra" #: src/hd-data.c:207 msgid "Eritrea" msgstr "Eritre" #: src/hd-data.c:209 msgid "Ethiopia" msgstr "Etiyopya" #: src/hd-data.c:210 msgid "Finland" msgstr "Finlandiya" #: src/hd-data.c:211 msgid "Fiji #" msgstr "Fiji #" #: src/hd-data.c:212 msgid "Falkland Islands (Malvinas)" msgstr "Falkland Adaları (Malvinas)" #: src/hd-data.c:213 msgid "Federated States of Micronesia" msgstr "Micronesia Federal Devletleri" #: src/hd-data.c:214 msgid "Faroes" msgstr "Faroeler" #: src/hd-data.c:216 msgid "Gabon #" msgstr "Gabon #" #: src/hd-data.c:217 msgid "Great Britain/England and Wales" msgstr "Büyük Britanya/İngiltere ve Galler" #: src/hd-data.c:218 msgid "Great Britain/Northern Ireland" msgstr "Büyük Britanya/Kuzey İrlanda" #: src/hd-data.c:219 msgid "Great Britain/Scotland" msgstr "Büyük Britanya/İskoçya" #: src/hd-data.c:220 msgid "Grenada" msgstr "Grenada" #: src/hd-data.c:221 msgid "Georgia" msgstr "Gürcistan" #: src/hd-data.c:222 msgid "French Guiana" msgstr "Fransız Guyanası" #: src/hd-data.c:223 msgid "Ghana" msgstr "Gana" #: src/hd-data.c:224 msgid "Gibraltar" msgstr "Gibraltar" #: src/hd-data.c:225 msgid "Greenland" msgstr "Grönland" #: src/hd-data.c:226 msgid "Gambia" msgstr "Gambiya" #: src/hd-data.c:227 msgid "Guinea" msgstr "Gine" #: src/hd-data.c:228 msgid "Guadeloupe" msgstr "Guadeloupe" #: src/hd-data.c:229 msgid "Equatorial Guinea" msgstr "Ektavoryal Gine" #: src/hd-data.c:230 msgid "Greece" msgstr "Yunanistan" #: src/hd-data.c:231 msgid "South Georgia and South Sandwich Islands" msgstr "Güney Georgia ve Güney Sandwich Adaları" #: src/hd-data.c:232 msgid "Guatemala" msgstr "Guatemala" #: src/hd-data.c:233 msgid "Guam" msgstr "Guam" #: src/hd-data.c:234 msgid "Guinea-Bissau #" msgstr "Gine-Bissau #" #: src/hd-data.c:235 msgid "Guyana #" msgstr "Guyana #" #: src/hd-data.c:236 msgid "Hong Kong" msgstr "Hong Kong" #: src/hd-data.c:237 msgid "Heard and Mc Donald Islands" msgstr "Heard ve Mc Donald Adaları" #: src/hd-data.c:238 msgid "Honduras" msgstr "Honduras" #: src/hd-data.c:239 msgid "Croatia" msgstr "Hırvatistan" #: src/hd-data.c:240 msgid "Haiti" msgstr "Haiti" #: src/hd-data.c:241 msgid "Hungary" msgstr "Macaristan" #: src/hd-data.c:242 msgid "Indonesia #" msgstr "Endonezya" #: src/hd-data.c:243 msgid "Ireland" msgstr "İrlanda" #: src/hd-data.c:245 msgid "India #" msgstr "Hindistan #" #: src/hd-data.c:246 msgid "Iraq" msgstr "Irak" #: src/hd-data.c:247 msgid "Islamic Republic of Iran" msgstr "İran İslam Cumhuriyeti" #: src/hd-data.c:248 msgid "Iceland" msgstr "İzlanda" #: src/hd-data.c:250 msgid "Jamaica" msgstr "Jamaika" #: src/hd-data.c:251 msgid "Jordan" msgstr "Ürdün" #: src/hd-data.c:253 msgid "Kenya #" msgstr "Kenya #" #: src/hd-data.c:254 msgid "Kyrgyzstan" msgstr "Kırgızistan" #: src/hd-data.c:255 msgid "Cambodia #" msgstr "Kamboçya #" #: src/hd-data.c:256 msgid "Kiribati #" msgstr "Kiribati #" #: src/hd-data.c:257 msgid "Comoros" msgstr "Comoros" #: src/hd-data.c:258 msgid "St Kitts and Nevis" msgstr "St Kitts ve Nevis" #: src/hd-data.c:259 msgid "Democratic People's Republic of Korea" msgstr "Kore Demokratik Halk Cumhuriyeti" #: src/hd-data.c:261 msgid "Kuwait" msgstr "Kuveyt" #: src/hd-data.c:262 msgid "Cayman Islands" msgstr "Cayman Adaları" #: src/hd-data.c:263 msgid "Kazakhstan" msgstr "Kazakistan" #: src/hd-data.c:264 msgid "Laos People's Democratic Republic #" msgstr "Laos Demokratik Halk Cumhuriyeti #" #: src/hd-data.c:265 msgid "Lebanon" msgstr "Lübnan" #: src/hd-data.c:266 msgid "St Lucia" msgstr "St Lucia" #: src/hd-data.c:267 msgid "Liechtenstein" msgstr "Liechtenstein" #: src/hd-data.c:268 msgid "Sri Lanka #" msgstr "Sri Lanka #" #: src/hd-data.c:269 msgid "Liberia" msgstr "Liberya" #: src/hd-data.c:270 msgid "Lesotho" msgstr "Lesotho" #: src/hd-data.c:271 msgid "Lithuania" msgstr "Litvanya" #: src/hd-data.c:272 msgid "Luxembourg" msgstr "Luksemburg" #: src/hd-data.c:273 msgid "Latvia" msgstr "Latvia" #: src/hd-data.c:274 msgid "Libyan Arab Jamahiriya (Libya)" msgstr "Libya Arap Cumhuriyeti" #: src/hd-data.c:275 msgid "Morocco" msgstr "Fas" #: src/hd-data.c:276 msgid "Monaco" msgstr "Monako" #: src/hd-data.c:277 msgid "Republic of Moldova" msgstr "Moldova Cumhuriyeti" #: src/hd-data.c:278 msgid "Madagascar #" msgstr "Madagaskar #" #: src/hd-data.c:279 msgid "Marshall Islands" msgstr "Marshall Adaları" #: src/hd-data.c:280 msgid "Former Yugoslav Republic of Macedonia" msgstr "Makedonya Eski Yugoslavya Cumhuriyeti" #: src/hd-data.c:281 msgid "Mali" msgstr "Mali" #: src/hd-data.c:282 msgid "Mongolia #" msgstr "MoÄŸolistan #" #: src/hd-data.c:283 msgid "Macau" msgstr "Macau" #: src/hd-data.c:284 msgid "Northern Marian Islands (Saipan)" msgstr "Kuzey Marian Adaları (Saipan)" #: src/hd-data.c:285 msgid "Martinique" msgstr "Martinique" #: src/hd-data.c:286 msgid "Mauritania" msgstr "Moritanya" #: src/hd-data.c:287 msgid "Montserrat" msgstr "Montserrat" #: src/hd-data.c:288 msgid "Malta" msgstr "Malta" #: src/hd-data.c:289 msgid "Mauritius" msgstr "Mauritius" #: src/hd-data.c:290 msgid "Maldives" msgstr "Maldivler" #: src/hd-data.c:291 msgid "Malawi" msgstr "Malawi" #: src/hd-data.c:293 msgid "Malaysia #" msgstr "Malezya #" #: src/hd-data.c:294 msgid "Mozambique" msgstr "Mozambik" #: src/hd-data.c:295 msgid "Namibia" msgstr "Namibya" #: src/hd-data.c:296 msgid "New Caledonia" msgstr "Yeni Kaledonya" #: src/hd-data.c:297 msgid "Niger" msgstr "Nijer" #: src/hd-data.c:298 msgid "Norfolk Islands" msgstr "Norfolk Adaları" #: src/hd-data.c:299 msgid "Nigeria" msgstr "Nijerya" #: src/hd-data.c:300 msgid "Nicaragua" msgstr "Nikaragua" #: src/hd-data.c:302 msgid "Myanmar (Burma) #" msgstr "Myanmar (Burma) #" #: src/hd-data.c:303 msgid "Norway" msgstr "Norveç" #: src/hd-data.c:304 msgid "Nepal #" msgstr "Nepal #" #: src/hd-data.c:305 msgid "Nauru" msgstr "Nauru" #: src/hd-data.c:306 msgid "Niue" msgstr "Niue" #: src/hd-data.c:308 msgid "Oman" msgstr "Umman" #: src/hd-data.c:309 msgid "Panama" msgstr "Panama" #: src/hd-data.c:310 msgid "Peru" msgstr "Peru" #: src/hd-data.c:311 msgid "French Polynesia" msgstr "Fransız Polonezyası" #: src/hd-data.c:312 msgid "Papua New Guinea" msgstr "Papua Yeni Gine" #: src/hd-data.c:313 msgid "Philippines" msgstr "Filipinler" #: src/hd-data.c:314 msgid "Pakistan" msgstr "Pakistan" #: src/hd-data.c:315 msgid "Poland" msgstr "Polonya" #: src/hd-data.c:316 msgid "Saint-Pierre and Miquelon" msgstr "Saint-Pierre and Miquelon" #: src/hd-data.c:317 msgid "Pitcairn" msgstr "Pitcairn" #: src/hd-data.c:318 msgid "Puerto Rico" msgstr "Porto Riko" #: src/hd-data.c:320 msgid "Palau" msgstr "Palau" #: src/hd-data.c:321 msgid "Paraguay" msgstr "Paraguay" #: src/hd-data.c:322 msgid "Qatar" msgstr "Katar" #: src/hd-data.c:323 msgid "Réunion" msgstr "Réunion" #: src/hd-data.c:324 msgid "Romania" msgstr "Romanya" #: src/hd-data.c:326 msgid "Rwanda" msgstr "Ruanda" #: src/hd-data.c:327 msgid "Saudi Arabia" msgstr "Suudi Arabistan" #: src/hd-data.c:328 msgid "Solomon Islands" msgstr "Solomon Adaları" #: src/hd-data.c:329 msgid "Seychellen" msgstr "Seycheller" #: src/hd-data.c:330 msgid "Sudan" msgstr "Sudan" #: src/hd-data.c:331 msgid "Sweden" msgstr "İsveç" #: src/hd-data.c:332 msgid "Singapore #" msgstr "Singapur #" #: src/hd-data.c:333 msgid "St Helena" msgstr "St Helena" #: src/hd-data.c:334 msgid "Slovenia" msgstr "Slovenya" #: src/hd-data.c:335 msgid "Svalbard and Jan Mayen Islands" msgstr "Svalbard ve Jan Mayen Adaları" #: src/hd-data.c:336 msgid "Slovakia" msgstr "Slovakya" #: src/hd-data.c:337 msgid "Sierra Leone" msgstr "Sierra Leone" #: src/hd-data.c:338 msgid "San Marino" msgstr "San Marino" #: src/hd-data.c:339 msgid "Senegal" msgstr "Senegal" #: src/hd-data.c:340 msgid "Somalia" msgstr "Somali" #: src/hd-data.c:341 msgid "Suriname #" msgstr "Surinam" #: src/hd-data.c:342 msgid "Sao Tomé and Principe" msgstr "Sao Tomé ve Principe" #: src/hd-data.c:343 msgid "El Salvador" msgstr "El Salvador" #: src/hd-data.c:344 msgid "Syrian Arab Republic (Syria)" msgstr "Suriye Arap Cumhuriyeti (Suriye)" #: src/hd-data.c:345 msgid "Swaziland" msgstr "Swaziland" #: src/hd-data.c:346 msgid "Turks and Caicos Islands" msgstr "Turk ve Caicos Adaları" #: src/hd-data.c:347 msgid "Chad" msgstr "Çad" #: src/hd-data.c:348 msgid "Togo #" msgstr "Togo #" #: src/hd-data.c:349 msgid "Thailand #" msgstr "Tayland #" #: src/hd-data.c:350 msgid "Tajikistan" msgstr "Tacikistan" #: src/hd-data.c:351 msgid "Tokelau" msgstr "Tokelau" #: src/hd-data.c:352 msgid "Turkmenistan" msgstr "Türkmenistan" #: src/hd-data.c:353 msgid "Tunisia" msgstr "Tunus" #: src/hd-data.c:354 msgid "Tonga" msgstr "Tonga" #: src/hd-data.c:355 msgid "Turkey" msgstr "Türkiye" #: src/hd-data.c:356 msgid "Trinidad and Tobago #" msgstr "Trinidad ve Tobago #" #: src/hd-data.c:357 msgid "Tuvalu" msgstr "Tuvalu" #: src/hd-data.c:358 msgid "Taiwan" msgstr "Tayvan" #: src/hd-data.c:359 msgid "Tanzania" msgstr "Tanzanya" #: src/hd-data.c:360 msgid "Ukraine" msgstr "Ukrayna" #: src/hd-data.c:361 msgid "Uganda" msgstr "Uganda" #: src/hd-data.c:362 msgid "United States/Alaska" msgstr "BirleÅŸik Devletler/Alaska" #: src/hd-data.c:363 msgid "United States/Alabama" msgstr "BirleÅŸik Devletler/Alabama" #: src/hd-data.c:364 msgid "United States/Arkansas" msgstr "BirleÅŸik Devletler/Arkansas" #: src/hd-data.c:365 msgid "United States/Arizona" msgstr "BirleÅŸik Devletler/Arizona" #: src/hd-data.c:366 msgid "United States/California" msgstr "BirleÅŸik Devletler/Kaliforniya" #: src/hd-data.c:367 msgid "United States/Colorado" msgstr "BirleÅŸik Devletler/Colorado" #: src/hd-data.c:368 msgid "United States/Connecticut" msgstr "BirleÅŸik Devletler/Connecticut" #: src/hd-data.c:369 msgid "United States/District of Columbia" msgstr "BirleÅŸik Devletler/District of Columbia" #: src/hd-data.c:370 msgid "United States/Delaware" msgstr "BirleÅŸik Devletler/Delaware" #: src/hd-data.c:371 msgid "United States/Florida" msgstr "BirleÅŸik Devletler/Florida" #: src/hd-data.c:372 msgid "United States/Georgia" msgstr "BirleÅŸik Devletler/Georgia" #: src/hd-data.c:373 msgid "United States/Hawaii" msgstr "BirleÅŸik Devletler/Hawaii" #: src/hd-data.c:374 msgid "United States/Iowa" msgstr "BirleÅŸik Devletler/Iowa" #: src/hd-data.c:375 msgid "United States/Idaho" msgstr "BirleÅŸik Devletler/Idaho" #: src/hd-data.c:376 msgid "United States/Illinois" msgstr "BirleÅŸik Devletler/Illinois" #: src/hd-data.c:377 msgid "United States/Indiana" msgstr "BirleÅŸik Devletler/Indiana" #: src/hd-data.c:378 msgid "United States/Kansas" msgstr "BirleÅŸik Devletler/Kansas" #: src/hd-data.c:379 msgid "United States/Kentucky" msgstr "BirleÅŸik Devletler/Kentucky" #: src/hd-data.c:380 msgid "United States/Louisiana" msgstr "BirleÅŸik Devletler/Louisiana" #: src/hd-data.c:381 msgid "United States/Massachusetts" msgstr "BirleÅŸik Devletler/Massachusetts" #: src/hd-data.c:382 msgid "United States/Maryland" msgstr "BirleÅŸik Devletler/Maryland" #: src/hd-data.c:383 msgid "United States/Maine" msgstr "BirleÅŸik Devletler/Maine" #: src/hd-data.c:384 msgid "United States/Michigan" msgstr "BirleÅŸik Devletler/Michigan" #: src/hd-data.c:385 msgid "United States/Minnesota" msgstr "BirleÅŸik Devletler/Minnesota" #: src/hd-data.c:386 msgid "United States/Missouri" msgstr "BirleÅŸik Devletler/Missouri" #: src/hd-data.c:387 msgid "United States/Mississippi" msgstr "BirleÅŸik Devletler/Mississippi" #: src/hd-data.c:388 msgid "United States/Montana" msgstr "BirleÅŸik Devletler/Montana" #: src/hd-data.c:389 msgid "United States/North Carolina" msgstr "BirleÅŸik Devletler/Kuzey Carolina" #: src/hd-data.c:390 msgid "United States/North Dakota" msgstr "BirleÅŸik Devletler/Kuzey Dakota" #: src/hd-data.c:391 msgid "United States/Nebraska" msgstr "BirleÅŸik Devletler/Nebraska" #: src/hd-data.c:392 msgid "United States/New Hampshire" msgstr "BirleÅŸik Devletler/New Hampshire" #: src/hd-data.c:393 msgid "United States/New Jersey" msgstr "BirleÅŸik Devletler/New Jersey" #: src/hd-data.c:394 msgid "United States/New Mexico" msgstr "BirleÅŸik Devletler/New Mexico" #: src/hd-data.c:395 msgid "United States/Nevada" msgstr "BirleÅŸik Devletler/Nevada" #: src/hd-data.c:396 msgid "United States/New York" msgstr "BirleÅŸik Devletler/New York" #: src/hd-data.c:397 msgid "United States/Ohio" msgstr "BirleÅŸik Devletler/Ohio" #: src/hd-data.c:398 msgid "United States/Oklahoma" msgstr "BirleÅŸik Devletler/Oklahoma" #: src/hd-data.c:399 msgid "United States/Oregon" msgstr "BirleÅŸik Devletler/Oregon" #: src/hd-data.c:400 msgid "United States/Pennsylvania" msgstr "BirleÅŸik Devletler/Pennsylvania" #: src/hd-data.c:401 msgid "United States/Rhode Island" msgstr "BirleÅŸik Devletler/Rhode Adası" #: src/hd-data.c:402 msgid "United States/South Carolina" msgstr "BirleÅŸik Devletler/Güney Carolina" #: src/hd-data.c:403 msgid "United States/South Dakota" msgstr "BirleÅŸik Devletler/Güney Dakota" #: src/hd-data.c:404 msgid "United States/Tennessee" msgstr "BirleÅŸik Devletler/Tennessee" #: src/hd-data.c:405 msgid "United States/Texas" msgstr "BirleÅŸik Devletler/Texas" #: src/hd-data.c:406 msgid "United States/Utah" msgstr "BirleÅŸik Devletler/Utah" #: src/hd-data.c:407 msgid "United States/Virginia" msgstr "BirleÅŸik Devletler/Virginia" #: src/hd-data.c:408 msgid "United States/Vermont" msgstr "BirleÅŸik Devletler/Vermont" #: src/hd-data.c:409 msgid "United States/Washington" msgstr "BirleÅŸik Devletler/Washington" #: src/hd-data.c:410 msgid "United States/Wisconsin" msgstr "BirleÅŸik Devletler/Wisconsin" #: src/hd-data.c:411 msgid "United States/West Virginia" msgstr "BirleÅŸik Devletler/Batı Virginia" #: src/hd-data.c:412 msgid "United States/Wyoming" msgstr "BirleÅŸik Devletler/Wyoming" #: src/hd-data.c:413 msgid "Uruguay" msgstr "Uruguay" #: src/hd-data.c:414 msgid "Uzbekistan" msgstr "Özbekistan" #: src/hd-data.c:415 msgid "St Vincent and Grenadines" msgstr "St Vincent ve Grenadines" #: src/hd-data.c:416 msgid "Venezuela" msgstr "Venezuela" #: src/hd-data.c:417 msgid "British Virgin Islands" msgstr "Britanya Virgin Adaları" #: src/hd-data.c:418 msgid "U.S. Virgin Islands" msgstr "U.S. Virgin Adaları" #: src/hd-data.c:419 msgid "Viet Nam" msgstr "Vietnam" #: src/hd-data.c:420 msgid "Vanuatu" msgstr "Vanuatu" #: src/hd-data.c:421 msgid "Wallis and Futuna Islands" msgstr "Wallis ve Futuna Adaları" #: src/hd-data.c:422 msgid "Samoa" msgstr "Samoa" #: src/hd-data.c:423 msgid "Yemen" msgstr "Yemen" #: src/hd-data.c:424 msgid "Mayotte" msgstr "Mayotte" #: src/hd-data.c:425 msgid "Serbia and Montenegro" msgstr "Sırbistan ve KaradaÄŸ" #: src/hd-data.c:426 msgid "South Africa" msgstr "Güney Afrika" #: src/hd-data.c:427 msgid "Zambia" msgstr "Zambia" #: src/hd-data.c:428 msgid "Zimbabwe" msgstr "Zimbabwe" #: src/hd-data.c:458 msgid "1st Advent" msgstr "Birinci GeliÅŸ" #: src/hd-data.c:459 msgid "1st Sunday in Lent" msgstr "Paskalya'daki İlk Pazar Günü" #: src/hd-data.c:460 msgid "2nd Advent" msgstr "İkinci GeliÅŸ" #: src/hd-data.c:461 msgid "2nd Sunday in Lent" msgstr "Paskalya'daki İkinci Pazar Günü" #: src/hd-data.c:462 msgid "3rd Advent" msgstr "Üçüncü GeliÅŸ" #: src/hd-data.c:463 msgid "3rd Sunday in Lent" msgstr "Paskalya'daki Üçüncü Pazar Günü" #: src/hd-data.c:464 msgid "4th Advent" msgstr "Dördüncü GeliÅŸ" #: src/hd-data.c:465 msgid "4th Sunday in Lent" msgstr "Paskalya'daki Dördüncü Pazar Günü" #: src/hd-data.c:466 msgid "7-5-3 Festival" msgstr "7-5-3 Festivali" #: src/hd-data.c:467 msgid "Aborigines Day" msgstr "Aborigines Günü" #: src/hd-data.c:468 msgid "All Fool's Day" msgstr "Aptallar Günü" #: src/hd-data.c:469 msgid "All Saints' Day" msgstr "Azizler Günü" #: src/hd-data.c:470 msgid "All Souls' Day" msgstr "Ruhlar Günü" #: src/hd-data.c:471 msgid "Alphabet Day" msgstr "Alfabe Günü" #: src/hd-data.c:472 msgid "Anniversary of Auckland" msgstr "Auckland Yıldönümü" #: src/hd-data.c:473 msgid "Anniversary of Canterbury North" msgstr "Kuzey Cantenbury Yıldönümü" #: src/hd-data.c:474 msgid "Anniversary of Canterbury South" msgstr "Güney Cantenbury yıldönümü" #: src/hd-data.c:475 msgid "Anniversary of Chatham Islands" msgstr "Catham Adaları Yıldönümü" #: src/hd-data.c:476 msgid "Anniversary of Hawkes' Bay" msgstr "Hawkes Sahili Yıldönümü" #: src/hd-data.c:477 msgid "Anniversary of Marlborough" msgstr "Marlborough Yıldönümü" #: src/hd-data.c:478 msgid "Anniversary of Nelson" msgstr "Nelson Yıldönümü" #: src/hd-data.c:479 msgid "Anniversary of Otago" msgstr "Otago Yıldönümü" #: src/hd-data.c:480 msgid "Anniversary of Southland" msgstr "Southland Yıldönümü" #: src/hd-data.c:481 msgid "Anniversary of Taranaki" msgstr "Taranaki Yıldönümü" #: src/hd-data.c:482 msgid "Anniversary of Wellington" msgstr "Wellington Yıldönümü" #: src/hd-data.c:483 msgid "Anniversary of Westland" msgstr "Westland Yıldönümü" #: src/hd-data.c:484 msgid "Anzac Day" msgstr "Anzac Günü" #: src/hd-data.c:485 msgid "Arbor Day" msgstr "Arbor Günü" #: src/hd-data.c:486 msgid "Armed Forces Day" msgstr "Silahlı Kuvvetler Günü" #: src/hd-data.c:487 msgid "Armistice Day" msgstr "Armistice Günü" #: src/hd-data.c:488 msgid "Ash Monday" msgstr "Ash Pazartesisi" #: src/hd-data.c:489 msgid "Ash Wednesday" msgstr "Ash ÇarÅŸambası" #: src/hd-data.c:490 msgid "Ascension of Abdu'l-Baha" msgstr "Ascension of Abdu'l-Baha" #: src/hd-data.c:491 msgid "Ascension of Baha'u'llah" msgstr "Baha'u'llah'ın Miracı" #: src/hd-data.c:492 msgid "Birth of Baha'u'llah" msgstr "Baha'u'llah'ın DoÄŸum Günü" #: src/hd-data.c:493 msgid "Birth of the Bab" msgstr "Bab'ın DoÄŸum Günü" #: src/hd-data.c:494 msgid "Day of the Covenant" msgstr "AnlaÅŸma Günü" #: src/hd-data.c:495 msgid "Declaration of the Bab" msgstr "Bab'ın Açıklanması" #: src/hd-data.c:496 msgid "First Day of Ridvan" msgstr "Rıdvan'ın İlk Günü" #: src/hd-data.c:497 msgid "Martyrdom of the Bab" msgstr "Bab'ın Åžehit OluÅŸu" #: src/hd-data.c:498 msgid "Bahá'i New Year's Day" msgstr "Bahá'i'nin Yeni Yıl Günü" #: src/hd-data.c:499 msgid "Ninth Day of Ridvan" msgstr "Rıdvan'ın 9. Günü" #: src/hd-data.c:500 msgid "Twelfth Day of Ridvan" msgstr "Rıdvan'ın 12. Günü" #: src/hd-data.c:501 msgid "Bank Holiday" msgstr "Banka Tatili" #: src/hd-data.c:502 msgid "Basque National Day" msgstr "Bask Ulusal Günü" #: src/hd-data.c:503 msgid "Battle of Boyne" msgstr "Boyne Savaşı" #: src/hd-data.c:504 msgid "Battle of Puebla" msgstr "Puebla Savaşı" #: src/hd-data.c:505 msgid "Beginning of Financial Year" msgstr "Mali yıl BaÅŸlangıcı" #: src/hd-data.c:506 msgid "Benito Juárez Day" msgstr "Benito Juárez Günü" #: src/hd-data.c:507 msgid "Bodhidharma's Birthday" msgstr "Bodhidharma'ın DoÄŸum Günü" #: src/hd-data.c:508 msgid "Bosses' Day" msgstr "Patronlar Günü" #: src/hd-data.c:509 msgid "Boxing Day" msgstr "Boks Günü" #: src/hd-data.c:510 msgid "Bringing Home the Herds Day" msgstr "Bringing Home the Herds Day" #: src/hd-data.c:511 msgid "Bringing in the Harvest Day" msgstr "Bringing in the Harvest Day" #: src/hd-data.c:512 msgid "Buddha's Birthday" msgstr "Budhaa'nın DoÄŸum Günü" #: src/hd-data.c:513 msgid "Burns Night" msgstr "Burns Gecesi" #: src/hd-data.c:514 msgid "Camoes Day" msgstr "Camoes Günü" #: src/hd-data.c:515 msgid "Carnival" msgstr "Karnaval" #: src/hd-data.c:516 msgid "Beltane" msgstr "Beltane" #: src/hd-data.c:517 msgid "Imbolg" msgstr "Imbolg" #: src/hd-data.c:518 msgid "Lughnasa" msgstr "Lughnasa" #: src/hd-data.c:519 msgid "Samhain/Celtic New Year's Day" msgstr "Samhain/Celtic Yeni Yıl Günü" #: src/hd-data.c:520 msgid "Children's Day" msgstr "Çocuklar Günü" #: src/hd-data.c:521 msgid "Cycle" msgstr "Daire" #: src/hd-data.c:522 msgid "Chinese New Year's Day" msgstr "Çin Yeni Yıl Günü" #: src/hd-data.c:523 msgid "Chinese New Year's Eve" msgstr "Çin Yılbaşısı" #: src/hd-data.c:524 msgid "Christmas Day" msgstr "Yılbaşı" #: src/hd-data.c:525 msgid "Christmas Eve" msgstr "Noel" #: src/hd-data.c:526 msgid "Christ's Ascension Day" msgstr "Christ'in Şıkış Günü" #: src/hd-data.c:527 msgid "Chrysanthenum Day" msgstr "Krizantem Günü" #: src/hd-data.c:528 msgid "Citizenship Day" msgstr "YurttaÅŸlık Günü" #: src/hd-data.c:529 msgid "Civic Holiday" msgstr "Kentliler Günü" #: src/hd-data.c:530 msgid "Columbus Day" msgstr "Columbus Günü" #: src/hd-data.c:531 msgid "Coming of Age Day" msgstr "Coming of Age Day" #: src/hd-data.c:532 msgid "Confucius' Birthday" msgstr "Confucius'un DoÄŸum Günü" #: src/hd-data.c:533 msgid "Constitution Anniversary" msgstr "KuruluÅŸ Yıldönümü (ABD)" #: src/hd-data.c:534 msgid "Coptic New Year's Day" msgstr "Coptic New Year's Day" #: src/hd-data.c:535 msgid "Cosmonauts' Day" msgstr "Kozmonotlar Günü" #: src/hd-data.c:536 msgid "Cross Raising Day" msgstr "Cross Raising Day" #: src/hd-data.c:537 msgid "Culture Day" msgstr "Kültür Günü" #: src/hd-data.c:538 msgid "Day after Mid-Autumn Festival" msgstr "Day after Mid-Autumn Festival" #: src/hd-data.c:539 msgid "Day after Tomb-Sweeping Day" msgstr "Day after Tomb-Sweeping Day" #: src/hd-data.c:540 msgid "Day of Andalucia" msgstr "Day of Andalucia" #: src/hd-data.c:541 msgid "Day of Catalonia" msgstr "Katalonya Günü" #: src/hd-data.c:542 msgid "Day of Galicia" msgstr "Galiçya Günü" #: src/hd-data.c:543 msgid "Day of Prayer and Repentance" msgstr "Dua ve PiÅŸmanlık Günü" #: src/hd-data.c:544 msgid "Day of Reconciliation" msgstr "UzlaÅŸma Günü" #: src/hd-data.c:545 msgid "Defenders of Motherland Day" msgstr "Anavatan Savunmacıları Günü" #: src/hd-data.c:546 msgid "Double-9 Day" msgstr "Çift-9 Günü" #: src/hd-data.c:547 msgid "Dragon Boat Festival" msgstr "Dragon Gemisi Festivali" #: src/hd-data.c:548 msgid "Dynasty Day" msgstr "Hanedanlık Günü" #: src/hd-data.c:549 msgid "Easter Monday" msgstr "Paskalya Pazartesisi" #: src/hd-data.c:550 msgid "Easter Sunday" msgstr "Paskalya Pazarı" #: src/hd-data.c:551 msgid "Lunar Eclipse" msgstr "Ay Tutulması" #: src/hd-data.c:552 msgid "Solar Eclipse" msgstr "GüneÅŸ Tutulması" #: src/hd-data.c:553 msgid "Annular" msgstr "Annular" #: src/hd-data.c:554 msgid "Partial" msgstr "Partial" #: src/hd-data.c:555 msgid "Penumbral" msgstr "Penumbral" #: src/hd-data.c:556 msgid "Total" msgstr "Total" #: src/hd-data.c:557 msgid "Eindhoven's Liberation" msgstr "Eindhoven'ın KurtuluÅŸu" #: src/hd-data.c:558 msgid "Election Day" msgstr "Seçim Günü" #: src/hd-data.c:559 msgid "Emperor's Birthday" msgstr "İmparatorun DoÄŸum Günü" #: src/hd-data.c:560 msgid "Equinox Day" msgstr "Ekinoks Günü" #: src/hd-data.c:561 msgid "Ethiopic New Year's Day" msgstr "Etyopya Yeni Yıl Günü" #: src/hd-data.c:562 msgid "Father's Day" msgstr "Babalar Günü" #: src/hd-data.c:563 msgid "Feast of Corpus Christi" msgstr "Corpus Christi Şöleni" #: src/hd-data.c:564 msgid "Feast of Fortune" msgstr "Zenginlik Şöleni" #: src/hd-data.c:565 msgid "Feast of Heart Jesus" msgstr "Heart Jesus Şöleni" #: src/hd-data.c:566 msgid "Festival of Lanterns" msgstr "Fener Festivali" #: src/hd-data.c:567 msgid "Festival of Sadeh" msgstr "Sadeh Festivali" #: src/hd-data.c:568 msgid "Flag Day" msgstr "Bayrak Günü" #: src/hd-data.c:569 msgid "Flemish Culture Day" msgstr "Flemish Kültür Günü" #: src/hd-data.c:570 msgid "Founding of the Communist Party" msgstr "Komünist Partinin KuruluÅŸu" #: src/hd-data.c:571 msgid "French Culture Day" msgstr "Fransız Kültür Günü" #: src/hd-data.c:572 msgid "French Revolutionary" msgstr "Fransız Devrimi" #: src/hd-data.c:573 msgid "Friendship Day" msgstr "ArkadaÅŸlık Günü" #: src/hd-data.c:574 msgid "German Unity Day" msgstr "Alman Birlik Günü" #: src/hd-data.c:575 msgid "Good Friday" msgstr "İyi Cuma" #: src/hd-data.c:576 msgid "Good Saturday/Easter Eve" msgstr "İyi Cumartesi/Paskalya Yortusu" #: src/hd-data.c:577 msgid "Grandparents' Day" msgstr "Dede-Nine Günü" #: src/hd-data.c:578 msgid "Greenery Day" msgstr "YeÅŸil Yaprak Günü" #: src/hd-data.c:579 msgid "Grotto Day" msgstr "MaÄŸara Günü" #: src/hd-data.c:580 msgid "Groundhog Day" msgstr "Groundhog Günü" #: src/hd-data.c:581 msgid "Guadalupe Virgin's Day" msgstr "Guadalupe Bakiresi Günü" #: src/hd-data.c:582 msgid "Guy Fawke's Day" msgstr "Guy Fawke's Day" #: src/hd-data.c:583 msgid "Halloween" msgstr "Cadılar Bayramı" #: src/hd-data.c:584 msgid "Health and Sport's Day" msgstr "SaÄŸlık ve Spor Bayramı" #: src/hd-data.c:585 msgid "Hannukah/Festival of Lights" msgstr "Hannukah/Işık Festivali" #: src/hd-data.c:586 msgid "Lag B'Omer" msgstr "Lag B'Omer" #: src/hd-data.c:587 msgid "Pesach/Passover" msgstr "Pesach/Passover" #: src/hd-data.c:588 msgid "Purim/Feast of Lots" msgstr "Purim/Feast of Lots" #: src/hd-data.c:589 msgid "Rosh Hashana/New Year's Day" msgstr "Rosh Hashana/Yeni Yıl Günü" #: src/hd-data.c:590 msgid "Shavuot/Giving of the Torah" msgstr "Shavuot/Giving of the Torah" #: src/hd-data.c:591 msgid "Shushan Purim" msgstr "Shushan Purim" #: src/hd-data.c:592 msgid "Simchat Torah" msgstr "Simchat Torah" #: src/hd-data.c:593 msgid "Sukkot/Feast of Tabernacles" msgstr "Sukkot/Feast of Tabernacles" #: src/hd-data.c:594 msgid "Tisha B'Av/Fasting Day" msgstr "Tisha B'Av/Fasting Day" #: src/hd-data.c:595 msgid "Tu B'Shevat/New Year of Trees" msgstr "Tu B'Shevat/AÄŸaç Yeni Yılı" #: src/hd-data.c:596 msgid "Yom Hashoah/Holocaust Memorial" msgstr "Yom Hashoah/Soykırım Anıtı" #: src/hd-data.c:597 msgid "Yom Hazikaron/Soldiers Memorial" msgstr "Yom Hazikaron/Askerler Anıtı" #: src/hd-data.c:598 msgid "Yom Ha Azmaut/Independence Day" msgstr "Yom Ha Azmaut/Bağımsızlık Günü" #: src/hd-data.c:599 msgid "Yom Kippur/Atonement Day" msgstr "Yom Kippur/Atonement Day" #: src/hd-data.c:600 msgid "Yom Yerushalayim/Jerusalem Day" msgstr "Yom Yerushalayim/Kudüs Günü" #: src/hd-data.c:601 msgid "Holy Innocent's Day" msgstr "Kutsal Masum Günü" #: src/hd-data.c:602 msgid "Holy Trinity" msgstr "Holy Trinity" #: src/hd-data.c:603 msgid "Huravee Day" msgstr "Huravee Day" #: src/hd-data.c:604 msgid "Independence Day" msgstr "Bağımsızlık Günü" #: src/hd-data.c:605 msgid "Independence Movement Day" msgstr "Bağımsızlık Hareketi Günü" #: src/hd-data.c:606 msgid "Independence Proclamation" msgstr "Bağımsızlık İlanı" #: src/hd-data.c:607 msgid "Indian New Year's Day" msgstr "Hint Yeni Yıl Günü" #: src/hd-data.c:608 msgid "Aga Khan's Birthday" msgstr "Aga Khan'ın DoÄŸum Günü" #: src/hd-data.c:609 msgid "Ashura'" msgstr "Ashura'" #: src/hd-data.c:610 msgid "Eid-al-Adha" msgstr "Kurban Bayramı" #: src/hd-data.c:611 msgid "Eid-al-Fitr" msgstr "Ramazan Bayramı" #: src/hd-data.c:612 msgid "Eid-i-Milad-un-Nabi" msgstr "Mevlit Kandili" #: src/hd-data.c:613 msgid "Ghadir" msgstr "Ghadir" #: src/hd-data.c:614 msgid "Imamat Day" msgstr "Imamat Day" #: src/hd-data.c:615 msgid "Islamic New Year's Day" msgstr "Hicret Yıldönümü" #: src/hd-data.c:616 msgid "Nuzul-al-Qur'an" msgstr "Kuran-ı Kerim'in inmeye baÅŸladığı tarih" #: src/hd-data.c:617 msgid "Quds Day" msgstr "Kudüs Gecesi" #: src/hd-data.c:618 msgid "Ramadan" msgstr "Ramazan" #: src/hd-data.c:619 msgid "Shab-e-Bara't" msgstr "Berat Kandili" #: src/hd-data.c:620 msgid "Shab-e-Mi'raj" msgstr "Miraç Kandili" #: src/hd-data.c:621 msgid "Shab-e Qadr" msgstr "Kadir Gecesi" #: src/hd-data.c:622 msgid "Waqf-al-Arafat" msgstr "Waqf-al-Arafat" #: src/hd-data.c:623 msgid "Japanese New Year's Day" msgstr "Japon Yeni Yıl Günü" #: src/hd-data.c:624 msgid "Japanese New Year's Eve" msgstr "Japon Noeli" #: src/hd-data.c:625 msgid "Jesus' Circumcision" msgstr "İsa'nın Sünneti" #: src/hd-data.c:626 msgid "Kwanzaa" msgstr "Kwanzaa" #: src/hd-data.c:627 msgid "Labour Day" msgstr "İşçi Günü" #: src/hd-data.c:628 msgid "Labour Thanksgiving Day" msgstr "İşçi Şükran Günü" #: src/hd-data.c:629 msgid "Lao Tze's Birthday" msgstr "Lao Tze'nin DoÄŸum Günü" #: src/hd-data.c:630 msgid "Liberation Day" msgstr "Özgürlük Günü" #: src/hd-data.c:631 msgid "Marine Day" msgstr "Denizcilik Günü" #: src/hd-data.c:632 msgid "Martinimas" msgstr "Martinimas" #: src/hd-data.c:633 msgid "Martin L. King's Day" msgstr "Martin L. King Günü" #: src/hd-data.c:634 msgid "Martyrs' Day" msgstr "Martyrs Günü" #: src/hd-data.c:635 msgid "Mary's Annunciation Day" msgstr "Mary's Annunciation Day" #: src/hd-data.c:636 msgid "Mary's Ascension Day" msgstr "Mary's Ascension Day" #: src/hd-data.c:637 msgid "Mary's Candlemas" msgstr "Mary's Candlemas" #: src/hd-data.c:638 msgid "Mary's Expectation" msgstr "Mary's Expectation" #: src/hd-data.c:639 msgid "Mary's Immaculate Conception" msgstr "Mary's Immaculate Conception" #: src/hd-data.c:640 msgid "Mary's Maternity" msgstr "Mary's Maternity" #: src/hd-data.c:641 msgid "Mary's Name" msgstr "Mary's Name" #: src/hd-data.c:642 msgid "Mary's Nativity" msgstr "Mary's Nativity" #: src/hd-data.c:643 msgid "Mary's Sacrifice" msgstr "Mary's Sacrifice" #: src/hd-data.c:644 msgid "Mary's Visitation" msgstr "Mary's Visitation" #: src/hd-data.c:645 msgid "Mary - Blessed Virgin" msgstr "Mary - Blessed Virgin" #: src/hd-data.c:646 msgid "Maundy Thursday" msgstr "Maundy Thursday" #: src/hd-data.c:647 msgid "May Day" msgstr "Mayıs Günü" #: src/hd-data.c:648 msgid "St John's/Midsummer Day" msgstr "St John'un Yaz Ortası Günü" #: src/hd-data.c:649 msgid "Mid-Autumn Festival" msgstr "Sonbahar Ortası Festivali" #: src/hd-data.c:650 msgid "Mid-Spring Festival" msgstr "İlkbahar Ortası Festivali" #: src/hd-data.c:651 msgid "Mid-Year Festival" msgstr "Yıl Ortası Festivali" #: src/hd-data.c:652 msgid "Waxing Half Moon" msgstr "Waxing Half Moon" #: src/hd-data.c:653 msgid "Full Moon" msgstr "Dolunay" #: src/hd-data.c:654 msgid "Waning Half Moon" msgstr "Waning Half Moon" #: src/hd-data.c:655 msgid "New Moon" msgstr "Yeni Ay" #: src/hd-data.c:656 msgid "Mother's Day" msgstr "Anneler Günü" #: src/hd-data.c:657 msgid "Mother in Law's Day" msgstr "Üvey Anneler Günü" #: src/hd-data.c:658 msgid "Music Water Banquet" msgstr "Muzik Suyu Şöleni" #: src/hd-data.c:659 msgid "National Foundation Day" msgstr "Ulusal KuruluÅŸ Günü" #: src/hd-data.c:660 msgid "National Holiday" msgstr "Ulusal Tatil" #: src/hd-data.c:661 msgid "National Mourning Day" msgstr "Ulusal Yas Günü" #: src/hd-data.c:662 msgid "New Year's Day" msgstr "Yeni Yıl" #: src/hd-data.c:663 msgid "Nurses' Day" msgstr "HemÅŸireler Günü" #: src/hd-data.c:664 msgid "Old-Armenic New Year" msgstr "Eski Ermeni Yeni Yılı" #: src/hd-data.c:665 msgid "Old-Egyptic New Year" msgstr "Eski Mısır Yeni Yılı" #: src/hd-data.c:666 msgid "Orthodox New Year's Day" msgstr "Ortodoks Yeni Yılı" #: src/hd-data.c:667 msgid "Our Lady Aparecida Day" msgstr "Our Lady Aparecida Day" #: src/hd-data.c:668 msgid "Palm Sunday" msgstr "Palmiye Pazarı" #: src/hd-data.c:669 msgid "Parent's Day" msgstr "Anne Baba Günü" #: src/hd-data.c:670 msgid "Passion Sunday" msgstr "Tutku Pazarı" #: src/hd-data.c:671 msgid "Peace Festival" msgstr "Barış Festivali" #: src/hd-data.c:672 msgid "Peach Festival" msgstr "Åžeftali Festivali" #: src/hd-data.c:673 msgid "Whitsunday/Pentecost" msgstr "Whitsunday/Pentecost" #: src/hd-data.c:674 msgid "Noruz/Persian New Year's Day" msgstr "Noruz/İran Yeni Yılı" #: src/hd-data.c:675 msgid "Prayer Day" msgstr "Dua Günü" #: src/hd-data.c:676 msgid "Presidential Inauguration" msgstr "BaÅŸkanın Göreve GeliÅŸi" #: src/hd-data.c:677 msgid "Presidents' Day" msgstr "BaÅŸkanlar Günü" #: src/hd-data.c:678 msgid "Presidents' Inform" msgstr "BaÅŸkanın Bilgisi" #: src/hd-data.c:679 msgid "President Lincoln's Birthday" msgstr "BaÅŸkan Lincoln'ün DoÄŸum Günü" #: src/hd-data.c:680 msgid "Princess' Day" msgstr "Prensesin Günü" #: src/hd-data.c:681 msgid "Quinquagesima Sunday" msgstr "Quinquagesima Pazarı" #: src/hd-data.c:682 msgid "Reformation Day" msgstr "Reform Günü" #: src/hd-data.c:683 msgid "Remembrance/Memorial Day" msgstr "Anma/Anıt Günü" #: src/hd-data.c:684 msgid "Republic Day" msgstr "Cumhuriyet Günü" #: src/hd-data.c:685 msgid "Respect for the Aged Day" msgstr "Eski Günlere Saygı Günü" #: src/hd-data.c:686 msgid "Revolution Day" msgstr "Devrim Günü" #: src/hd-data.c:687 msgid "Rio de Janeiro Anniversary" msgstr "Rio de Janeiro Yıldönümü" #: src/hd-data.c:688 msgid "Rogation Sunday" msgstr "Rogation Pazar" #: src/hd-data.c:689 msgid "Sao Paulo Anniversary" msgstr "Sao Paulo Yıldönümü" #: src/hd-data.c:690 msgid "Sapporo Snow Festival" msgstr "Sapporo Kar Festivali" #: src/hd-data.c:691 msgid "Season Change/Bean-Festival" msgstr "Mevsim Dönümü/Fasulye Festivali" #: src/hd-data.c:692 msgid "Septuagesima Sunday" msgstr "Septuagesima Pazar" #: src/hd-data.c:693 msgid "Seven Sleepers Day" msgstr "Yedi Uyurlar Günü" #: src/hd-data.c:694 msgid "Sexagesima Sunday" msgstr "Sexagesima Pazarı" #: src/hd-data.c:695 msgid "Shrove Tuesday/Mardi Gras" msgstr "Shrove Salısı/Mardi Gras" #: src/hd-data.c:696 msgid "Solstice Day" msgstr "Gündönümü" #: src/hd-data.c:697 msgid "Soot-Sweeping Day" msgstr "Soot-Sweeping Günü" #: src/hd-data.c:698 msgid "Spring Festival" msgstr "Bahar Festivali" #: src/hd-data.c:699 msgid "Start of common month" msgstr "Ortak ayın baÅŸlangıcı" #: src/hd-data.c:700 msgid "Start of leap month" msgstr "Artık ay baÅŸlangıcı" #: src/hd-data.c:701 msgid "Star Festival" msgstr "Yıldız Festivali" #: src/hd-data.c:702 msgid "St Andrew's Day" msgstr "St Andrew Günü" #: src/hd-data.c:703 msgid "St Bartholomew Day" msgstr "St Bartholomew Günü" #: src/hd-data.c:704 msgid "St Berchtold's Day" msgstr "St Berchtold Günü" #: src/hd-data.c:705 msgid "St David's Day" msgstr "St David Günü" #: src/hd-data.c:706 msgid "St Edward's Day" msgstr "St Edward Günü" #: src/hd-data.c:707 msgid "St George's Day" msgstr "St George Günü" #: src/hd-data.c:708 msgid "St James' Day" msgstr "St James Günü" #: src/hd-data.c:709 msgid "St Joseph's Day" msgstr "St Joseph Günü" #: src/hd-data.c:710 msgid "St Laurentius Day" msgstr "St Laurentis Günü" #: src/hd-data.c:711 msgid "St Nicholas' Day" msgstr "St Nicholas Günü" #: src/hd-data.c:712 msgid "St Nicholas' Eve" msgstr "St Nicholas Arifesi" #: src/hd-data.c:713 msgid "St Patrick's Day" msgstr "St Patrick Günü" #: src/hd-data.c:714 msgid "St Peter and St Paul" msgstr "St Peter ve St Paul" #: src/hd-data.c:715 msgid "St Stephen's Day" msgstr "St Stephen Günü" #: src/hd-data.c:716 msgid "St Valentine's Day" msgstr "Sevgililer Günü" #: src/hd-data.c:717 msgid "Sunday of the Dead" msgstr "Ölüm Pazarı" #: src/hd-data.c:718 msgid "Swallow Day" msgstr "Swallow Günü" #: src/hd-data.c:719 msgid "Sweetest Day" msgstr "En Tatlı Gün" #: src/hd-data.c:720 msgid "Sylvester/New Year's Eve" msgstr "Sylvester/Yeni Yıl" #: src/hd-data.c:721 msgid "Teacher's Day" msgstr "Öğretmenler Günü" #: src/hd-data.c:722 msgid "Thai New Year's Day" msgstr "Thai'nin Yeni Yılı" #: src/hd-data.c:723 msgid "Thanksgiving Day" msgstr "Şükran Günü" #: src/hd-data.c:724 msgid "The King's Birthday" msgstr "Kralın DoÄŸum Günü" #: src/hd-data.c:725 msgid "The Queen's Birthday" msgstr "Kraliçenin DoÄŸum Günü" #: src/hd-data.c:726 msgid "Epiphany/Three King's Day" msgstr "Epiphany/3 Kralın Günü" #: src/hd-data.c:727 msgid "Tiradentes Day" msgstr "Tiradentes Günü" #: src/hd-data.c:728 msgid "Tomb-Sweeping Day" msgstr "Mezar Süpürme Günü" #: src/hd-data.c:729 msgid "Transfiguration Day" msgstr "Yüceltme Günü" #: src/hd-data.c:730 msgid "Tynwald Day" msgstr "Tynwald Günü" #: src/hd-data.c:731 msgid "Valborg's Eve" msgstr "Valbourg Arifesi" #: src/hd-data.c:732 msgid "Venice Carnival" msgstr "Venedeik Karnavalı" #: src/hd-data.c:733 msgid "Veteran's Day" msgstr "Emekliler Günü" #: src/hd-data.c:734 msgid "Victoria Day" msgstr "Victoria Günü" #: src/hd-data.c:735 msgid "Victory Day" msgstr "Zafer Günü" #: src/hd-data.c:736 msgid "Whit Monday" msgstr "Whit Pazartesisi" #: src/hd-data.c:737 msgid "Women's Day" msgstr "Kadınlar Günü" #: src/hd-data.c:738 msgid "Women's Shrove Day" msgstr "Kadın Örtüsü Günü" #: src/hd-data.c:739 msgid "World Animal Day" msgstr "Dünya Hayvan Günü" #: src/hd-data.c:740 msgid "Youth Day" msgstr "Gençlik Günü" #: src/hd-data.c:746 msgid "Adelaide Cup Day" msgstr "Adelaide Kupa Günü" #: src/hd-data.c:747 msgid "Admission Day" msgstr "Kabul Günü" #: src/hd-data.c:748 msgid "Alaska Day" msgstr "Alaska Günü" #: src/hd-data.c:749 msgid "Aleksis Kivi Day" msgstr "Aleksis Kivi Günü" #: src/hd-data.c:750 msgid "Alice-Springs Show Day" msgstr "Alice-Springs Gösteri Günü" #: src/hd-data.c:751 msgid "All Saints' Eve" msgstr "TÄŸm Azizler Günü" #: src/hd-data.c:752 msgid "Americas Day" msgstr "Amerika Günü" #: src/hd-data.c:753 msgid "Angam Day" msgstr "Angam Günü" #: src/hd-data.c:755 msgid "Anniversary of Amir's Succession" msgstr "Emir'in BaÅŸarısının Yıldönümü" #: src/hd-data.c:756 msgid "Anniversary of Armed Struggle" msgstr "Silahlı SavaÅŸ Yıldönümü" #: src/hd-data.c:757 msgid "Anniversary of Green March" msgstr "YeÅŸil Yürüyüş Yıldönümü" #: src/hd-data.c:758 msgid "Antillian Day" msgstr "Antillian Günü" #: src/hd-data.c:759 msgid "Arab League Day" msgstr "Arap BirliÄŸi Günü" #: src/hd-data.c:761 msgid "Archbishop Makarios' Memorial Day" msgstr "BaÅŸpiskopos Makarios'u Anma Günü" #: src/hd-data.c:762 msgid "Archbishop Makarios' Name-Day" msgstr "BaÅŸpiskopos Makarios Günü" #: src/hd-data.c:763 msgid "Arengo Anniversary" msgstr "Arengo Yıldönümü" #: src/hd-data.c:764 msgid "Army Coup Day" msgstr "Ordu Darbe Günü" #: src/hd-data.c:765 msgid "Arrival of the Swiss" msgstr "Swiss'in Dönüşü" #: src/hd-data.c:766 msgid "Artigas' Birthday" msgstr "Artigas'ın DoÄŸum Günü" #: src/hd-data.c:767 msgid "Asuncion Day" msgstr "Asuncion Günü" #: src/hd-data.c:768 msgid "Ataturk Memorial Day" msgstr "Atatürk'ü Anma Günü" #: src/hd-data.c:769 msgid "Authority's Power Day" msgstr "Otoritenin İktidar Günü" #: src/hd-data.c:770 msgid "Ba'ath Revolution Day" msgstr "Ba'ath Devrimi Günü" #: src/hd-data.c:771 msgid "Baron Bliss Day" msgstr "Baron Bliss Günü" #: src/hd-data.c:772 msgid "Bataan Day" msgstr "Bataan Günü" #: src/hd-data.c:773 msgid "Battle of Angamos" msgstr "Angamos Savaşı" #: src/hd-data.c:774 msgid "Battle of Boyacá" msgstr "Boyacá Savaşı" #: src/hd-data.c:775 msgid "Battle of Carabobo" msgstr "Carabobo Savaşı" #: src/hd-data.c:776 msgid "Battle of Iquique" msgstr "Iquique Savaşı" #: src/hd-data.c:777 msgid "Battle of Las Piedras" msgstr "Las Piedras Savaşı" #: src/hd-data.c:778 msgid "Battle of Näfels" msgstr "Näfels Savaşı" #: src/hd-data.c:779 msgid "Beginning of Summer" msgstr "Yaz BaÅŸlangıcı" #: src/hd-data.c:780 msgid "Belgrade's Day" msgstr "Belgrad Günü" #: src/hd-data.c:781 msgid "Bennington Battle Day" msgstr "Bennigton Savaşı Günü" #: src/hd-data.c:782 msgid "Blessing of the Water" msgstr "Suyun Kutsanması Günü" #: src/hd-data.c:783 msgid "Bloomsday" msgstr "Bloomsday" #: src/hd-data.c:784 msgid "Boganda Day" msgstr "Boganda Günü" #: src/hd-data.c:785 msgid "Bonaire Day" msgstr "Bonaire Günü" #: src/hd-data.c:786 msgid "Boqueron Battle Day" msgstr "Boqueron Savaşı Günü" #: src/hd-data.c:787 msgid "Botswana Day" msgstr "Botswana Günü" #: src/hd-data.c:788 msgid "Bounty Day" msgstr "İkramiye Günü" #: src/hd-data.c:789 msgid "Bunker Hill Day" msgstr "Bunker Hill Günü" #: src/hd-data.c:790 msgid "Burning of Jan Hus" msgstr "Jan Hus'un Yakılışı" #: src/hd-data.c:791 msgid "Canberra Day" msgstr "Canberra Günü" #: src/hd-data.c:792 msgid "Caricom Day" msgstr "Caricom Günü" #: src/hd-data.c:793 msgid "Casimir Pulaski's Birthday" msgstr "Casimir Pulaski'nin DoÄŸum Günü" #: src/hd-data.c:794 msgid "Cassinga Day" msgstr "Cassinga Günü" #: src/hd-data.c:795 msgid "Cayenne Festival" msgstr "Cayenne Festivali" #: src/hd-data.c:796 msgid "Cesar Chavez Day" msgstr "Cesar Chavez Günü" #: src/hd-data.c:797 msgid "Charter Day" msgstr "Charter Günü" #: src/hd-data.c:798 msgid "Chiang Kai-shek's Birthday" msgstr "Chiang Kai-shek'in DoÄŸum Günü" #: src/hd-data.c:799 msgid "Children's White Sunday" msgstr "Çocukların Beyaz Pazar Günü" #: src/hd-data.c:800 msgid "Colon Day" msgstr "Colon Günü" #: src/hd-data.c:801 msgid "Colorado Day" msgstr "Colorado Günü" #: src/hd-data.c:802 msgid "Commonwealth Day" msgstr "Ulus Günü" #: src/hd-data.c:803 msgid "Compact Day" msgstr "Compact Günü" #: src/hd-data.c:804 msgid "Confederal Agreement Day" msgstr "Konfederasyon AnlaÅŸması Günü" #: src/hd-data.c:805 msgid "Coronation Day" msgstr "Taç Giyme Günü" #: src/hd-data.c:806 msgid "Cup Match Day" msgstr "Kupa Maçı Günü" #: src/hd-data.c:807 msgid "Custom Chief's Day" msgstr "Töresel Åžef Günü" #: src/hd-data.c:808 msgid "C. Mapinduzi Day" msgstr "C. Mapinduzi Günü" #: src/hd-data.c:809 msgid "Darwin Show Day" msgstr "Darwin Gösterisi Günü" #: src/hd-data.c:810 msgid "Day of Goodwill" msgstr "İyiniyet Günü" #: src/hd-data.c:811 msgid "Day of Students Revolt" msgstr "Öğrencilerin İsyan Günü" #: src/hd-data.c:812 msgid "Day of the Free Laos" msgstr "Özgür Laos Günü" #: src/hd-data.c:813 msgid "Death of H. Christophe" msgstr "H. Christophe'nin Ölümü" #: src/hd-data.c:814 msgid "Death of J. Dessalines" msgstr "J. Dessalines 'ın Ölümü" #: src/hd-data.c:815 msgid "Death of President Abdallah" msgstr "BaÅŸkan Abdallah'ın Ölümü" #: src/hd-data.c:816 msgid "Death of President Cheikh" msgstr "BaÅŸkan Cheikh'in Ölümü" #: src/hd-data.c:817 msgid "Death of President Soilih" msgstr "BaÅŸkan Soilih'in Ölümü" #: src/hd-data.c:818 msgid "Death of Qaid-i-Azam" msgstr "Qaid-i-Azam'ın Ölümü" #: src/hd-data.c:819 msgid "Death of T. Louverture" msgstr "T. Louverture'ın Ölümü" #: src/hd-data.c:820 msgid "Defenders Day" msgstr "Savunmacılar Günü" #: src/hd-data.c:821 msgid "Dia del Padre" msgstr "Dia del Padre" #: src/hd-data.c:822 msgid "Dia de los Maestros" msgstr "Dia de los Maestros" #: src/hd-data.c:823 msgid "Discovery Day" msgstr "KeÅŸif Günü" #: src/hd-data.c:824 msgid "Downfall of the Dergue" msgstr "Dergue'nün Düşüşü" #: src/hd-data.c:825 msgid "Dry Season Celebration" msgstr "Kuru Mevsim Kutlaması" #: src/hd-data.c:826 msgid "Dr. Sun Yat-sen's Birthday" msgstr "Dr. Sun Yat-sen'in DoÄŸum Günü" #: src/hd-data.c:827 msgid "Duarte's Birthday" msgstr "Duarte'nin DoÄŸum Günü" #: src/hd-data.c:828 msgid "Easter Tuesday" msgstr "Paskalya Salısı" #: src/hd-data.c:829 msgid "Economic Liberation Day" msgstr "Ekonomik Bağımsızlık Günü" #: src/hd-data.c:830 msgid "Eight Hours Day" msgstr "Sekiz Saat Günü" #: src/hd-data.c:831 msgid "Elections for National Assembly" msgstr "Ulusal Birlik İçin Seçimler" #: src/hd-data.c:832 msgid "Errol Barrow Day" msgstr "Errol Barrow Günü" #: src/hd-data.c:833 msgid "Evacuation Day" msgstr "Tahliye Günü" #: src/hd-data.c:834 msgid "Eve of Epiphany" msgstr "Epiphany Arifesi" #: src/hd-data.c:835 msgid "Expedition of the 33" msgstr "33 Seferi" #: src/hd-data.c:836 msgid "E. Hostos' Birthday" msgstr "E. Hostos'un DoÄŸum Günü" #: src/hd-data.c:837 msgid "Family Day" msgstr "Aile Günü" #: src/hd-data.c:838 msgid "FAO Day" msgstr "FAO Günü" #: src/hd-data.c:839 msgid "Farmers' Day" msgstr "Çiftçiler Günü" #: src/hd-data.c:840 msgid "Father Leval Day" msgstr "Leval Baba Günü" #: src/hd-data.c:841 msgid "Feast of Our Theotokos" msgstr "Bizim Theotokos'un Ziyafeti" #: src/hd-data.c:842 msgid "Fisherman's Day" msgstr "Balıkçının Günü" #: src/hd-data.c:843 msgid "Foundation of NPLA Day" msgstr "NPLA'nın KuruluÅŸ Günü" #: src/hd-data.c:844 msgid "Founding of People's Party" msgstr "Halk Partisinin KuruluÅŸ Günü" #: src/hd-data.c:845 msgid "Garifuna Day" msgstr "Garifuna Günü" #: src/hd-data.c:847 msgid "General San Martin's Anniversary" msgstr "General San Martin'in Yıldönümü" #: src/hd-data.c:848 msgid "Gospel Day" msgstr "Gospel Günü" #: src/hd-data.c:849 msgid "Guacanaste Day" msgstr "Guacanaste Günü" #: src/hd-data.c:850 msgid "Gustavus Adolphus' Day" msgstr "Gustavus Adolphus Günü" #: src/hd-data.c:851 msgid "Heritage Day" msgstr "Miras Günü" #: src/hd-data.c:852 msgid "Heroes Day" msgstr "Kahramanlar Günü" #: src/hd-data.c:853 msgid "Hobart Show Day" msgstr "Hobart Show Günü" #: src/hd-data.c:854 msgid "Holy Wednesday" msgstr "Kutsal ÇarÅŸamba" #: src/hd-data.c:855 msgid "Ho Chi Minh's Birthday" msgstr "Ho Chi Minh'in DoÄŸum Günü" #: src/hd-data.c:856 msgid "Human Rights Day" msgstr "İnsan Hakları Günü" #: src/hd-data.c:857 msgid "Hurricane Supplication Day" msgstr "Kasırga Yakarma Günü" #: src/hd-data.c:858 msgid "Hurricane Thanksgiving Day" msgstr "Kasırga Şükran Günü" #: src/hd-data.c:859 msgid "Independence of Cartagena" msgstr "Cartagena'nın Bağımsızlığı" #: src/hd-data.c:860 msgid "Independence of Cuenca" msgstr "Cuenca'nın Bağımsızlığı" #: src/hd-data.c:861 msgid "Independence of Guayaquil" msgstr "Guayaquil'nın Bağımsızlığı" #: src/hd-data.c:862 msgid "Independence of Quito" msgstr "Quito'nın Bağımsızlığı" #: src/hd-data.c:863 msgid "Indian Arrival Day" msgstr "Yerli Dönüş Günü" #: src/hd-data.c:864 msgid "Internal Autonomy Day" msgstr "Yurtiçi Özerklik Günü" #: src/hd-data.c:865 msgid "Jefferson Davis' Birthday" msgstr "Jefferson Davis'in DoÄŸum Günü" #: src/hd-data.c:866 msgid "June Holiday" msgstr "Haziran Tatili" #: src/hd-data.c:867 msgid "J. Barbosa's Birthday" msgstr "J. Barbosa'nın DoÄŸum Günü" #: src/hd-data.c:868 msgid "J. Chilembwe Day" msgstr "J. Chilembwe Günü" #: src/hd-data.c:869 msgid "J. Diego's Birthday" msgstr "J. Diego'nun DoÄŸum Günü" #: src/hd-data.c:870 msgid "J. Robert's Birthday" msgstr "J. Robert'in DoÄŸum Günü" #: src/hd-data.c:871 msgid "Kamarampaka Day" msgstr "Kamarampaka Günü" #: src/hd-data.c:872 msgid "Kartini Day" msgstr "Kartini Günü" #: src/hd-data.c:873 msgid "Catherine Show Day" msgstr "Catherina Gösteri Günü" #: src/hd-data.c:874 msgid "Kiev Day" msgstr "Kiev Günü" #: src/hd-data.c:875 msgid "Kim Il-Sung's Birthday" msgstr "Kim Il-Sung'un DoÄŸum Günü" #: src/hd-data.c:876 msgid "Kim Jong-Il's Birthday" msgstr "Kim Jong-Il'un DoÄŸum Günü" #: src/hd-data.c:877 msgid "King Kamehameha Day" msgstr "Kral Kamehameha Günü" #: src/hd-data.c:878 msgid "King Rama I Memorial Day/Chakri" msgstr "Kral Rama I Anma Günü/Chakri" #: src/hd-data.c:879 msgid "King Rama V Memorial Day" msgstr "Kral Rama V Anma Günü" #: src/hd-data.c:880 msgid "Knabenschiessen" msgstr "Knabenschiessen" #: src/hd-data.c:881 msgid "Konstantin and Methodius" msgstr "Konstantin ve Methodius" #: src/hd-data.c:882 msgid "Lapp National Holiday" msgstr "Lapp Ulusal Tatili" #: src/hd-data.c:883 msgid "Launceston Cup Day" msgstr "Launceston Kupası Günü" #: src/hd-data.c:884 msgid "Liberty Day" msgstr "Özgürlük Günü" #: src/hd-data.c:885 msgid "Loss of Muslim Nation" msgstr "Müslüman Ulusun Kayıp Günü" #: src/hd-data.c:886 msgid "Luxembourg City Kermis" msgstr "Luxembourg Åžehir Kermesi" #: src/hd-data.c:887 msgid "Lyndon B. Johnson Day" msgstr "Lyndon B. Johnson Günü" #: src/hd-data.c:888 msgid "L. Rivera's Birthday" msgstr "L. Rivera'nın DoÄŸum Günü" #: src/hd-data.c:889 msgid "Madaraka Day" msgstr "Madaraka Günü" #: src/hd-data.c:890 msgid "Mahatma Gandhi's Birthday" msgstr "Mahatma Gandhi'nin DoÄŸum Günü" #: src/hd-data.c:891 msgid "Malvinas Day" msgstr "Malvinas Günü" #: src/hd-data.c:892 msgid "Manila Day" msgstr "Manila Günü" #: src/hd-data.c:893 msgid "Maputo City Day" msgstr "Maputo Åžehri Günü" #: src/hd-data.c:894 msgid "Marien Ngouabi Day" msgstr "Marien Ngouabi Günü" #: src/hd-data.c:895 msgid "Maryland Day" msgstr "Maryland Günü" #: src/hd-data.c:896 msgid "Melbourne Cup Day" msgstr "Melbourne Kupası Günü" #: src/hd-data.c:897 msgid "Merchant Day" msgstr "İşyeri Günü" #: src/hd-data.c:898 msgid "St John's/Midsummers Eve" msgstr "St John's/Yazortası Günü" #: src/hd-data.c:899 msgid "Missionary Day" msgstr "Misyoner Günü" #: src/hd-data.c:900 msgid "Mi-Carême Day" msgstr "Mi-Carême Günü" #: src/hd-data.c:901 msgid "Morazan Day" msgstr "Morazan Günü" #: src/hd-data.c:902 msgid "Mosheshoe's Day" msgstr "Mosheshoe'nin Günü" #: src/hd-data.c:903 msgid "Motherhood and Beauty Day" msgstr "Annelik ve Güzellik Günü" #: src/hd-data.c:904 msgid "Naming Day" msgstr "İsimlendirme Günü" #: src/hd-data.c:905 msgid "National Bun Day" msgstr "Ulusal Kurabiye Günü" #: src/hd-data.c:906 msgid "National Heroes Day" msgstr "Ulusal Kahramanlar Günü" #: src/hd-data.c:907 msgid "National Redemption Day" msgstr "Ulusal KurtuluÅŸ Günü" #: src/hd-data.c:908 msgid "National Resistance Day" msgstr "Ulusal DireniÅŸ Günü" #: src/hd-data.c:909 msgid "National Revival Day" msgstr "Ulusal Uyanış Günü" #: src/hd-data.c:910 msgid "National Unity Day" msgstr "Ulusal Birlik Günü" #: src/hd-data.c:911 msgid "Ndadaye Day" msgstr "Ndadaye Günü" #: src/hd-data.c:912 msgid "Neutrality Day" msgstr "Tarafsızlık Günü" #: src/hd-data.c:913 msgid "Nevada Day" msgstr "Nevada Günü" #: src/hd-data.c:914 msgid "New Regime Anniversary" msgstr "Yeni Rejim Yıldönümü" #: src/hd-data.c:915 msgid "Nobel Day" msgstr "Nobel Günü" #: src/hd-data.c:916 msgid "Noi Day" msgstr "Noi Günü" #: src/hd-data.c:917 msgid "OAU Day" msgstr "OAU Günü" #: src/hd-data.c:918 msgid "October Holiday" msgstr "Ekim Tatili" #: src/hd-data.c:919 msgid "Oil Industry Day" msgstr "Petrol Endüstrisi Günü" #: src/hd-data.c:920 msgid "Our Lady of Altagracia Day" msgstr "Bizim Altagracia Kadını Günü" #: src/hd-data.c:921 msgid "Our Lady of Camarin Day" msgstr "Bizim Camarin Kadını Günü" #: src/hd-data.c:922 msgid "Our Lady of Las Mercedes Day" msgstr "Bizim Las Mercedes Kadını Günü" #: src/hd-data.c:923 msgid "Our Lady of Los Angeles Day" msgstr "Bizim Los Angeles Kadını Günü" #: src/hd-data.c:924 msgid "Our Lady of Seven Sorrows" msgstr "Bizim Yedi Acı Kadını Günü" #: src/hd-data.c:925 msgid "Our Lady of Victories Day" msgstr "Bizim Zaferler Kadını Günü" #: src/hd-data.c:926 msgid "Panama City Day" msgstr "Panama Åžehri Günü" #: src/hd-data.c:927 msgid "Panamerica Day" msgstr "Panamerica Günü" #: src/hd-data.c:928 msgid "Paris Peace Agreement Day" msgstr "Paris Barış AnlaÅŸması Günü" #: src/hd-data.c:929 msgid "Patriot's Day" msgstr "Vatanseverler Günü" #: src/hd-data.c:930 msgid "People's Uprising Day" msgstr "Halkın İsyan Günü" #: src/hd-data.c:931 msgid "People Power Day" msgstr "Halkın İktidarı Günü" #: src/hd-data.c:932 msgid "Philippine-American Friendship" msgstr "Filipin-Amerikan DostluÄŸu" #: src/hd-data.c:933 msgid "Pichincha Day" msgstr "Pichincha Günü" #: src/hd-data.c:934 msgid "Picnic Day" msgstr "Piknik Günü" #: src/hd-data.c:935 msgid "Pioneer Day" msgstr "Öncüler Günü" #: src/hd-data.c:936 msgid "Poya Day" msgstr "Poya Günü" #: src/hd-data.c:937 msgid "Prince Kalanianaole Day" msgstr "Prens Kalanianaole Günü" #: src/hd-data.c:938 msgid "Prince of Wales' Birthday" msgstr "Galler Prensinin DoÄŸum Günü" #: src/hd-data.c:939 msgid "Proclamation Day" msgstr "İlan Günü" #: src/hd-data.c:940 msgid "Qaid-i-Azam's Birthday" msgstr "Qaid-i-Azam'nin DoÄŸum Günü" #: src/hd-data.c:941 msgid "Ratu Sukuma Day" msgstr "Ratu Sukuma Günü" #: src/hd-data.c:942 msgid "Recreation Day" msgstr "Yeniden Yaratılış Günü" #: src/hd-data.c:943 msgid "Referendum Day" msgstr "Referandum Günü" #: src/hd-data.c:944 msgid "Regatta Day" msgstr "Regatta Günü" #: src/hd-data.c:945 msgid "Regency Exchange" msgstr "Kral NaibliÄŸi DeÄŸiÅŸimi" #: src/hd-data.c:946 msgid "Restoration Day" msgstr "Restorasyon Günü" #: src/hd-data.c:947 msgid "Return Day" msgstr "Geri Dönüş Günü" #: src/hd-data.c:948 msgid "Reunification Day" msgstr "Yeniden BirleÅŸme Günü" #: src/hd-data.c:949 msgid "Rizal Day" msgstr "Rizal Günü" #: src/hd-data.c:950 msgid "Rwagasore Day" msgstr "Rwagasore Günü" #: src/hd-data.c:951 msgid "Saba Day" msgstr "Saba Günü" #: src/hd-data.c:952 msgid "San Jacinto Day" msgstr "San Jacinto Günü" #: src/hd-data.c:953 msgid "San José Day" msgstr "San José Günü" #: src/hd-data.c:954 msgid "SAR Establishment Day" msgstr "SAR Kurulum Günü" #: src/hd-data.c:955 msgid "School Holiday" msgstr "Okul Tatili" #: src/hd-data.c:956 msgid "Sechseläuten" msgstr "Sechseläuten" #: src/hd-data.c:957 msgid "Separation Day" msgstr "Ayrılma Günü" #: src/hd-data.c:958 msgid "Seretse Khama Day" msgstr "Seretse Khama Günü" #: src/hd-data.c:959 msgid "Settlers Day" msgstr "Göçmenler Günü" #: src/hd-data.c:960 msgid "Seward's Day" msgstr "Seward'ın Günü" #: src/hd-data.c:961 msgid "Shaheed Day" msgstr "Shaheed Günü" #: src/hd-data.c:962 msgid "Sheep Festival" msgstr "Koyun Festivali" #: src/hd-data.c:963 msgid "Sheikh Zayed's Ascension Day" msgstr "Åžeyh Zayid'in YükseliÅŸ Günü" #: src/hd-data.c:964 msgid "Simon Bolivar's Day" msgstr "Simon Bolivar Günü" #: src/hd-data.c:965 msgid "Sinai-Liberation Day" msgstr "Sinai-Bağımsızlık Günü" #: src/hd-data.c:966 msgid "Slave-Liberation Day" msgstr "Köle-Bağımsızlık Günü" #: src/hd-data.c:967 msgid "Sniff the Breeze Day" msgstr "Esintiyi Koklama Günü" #: src/hd-data.c:968 msgid "Solidarity Day" msgstr "Dayanışma Günü" #: src/hd-data.c:969 msgid "Somers Day" msgstr "Somers Günü" #: src/hd-data.c:970 msgid "Statia-American Day" msgstr "Statia-Amerikan Günü" #: src/hd-data.c:971 msgid "Student's Day" msgstr "Öğrenciler Günü" #: src/hd-data.c:972 msgid "St Agata Day" msgstr "Aziz Agata Günü" #: src/hd-data.c:973 msgid "St Canute's Day" msgstr "Aziz Canute Günü" #: src/hd-data.c:974 msgid "St Cedilia's Day" msgstr "Aziz Cedilia Günü" #: src/hd-data.c:975 msgid "St Charles' Day" msgstr "Aziz Charles Günü" #: src/hd-data.c:976 msgid "St Demetrius' Day" msgstr "Aziz Demetrus Günü" #: src/hd-data.c:977 msgid "St Dévote Day" msgstr "Aziz Dévote Günü" #: src/hd-data.c:978 msgid "St Eliah's Day" msgstr "Aziz Eliah Günü" #: src/hd-data.c:979 msgid "St Jean Baptiste Day" msgstr "Aziz Jean Baptiste Günü" #: src/hd-data.c:980 msgid "St Lucia's Day" msgstr "Aziz Lucia Günü" #: src/hd-data.c:981 msgid "St Marguerite's Day" msgstr "Aziz Marqurite Günü" #: src/hd-data.c:982 msgid "St Maroon's Day" msgstr "Aziz Maroon Günü" #: src/hd-data.c:983 msgid "St Michael's Day" msgstr "Aziz Michael Günü" #: src/hd-data.c:984 msgid "St Olav's Day" msgstr "Aziz Olav Günü" #: src/hd-data.c:985 msgid "St Olav's Eve" msgstr "Aziz Olav Arifesi" #: src/hd-data.c:986 msgid "St Paul's Shipswreck" msgstr "Aziz Paul2un Gemi Enkazı" #: src/hd-data.c:987 msgid "St Rose of Lima" msgstr "Lima'nın Aziz Rose'u" #: src/hd-data.c:988 msgid "St Ursula's Day" msgstr "Aziz Ursula Günü" #: src/hd-data.c:989 msgid "St Vincent de Paul's Day" msgstr "Aziz Vincent de Paul Günü" #: src/hd-data.c:990 msgid "Suez Victory Day" msgstr "Suez Zafer Günü" #: src/hd-data.c:991 msgid "Sultan Qaboos' Birthday" msgstr "Sultan Qaboos'un DoÄŸum Günü" #: src/hd-data.c:992 msgid "Svetitskhovloba" msgstr "Svetitskhovloba" #: src/hd-data.c:993 msgid "Sweden Day" msgstr "İsveç Günü" #: src/hd-data.c:994 msgid "S. Doe's Birthday" msgstr "S. Doe'nin DoÄŸum Günü" #: src/hd-data.c:995 msgid "Tennant-Creek Show Day" msgstr "Tennant-Creek Gösteri Günü" #: src/hd-data.c:996 msgid "Territory Day" msgstr "Karasal Gün" #: src/hd-data.c:997 msgid "The Crown Princesse's Birthday" msgstr "Crown Prensesinin DoÄŸumgünü" #: src/hd-data.c:998 msgid "The Crown Princesse's Name-Day" msgstr "Crown Prensesinin Vaftizi" #: src/hd-data.c:999 msgid "The Crown Prince's Birthday" msgstr "Crown Prensinin DoÄŸumgünü" #: src/hd-data.c:1000 msgid "The King's Name-Day" msgstr "Kralın Vaftizi" #: src/hd-data.c:1001 msgid "The Queen's Name-Day" msgstr "Kraliçenin Vaftizi" #: src/hd-data.c:1002 msgid "Topou I Day" msgstr "Topou I Günü" #: src/hd-data.c:1003 msgid "Town Meeting Day" msgstr "Kasaba BuluÅŸma Günü" #: src/hd-data.c:1004 msgid "Traditional Day" msgstr "Geleneksel Gün" #: src/hd-data.c:1005 msgid "Transfer Day" msgstr "Taşıma Günü" #: src/hd-data.c:1006 msgid "Truman Day" msgstr "Truman Günü" #: src/hd-data.c:1007 msgid "Union Day" msgstr "BirleÅŸme Günü" #: src/hd-data.c:1008 msgid "Union with Sweden dissolved" msgstr "İsveç'le Birlik feshedildi" #: src/hd-data.c:1009 msgid "United Nations Day" msgstr "BirleÅŸmiÅŸ Milletler Günü" #: src/hd-data.c:1010 msgid "Unity Factory Day" msgstr "BirleÅŸik Fabrika Günü" #: src/hd-data.c:1011 msgid "Victor-Schoelcher Day" msgstr "Victor-Schoelcher Günü" #: src/hd-data.c:1012 msgid "Vidovdan" msgstr "Vidovdan" #: src/hd-data.c:1013 msgid "West Virginia Day" msgstr "Batu Virginia Günü" #: src/hd-data.c:1014 msgid "Whitsun Eve" msgstr "Whitsun Arifesi" #: src/hd-data.c:1015 msgid "W. Tubman's Birthday" msgstr "W. Tubman'ın DoÄŸumgünü" #: src/hd-data.c:1016 msgid "Yap Day" msgstr "Yap Günü" #: src/hd-data.c:1017 msgid "Day of Czech Statehood" msgstr "" #: src/hd-data.c:1082 msgid "Zi/Rat" msgstr "Zi/Fare" #: src/hd-data.c:1082 msgid "Chou/Ox" msgstr "Chou/Öküz" #: src/hd-data.c:1083 msgid "Yin/Tiger" msgstr "Yin/Kaplan" #: src/hd-data.c:1083 msgid "Mao/Rabbit" msgstr "Mao/TavÅŸan" #: src/hd-data.c:1084 msgid "Chen/Dragon" msgstr "Chen/Ejder" #: src/hd-data.c:1084 msgid "Si/Snake" msgstr "Si/Yılan" #: src/hd-data.c:1085 msgid "Wu/Horse" msgstr "Wu/At" #: src/hd-data.c:1085 msgid "Wei/Sheep" msgstr "Wei/Koyun" #: src/hd-data.c:1086 msgid "Shen/Monkey" msgstr "Shen/Maymun" #: src/hd-data.c:1086 msgid "You/Rooster" msgstr "You/Horoz" #: src/hd-data.c:1087 msgid "Xu/Dog" msgstr "Xu/Köpek" #: src/hd-data.c:1087 msgid "Hai/Pig" msgstr "Hai/Domuz" #: src/hd-data.c:1284 msgid "Ast" msgstr "Ast" #: src/hd-data.c:1397 src/hd-data.c:1480 msgid "Bah" msgstr "Bah" #: src/hd-data.c:1547 msgid "Cel" msgstr "Cel" #: src/hd-data.c:1689 src/hd-data.c:2222 msgid "Chi" msgstr "Chi" #: src/hd-data.c:1803 src/hd-data.c:2322 src/hd-data.c:3839 #, 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:2224 src/hd-data.c:3727 msgid "Jap" msgstr "Jap" #: src/hd-data.c:2420 msgid "Chr" msgstr "Chr" #: src/hd-data.c:2654 src/hd-data.c:4171 msgid "FRR" msgstr "FRR" #: src/hd-data.c:2775 src/hd-data.c:2957 msgid "Heb" msgstr "Heb" #: src/hd-data.c:3187 src/hd-data.c:3616 msgid "Isl" msgstr "Isl" #: src/hd-data.c:4241 src/hd-data.c:4336 msgid "AMO" msgstr "AMO" #: src/hd-data.c:4262 src/hd-data.c:4334 msgid "EGO" msgstr "EGO" #: src/hd-data.c:4444 msgid "OxN" msgstr "OxN" #: src/hd-data.c:4446 msgid "OxO" msgstr "OxO" #: src/hd-data.c:4647 src/hd-data.c:4776 msgid "Per" msgstr "Per" #: src/hd-data.c:4844 msgid "Zod" msgstr "Zod" #: src/hd-use.c:928 msgid " day" msgstr "gün" #: src/hd-use.c:1973 src/hd-use.c:1978 src/hd-use.c:1982 src/hd-use.c:1989 #: src/hd-use.c:1993 src/hd-use.c:2089 src/hd-use.c:2273 msgid "Eternal holiday list" msgstr "Sonsuz tatil listesi" #: src/hd-use.c:1977 #, 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:1981 #, 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:1988 #, 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:1992 #, 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:2242 #, c-format msgid " = %+4d day" msgstr " = %+4d gün" #: src/hd-use.c:2244 #, c-format msgid " = %+4d days" msgstr " = %+4d gün" #: src/hd-use.c:2271 #, 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:64 #, 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:74 msgid "# Day number (must be defined)" msgstr "# Gün sayısı (tanımlanmalı)" #: src/help.c:75 msgid "# Year number (must be defined)" msgstr "# Yıl sayısı (tanımlanmalı)" #: src/help.c:76 msgid "# Weekday name (may be defined)" msgstr "# Haftaiçi Gün Sayısı (tanımlanabilir)" #: src/help.c:77 msgid "Month group (exactly one member must be defined):" msgstr "Ay grubu (bir üye kesinlikle tanımlanmalı):" #: src/help.c:78 msgid "# Month number" msgstr "# Ay sayısı" #: src/help.c:79 msgid "# Month name" msgstr "# Ay ismi" #: src/help.c:80 msgid "Highlighting group (all members must be defined):" msgstr "Grubu seçme (tüm üyeler tanımlanmalı):" #: src/help.c:81 msgid "Start of highlighting sequence/marking character" msgstr "Düzenleme/iÅŸaretleme karakteri seçimi baÅŸlangıcı" #: src/help.c:83 msgid "End of highlighting sequence/marking character" msgstr "Düzenleme/iÅŸaretleme karakteri seçimi sonu" #: src/help.c:85 msgid "Character replacement:" msgstr "Karakter deÄŸiÅŸimi:" #: src/help.c:86 #, c-format msgid "Space/blank ('%c') character" msgstr "BoÅŸluk ('%c') karakteri" #: src/help.c:87 #, c-format msgid "Underscore ('%c') character" msgstr "Altçizgi ('%c') karakteri" #: src/help.c:88 #, c-format msgid "Percent ('%c') character" msgstr "Yüzde ('%c') karakteri" #: src/help.c:89 #, c-format msgid "Backslash ('%c') character" msgstr "Ters slaÅŸ ('%c') karakteri" #: src/help.c:90 msgid "All format elements marked by # may optionally" msgstr "# ile iÅŸaretlenen tüm biçim elemanları" #: src/help.c:91 msgid "contain a format instruction, which template is like:" msgstr "aÅŸağıdaki gibi bir ÅŸablonda bilgilendiren biçim içerebilir." #: src/help.c:92 msgid "[ALIGNMENT [SIGN] [ZERO] WIDTH [STYLE] [SUFFIX] FORMAT]" msgstr "[HİZALAMA [İŞARET] [SIFIR] GENİŞLİK [STİL] [SONEK] BİÇİM]" #: src/help.c:93 msgid "ALIGNMENT group (exactly one member must be defined):" msgstr "HİZALAMA grubu (bir üye kesinlikle tanımlanmalı" #: src/help.c:94 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:96 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:98 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:100 msgid "SIGN (may be defined):" msgstr "İŞARET (tanımlanabilir):" #: src/help.c:101 msgid "Numerical value is provided with leading sign" msgstr "Numerik deÄŸer öndeki iÅŸaretle saÄŸlandı" #: src/help.c:102 msgid "ZERO (may be defined):" msgstr "SIFIR (tanımlanabilir):" #: src/help.c:103 msgid "Numerical value is filled with leading zero(es)" msgstr "Numerik deÄŸer öndeki sıfır(larla) dolduruldu" #: src/help.c:104 msgid "WIDTH (must be defined):" msgstr "GENİŞLİK (tanımlanmalı):" #: src/help.c:105 #, c-format msgid "Field has the width N (%d...%d)" msgstr "Alan N geniÅŸliÄŸinde (%d...%d)" #: src/help.c:106 msgid "STYLE group (exactly one member may be defined):" msgstr "STİL grubu (bir üye tanımlanmalı):" #: src/help.c:107 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:108 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:109 msgid "Field contents is converted to capitalized words" msgstr "Alan içeriÄŸi capitalized harflere dönüştürüldü" #: src/help.c:110 msgid "SUFFIX (may be defined):" msgstr "SONEK (tanımlanabilir):" #: src/help.c:111 msgid "Numerical value is provided with an ordinal number suffix" msgstr "Numerik deÄŸer sıralı numara soneki ile saÄŸlandı" #: src/help.c:113 msgid "FORMAT group (exactly one member must be defined):" msgstr "BİÇİM grubu (bir üye tanımlanmalı):" #: src/help.c:114 msgid "Field contents is not cut after position WIDTH" msgstr "Alan içeriÄŸi GENİŞLİK pozisyonundan sonra kesilmedi" #: src/help.c:115 msgid "Field contents is cut after position WIDTH" msgstr "Alan içeriÄŸi GENİŞLİK pozisyonundan sonra kesildi" #: src/help.c:129 msgid "legal holidays" msgstr "kanuni tatiller" #: src/help.c:130 msgid "holidays" msgstr "tatiller" #: src/help.c:131 msgid "Mondays" msgstr "Pazartesileri" #: src/help.c:132 msgid "Tuesdays" msgstr "Salılar" #: src/help.c:133 msgid "Wednesdays" msgstr "ÇarÅŸambalar" #: src/help.c:134 msgid "Thursdays" msgstr "PerÅŸembeler" #: src/help.c:135 msgid "Fridays" msgstr "Cumalar" #: src/help.c:136 msgid "Saturdays" msgstr "Cumartesiler" #: src/help.c:137 msgid "Sundays" msgstr "Pazarlar" #: src/help.c:138 msgid "Mondays...Thursdays" msgstr "Pazartesiler...PerÅŸembeler" #: src/help.c:139 msgid "Mondays...Fridays" msgstr "Pazartesiler...Cumalar" #: src/help.c:169 #, 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:242 msgid "OPTION" msgstr "SEÇENEK" #: src/help.c:255 msgid " Display help text and quit program" msgstr " Yardım metnini göster ve programdan çık" #: src/help.c:272 msgid " Display extended help text and quit program" msgstr " GeniÅŸletilmiÅŸ yardım metnini göster ve programdan çık" #: src/help.c:290 msgid " Display software license and quit program" msgstr " Yazılım lisansını göster ve programdan çık" #: src/help.c:301 msgid " Display version information and quit program" msgstr " Sürüm bilgisini göster ve programdan çık" #: src/help.c:312 #, 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:325 #, c-format msgid " Create response file for the `%cFILE' option" msgstr " `%cDOSYA' seçeneÄŸi için cevap dosyası hazırla" #: src/help.c:329 #, 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:343 #, 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:345 #, c-format msgid " %-3s = File name of the shell script" msgstr " %-3s = Kabuk betiÄŸi dosyasının ismi" #: src/help.c:359 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:363 #, 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:368 #, 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:380 msgid " Export local date variables from file to file" msgstr " Yerel tarih deÄŸiÅŸkenlerini dosyadan dosyaya taşı" #: src/help.c:392 #, 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:397 #, c-format msgid " %-3s = \"TVAR%sTEXT\" definitions separated by `%s' characters" msgstr " %-3s = \"TVAR%sTEXT\" tanımlar `%s' karakterleriyle ayrıldı" #: src/help.c:402 #, 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:408 #, 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:413 #, 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:425 msgid " Export local text variables from file to file" msgstr " Yerel tarih deÄŸiÅŸkenlerinin dosyadan dosyaya gönder" #: src/help.c:437 src/help.c:467 #, 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:442 #, 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:447 msgid " is a LOWER-CASE-LETTER, it means a non-exclusion!" msgstr " KÜÇÜK-HARF ise, çıkarılmayacak demektir!" #: src/help.c:451 #, c-format msgid " %c = Exclusion of all %s" msgstr " %c = Tüm %s lerin dışta tutulması" #: src/help.c:472 #, 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:476 #, c-format msgid " expressions separated by `%s' characters" msgstr " ifadeler `%s' karakteriyle ayrıldı" #: src/help.c:489 #, 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:494 #, 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:507 #, 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:519 #, 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:530 msgid " Display some debug information" msgstr " Bir kaç hata düzeltme bilgisi göster" #: src/help.c:538 #, 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:547 msgid "" " = handled Like `internal' and file names which are handled" msgstr " = handled `internal' gibi ve handled dosya isimleri" #: src/help.c:555 msgid "" " = unhandled Like `internal' and file names which are unhandled" msgstr "" " = handled `internal' gibi ve handled edilmeyen dosya isimleri" #: src/help.c:563 msgid " = all Like `handled' and `unhandled' together" msgstr " = all `handled' ve `unhandled' beraber gibi" #: src/help.c:571 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:581 msgid " Use special format for calendar sheet" msgstr " Takvim sayfası için özel biçim kullan" #: src/help.c:584 msgid " [MOD] = - Use standard format for calendar sheet" msgstr " [MOD] = - Takvim sayfası için standart biçim kullan" #: src/help.c:595 msgid " Use leap year rule of Eastern Orthodox churches" msgstr " DoÄŸu Ortodoks Kiliselerinin artık yıl kuralını kullan" #: src/help.c:605 msgid " Provide calendar sheet with week numbers" msgstr " Hafta numaralı takvim sayfası saÄŸla" #: src/help.c:616 #, c-format msgid " Determine type of week numbers (actual: %s)" msgstr " Hafta numaralarının tipini belirle (asıl: %s)" #: src/help.c:617 msgid "Standard" msgstr "Standart" #: src/help.c:623 #, c-format msgid " %-3s = yes ISO-8601:1988 week numbers" msgstr " %-3s = yes ISO-8601:1988 hafta numaraları" #: src/help.c:630 msgid " = no Standard week numbers" msgstr " = no Standart hafta numaraları" #: src/help.c:641 msgid " Suppress output of calendar sheet explicitly" msgstr " Takvim sayfalarının çıktılarını açıkca gizle" #: src/help.c:654 #, c-format msgid " Direct output through external `%s' pager" msgstr " Dış `%s' sayfacısı aracılığıyla doÄŸrudan çıktı" #: src/help.c:660 src/help.c:662 msgid " Direct output through simple internal pager" msgstr " Basit iç sayfacı aracılığıyla doÄŸrudan çıktı" #: src/help.c:679 msgid " Disable highlighting of text, holiday resp., actual day" msgstr " Metin, tatil ve mevcut günün seçilmesini engelle" #: src/help.c:694 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:706 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:710 #, 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:715 #, 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:720 #, 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:731 msgid " Modify format of year calendar" msgstr " Takvim yılı biçimini deÄŸiÅŸtir" #: src/help.c:735 #, 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:747 msgid " Use consecutive day of year in calendar sheet" msgstr " Takvim sayfasında ardışık gün kullan" #: src/help.c:751 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:763 msgid " Use consecutive day of year in eternal holiday list" msgstr " İç tatillistesinde ardışık gün kullan" #: src/help.c:767 src/help.c:783 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:779 msgid " Use consecutive day of year in fixed date list" msgstr " Sabit tarih listesinde ardışık gün kullan" #: src/help.c:794 #, c-format msgid " Set starting day of week (actual: %s)" msgstr " Haftanın baÅŸlangış gününü ayarla (mevcut: %s)" #: src/help.c:827 #, 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:856 msgid "UNKNOWN" msgstr "BİLİNMEYEN" #: src/help.c:859 #, 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:877 #, 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:880 msgid " n = Legal days and memorial days" msgstr " n = Kanuni günler ve anı günleri" #: src/help.c:882 msgid " N = Legal days only" msgstr " N = Sadece kanuni günler" #: src/help.c:884 src/help.c:1630 #, c-format msgid " [MOD] = %s Descending sort order" msgstr " [MOD] = %s Azalan sırada" #: src/help.c:896 msgid " Suppress leading blank line of eternal holiday list" msgstr " Sonsuz tatil listesinin ilk boÅŸ satırını gizle" #: src/help.c:906 msgid " Exclude title of eternal holiday list" msgstr " Sonsoz tatil listesinin baÅŸlığını hariç tut" #: src/help.c:918 msgid " Provide eternal holiday list with astronomical data" msgstr " Sonsuz tatil listesini astronomik verilerle saÄŸla" #: src/help.c:930 msgid " Provide eternal holiday list with Bahá'i calendar holidays" msgstr " Sonsuz tatil listesini Bahá'i tatilleri ile saÄŸla" #: src/help.c:942 msgid " Provide eternal holiday list with Bahá'i calendar months" msgstr " Sonsuz tatil listesini Bahá'i ayları ile saÄŸla" #: src/help.c:954 msgid " Provide eternal holiday list with Celtic calendar holidays" msgstr " Sonsuz tatil listesini Kelt tatilleri ile saÄŸla" #: src/help.c:966 msgid "" " Provide eternal holiday list with Chinese flexible calendar " "holidays" msgstr " Sonsuz tatil listesini Çin esnek takvimi tatilleri ile saÄŸla" #: src/help.c:978 msgid "" " Provide eternal holiday list with Chinese flexible calendar months" msgstr " Sonsuz tatil listesini Çin esnek takvimi ayları ile saÄŸla" #: src/help.c:990 msgid " Provide eternal holiday list with Chinese calendar holidays" msgstr " Sonsuz tatil listesini Çin takvimi tatilleri ile saÄŸla" #: src/help.c:1002 msgid " Provide eternal holiday list with Chinese calendar months" msgstr " Sonsuz tatil listesini Çin takvimi ayları ile saÄŸla" #: src/help.c:1014 msgid "" " Provide eternal holiday list with Christian Western calendar " "holidays" msgstr " Sonsuz tatil listesini Batı takvimi tatilleri ile saÄŸla" #: src/help.c:1026 msgid " Provide eternal holiday list with Coptic calendar months" msgstr " Sonsuz tatil listesini Coptic ayları ile saÄŸla" #: src/help.c:1038 msgid " Provide eternal holiday list with Ethiopic calendar months" msgstr " Sonsuz tatil listesini Etiyopya ayları ile saÄŸla" #: src/help.c:1050 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:1062 msgid " Provide eternal holiday list with Hebrew calendar holidays" msgstr " Sonsuz tatil listesini Yahudi tatilleri ile saÄŸla" #: src/help.c:1074 msgid " Provide eternal holiday list with Hebrew calendar months" msgstr " Sonsuz tatil listesini Yahudi takvimi ayları ile saÄŸla" #: src/help.c:1086 msgid "" " Provide eternal holiday list with Indian civil-calendar months" msgstr " Sonsuz tatil listesini Hint sivil ayları ile saÄŸla" #: src/help.c:1098 msgid "" " Provide eternal holiday list with Islamic civil-calendar holidays" msgstr " Sonsuz tatil listesini İslami sivil tatilleri ile saÄŸla" #: src/help.c:1110 msgid "" " Provide eternal holiday list with Islamic civil-calendar months" msgstr " Sonsuz tatil listesini İslami sivil takvim ayları ile saÄŸla" #: src/help.c:1122 msgid "" " Provide eternal holiday list with Japanese flexible calendar " "holidays" msgstr "" " Sonsuz tatil listesini Japon esnek takvimi tatilleri ile saÄŸla" #: src/help.c:1134 msgid "" " Provide eternal holiday list with Japanese flexible calendar months" msgstr " Sonsuz tatil listesini Japon esnek takvimi ayları ile saÄŸla" #: src/help.c:1146 msgid " Provide eternal holiday list with Japanese calendar holidays" msgstr " Sonsuz tatil listesini Japon tatilleri ile saÄŸla" #: src/help.c:1158 msgid " Provide eternal holiday list with Japanese calendar months" msgstr " Sonsuz tatil listesini Japon ayları ile saÄŸla" #: src/help.c:1171 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:1183 msgid " Provide eternal holiday list with Old-Armenic calendar months" msgstr " Sonsuz tatil listesini Eski Ermeni takvimi ayları ile saÄŸla" #: src/help.c:1195 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:1207 msgid "" " Provide eternal holiday list with Orthodox new-calendar holidays" msgstr "" " Sonsuz tatil listesini Ortodoks yeni takvimi tatilleri ile saÄŸla" #: src/help.c:1219 msgid "" " Provide eternal holiday list with Orthodox old-calendar holidays" msgstr "" " Sonsuz tatil listesini Ortodoks eski takvimi tatilleri ile saÄŸla" #: src/help.c:1231 msgid "" " Provide eternal holiday list with Persian Jalaali-calendar holidays" msgstr "" " Sonsuz tatil listesini İran Celali takvimi tatilleri ile saÄŸla" #: src/help.c:1243 msgid "" " Provide eternal holiday list with Persian Jalaali-calendar months" msgstr "" " Sonsuz tatil listesini Ortodoks yeni takvimi Ayları ile saÄŸla" #: src/help.c:1255 msgid " Provide eternal holiday list with zodiacal marker data" msgstr " Sonsuz tatil listesini burç iÅŸaretleri ile saÄŸla" #: src/help.c:1267 msgid " Provide eternal holiday list with country specific holidays" msgstr " Sonsuz tatil listesini ülkelere özel tatiller ile saÄŸla" #: src/help.c:1271 #, 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:1276 #, 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:1281 msgid " marked by # have an incomplete recording of holidays" msgstr " tatil listesi tamamlanmamıştır." #: src/help.c:1285 #, c-format msgid " %-*s = Holidays in %s" msgstr " %-*s = %s deki tatiller" #: src/help.c:1306 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:1310 #, 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:1321 msgid " Set base data of Earth's atmosphere" msgstr " Dünya atmosferini temel veri olarak ayarla" #: src/help.c:1325 #, 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:1328 #, c-format msgid " Air pressure in Millibar (actual: %.3f)" msgstr " Millibar cinsinden hava basıncı (mevcut: %.3f)" #: src/help.c:1333 #, c-format msgid " Air temperature in degrees Celsius (actual: %+.3f)" msgstr " Celsius derece cinsinden hava sıcaklığı (mevcut: %+.3f)" #: src/help.c:1343 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:1355 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:1365 #, c-format msgid " Execute `%c%c[%s]' shell commands" msgstr " `%c%c[%s]' kabuk komutları çalıştır" #: src/help.c:1368 #, fuzzy, c-format msgid " and \"TVAR[%s|%c%s]COMMAND\" assignments" msgstr " ve \"TVAR[%s|%c%s]COMMAND\" atamaları" #: src/help.c:1380 msgid " Change base time of astronomical functions" msgstr " Temel astronomik iÅŸlevlerin temel zamanlarını deÄŸiÅŸtir" #: src/help.c:1383 msgid " respectively, change cycle-starting time" msgstr " Döngü baÅŸlangıç tarihini kiÅŸisel olarak deÄŸiÅŸtir" #: src/help.c:1393 #, 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:1401 #, 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:1417 msgid " Change cycle-ending time" msgstr " Dögü bitiÅŸ tarihini deÄŸiÅŸtir" #: src/help.c:1421 #, 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:1435 msgid " Change cycle-timestep" msgstr " Döngü ilerleme zamanı deÄŸiÅŸtir" #: src/help.c:1439 #, 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:1452 msgid " Change base year of calendar" msgstr " Takvimin temel yılını deÄŸiÅŸtir" #: src/help.c:1456 #, 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:1468 msgid " Set period of Gregorian Reformation" msgstr " Gregorian Yeniden-oluÅŸum süresini ayarla" #: src/help.c:1470 #, c-format msgid " Actual respected period: %02d-%02d %s %0*d" msgstr " Mevcut uygun süre: %02d-%02d %s %0*d" #: src/help.c:1476 #, 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:1484 #, 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:1498 #, 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:1501 #, c-format msgid " Actual: (%s) `%s' (%s)" msgstr " Mevcut: (%s) `%s' (%s)" #: src/help.c:1503 msgid "self-defined" msgstr "kendince tanımlanmış" #: src/help.c:1508 #, c-format msgid " %-6s = Format is: `%s' (%s)" msgstr " %-6s = Biçim: `%s' (%s)" #: src/help.c:1516 #, 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:1559 msgid " Define translatable country specific special character pairs" msgstr " Ülkeye özel, çevrilebilir ikili karakterler tanımla" #: src/help.c:1563 #, 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:1568 #, c-format msgid "" " E.g. a `%s%s%s%s%s%s%s%s' %-3s causes the correct conversion of" msgstr "" #: src/help.c:1573 msgid "" " the preceding special characters in an individual date format," msgstr "" #: src/help.c:1577 msgid "" " which has a STYLE format instruction component, and that, how" msgstr "" #: src/help.c:1581 msgid " they are used by the character set used in Germany" msgstr "" #: src/help.c:1590 #, c-format msgid "+++ FIXED DATES +++" msgstr "+++ SABİT TARİHLER +++" #: src/help.c:1611 #, 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:1616 #, 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:1620 src/help.c:2160 msgid " Implies period: Today" msgstr " Kapsadığı süre: Bugün" #: src/help.c:1624 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:1628 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:1640 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:1653 #, fuzzy, c-format msgid " %-3s = Heading/Title text used for fixed date list" msgstr " # x = Sabit tarih listesinin baÅŸlığını çıkart" #: src/help.c:1656 #, fuzzy, c-format msgid " Actual: `%s'" msgstr " = %s Geriletir" #: src/help.c:1669 msgid " # g[MOD] = Group fixed dates by day using text MOD" msgstr "" " # g[MOD] = MOD metnini kullanarak sabit tarihleri grupla" #: src/help.c:1681 msgid " 1. Representation of text" msgstr " 1. Metnin açıklanması" #: src/help.c:1693 msgid " = Set width of the biorhythm text graphics" msgstr "" " = Bioritm metin grafiklerinin geniÅŸliÄŸini ayarla" #: src/help.c:1697 #, c-format msgid " %-3s = %d...%d Length of a single axis" msgstr " %-3s = %d...%d Tek bir eksenin uzunluÄŸu" #: src/help.c:1710 msgid " = Set height of the Moon phase text graphics" msgstr "" " = Ay evresi metni grafiÄŸinin yüksekliÄŸini ayarla" #: src/help.c:1714 #, c-format msgid " %-3s = %d...%d Total number of lines" msgstr " %-3s = %d...%d Toplam satır sayısı" #: src/help.c:1726 msgid " # a = Display origin of fixed date" msgstr " # a = Sabit tarihin kaynağını göster" #: src/help.c:1738 msgid " # A = Display using alternative list format" msgstr " # A = BaÅŸka bir liste biçimini kullanarak göster" #: src/help.c:1750 msgid " # e = Include legal days and memorial days" msgstr " # e = Kanuni ve anısal günleri kapsa" #: src/help.c:1752 msgid " # E = Include legal days only" msgstr " # E = Sadece kanuni günleri kapsa" #: src/help.c:1762 msgid " # k = Display week number" msgstr " # k = Hafta numarasını göster" #: src/help.c:1774 msgid " # o = Omit repeating date part of fixed dates" msgstr " # o = Sabit tarihlerin tekrarlayan günlerini alma" #: src/help.c:1786 msgid "" " # Q = Suppress leading blank line of fixed dates list" msgstr "" " # Q = Sabit tarihler listesinin ilk boÅŸ satırını gizle" #: src/help.c:1798 msgid " # U = Suppress date part of fixed dates" msgstr " # U = Sabit tarihlerin gün bölümünü gizle" #: src/help.c:1810 msgid " # J = Suppress text part of fixed dates" msgstr " # J = Sabit tarihlerin metin bölümlerini gizle" #: src/help.c:1822 msgid " # x = Exclude title of fixed date list" msgstr " # x = Sabit tarih listesinin baÅŸlığını çıkart" #: src/help.c:1834 msgid " # z = Display consecutive number of fixed date" msgstr " # z = Sabit tarihlerin ardışık numarasını göster" #: src/help.c:1846 msgid "" " # Z = Display dates, for which fixed dates doesn't exist" msgstr " # Z = Sabit tarih bulunmayan günleri göster" #: src/help.c:1854 msgid " 2. Respected period" msgstr " 2. Uygun süre" #: src/help.c:1866 msgid " = Manage `29-FEBRUARY' in non-leap years" msgstr " = Artık olmayan yılda `29-ÅžUBAT'ı ayarla" #: src/help.c:1874 #, c-format msgid " %-3s = february Respect at `28-FEBRUARY'" msgstr " %-3s = february `28-ÅžUBAT'a uy" #: src/help.c:1883 #, c-format msgid " %-3s = march Respect at `01-MARCH'" msgstr " %-3s = march `01-MART'a uy" #: src/help.c:1896 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:1908 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:1924 msgid " # Nd = Single absolute day N" msgstr " # Nd = Belirli tek gün N" #: src/help.c:1926 #, c-format msgid " # %cdN = Single absolute day N" msgstr " # %cdN = Belirli tek gün N" #: src/help.c:1931 msgid " # NMOD = Single day N relative to today" msgstr " # NMOD = Bugüne baÄŸlı tek gün N" #: src/help.c:1933 #, c-format msgid " MOD = %s Forwards" msgstr " MOD = %s İletir" #: src/help.c:1935 #, c-format msgid " = %s Backwards" msgstr " = %s Geriletir" #: src/help.c:1938 msgid " # Nw = Complete week N" msgstr " # Nw = Tam hafta N" #: src/help.c:1942 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:1946 msgid " N = 1...52 1st...52nd week (always)" msgstr "" " N = 1...52 Birinci...52inci hafta (herzaman)" #: src/help.c:1950 msgid " N = 53 53rd week (sometimes)" msgstr " N = 53 53üncü hafta (bazen)" #: src/help.c:1952 msgid " N = 99 Last week" msgstr " N = 99 Son hafta" #: src/help.c:1955 #, 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:1961 #, 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:1966 #, 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:1971 #, c-format msgid " N = 5 5th weekday %s (sometimes)" msgstr " N = 5 5inci günü %s (bazen)" #: src/help.c:1975 #, c-format msgid " N = 9 Last weekday %s" msgstr " N = 9 Son gün %s" #: src/help.c:1979 #, c-format msgid " # %cdN%s = Single N'th weekday %s" msgstr " # %cdN%s = Tek N'inci gün %s" #: src/help.c:1984 #, c-format msgid " N = 1...51 1st...51st weekday %s (always)" msgstr "" " N = 1...51 Birinci...51inci gün %s (herzaman)" #: src/help.c:1989 #, 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:1993 #, c-format msgid " N = 99 Last weekday %s" msgstr " N = 99 Haftanın son günü %s" #: src/help.c:1998 #, 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:2003 #, c-format msgid "" " N = 0 %s which isn't located in 1st week" msgstr " N = 0 birinci haftada olmayan %s " #: src/help.c:2008 #, c-format msgid " N = 1...51 %s of 1st...51st week (always)" msgstr "" " N = 1...51 %s Birinci...51inci hafta (herzaman)" #: src/help.c:2013 #, 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:2017 #, c-format msgid " N = 99 %s of last week" msgstr " N = 99 son haftanın %s " #: src/help.c:2023 #, 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:2029 #, 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:2035 #, 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:2041 #, 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:2047 #, 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:2053 #, 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:2061 msgid " # t|T = List tomorrow" msgstr " # t|T = Yarını listele" #: src/help.c:2078 msgid " # w|W[MOD] = List complete week" msgstr " # w|W[MOD] = Tüm haftayı listele" #: src/help.c:2082 #, 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:2087 #, 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:2107 msgid " # m|M[MOD] = List complete month" msgstr " # m|M[MOD] = Tüm ayı listele" #: src/help.c:2111 #, 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:2116 #, 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:2136 msgid " # y|Y[MOD] = List complete year" msgstr " # y|Y[MOD] = Tüm yılı listele" #: src/help.c:2140 #, 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:2145 #, 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:2158 msgid " Use alternative file(s) instead of standard resource file" msgstr " Standart kaynak dosya yerine baÅŸka dosya(lar) kullan" #: src/help.c:2164 msgid " f = Display only those dates, for which fixed dates exists" msgstr " f = Sadece sabit tarihler olan günleri göster" #: src/help.c:2168 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:2172 #, 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:2183 msgid " Define additional resource file line" msgstr " Ek kaynak dosya satırı tanımla" #: src/help.c:2185 #, c-format msgid " %-3s = Any possible resource file line" msgstr " %-3s = Herhangi bir kaynak dosya satırı" #: src/help.c:2195 #, c-format msgid "%cDATE" msgstr "%cTARİH" #: src/help.c:2197 msgid "Use given `DATE' instead of today's date" msgstr "Bugünün tarihi yerine verilen `DATE' tarihini kullan" #: src/help.c:2201 #, 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:2208 #, 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:2217 #, c-format msgid "%cFILE" msgstr "%cDOSYA" #: src/help.c:2219 msgid "Preload options and commands from `FILE'" msgstr "`FILE'dan seçenek ve komutları önyükle" #: src/help.c:2223 msgid "COMMAND" msgstr "KOMUT" #: src/help.c:2225 #, c-format msgid "%s = Month in range: %d...%d" msgstr "%s = Ay aralığı: %d...%d" #: src/help.c:2230 #, 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:2235 #, 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:2241 #, 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:2247 #, c-format msgid "%s%*s = Year in range: %d...%d" msgstr "%s%*s = yıl aralığı: %d...%d" #: src/help.c:2251 #, 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:2256 #, 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:2282 #, 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:2285 #, 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:2289 #, 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:2293 #, 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:2301 #, 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:2308 src/help.c:2313 #, 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:2338 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:2342 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:2346 msgid "or explicit), which result from using or handling my software." msgstr "herhangi bir zarar veya kayıptan sorumlu olmayacağım" #: src/help.c:2350 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:2352 msgid "agreement, which binds you LEGALLY !!" msgstr "kanunen baÄŸlayıcı olan anlaÅŸma" #: src/help.c:2357 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:2361 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:2365 #, fuzzy msgid "the `Free Software Foundation'; either version 3, or (at your option)" msgstr "'Özgür Yazılım DerneÄŸi'; ya sürüm 2 ya da (size kalmış)" #: src/help.c:2367 msgid "any later version." msgstr "sonraki herhangi bir sürüm" #: src/help.c:2372 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:2374 msgid "along with this program; if not, write to the:" msgstr "bu program yanında: deÄŸilse yazın: " #: src/help.c:2423 #, 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:2451 #, c-format msgid "Use `%s %s|[%s?]" msgstr "`%s %s|[%s?] kullanınız" #: src/help.c:2460 msgid "for more information." msgstr "daha fazla bilgi için" #: src/help.c:2564 src/tcal.c:197 src/txt2gcal.c:136 src/gcal2txt.c:136 #, c-format msgid "Email bug reports to <%s>" msgstr "Hata raporlarını <%s>'ye postalayınız" #: src/help.c:2566 #, c-format msgid "GNU gcal home page: <%s>" msgstr "" #: src/help.c:2568 #, c-format msgid "General help using GNU software: <%s>" msgstr "" #: src/help.c:2594 src/tcal.c:219 src/txt2gcal.c:158 src/gcal2txt.c:158 #, 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:2598 src/tcal.c:222 src/txt2gcal.c:161 src/gcal2txt.c:161 #, c-format msgid "There is NO warranty, without even the implied warranty of" msgstr "İma edilmiÅŸ olsa bile garanti yoktur" #: src/help.c:2600 src/tcal.c:224 src/txt2gcal.c:163 src/gcal2txt.c:163 #, c-format msgid "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." msgstr "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." #: src/help.c:2616 #, c-format msgid "%s: The Gregorian calendar program (GNU cal) %s" msgstr "%s: Gregoryen takvim programı (GNU cal) %s" #: src/help.c:2624 #, c-format msgid "Usage: %s [[OPTION...] [%cDATE] [%cFILE...]] [COMMAND]" msgstr "Kullanım: %s [[SEÇENEK...] [%cTARİH] [%cDOSYA...]] [KOMUT]" #: src/help.c:2627 #, c-format msgid "Usage: %s [[OPTION...] [%cFILE...]] [COMMAND]" msgstr "Kullanım: %s [[SEÇENEK...] [%cDOSYA...]] [KOMUT]" #: src/help.c:2703 src/help.c:2849 msgid " 4.0 or 4.02" msgstr " 4.0 veya 4.02" #: src/help.c:2711 src/help.c:2857 msgid " later than 5.0" msgstr "5.0'dan sonrası" #: src/help.c:2722 src/help.c:2864 msgid "++ 3.0 or later" msgstr "++ 3.0 veya öncesi" #: src/help.c:2749 src/help.c:2970 msgid "5.1 or earlier" msgstr "5.1 veya öncesi" #: src/help.c:2752 src/help.c:2973 src/help.c:3128 src/help.c:3198 msgid "unknown compiler" msgstr "bilinmeyen derleyici" #: src/help.c:2787 src/help.c:2876 src/help.c:3010 src/help.c:3032 #: src/help.c:3101 src/help.c:3138 src/help.c:3156 src/help.c:3213 #: src/help.c:3428 msgid " on " msgstr " açık" #: src/help.c:2826 msgid "(bad version)" msgstr "(kötü sürüm)" #: src/help.c:2873 msgid "unknown compiler (SDK?)" msgstr "bilinmeyen derleyici (SDK?)" #: src/help.c:2941 msgid " later than 4.5" msgstr "4.5'ten sonra" #: src/help.c:2951 msgid "++ 1.0 or later" msgstr "++ 1.0 veya sonrası" #: src/help.c:2959 msgid " 1.0 or 1.5?" msgstr " 1.0 veya 1.5?" #: src/help.c:3074 msgid "unknown " msgstr "bilinmeyen " #: src/help.c:3086 #, c-format msgid "version %d.%d" msgstr "sürüm %d.%d" #: src/help.c:3089 src/help.c:3122 src/help.c:3248 #, c-format msgid "version %d" msgstr "sürüm %d" #: src/help.c:3091 #, c-format msgid "unknown version" msgstr "bilinmeyen sürüm" #: src/help.c:3205 #, c-format msgid " (%.4s for Alpha)" msgstr " (%.4s için Alpha)" #: src/help.c:3208 #, c-format msgid " (%.4s for VAX)" msgstr " (%.4s için VAX)" #: src/help.c:3359 msgid " (NetBSD before 0.9)" msgstr " (NetBSD sürüm 0.9 öncesi)" #: src/help.c:3359 msgid " (NetBSD 1.2 or later)" msgstr " (NetBSD 1.2 veya sonrası)" #: src/help.c:3366 msgid " (FreeBSD 2.0 or later)" msgstr " (FreeBSD 2.0 veya sonrası)" #: src/help.c:3369 msgid " (BSD/386 1.1 or later)" msgstr " (BSD/386 1.1 veya sonrası)" #: src/print.c:544 src/print.c:978 src/print.c:1033 msgid "CW" msgstr "TH" #: src/print.c:565 msgid "Week" msgstr "Hafta" #: src/rc-insert.c:1706 src/rc-insert.c:2824 msgid "pm" msgstr "pm" #: src/rc-insert.c:1715 src/rc-insert.c:2833 msgid "am" msgstr "am" #: src/rc-insert.c:2018 src/rc-insert.c:2028 msgid "d'\"" msgstr "dm" #: src/rc-insert.c:2038 msgid "h'\"" msgstr "sds" #: src/rc-insert.c:3728 src/rc-utils.c:2585 #, 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:3750 src/rc-utils.c:2609 #, 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:513 msgid "Emo" msgstr "Duy" #: src/rc-use.c:518 msgid "Int" msgstr "Ent" #: src/rc-use.c:523 msgid "Phy" msgstr "Fiz" #: src/rc-use.c:1086 src/rc-use.c:1177 msgid "`Eternal holiday list'" msgstr "`Sonsuz tatil listesi'" #: src/rc-use.c:1877 src/rc-use.c:1926 src/rc-use.c:2015 src/rc-use.c:2107 msgid "`Internal'" msgstr "`İç'" #: src/rc-use.c:2339 #, c-format msgid " ; Week %s" msgstr " ; Hafta %s" #: src/rc-use.c:2348 #, c-format msgid "Week %s" msgstr "Hafta %s" #: src/rc-utils.c:397 src/rc-utils.c:414 #, 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:3269 #, 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:3272 src/rc-utils.c:3686 #, c-format msgid "Line %ld: %s" msgstr "Satır %ld: %s" #: src/rc-utils.c:3633 src/utils.c:274 #, c-format msgid "%s: abort, " msgstr "%s: durdur" #: src/rc-utils.c:3641 #, c-format msgid "illegal variable definition in file `%s'" msgstr "`%s' dosyasında sıradışı deÄŸiÅŸken tanımı" #: src/rc-utils.c:3643 #, c-format msgid "illegal definition of variable `%c'" msgstr "`%c' deÄŸiÅŸkeninin tanımı sıradışı" #: src/rc-utils.c:3650 #, c-format msgid "illegal variable operation in file `%s'" msgstr "`%s' dosyasında sıradışı deÄŸiÅŸken iÅŸlemi" #: src/rc-utils.c:3652 #, c-format msgid "illegal operation on variable `%c'" msgstr "`%c' deÄŸiÅŸkeninde sıradışı iÅŸlem" #: src/rc-utils.c:3658 #, c-format msgid "variable `%c' undefined in file `%s'" msgstr "`%c' deÄŸiÅŸkeni `%s' dosyasında tanımlanmamış" #: src/rc-utils.c:3662 #, 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:3683 #, c-format msgid "Invalid argument in command line given -- %s" msgstr "Komut satırında geçersiz -- %s verildi" #: src/rc-utils.c:3695 #, c-format msgid "Argument `%s' of command line ignored." msgstr "Komut satırı argümanı `%s' atlandı." #: src/rc-utils.c:3698 #, c-format msgid "Line %ld ignored: %s" msgstr "Satır %ld atlandı: %s" #: src/tty.c:424 #, c-format msgid "%s: for more, <%s> to quit..." msgstr "%s: daha fazlası için , çıkmak için <%s>..." #: src/tty.c:1019 #, c-format msgid "environment variable `%s' not found" msgstr "çevresel deÄŸiÅŸken `%s' bulunamadı" #: src/tty.c:1026 #, c-format msgid "environment variable `%s' not set" msgstr "çevresel deÄŸiÅŸken `%s' ayarlanmadı" #: src/tty.c:1066 msgid "`termcap' file not found" msgstr "`termcap' dosyası bulunamadı" #: src/tty.c:1071 #, c-format msgid "unknown terminal type defined in `%s'" msgstr "`%s' de bilinmeyen terminal tipi tanımlandı" #: src/tty.c:1080 #, c-format msgid "" "\n" "%s: warning, %s.\n" "\n" msgstr "" "\n" "%s: uyarı, %s.\n" "\n" #: src/utils.c:280 #, 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:284 src/tcal.c:324 src/txt2gcal.c:263 src/gcal2txt.c:263 #, 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:289 #, 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:294 #, 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:299 #, 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:303 #, 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:308 #, 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:312 #, c-format msgid "file `%s' not found" msgstr "`%s' dosyası bulunamadı" #: src/utils.c:316 #, 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:322 #, 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:327 #, 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:332 #, c-format msgid "sending eMail to <%s> failed" msgstr "<%s>'ye elektronik posta gönderimi baÅŸarısız" #: src/utils.c:334 src/utils.c:352 #, c-format msgid "" "\n" "`%s' line %ld: " msgstr "" "\n" "`%s' satır %ld: " #: src/utils.c:341 #, 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:350 #, c-format msgid "read error in file `%s'" msgstr "`%s' dosyasında okuma hatası" #: src/utils.c:358 #, 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:364 src/tcal.c:330 src/txt2gcal.c:269 src/gcal2txt.c:269 #, 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:369 #, c-format msgid "(`%s') date format `%s' is invalid" msgstr "(`%s') tarih biçimi `%s' geçersiz" #: src/utils.c:375 #, c-format msgid "%s in search pattern `%s'" msgstr "`%s'arama yolunda %s " #: src/utils.c:378 #, c-format msgid "invalid search pattern `%s' specified" msgstr "geçersiz arama yöntemi `%s' ile arandı" #: src/utils.c:383 src/tcal.c:338 src/txt2gcal.c:274 src/gcal2txt.c:274 #, c-format msgid "`%s' line %ld: (`%s') unmanaged error (%d)" msgstr "`%s' satır %ld: (`%s') baÅŸarılamamış hata (%d)" #: src/utils.c:403 src/tcal.c:358 src/txt2gcal.c:294 src/gcal2txt.c:294 #, c-format msgid "" "\n" "%s: program aborted by signal %d\n" msgstr "" "\n" "%s: program sinyal ile %d durduruldu \n" #: src/utils.c:1080 msgid "th" msgstr "üncü" #: src/utils.c:1084 msgid "st" msgstr "inci" #: src/utils.c:1088 msgid "nd" msgstr "nci" #: src/utils.c:1092 msgid "rd" msgstr "rd" #: src/utils.c:1123 src/utils.c:1174 src/utils.c:1225 msgid "invalid day" msgstr "geçersiz gün" #: src/utils.c:1128 msgid "Mon" msgstr "Pts" #: src/utils.c:1133 msgid "Tue" msgstr "Sal" #: src/utils.c:1138 msgid "Wed" msgstr "Çar" #: src/utils.c:1143 msgid "Thu" msgstr "Per" #: src/utils.c:1148 msgid "Fri" msgstr "Cum" #: src/utils.c:1153 msgid "Sat" msgstr "Cts" #: src/utils.c:1158 msgid "Sun" msgstr "Paz" #: src/utils.c:1179 msgid "Mo" msgstr "Pt" #: src/utils.c:1184 msgid "Tu" msgstr "Sa" #: src/utils.c:1189 msgid "We" msgstr "Ça" #: src/utils.c:1194 msgid "Th" msgstr "Pe" #: src/utils.c:1199 msgid "Fr" msgstr "Cu" #: src/utils.c:1204 msgid "Sa" msgstr "Ct" #: src/utils.c:1209 msgid "Su" msgstr "Pz" #: src/utils.c:1226 msgid "Monday" msgstr "Pazartesi" #: src/utils.c:1226 msgid "Tuesday" msgstr "Salı" #: src/utils.c:1226 msgid "Wednesday" msgstr "ÇarÅŸamba" #: src/utils.c:1226 msgid "Thursday" msgstr "PerÅŸembe" #: src/utils.c:1227 msgid "Friday" msgstr "Cuma" #: src/utils.c:1227 msgid "Saturday" msgstr "Cumartesi" #: src/utils.c:1227 msgid "Sunday" msgstr "Pazar" #: src/utils.c:1243 src/utils.c:1320 msgid "invalid month" msgstr "geçersiz ay" #: src/utils.c:1248 msgid "Jan" msgstr "Oca" #: src/utils.c:1253 msgid "Feb" msgstr "Åžub" #: src/utils.c:1258 msgid "Mar" msgstr "Mar" #: src/utils.c:1263 msgid "Apr" msgstr "Nis" #: src/utils.c:1268 msgid "May" msgstr "May" #: src/utils.c:1273 msgid "Jun" msgstr "Haz" #: src/utils.c:1278 msgid "Jul" msgstr "Tem" #: src/utils.c:1283 msgid "Aug" msgstr "AÄŸu" #: src/utils.c:1288 msgid "Sep" msgstr "Eyl" #: src/utils.c:1293 msgid "Oct" msgstr "Eki" #: src/utils.c:1298 msgid "Nov" msgstr "Kas" #: src/utils.c:1303 msgid "Dec" msgstr "Ara" #: src/utils.c:1321 msgid "January" msgstr "Ocak" #: src/utils.c:1321 msgid "February" msgstr "Åžubat" #: src/utils.c:1322 msgid "March" msgstr "Mart" #: src/utils.c:1322 msgid "April" msgstr "Nisan" #: src/utils.c:1332 msgid "May " msgstr "Mayıs" #: src/utils.c:1333 msgid "June" msgstr "Haziran" #: src/utils.c:1333 msgid "July" msgstr "Temmuz" #: src/utils.c:1334 msgid "August" msgstr "AÄŸustos" #: src/utils.c:1334 msgid "September" msgstr "Eylül" #: src/utils.c:1335 msgid "October" msgstr "Ekim" #: src/utils.c:1335 msgid "November" msgstr "Kasım" #: src/utils.c:1335 msgid "December" msgstr "Aralık" #: src/tcal.c:191 #, 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:320 src/txt2gcal.c:259 src/gcal2txt.c:259 #, c-format msgid "" "\n" "%s: abort, " msgstr "" "\n" "%s: durdur," #: src/tcal.c:335 #, c-format msgid "shift value `%s' is invalid" msgstr "deÄŸiÅŸen deÄŸer `%s' geçersiz" #: src/tcal.c:907 #, c-format msgid "%s: option `--%s' requires an argument" msgstr "%s: `--%s' seçeneÄŸi bir argüman gerektirir" #: src/tcal.c:1071 #, 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:131 #, 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:755 src/gcal2txt.c:754 #, c-format msgid "%s: no regular file\n" msgstr "%s: düzgün bir dosya yok\n" #: src/txt2gcal.c:760 src/gcal2txt.c:759 #, c-format msgid "%s: file not found\n" msgstr "%s: dosyası bulunamadı\n" #: src/gcal2txt.c:131 #, 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 "regexp too big" #~ msgstr "çok büyük regexp" #~ msgid "out of space" #~ msgstr "boÅŸluk dışı" #~ msgid "too many ()" #~ msgstr "çok fazla ()" #~ msgid "unmatched ()" #~ msgstr "tutmayan ()" #~ msgid "junk on end" #~ msgstr "bitiÅŸ kalitesiz" #~ msgid "*+ operand could be empty" #~ msgstr "*+ operand boÅŸ olabilirdi" #~ msgid "nested *?+" #~ msgstr "yuvalı *?+" #~ msgid "invalid [] range" #~ msgstr "geçersiz [] aralık" #~ 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-3.6.3/po/rw.gmo0000644000175000017500000000344312125376136011136 00000000000000Þ•'T5Œ`acgmqx€„‘š¢ª³·¿ÃÈÌÑÕÛßçëôø    $.7 :EJ~RÑÓ×Üáèð   + 3=F O\eipx€ ‰ “ ž©® · ÅÑ× Ýé òý   %$&  '# "!:AprAprilAugAugustCreatedDecDecemberFebFebruaryFridaysGermanyInternalJanJanuaryJulJulyJunJuneMarMarchMayMondaysNovNovemberOctOctoberSaturdaysSepSeptemberSunSundaysThursdaysTuesdaysWeWednesdaysWeekdefaultProject-Id-Version: gcal 2.40 Report-Msgid-Bugs-To: bug-gcal@gnu.org POT-Creation-Date: 2013-03-29 21:40+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 :MatMatakan.KanamakiremyeUkub. (Ukuboza)UkubozaGashyantareGashyantarekwa gatanuUbudageBy'imbereMutaramaMutaramaNyak. (anga)NyakangaKamKamenaWerurweWerurweGicurasikwa mbereugushyingoUgushyingoukw.Ukwakirakwa gatandatuItandukanyaNzeriIzubaKu kyumwerukwa kanekwa kabiriTwebwekwa gatatuIcyumwerumburabuzigcal-3.6.3/po/remove-potcdate.sin0000644000175000017500000000066012125375415013610 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-3.6.3/po/quot.sed0000644000175000017500000000023112125375415011456 00000000000000s/"\([^"]*\)"/“\1â€/g s/`\([^`']*\)'/‘\1’/g s/ '\([^`']*\)' / ‘\1’ /g s/ '\([^`']*\)'$/ ‘\1’/g s/^'\([^`']*\)' /‘\1’ /g s/“â€/""/g gcal-3.6.3/po/en@boldquot.header0000644000175000017500000000247112125375415013427 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-3.6.3/m4/0000755000175000017500000000000012125376241007755 500000000000000gcal-3.6.3/m4/waitpid.m40000644000175000017500000000064012076511425011600 00000000000000# waitpid.m4 serial 2 dnl Copyright (C) 2010-2013 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-3.6.3/m4/math_h.m40000644000175000017500000004211112076511425011376 00000000000000# math_h.m4 serial 114 dnl Copyright (C) 2007-2013 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_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_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_SQRTL=0; AC_SUBST([REPLACE_SQRTL]) 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-3.6.3/m4/frexp.m40000644000175000017500000001151412121155160011254 00000000000000# frexp.m4 serial 15 dnl Copyright (C) 2007-2013 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_FREXP], [ AC_REQUIRE([gl_MATH_H_DEFAULTS]) AC_REQUIRE([gl_CHECK_FREXP_NO_LIBM]) FREXP_LIBM= if test $gl_cv_func_frexp_no_libm = no; then AC_CACHE_CHECK([whether frexp() can be used with libm], [gl_cv_func_frexp_in_libm], [ save_LIBS="$LIBS" LIBS="$LIBS -lm" AC_LINK_IFELSE( [AC_LANG_PROGRAM( [[#include double x;]], [[int e; return frexp (x, &e) > 0;]])], [gl_cv_func_frexp_in_libm=yes], [gl_cv_func_frexp_in_libm=no]) LIBS="$save_LIBS" ]) if test $gl_cv_func_frexp_in_libm = yes; then FREXP_LIBM=-lm fi fi if test $gl_cv_func_frexp_no_libm = yes \ || test $gl_cv_func_frexp_in_libm = yes; then save_LIBS="$LIBS" LIBS="$LIBS $FREXP_LIBM" gl_FUNC_FREXP_WORKS LIBS="$save_LIBS" case "$gl_cv_func_frexp_works" in *yes) gl_func_frexp=yes ;; *) gl_func_frexp=no; REPLACE_FREXP=1; FREXP_LIBM= ;; esac else gl_func_frexp=no fi if test $gl_func_frexp = yes; then AC_DEFINE([HAVE_FREXP], [1], [Define if the frexp() function is available and works.]) fi AC_SUBST([FREXP_LIBM]) ]) AC_DEFUN([gl_FUNC_FREXP_NO_LIBM], [ AC_REQUIRE([gl_MATH_H_DEFAULTS]) AC_REQUIRE([gl_CHECK_FREXP_NO_LIBM]) if test $gl_cv_func_frexp_no_libm = yes; then gl_FUNC_FREXP_WORKS case "$gl_cv_func_frexp_works" in *yes) gl_func_frexp_no_libm=yes ;; *) gl_func_frexp_no_libm=no; REPLACE_FREXP=1 ;; esac else gl_func_frexp_no_libm=no dnl Set REPLACE_FREXP here because the system may have frexp in libm. REPLACE_FREXP=1 fi if test $gl_func_frexp_no_libm = yes; then AC_DEFINE([HAVE_FREXP_IN_LIBC], [1], [Define if the frexp() function is available in libc.]) fi ]) dnl Test whether frexp() can be used without linking with libm. dnl Set gl_cv_func_frexp_no_libm to 'yes' or 'no' accordingly. AC_DEFUN([gl_CHECK_FREXP_NO_LIBM], [ AC_CACHE_CHECK([whether frexp() can be used without linking with libm], [gl_cv_func_frexp_no_libm], [ AC_LINK_IFELSE( [AC_LANG_PROGRAM( [[#include double x;]], [[int e; return frexp (x, &e) > 0;]])], [gl_cv_func_frexp_no_libm=yes], [gl_cv_func_frexp_no_libm=no]) ]) ]) dnl Test whether frexp() works also on denormalized numbers (this fails e.g. on dnl NetBSD 3.0), on infinite numbers (this fails e.g. on IRIX 6.5 and mingw), dnl and on negative zero (this fails e.g. on NetBSD 4.99 and mingw). AC_DEFUN([gl_FUNC_FREXP_WORKS], [ AC_REQUIRE([AC_PROG_CC]) AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles AC_CHECK_DECLS_ONCE([alarm]) AC_CACHE_CHECK([whether frexp works], [gl_cv_func_frexp_works], [ AC_RUN_IFELSE( [AC_LANG_SOURCE([[ #include #include #include #if HAVE_DECL_ALARM # include # include #endif /* HP cc on HP-UX 10.20 has a bug with the constant expression -0.0. ICC 10.0 has a bug when optimizing the expression -zero. The expression -DBL_MIN * DBL_MIN does not work when cross-compiling to PowerPC on Mac OS X 10.5. */ #if defined __hpux || defined __sgi || defined __ICC static double compute_minus_zero (void) { return -DBL_MIN * DBL_MIN; } # define minus_zero compute_minus_zero () #else double minus_zero = -0.0; #endif int main() { int result = 0; int i; volatile double x; double zero = 0.0; #if HAVE_DECL_ALARM /* NeXTstep 3.3 frexp() runs into an endless loop when called on an infinite number. Let the test fail in this case. */ signal (SIGALRM, SIG_DFL); alarm (5); #endif /* Test on denormalized numbers. */ for (i = 1, x = 1.0; i >= DBL_MIN_EXP; i--, x *= 0.5) ; if (x > 0.0) { int exp; double y = frexp (x, &exp); /* On machines with IEEE754 arithmetic: x = 1.11254e-308, exp = -1022. On NetBSD: y = 0.75. Correct: y = 0.5. */ if (y != 0.5) result |= 1; } /* Test on infinite numbers. */ x = 1.0 / zero; { int exp; double y = frexp (x, &exp); if (y != x) result |= 2; } /* Test on negative zero. */ x = minus_zero; { int exp; double y = frexp (x, &exp); if (memcmp (&y, &x, sizeof x)) result |= 4; } return result; }]])], [gl_cv_func_frexp_works=yes], [gl_cv_func_frexp_works=no], [case "$host_os" in netbsd* | irix* | mingw*) gl_cv_func_frexp_works="guessing no";; *) gl_cv_func_frexp_works="guessing yes";; esac ]) ]) ]) gcal-3.6.3/m4/atan2.m40000644000175000017500000000056212076511425011147 00000000000000# atan2.m4 serial 1 dnl Copyright (C) 2011-2013 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-3.6.3/m4/fopen.m40000644000175000017500000000325212076511425011250 00000000000000# fopen.m4 serial 9 dnl Copyright (C) 2007-2013 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-3.6.3/m4/localeconv.m40000644000175000017500000000114712076511425012267 00000000000000# localeconv.m4 serial 1 dnl Copyright (C) 2012-2013 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-3.6.3/m4/float_h.m40000644000175000017500000000466312076511425011564 00000000000000# float_h.m4 serial 9 dnl Copyright (C) 2007, 2009-2013 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-3.6.3/m4/gettext.m40000644000175000017500000003567112125375413011637 00000000000000# gettext.m4 serial 66 (gettext-0.18.2) dnl Copyright (C) 1995-2013 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, 2008-2010. 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(ifelse([$1], [], [old])[]ifelse([$1], [no-libtool], [old]), [old], [AC_DIAGNOSE([obsolete], [Use of AM_GNU_GETTEXT without [external] argument is deprecated.])]) 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 Mac OS 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_LINK_IFELSE( [AC_LANG_PROGRAM( [[ #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_LINK_IFELSE( [AC_LANG_PROGRAM( [[ #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_LINK_IFELSE( [AC_LANG_PROGRAM( [[ #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], []) AC_DEFUN([gl_LOCK_EARLY], []) gcal-3.6.3/m4/printf-frexp.m40000644000175000017500000000226612076511425012571 00000000000000# printf-frexp.m4 serial 5 dnl Copyright (C) 2007, 2009-2013 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 how to define printf_frexp() without linking with libm. AC_DEFUN([gl_FUNC_PRINTF_FREXP], [ AC_REQUIRE([gl_CHECK_FREXP_NO_LIBM]) if test $gl_cv_func_frexp_no_libm = yes; then gl_FUNC_FREXP_WORKS case "$gl_cv_func_frexp_works" in *yes) AC_DEFINE([HAVE_FREXP_IN_LIBC], [1], [Define if the frexp function is available in libc.]) ;; esac fi AC_CACHE_CHECK([whether ldexp can be used without linking with libm], [gl_cv_func_ldexp_no_libm], [ AC_LINK_IFELSE( [AC_LANG_PROGRAM( [[#include double x; int y;]], [[return ldexp (x, y) < 1;]])], [gl_cv_func_ldexp_no_libm=yes], [gl_cv_func_ldexp_no_libm=no]) ]) if test $gl_cv_func_ldexp_no_libm = yes; then AC_DEFINE([HAVE_LDEXP_IN_LIBC], [1], [Define if the ldexp function is available in libc.]) fi ]) gcal-3.6.3/m4/mathfunc.m40000644000175000017500000001543212076511425011751 00000000000000# mathfunc.m4 serial 11 dnl Copyright (C) 2010-2013 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-3.6.3/m4/codeset.m40000644000175000017500000000150012076511425011561 00000000000000# codeset.m4 serial 5 (gettext-0.18.2) dnl Copyright (C) 2000-2002, 2006, 2008-2013 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_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-3.6.3/m4/fstat.m40000644000175000017500000000164612076511425011267 00000000000000# fstat.m4 serial 4 dnl Copyright (C) 2011-2013 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-3.6.3/m4/iconv_h.m40000644000175000017500000000254112076511425011566 00000000000000# iconv_h.m4 serial 8 dnl Copyright (C) 2007-2013 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-3.6.3/m4/isnanf.m40000644000175000017500000001224212076511425011416 00000000000000# isnanf.m4 serial 14 dnl Copyright (C) 2007-2013 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 how to get or define isnanf(). AC_DEFUN([gl_FUNC_ISNANF], [ AC_REQUIRE([gl_MATH_H_DEFAULTS]) ISNANF_LIBM= gl_HAVE_ISNANF_NO_LIBM if test $gl_cv_func_isnanf_no_libm = no; then gl_HAVE_ISNANF_IN_LIBM if test $gl_cv_func_isnanf_in_libm = yes; then ISNANF_LIBM=-lm fi fi dnl The variable gl_func_isnanf set here is used by isnan.m4. if test $gl_cv_func_isnanf_no_libm = yes \ || test $gl_cv_func_isnanf_in_libm = yes; then save_LIBS="$LIBS" LIBS="$LIBS $ISNANF_LIBM" gl_ISNANF_WORKS LIBS="$save_LIBS" case "$gl_cv_func_isnanf_works" in *yes) gl_func_isnanf=yes ;; *) gl_func_isnanf=no; ISNANF_LIBM= ;; esac else gl_func_isnanf=no fi if test $gl_func_isnanf != yes; then HAVE_ISNANF=0 fi AC_SUBST([ISNANF_LIBM]) ]) dnl Check how to get or define isnanf() without linking with libm. AC_DEFUN([gl_FUNC_ISNANF_NO_LIBM], [ gl_HAVE_ISNANF_NO_LIBM if test $gl_cv_func_isnanf_no_libm = yes; then gl_ISNANF_WORKS fi if test $gl_cv_func_isnanf_no_libm = yes \ && { case "$gl_cv_func_isnanf_works" in *yes) true;; *) false;; esac }; then gl_func_isnanf_no_libm=yes AC_DEFINE([HAVE_ISNANF_IN_LIBC], [1], [Define if the isnan(float) function is available in libc.]) else gl_func_isnanf_no_libm=no fi ]) dnl Prerequisites of replacement isnanf definition. It does not need -lm. AC_DEFUN([gl_PREREQ_ISNANF], [ gl_FLOAT_EXPONENT_LOCATION ]) dnl Test whether isnanf() can be used without libm. AC_DEFUN([gl_HAVE_ISNANF_NO_LIBM], [ AC_CACHE_CHECK([whether isnan(float) can be used without linking with libm], [gl_cv_func_isnanf_no_libm], [ AC_LINK_IFELSE( [AC_LANG_PROGRAM( [[#include #if __GNUC__ >= 4 # undef isnanf # define isnanf(x) __builtin_isnanf ((float)(x)) #elif defined isnan # undef isnanf # define isnanf(x) isnan ((float)(x)) #endif float x;]], [[return isnanf (x);]])], [gl_cv_func_isnanf_no_libm=yes], [gl_cv_func_isnanf_no_libm=no]) ]) ]) dnl Test whether isnanf() can be used with libm. AC_DEFUN([gl_HAVE_ISNANF_IN_LIBM], [ AC_CACHE_CHECK([whether isnan(float) can be used with libm], [gl_cv_func_isnanf_in_libm], [ save_LIBS="$LIBS" LIBS="$LIBS -lm" AC_LINK_IFELSE( [AC_LANG_PROGRAM( [[#include #if __GNUC__ >= 4 # undef isnanf # define isnanf(x) __builtin_isnanf ((float)(x)) #elif defined isnan # undef isnanf # define isnanf(x) isnan ((float)(x)) #endif float x;]], [[return isnanf (x);]])], [gl_cv_func_isnanf_in_libm=yes], [gl_cv_func_isnanf_in_libm=no]) LIBS="$save_LIBS" ]) ]) dnl Test whether isnanf() rejects Infinity (this fails on Solaris 2.5.1), dnl recognizes a NaN (this fails on IRIX 6.5 with cc), and recognizes a NaN dnl with in-memory representation 0x7fbfffff (this fails on IRIX 6.5). AC_DEFUN([gl_ISNANF_WORKS], [ AC_REQUIRE([AC_PROG_CC]) AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles AC_REQUIRE([gl_FLOAT_EXPONENT_LOCATION]) AC_CACHE_CHECK([whether isnan(float) works], [gl_cv_func_isnanf_works], [ AC_RUN_IFELSE( [AC_LANG_SOURCE([[ #include #if __GNUC__ >= 4 # undef isnanf # define isnanf(x) __builtin_isnanf ((float)(x)) #elif defined isnan # undef isnanf # define isnanf(x) isnan ((float)(x)) #endif /* The Compaq (ex-DEC) C 6.4 compiler chokes on the expression 0.0 / 0.0. */ #ifdef __DECC static float NaN () { static float zero = 0.0f; return zero / zero; } #else # define NaN() (0.0f / 0.0f) #endif #define NWORDS \ ((sizeof (float) + sizeof (unsigned int) - 1) / sizeof (unsigned int)) typedef union { unsigned int word[NWORDS]; float value; } memory_float; int main() { int result = 0; if (isnanf (1.0f / 0.0f)) result |= 1; if (!isnanf (NaN ())) result |= 2; #if defined FLT_EXPBIT0_WORD && defined FLT_EXPBIT0_BIT /* The isnanf function should be immune against changes in the sign bit and in the mantissa bits. The xor operation twiddles a bit that can only be a sign bit or a mantissa bit. */ if (FLT_EXPBIT0_WORD == 0 && FLT_EXPBIT0_BIT > 0) { memory_float m; m.value = NaN (); /* Set the bits below the exponent to 01111...111. */ m.word[0] &= -1U << FLT_EXPBIT0_BIT; m.word[0] |= 1U << (FLT_EXPBIT0_BIT - 1) - 1; if (!isnanf (m.value)) result |= 4; } #endif return result; }]])], [gl_cv_func_isnanf_works=yes], [gl_cv_func_isnanf_works=no], [case "$host_os" in irix* | solaris*) gl_cv_func_isnanf_works="guessing no";; *) gl_cv_func_isnanf_works="guessing yes";; esac ]) ]) ]) gcal-3.6.3/m4/xalloc.m40000644000175000017500000000047212076511425011424 00000000000000# xalloc.m4 serial 18 dnl Copyright (C) 2002-2006, 2009-2013 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-3.6.3/m4/malloca.m40000644000175000017500000000110112076511425011540 00000000000000# malloca.m4 serial 1 dnl Copyright (C) 2003-2004, 2006-2007, 2009-2013 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_MALLOCA], [ dnl Use the autoconf tests for alloca(), but not the AC_SUBSTed variables dnl @ALLOCA@ and @LTALLOCA@. dnl gl_FUNC_ALLOCA dnl Already brought in by the module dependencies. AC_REQUIRE([gl_EEMALLOC]) AC_REQUIRE([AC_TYPE_LONG_LONG_INT]) ]) gcal-3.6.3/m4/lock.m40000644000175000017500000000236212076511425011072 00000000000000# lock.m4 serial 13 (gettext-0.18.2) dnl Copyright (C) 2005-2013 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. AC_CHECK_TYPE([pthread_rwlock_t], [AC_DEFINE([HAVE_PTHREAD_RWLOCK], [1], [Define if the POSIX multithreading library has read/write locks.])], [], [#include ]) # 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." #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-3.6.3/m4/sched_h.m40000644000175000017500000000207512076511425011540 00000000000000# sched_h.m4 serial 6 dnl Copyright (C) 2008-2013 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_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' gl_CHECK_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]) AC_CHECK_TYPE([struct sched_param], [HAVE_STRUCT_SCHED_PARAM=1], [HAVE_STRUCT_SCHED_PARAM=0], [#include ]) AC_SUBST([HAVE_STRUCT_SCHED_PARAM]) 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-3.6.3/m4/stdio_h.m40000644000175000017500000002243312076511425011574 00000000000000# stdio_h.m4 serial 43 dnl Copyright (C) 2007-2013 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], [ AC_REQUIRE([gl_STDIO_H_DEFAULTS]) gl_NEXT_HEADERS([stdio.h]) 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-3.6.3/m4/secure_getenv.m40000644000175000017500000000143012116431050012761 00000000000000# Look up an environment variable more securely. dnl Copyright 2013 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 ]) gcal-3.6.3/m4/lstat.m40000644000175000017500000000511212076511425011265 00000000000000# serial 26 # Copyright (C) 1997-2001, 2003-2013 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 if test "$as_ln_s" = "ln -s" && ln -s conftest.file conftest.sym; then AC_RUN_IFELSE( [AC_LANG_PROGRAM( [AC_INCLUDES_DEFAULT], [[struct stat sbuf; /* 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 # Guess yes on glibc systems. *-gnu*) 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 # If the 'ln -s' command failed, then we probably don't even # have an lstat function. gl_cv_func_lstat_dereferences_slashed_symlink="guessing no" fi 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-3.6.3/m4/locale_h.m40000644000175000017500000001040112076511425011701 00000000000000# locale_h.m4 serial 19 dnl Copyright (C) 2007, 2009-2013 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-3.6.3/m4/locale-zh.m40000644000175000017500000001222612076511425012020 00000000000000# locale-zh.m4 serial 12 dnl Copyright (C) 2003, 2005-2013 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-3.6.3/m4/inttypes_h.m40000644000175000017500000000177412076511425012336 00000000000000# inttypes_h.m4 serial 10 dnl Copyright (C) 1997-2004, 2006, 2008-2013 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_INTTYPES_H_WITH_UINTMAX if exists, # doesn't clash with , and declares uintmax_t. AC_DEFUN([gl_AC_HEADER_INTTYPES_H], [ AC_CACHE_CHECK([for inttypes.h], [gl_cv_header_inttypes_h], [AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( [[ #include #include ]], [[uintmax_t i = (uintmax_t) -1; return !i;]])], [gl_cv_header_inttypes_h=yes], [gl_cv_header_inttypes_h=no])]) if test $gl_cv_header_inttypes_h = yes; then AC_DEFINE_UNQUOTED([HAVE_INTTYPES_H_WITH_UINTMAX], [1], [Define if exists, doesn't clash with , and declares uintmax_t. ]) fi ]) gcal-3.6.3/m4/fseeko.m40000644000175000017500000000435512076511425011422 00000000000000# fseeko.m4 serial 16 dnl Copyright (C) 2007-2013 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 = no; 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-3.6.3/m4/msvc-inval.m40000644000175000017500000000133412076511425012217 00000000000000# msvc-inval.m4 serial 1 dnl Copyright (C) 2011-2013 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-3.6.3/m4/alloca.m40000644000175000017500000001037212076511425011375 00000000000000# alloca.m4 serial 14 dnl Copyright (C) 2002-2004, 2006-2007, 2009-2013 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-3.6.3/m4/ftello.m40000644000175000017500000000732712076511425011435 00000000000000# ftello.m4 serial 11 dnl Copyright (C) 2007-2013 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-3.6.3/m4/atan.m40000644000175000017500000000055612076511425011070 00000000000000# atan.m4 serial 1 dnl Copyright (C) 2011-2013 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-3.6.3/m4/sin.m40000644000175000017500000000055212076511425010732 00000000000000# sin.m4 serial 1 dnl Copyright (C) 2011-2013 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-3.6.3/m4/string_h.m40000644000175000017500000001271412076511425011761 00000000000000# Configure a GNU-like replacement for . # Copyright (C) 2007-2013 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-3.6.3/m4/fflush.m40000644000175000017500000000503512076511425011431 00000000000000# fflush.m4 serial 14 # Copyright (C) 2007-2013 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 = no; 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], [dnl Pessimistically assume fflush is broken. gl_cv_func_fflush_stdin=no]) rm conftest.txt ]) ]) # Prerequisites of lib/fflush.c. AC_DEFUN([gl_PREREQ_FFLUSH], [:]) gcal-3.6.3/m4/intlmacosx.m40000644000175000017500000000475312076511425012331 00000000000000# intlmacosx.m4 serial 5 (gettext-0.18.2) dnl Copyright (C) 2004-2013 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 Mac OS X. dnl Defines INTL_MACOSX_LIBS. AC_DEFUN([gt_INTL_MACOSX], [ dnl Check for API introduced in Mac OS X 10.2. AC_CACHE_CHECK([for CFPreferencesCopyAppValue], [gt_cv_func_CFPreferencesCopyAppValue], [gt_save_LIBS="$LIBS" LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation" AC_LINK_IFELSE( [AC_LANG_PROGRAM( [[#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 Mac OS X function CFPreferencesCopyAppValue in the CoreFoundation framework.]) fi dnl Check for API introduced in Mac OS X 10.3. AC_CACHE_CHECK([for CFLocaleCopyCurrent], [gt_cv_func_CFLocaleCopyCurrent], [gt_save_LIBS="$LIBS" LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation" AC_LINK_IFELSE( [AC_LANG_PROGRAM( [[#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 Mac OS 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-3.6.3/m4/nl_langinfo.m40000644000175000017500000000352412076511425012431 00000000000000# nl_langinfo.m4 serial 5 dnl Copyright (C) 2009-2013 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-3.6.3/m4/write.m40000644000175000017500000000175512076511425011301 00000000000000# write.m4 serial 5 dnl Copyright (C) 2008-2013 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-3.6.3/m4/largefile.m40000644000175000017500000001233212076511425012072 00000000000000# Enable large files on systems where this is not the default. # Copyright 1992-1996, 1998-2013 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-3.6.3/m4/multiarch.m40000644000175000017500000000367412076511425012141 00000000000000# multiarch.m4 serial 7 dnl Copyright (C) 2008-2013 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-3.6.3/m4/putenv.m40000644000175000017500000000317512121155160011455 00000000000000# putenv.m4 serial 20 dnl Copyright (C) 2002-2013 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-3.6.3/m4/fpurge.m40000644000175000017500000000320712076511425011431 00000000000000# fpurge.m4 serial 7 dnl Copyright (C) 2007, 2009-2013 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-3.6.3/m4/spawn-pipe.m40000644000175000017500000000060412076511425012222 00000000000000# spawn-pipe.m4 serial 2 dnl Copyright (C) 2004, 2008-2013 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-3.6.3/m4/isnanl.m40000644000175000017500000001736312076511425011435 00000000000000# isnanl.m4 serial 17 dnl Copyright (C) 2007-2013 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_ISNANL], [ AC_REQUIRE([gl_MATH_H_DEFAULTS]) ISNANL_LIBM= gl_HAVE_ISNANL_NO_LIBM if test $gl_cv_func_isnanl_no_libm = no; then gl_HAVE_ISNANL_IN_LIBM if test $gl_cv_func_isnanl_in_libm = yes; then ISNANL_LIBM=-lm fi fi dnl The variable gl_func_isnanl set here is used by isnan.m4. if test $gl_cv_func_isnanl_no_libm = yes \ || test $gl_cv_func_isnanl_in_libm = yes; then save_LIBS="$LIBS" LIBS="$LIBS $ISNANL_LIBM" gl_FUNC_ISNANL_WORKS LIBS="$save_LIBS" case "$gl_cv_func_isnanl_works" in *yes) gl_func_isnanl=yes ;; *) gl_func_isnanl=no; ISNANL_LIBM= ;; esac else gl_func_isnanl=no fi if test $gl_func_isnanl != yes; then HAVE_ISNANL=0 fi AC_SUBST([ISNANL_LIBM]) ]) AC_DEFUN([gl_FUNC_ISNANL_NO_LIBM], [ gl_HAVE_ISNANL_NO_LIBM gl_func_isnanl_no_libm=$gl_cv_func_isnanl_no_libm if test $gl_func_isnanl_no_libm = yes; then gl_FUNC_ISNANL_WORKS case "$gl_cv_func_isnanl_works" in *yes) ;; *) gl_func_isnanl_no_libm=no ;; esac fi if test $gl_func_isnanl_no_libm = yes; then AC_DEFINE([HAVE_ISNANL_IN_LIBC], [1], [Define if the isnan(long double) function is available in libc.]) fi ]) dnl Prerequisites of replacement isnanl definition. It does not need -lm. AC_DEFUN([gl_PREREQ_ISNANL], [ gl_LONG_DOUBLE_EXPONENT_LOCATION AC_REQUIRE([gl_LONG_DOUBLE_VS_DOUBLE]) ]) dnl Test whether isnanl() can be used without libm. AC_DEFUN([gl_HAVE_ISNANL_NO_LIBM], [ AC_CACHE_CHECK([whether isnan(long double) can be used without linking with libm], [gl_cv_func_isnanl_no_libm], [ AC_LINK_IFELSE( [AC_LANG_PROGRAM( [[#include #if __GNUC__ >= 4 # undef isnanl # define isnanl(x) __builtin_isnanl ((long double)(x)) #elif defined isnan # undef isnanl # define isnanl(x) isnan ((long double)(x)) #endif long double x;]], [[return isnanl (x);]])], [gl_cv_func_isnanl_no_libm=yes], [gl_cv_func_isnanl_no_libm=no]) ]) ]) dnl Test whether isnanl() can be used with libm. AC_DEFUN([gl_HAVE_ISNANL_IN_LIBM], [ AC_CACHE_CHECK([whether isnan(long double) can be used with libm], [gl_cv_func_isnanl_in_libm], [ save_LIBS="$LIBS" LIBS="$LIBS -lm" AC_LINK_IFELSE( [AC_LANG_PROGRAM( [[#include #if __GNUC__ >= 4 # undef isnanl # define isnanl(x) __builtin_isnanl ((long double)(x)) #elif defined isnan # undef isnanl # define isnanl(x) isnan ((long double)(x)) #endif long double x;]], [[return isnanl (x);]])], [gl_cv_func_isnanl_in_libm=yes], [gl_cv_func_isnanl_in_libm=no]) LIBS="$save_LIBS" ]) ]) dnl Test whether isnanl() recognizes all numbers which are neither finite nor dnl infinite. This test fails e.g. on NetBSD/i386 and on glibc/ia64. dnl Also, the GCC >= 4.0 built-in __builtin_isnanl does not pass the tests dnl - for pseudo-denormals on i686 and x86_64, dnl - for pseudo-zeroes, unnormalized numbers, and pseudo-denormals on ia64. AC_DEFUN([gl_FUNC_ISNANL_WORKS], [ AC_REQUIRE([AC_PROG_CC]) AC_REQUIRE([gl_BIGENDIAN]) AC_REQUIRE([gl_LONG_DOUBLE_VS_DOUBLE]) AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles AC_CACHE_CHECK([whether isnanl works], [gl_cv_func_isnanl_works], [ AC_RUN_IFELSE( [AC_LANG_SOURCE([[ #include #include #include #if __GNUC__ >= 4 # undef isnanl # define isnanl(x) __builtin_isnanl ((long double)(x)) #elif defined isnan # undef isnanl # define isnanl(x) isnan ((long double)(x)) #endif #define NWORDS \ ((sizeof (long double) + sizeof (unsigned int) - 1) / sizeof (unsigned int)) typedef union { unsigned int word[NWORDS]; long double value; } memory_long_double; /* On Irix 6.5, gcc 3.4.3 can't compute compile-time NaN, and needs the runtime type conversion. */ #ifdef __sgi static long double NaNl () { double zero = 0.0; return zero / zero; } #else # define NaNl() (0.0L / 0.0L) #endif int main () { int result = 0; if (!isnanl (NaNl ())) result |= 1; { memory_long_double m; unsigned int i; /* The isnanl function should be immune against changes in the sign bit and in the mantissa bits. The xor operation twiddles a bit that can only be a sign bit or a mantissa bit (since the exponent never extends to bit 31). */ m.value = NaNl (); m.word[NWORDS / 2] ^= (unsigned int) 1 << (sizeof (unsigned int) * CHAR_BIT - 1); for (i = 0; i < NWORDS; i++) m.word[i] |= 1; if (!isnanl (m.value)) result |= 1; } #if ((defined __ia64 && LDBL_MANT_DIG == 64) || (defined __x86_64__ || defined __amd64__) || (defined __i386 || defined __i386__ || defined _I386 || defined _M_IX86 || defined _X86_)) && !HAVE_SAME_LONG_DOUBLE_AS_DOUBLE /* Representation of an 80-bit 'long double' as an initializer for a sequence of 'unsigned int' words. */ # ifdef WORDS_BIGENDIAN # define LDBL80_WORDS(exponent,manthi,mantlo) \ { ((unsigned int) (exponent) << 16) | ((unsigned int) (manthi) >> 16), \ ((unsigned int) (manthi) << 16) | (unsigned int) (mantlo) >> 16), \ (unsigned int) (mantlo) << 16 \ } # else # define LDBL80_WORDS(exponent,manthi,mantlo) \ { mantlo, manthi, exponent } # endif { /* Quiet NaN. */ static memory_long_double x = { LDBL80_WORDS (0xFFFF, 0xC3333333, 0x00000000) }; if (!isnanl (x.value)) result |= 2; } { /* Signalling NaN. */ static memory_long_double x = { LDBL80_WORDS (0xFFFF, 0x83333333, 0x00000000) }; if (!isnanl (x.value)) result |= 2; } /* The isnanl function should recognize Pseudo-NaNs, Pseudo-Infinities, Pseudo-Zeroes, Unnormalized Numbers, and Pseudo-Denormals, as defined in Intel IA-64 Architecture Software Developer's Manual, Volume 1: Application Architecture. Table 5-2 "Floating-Point Register Encodings" Figure 5-6 "Memory to Floating-Point Register Data Translation" */ { /* Pseudo-NaN. */ static memory_long_double x = { LDBL80_WORDS (0xFFFF, 0x40000001, 0x00000000) }; if (!isnanl (x.value)) result |= 4; } { /* Pseudo-Infinity. */ static memory_long_double x = { LDBL80_WORDS (0xFFFF, 0x00000000, 0x00000000) }; if (!isnanl (x.value)) result |= 8; } { /* Pseudo-Zero. */ static memory_long_double x = { LDBL80_WORDS (0x4004, 0x00000000, 0x00000000) }; if (!isnanl (x.value)) result |= 16; } { /* Unnormalized number. */ static memory_long_double x = { LDBL80_WORDS (0x4000, 0x63333333, 0x00000000) }; if (!isnanl (x.value)) result |= 32; } { /* Pseudo-Denormal. */ static memory_long_double x = { LDBL80_WORDS (0x0000, 0x83333333, 0x00000000) }; if (!isnanl (x.value)) result |= 64; } #endif return result; }]])], [gl_cv_func_isnanl_works=yes], [gl_cv_func_isnanl_works=no], [case "$host_cpu" in # Guess no on ia64, x86_64, i386. ia64 | x86_64 | i*86) gl_cv_func_isnanl_works="guessing no";; *) case "$host_os" in netbsd*) gl_cv_func_isnanl_works="guessing no";; *) gl_cv_func_isnanl_works="guessing yes";; esac ;; esac ]) ]) ]) gcal-3.6.3/m4/fclose.m40000644000175000017500000000102312076511425011406 00000000000000# fclose.m4 serial 5 dnl Copyright (C) 2008-2013 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]) gl_FUNC_FFLUSH_STDIN if test $gl_cv_func_fflush_stdin = no; then REPLACE_FCLOSE=1 fi AC_REQUIRE([gl_FUNC_CLOSE]) if test $REPLACE_CLOSE = 1; then REPLACE_FCLOSE=1 fi ]) gcal-3.6.3/m4/link.m40000644000175000017500000000336712076511425011105 00000000000000# link.m4 serial 8 dnl Copyright (C) 2009-2013 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 ]], [[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-3.6.3/m4/gnulib-common.m40000644000175000017500000003332112076511425012707 00000000000000# gnulib-common.m4 serial 33 dnl Copyright (C) 2007-2013 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 /* 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, ranlib dnl produce libraries that work only with gcc, not with cc. AC_REQUIRE([AC_PROG_CC]) 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]) ]) if test -z "$AR"; then if test $gl_cv_c_amsterdam_compiler = yes; then AR='cc -c.a' if test -z "$ARFLAGS"; then ARFLAGS='-o' fi else dnl Use the Automake-documented default values for AR and ARFLAGS, dnl but prefer ${host}-ar over ar (useful for cross-compiling). AC_CHECK_TOOL([AR], [ar], [ar]) if test -z "$ARFLAGS"; then ARFLAGS='cru' fi fi else if test -z "$ARFLAGS"; then ARFLAGS='cru' fi 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 overrides the AC_C_RESTRICT macro from autoconf 2.60..2.61, # so that mixed use of GNU C and GNU C++ and mixed use of Sun C and Sun C++ # works. # This definition can be removed once autoconf >= 2.62 can be assumed. # AC_AUTOCONF_VERSION was introduced in 2.62, so use that as the witness. m4_ifndef([AC_AUTOCONF_VERSION],[ 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 s[1]; int * $ac_kw t = s; t[0] = 0; return foo(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, even though the corresponding Sun C compiler does, which causes "#define restrict _Restrict" in the previous line. Perhaps some future version of Sun C++ will work with _Restrict; if so, it'll probably define __RESTRICT, just as Sun C does. */ #if defined __SUNPRO_CC && !defined __RESTRICT # define _Restrict #endif]) case $ac_cv_c_restrict in restrict) ;; no) AC_DEFINE([restrict], []) ;; *) AC_DEFINE_UNQUOTED([restrict], [$ac_cv_c_restrict]) ;; esac ]) ]) # 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" ]) gcal-3.6.3/m4/floor.m40000644000175000017500000000564512076511425011272 00000000000000# floor.m4 serial 8 dnl Copyright (C) 2007, 2009-2013 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-3.6.3/m4/extensions.m40000644000175000017500000001223712116431050012331 00000000000000# serial 13 -*- Autoconf -*- # Enable extensions on systems that normally disable them. # Copyright (C) 2003, 2006-2013 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 CVS # 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 OS X. */ #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 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([_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-3.6.3/m4/fcntl_h.m40000644000175000017500000000327112076511425011557 00000000000000# serial 15 # Configure fcntl.h. dnl Copyright (C) 2006-2007, 2009-2013 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-3.6.3/m4/posix_spawn.m40000644000175000017500000003732012076511425012516 00000000000000# posix_spawn.m4 serial 11 dnl Copyright (C) 2008-2013 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-3.6.3/m4/memchr.m40000644000175000017500000000534012076511425011414 00000000000000# memchr.m4 serial 12 dnl Copyright (C) 2002-2004, 2009-2013 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-3.6.3/m4/include_next.m40000644000175000017500000002542412076511425012627 00000000000000# include_next.m4 serial 23 dnl Copyright (C) 2006-2013 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]) ]) AC_LANG_CONFTEST( [AC_LANG_SOURCE( [[#include <]]m4_dquote(m4_defn([gl_HEADER_NAME]))[[>]] )]) dnl AIX "xlc -E" and "cc -E" omit #line directives for header dnl files that contain only a #include of other header files and dnl no non-comment tokens of their own. This leads to a failure dnl to detect the absolute name of , , dnl and others. The workaround is to force preservation dnl of comments through option -C. This ensures all necessary dnl #line directives 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' changequote([,]) gl_header_literal_regex=`echo ']m4_defn([gl_HEADER_NAME])[' \ | 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/ changequote(,)dnl s|^/[^/]|//&| changequote([,])dnl p q }' 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_next_header, ['"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&AS_MESSAGE_LOG_FD | sed -n "$gl_absolute_header_sed"`'"']) 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-3.6.3/m4/spawn_h.m40000644000175000017500000001260512076511425011602 00000000000000# spawn_h.m4 serial 16 dnl Copyright (C) 2008-2013 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]) AC_CHECK_FUNCS_ONCE([posix_spawn]) 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-3.6.3/m4/inline.m40000644000175000017500000000315412076511425011420 00000000000000# inline.m4 serial 4 dnl Copyright (C) 2006, 2009-2013 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 Test for the 'inline' keyword or equivalent. dnl Define 'inline' to a supported equivalent, or to nothing if not supported, dnl like AC_C_INLINE does. Also, define HAVE_INLINE if 'inline' or an dnl equivalent is effectively supported, i.e. if the compiler is likely to dnl drop unused 'static inline' functions. AC_DEFUN([gl_INLINE], [ AC_REQUIRE([AC_C_INLINE]) AC_CACHE_CHECK([whether the compiler generally respects inline], [gl_cv_c_inline_effective], [if test $ac_cv_c_inline = no; then gl_cv_c_inline_effective=no else dnl GCC defines __NO_INLINE__ if not optimizing or if -fno-inline is dnl specified. dnl Use AC_COMPILE_IFELSE here, not AC_EGREP_CPP, because the result dnl depends on optimization flags, which can be in CFLAGS. dnl (AC_EGREP_CPP looks only at the CPPFLAGS.) AC_COMPILE_IFELSE( [AC_LANG_PROGRAM([[]], [[#ifdef __NO_INLINE__ #error "inline is not effective" #endif]])], [gl_cv_c_inline_effective=yes], [gl_cv_c_inline_effective=no]) fi ]) if test $gl_cv_c_inline_effective = yes; then AC_DEFINE([HAVE_INLINE], [1], [Define to 1 if the compiler supports one of the keywords 'inline', '__inline__', '__inline' and effectively inlines functions marked as such.]) fi ]) gcal-3.6.3/m4/libunistring-base.m40000644000175000017500000001426012076511425013563 00000000000000# libunistring-base.m4 serial 5 dnl Copyright (C) 2010-2013 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 Paolo Bonzini and Bruno Haible. dnl gl_LIBUNISTRING_MODULE([VERSION], [Module]) dnl Declares that the source files of Module should be compiled, unless we dnl are linking with libunistring and its version is >= the given VERSION. dnl Defines an automake conditional LIBUNISTRING_COMPILE_$MODULE that is dnl true if the source files of Module should be compiled. dnl This macro is to be used for public libunistring API, not for dnl undocumented API. dnl dnl You have to bump the VERSION argument to the next projected version dnl number each time you make a change that affects the behaviour of the dnl functions defined in Module (even if the sources of Module itself do not dnl change). AC_DEFUN([gl_LIBUNISTRING_MODULE], [ AC_REQUIRE([gl_LIBUNISTRING_LIB_PREPARE]) dnl Use the variables HAVE_LIBUNISTRING, LIBUNISTRING_VERSION from dnl gl_LIBUNISTRING_CORE if that macro has been run. AM_CONDITIONAL(AS_TR_CPP([LIBUNISTRING_COMPILE_$2]), [gl_LIBUNISTRING_VERSION_CMP([$1])]) ]) dnl gl_LIBUNISTRING_LIBHEADER([VERSION], [HeaderFile]) dnl Declares that HeaderFile should be created, unless we are linking dnl with libunistring and its version is >= the given VERSION. dnl HeaderFile should be relative to the lib directory and end in '.h'. dnl Prepares for substituting LIBUNISTRING_HEADERFILE (to HeaderFile or empty). dnl dnl When we are linking with the already installed libunistring and its version dnl is < VERSION, we create HeaderFile here, because we may compile functions dnl (via gl_LIBUNISTRING_MODULE above) that are not contained in the installed dnl version. dnl When we are linking with the already installed libunistring and its version dnl is > VERSION, we don't create HeaderFile here: it could cause compilation dnl errors in other libunistring header files if some types are missing. dnl dnl You have to bump the VERSION argument to the next projected version dnl number each time you make a non-comment change to the HeaderFile. AC_DEFUN([gl_LIBUNISTRING_LIBHEADER], [ AC_REQUIRE([gl_LIBUNISTRING_LIB_PREPARE]) dnl Use the variables HAVE_LIBUNISTRING, LIBUNISTRING_VERSION from dnl gl_LIBUNISTRING_CORE if that macro has been run. if gl_LIBUNISTRING_VERSION_CMP([$1]); then LIBUNISTRING_[]AS_TR_CPP([$2])='$2' else LIBUNISTRING_[]AS_TR_CPP([$2])= fi AC_SUBST([LIBUNISTRING_]AS_TR_CPP([$2])) ]) dnl Miscellaneous preparations/initializations. AC_DEFUN([gl_LIBUNISTRING_LIB_PREPARE], [ dnl Ensure that HAVE_LIBUNISTRING is fully determined at this point. m4_ifdef([gl_LIBUNISTRING], [AC_REQUIRE([gl_LIBUNISTRING])]) AC_REQUIRE([AC_PROG_AWK]) dnl Sed expressions to extract the parts of a version number. changequote(,) gl_libunistring_sed_extract_major='/^[0-9]/{s/^\([0-9]*\).*/\1/p;q;} i\ 0 q ' gl_libunistring_sed_extract_minor='/^[0-9][0-9]*[.][0-9]/{s/^[0-9]*[.]\([0-9]*\).*/\1/p;q;} i\ 0 q ' gl_libunistring_sed_extract_subminor='/^[0-9][0-9]*[.][0-9][0-9]*[.][0-9]/{s/^[0-9]*[.][0-9]*[.]\([0-9]*\).*/\1/p;q;} i\ 0 q ' changequote([,]) if test "$HAVE_LIBUNISTRING" = yes; then LIBUNISTRING_VERSION_MAJOR=`echo "$LIBUNISTRING_VERSION" | sed -n -e "$gl_libunistring_sed_extract_major"` LIBUNISTRING_VERSION_MINOR=`echo "$LIBUNISTRING_VERSION" | sed -n -e "$gl_libunistring_sed_extract_minor"` LIBUNISTRING_VERSION_SUBMINOR=`echo "$LIBUNISTRING_VERSION" | sed -n -e "$gl_libunistring_sed_extract_subminor"` fi ]) dnl gl_LIBUNISTRING_VERSION_CMP([VERSION]) dnl Expands to a shell statement that evaluates to true if LIBUNISTRING_VERSION dnl is less than the VERSION argument. AC_DEFUN([gl_LIBUNISTRING_VERSION_CMP], [ { test "$HAVE_LIBUNISTRING" != yes \ || { dnl AS_LITERAL_IF exists and works fine since autoconf-2.59 at least. AS_LITERAL_IF([$1], [dnl This is the optimized variant, that assumes the argument is a literal: m4_pushdef([requested_version_major], [gl_LIBUNISTRING_ARG_OR_ZERO(m4_bpatsubst([$1], [^\([0-9]*\).*], [\1]), [])]) m4_pushdef([requested_version_minor], [gl_LIBUNISTRING_ARG_OR_ZERO(m4_bpatsubst([$1], [^[0-9]*[.]\([0-9]*\).*], [\1]), [$1])]) m4_pushdef([requested_version_subminor], [gl_LIBUNISTRING_ARG_OR_ZERO(m4_bpatsubst([$1], [^[0-9]*[.][0-9]*[.]\([0-9]*\).*], [\1]), [$1])]) test $LIBUNISTRING_VERSION_MAJOR -lt requested_version_major \ || { test $LIBUNISTRING_VERSION_MAJOR -eq requested_version_major \ && { test $LIBUNISTRING_VERSION_MINOR -lt requested_version_minor \ || { test $LIBUNISTRING_VERSION_MINOR -eq requested_version_minor \ && test $LIBUNISTRING_VERSION_SUBMINOR -lt requested_version_subminor } } } m4_popdef([requested_version_subminor]) m4_popdef([requested_version_minor]) m4_popdef([requested_version_major]) ], [dnl This is the unoptimized variant: requested_version_major=`echo '$1' | sed -n -e "$gl_libunistring_sed_extract_major"` requested_version_minor=`echo '$1' | sed -n -e "$gl_libunistring_sed_extract_minor"` requested_version_subminor=`echo '$1' | sed -n -e "$gl_libunistring_sed_extract_subminor"` test $LIBUNISTRING_VERSION_MAJOR -lt $requested_version_major \ || { test $LIBUNISTRING_VERSION_MAJOR -eq $requested_version_major \ && { test $LIBUNISTRING_VERSION_MINOR -lt $requested_version_minor \ || { test $LIBUNISTRING_VERSION_MINOR -eq $requested_version_minor \ && test $LIBUNISTRING_VERSION_SUBMINOR -lt $requested_version_subminor } } } ]) } }]) dnl gl_LIBUNISTRING_ARG_OR_ZERO([ARG], [ORIG]) expands to ARG if it is not the dnl same as ORIG, otherwise to 0. m4_define([gl_LIBUNISTRING_ARG_OR_ZERO], [m4_if([$1], [$2], [0], [$1])]) gcal-3.6.3/m4/environ.m40000644000175000017500000000261612076511425011624 00000000000000# environ.m4 serial 6 dnl Copyright (C) 2001-2004, 2006-2013 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-3.6.3/m4/pipe2.m40000644000175000017500000000102312076511425011152 00000000000000# pipe2.m4 serial 2 dnl Copyright (C) 2009-2013 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-3.6.3/m4/strings_h.m40000644000175000017500000000316312076511425012142 00000000000000# Configure a replacement for . # serial 6 # Copyright (C) 2007, 2009-2013 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-3.6.3/m4/error.m40000644000175000017500000000151012076511425011265 00000000000000#serial 14 # Copyright (C) 1996-1998, 2001-2004, 2009-2013 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-3.6.3/m4/asin.m40000644000175000017500000000055612076511425011077 00000000000000# asin.m4 serial 1 dnl Copyright (C) 2011-2013 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-3.6.3/m4/ioctl.m40000644000175000017500000000265612076511425011262 00000000000000# ioctl.m4 serial 4 dnl Copyright (C) 2008-2013 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-3.6.3/m4/tmpdir.m40000644000175000017500000000054112116431050011424 00000000000000# tmpdir.m4 serial 4 dnl Copyright (C) 2001-2002, 2006, 2009-2013 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-3.6.3/m4/frexpl.m40000644000175000017500000001553512076511425011450 00000000000000# frexpl.m4 serial 20 dnl Copyright (C) 2007-2013 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_FREXPL], [ AC_REQUIRE([gl_MATH_H_DEFAULTS]) AC_REQUIRE([gl_LONG_DOUBLE_VS_DOUBLE]) dnl Persuade glibc to declare frexpl(). AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS]) dnl Check whether it's declared. dnl Mac OS X 10.3 has frexpl() in libc but doesn't declare it in . AC_CHECK_DECL([frexpl], , [HAVE_DECL_FREXPL=0], [[#include ]]) FREXPL_LIBM= if test $HAVE_DECL_FREXPL = 1; then gl_CHECK_FREXPL_NO_LIBM if test $gl_cv_func_frexpl_no_libm = no; then AC_CACHE_CHECK([whether frexpl() can be used with libm], [gl_cv_func_frexpl_in_libm], [ save_LIBS="$LIBS" LIBS="$LIBS -lm" AC_LINK_IFELSE( [AC_LANG_PROGRAM( [[#include long double x;]], [[int e; return frexpl (x, &e) > 0;]])], [gl_cv_func_frexpl_in_libm=yes], [gl_cv_func_frexpl_in_libm=no]) LIBS="$save_LIBS" ]) if test $gl_cv_func_frexpl_in_libm = yes; then FREXPL_LIBM=-lm fi fi if test $gl_cv_func_frexpl_no_libm = yes \ || test $gl_cv_func_frexpl_in_libm = yes; then save_LIBS="$LIBS" LIBS="$LIBS $FREXPL_LIBM" gl_FUNC_FREXPL_WORKS LIBS="$save_LIBS" case "$gl_cv_func_frexpl_works" in *yes) gl_func_frexpl=yes ;; *) gl_func_frexpl=no; REPLACE_FREXPL=1 ;; esac else gl_func_frexpl=no fi if test $gl_func_frexpl = yes; then AC_DEFINE([HAVE_FREXPL], [1], [Define if the frexpl() function is available.]) fi fi if test $HAVE_DECL_FREXPL = 0 || test $gl_func_frexpl = no; then dnl Find libraries needed to link lib/frexpl.c. if test $HAVE_SAME_LONG_DOUBLE_AS_DOUBLE = 1; then AC_REQUIRE([gl_FUNC_FREXP]) FREXPL_LIBM="$FREXP_LIBM" else FREXPL_LIBM= fi fi AC_SUBST([FREXPL_LIBM]) ]) AC_DEFUN([gl_FUNC_FREXPL_NO_LIBM], [ AC_REQUIRE([gl_MATH_H_DEFAULTS]) AC_REQUIRE([gl_LONG_DOUBLE_VS_DOUBLE]) dnl Check whether it's declared. dnl Mac OS X 10.3 has frexpl() in libc but doesn't declare it in . AC_CHECK_DECL([frexpl], , [HAVE_DECL_FREXPL=0], [[#include ]]) if test $HAVE_DECL_FREXPL = 1; then gl_CHECK_FREXPL_NO_LIBM if test $gl_cv_func_frexpl_no_libm = yes; then gl_FUNC_FREXPL_WORKS case "$gl_cv_func_frexpl_works" in *yes) gl_func_frexpl_no_libm=yes ;; *) gl_func_frexpl_no_libm=no; REPLACE_FREXPL=1 ;; esac else gl_func_frexpl_no_libm=no dnl Set REPLACE_FREXPL here because the system may have frexpl in libm. REPLACE_FREXPL=1 fi if test $gl_func_frexpl_no_libm = yes; then AC_DEFINE([HAVE_FREXPL_IN_LIBC], [1], [Define if the frexpl() function is available in libc.]) fi fi ]) dnl Test whether frexpl() can be used without linking with libm. dnl Set gl_cv_func_frexpl_no_libm to 'yes' or 'no' accordingly. AC_DEFUN([gl_CHECK_FREXPL_NO_LIBM], [ AC_CACHE_CHECK([whether frexpl() can be used without linking with libm], [gl_cv_func_frexpl_no_libm], [ AC_LINK_IFELSE( [AC_LANG_PROGRAM( [[#include long double x;]], [[int e; return frexpl (x, &e) > 0;]])], [gl_cv_func_frexpl_no_libm=yes], [gl_cv_func_frexpl_no_libm=no]) ]) ]) dnl Test whether frexpl() works on finite numbers (this fails on dnl Mac OS X 10.4/PowerPC, on AIX 5.1, and on BeOS), on denormalized numbers dnl (this fails on Mac OS X 10.5/i386), and also on infinite numbers (this dnl fails e.g. on IRIX 6.5 and mingw). AC_DEFUN([gl_FUNC_FREXPL_WORKS], [ AC_REQUIRE([AC_PROG_CC]) AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles AC_CACHE_CHECK([whether frexpl works], [gl_cv_func_frexpl_works], [ AC_RUN_IFELSE( [AC_LANG_SOURCE([[ #include #include /* Override the values of , like done in float.in.h. */ #if defined __i386__ && (defined __BEOS__ || defined __OpenBSD__) # undef LDBL_MIN_EXP # define LDBL_MIN_EXP (-16381) #endif #if defined __i386__ && defined __FreeBSD__ # undef LDBL_MIN_EXP # define LDBL_MIN_EXP (-16381) #endif #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 #endif #if defined __sgi && (LDBL_MANT_DIG >= 106) # if defined __GNUC__ # undef LDBL_MIN_EXP # define LDBL_MIN_EXP DBL_MIN_EXP # endif #endif extern #ifdef __cplusplus "C" #endif long double frexpl (long double, int *); int main() { int result = 0; volatile long double x; /* Test on finite numbers that fails on AIX 5.1. */ x = 16.0L; { int exp = -9999; frexpl (x, &exp); if (exp != 5) result |= 1; } /* Test on finite numbers that fails on Mac OS X 10.4, because its frexpl function returns an invalid (incorrectly normalized) value: it returns y = { 0x3fe028f5, 0xc28f5c28, 0x3c9eb851, 0xeb851eb8 } but the correct result is 0.505L = { 0x3fe028f5, 0xc28f5c29, 0xbc547ae1, 0x47ae1480 } */ x = 1.01L; { int exp = -9999; long double y = frexpl (x, &exp); if (!(exp == 1 && y == 0.505L)) result |= 2; } /* Test on large finite numbers. This fails on BeOS at i = 16322, while LDBL_MAX_EXP = 16384. In the loop end test, we test x against Infinity, rather than comparing i with LDBL_MAX_EXP, because BeOS has a wrong LDBL_MAX_EXP. */ { int i; for (i = 1, x = 1.0L; x != x + x; i++, x *= 2.0L) { int exp = -9999; frexpl (x, &exp); if (exp != i) { result |= 4; break; } } } /* Test on denormalized numbers. */ { int i; for (i = 1, x = 1.0L; i >= LDBL_MIN_EXP; i--, x *= 0.5L) ; if (x > 0.0L) { int exp; long double y = frexpl (x, &exp); /* On machines with IEEE854 arithmetic: x = 1.68105e-4932, exp = -16382, y = 0.5. On Mac OS X 10.5: exp = -16384, y = 0.5. */ if (exp != LDBL_MIN_EXP - 1) result |= 8; } } /* Test on infinite numbers. */ x = 1.0L / 0.0L; { int exp; long double y = frexpl (x, &exp); if (y != x) result |= 16; } return result; }]])], [gl_cv_func_frexpl_works=yes], [gl_cv_func_frexpl_works=no], [ changequote(,)dnl case "$host_os" in aix | aix[3-6]* | beos* | darwin* | irix* | mingw* | pw*) gl_cv_func_frexpl_works="guessing no";; *) gl_cv_func_frexpl_works="guessing yes";; esac changequote([,])dnl ]) ]) ]) gcal-3.6.3/m4/regex.m40000644000175000017500000002533012121155160011243 00000000000000# serial 64 # Copyright (C) 1996-2001, 2003-2013 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_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 HAVE_DECL_ALARM # include # include #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; #if HAVE_DECL_ALARM /* Some builds of glibc go into an infinite loop on this test. */ signal (SIGALRM, SIG_DFL); alarm (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; } { /* 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\xbax"; re_set_syntax (0); 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, 0) != 21) result |= 1; } 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_CHECK_HEADERS([libintl.h]) AC_CHECK_FUNCS_ONCE([isblank iswctype wcscoll]) AC_CHECK_DECLS([isblank], [], [], [[#include ]]) ]) gcal-3.6.3/m4/wint_t.m40000644000175000017500000000203512076511425011443 00000000000000# wint_t.m4 serial 5 (gettext-0.18.2) dnl Copyright (C) 2003, 2007-2013 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. 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.]) fi ]) gcal-3.6.3/m4/wcrtomb.m40000644000175000017500000000661012076511425011617 00000000000000# wcrtomb.m4 serial 11 dnl Copyright (C) 2008-2013 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-3.6.3/m4/fseek.m40000644000175000017500000000100512076511425011230 00000000000000# fseek.m4 serial 4 dnl Copyright (C) 2007, 2009-2013 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-3.6.3/m4/locale-fr.m40000644000175000017500000002422512076511425012010 00000000000000# locale-fr.m4 serial 17 dnl Copyright (C) 2003, 2005-2013 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-3.6.3/m4/mkostemp.m40000644000175000017500000000115512076511425012000 00000000000000# mkostemp.m4 serial 2 dnl Copyright (C) 2009-2013 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-3.6.3/m4/lseek.m40000644000175000017500000000436112076511425011246 00000000000000# lseek.m4 serial 10 dnl Copyright (C) 2007, 2009-2013 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-3.6.3/m4/freading.m40000644000175000017500000000054112076511425011716 00000000000000# freading.m4 serial 1 dnl Copyright (C) 2007, 2009-2013 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-3.6.3/m4/pathmax.m40000644000175000017500000000220412076511425011577 00000000000000# pathmax.m4 serial 10 dnl Copyright (C) 2002-2003, 2005-2006, 2009-2013 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-3.6.3/m4/iconv.m40000644000175000017500000002162012076511425011256 00000000000000# iconv.m4 serial 18 (gettext-0.18.2) dnl Copyright (C) 2000-2002, 2007-2013 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 AC_RUN_IFELSE( [AC_LANG_SOURCE([[ #include #include 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 const char input[] = "\342\202\254"; /* EURO SIGN */ char buf[10]; 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, (char **) &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 const char input[] = "\263"; char buf[10]; 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, (char **) &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 const char input[] = "\304"; static char buf[2] = { (char)0xDE, (char)0xAD }; const char *inptr = input; size_t inbytesleft = 1; char *outptr = buf; size_t outbytesleft = 1; size_t res = iconv (cd_88591_to_utf8, (char **) &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 const char input[] = "\304rger mit b\366sen B\374bchen ohne Augenma\337"; char buf[50]; 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, (char **) &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], [am_cv_func_iconv_works=no], [ changequote(,)dnl case "$host_os" in aix* | hpux*) am_cv_func_iconv_works="guessing no" ;; *) am_cv_func_iconv_works="guessing yes" ;; esac changequote([,])dnl ]) 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]) 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 ]) fi ]) gcal-3.6.3/m4/wchar_h.m40000644000175000017500000002224012076511425011552 00000000000000dnl A placeholder for ISO C99 , for platforms that have issues. dnl Copyright (C) 2007-2013 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 39 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(); } ]])]) if AC_TRY_EVAL([ac_compile]); then mv conftest.$ac_objext conftest1.$ac_objext 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; } ]])]) if AC_TRY_EVAL([ac_compile]); then mv conftest.$ac_objext conftest2.$ac_objext 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 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-3.6.3/m4/isnand.m40000644000175000017500000000525112076511425011416 00000000000000# isnand.m4 serial 11 dnl Copyright (C) 2007-2013 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 how to get or define isnand(). AC_DEFUN([gl_FUNC_ISNAND], [ AC_REQUIRE([gl_MATH_H_DEFAULTS]) ISNAND_LIBM= gl_HAVE_ISNAND_NO_LIBM if test $gl_cv_func_isnand_no_libm = no; then gl_HAVE_ISNAND_IN_LIBM if test $gl_cv_func_isnand_in_libm = yes; then ISNAND_LIBM=-lm fi fi dnl The variable gl_func_isnand set here is used by isnan.m4. if test $gl_cv_func_isnand_no_libm = yes \ || test $gl_cv_func_isnand_in_libm = yes; then gl_func_isnand=yes else gl_func_isnand=no HAVE_ISNAND=0 fi AC_SUBST([ISNAND_LIBM]) ]) dnl Check how to get or define isnand() without linking with libm. AC_DEFUN([gl_FUNC_ISNAND_NO_LIBM], [ gl_HAVE_ISNAND_NO_LIBM gl_func_isnand_no_libm=$gl_cv_func_isnand_no_libm if test $gl_cv_func_isnand_no_libm = yes; then AC_DEFINE([HAVE_ISNAND_IN_LIBC], [1], [Define if the isnan(double) function is available in libc.]) fi ]) dnl Prerequisites of replacement isnand definition. It does not need -lm. AC_DEFUN([gl_PREREQ_ISNAND], [ AC_REQUIRE([gl_DOUBLE_EXPONENT_LOCATION]) ]) dnl Test whether isnand() can be used with libm. AC_DEFUN([gl_HAVE_ISNAND_IN_LIBM], [ AC_CACHE_CHECK([whether isnan(double) can be used with libm], [gl_cv_func_isnand_in_libm], [ save_LIBS="$LIBS" LIBS="$LIBS -lm" AC_LINK_IFELSE( [AC_LANG_PROGRAM( [[#include #if __GNUC__ >= 4 # undef isnand # define isnand(x) __builtin_isnan ((double)(x)) #elif defined isnan # undef isnand # define isnand(x) isnan ((double)(x)) #endif double x;]], [[return isnand (x);]])], [gl_cv_func_isnand_in_libm=yes], [gl_cv_func_isnand_in_libm=no]) LIBS="$save_LIBS" ]) ]) AC_DEFUN([gl_HAVE_ISNAND_NO_LIBM], [ AC_CACHE_CHECK([whether isnan(double) can be used without linking with libm], [gl_cv_func_isnand_no_libm], [ AC_LINK_IFELSE( [AC_LANG_PROGRAM( [[#include #if __GNUC__ >= 4 # undef isnand # define isnand(x) __builtin_isnan ((double)(x)) #else # undef isnand # define isnand(x) isnan ((double)(x)) #endif double x;]], [[return isnand (x);]])], [gl_cv_func_isnand_no_libm=yes], [gl_cv_func_isnand_no_libm=no]) ]) ]) gcal-3.6.3/m4/strerror.m40000644000175000017500000000623612076511425012030 00000000000000# strerror.m4 serial 17 dnl Copyright (C) 2002, 2007-2013 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-3.6.3/m4/xsize.m40000644000175000017500000000062612076511425011305 00000000000000# xsize.m4 serial 5 dnl Copyright (C) 2003-2004, 2008-2013 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_XSIZE], [ dnl Prerequisites of lib/xsize.h. AC_REQUIRE([gl_SIZE_MAX]) AC_CHECK_HEADERS([stdint.h]) ]) gcal-3.6.3/m4/threadlib.m40000644000175000017500000003414312076511425012102 00000000000000# threadlib.m4 serial 10 (gettext-0.18.2) dnl Copyright (C) 2005-2013 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="" whereas LIBMULTITHREAD="-lpthread". 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. AC_LINK_IFELSE( [AC_LANG_PROGRAM( [[#include ]], [[pthread_mutex_lock((pthread_mutex_t*)0); pthread_mutexattr_init((pthread_mutexattr_t*)0);]])], [gl_have_pthread=yes]) # 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"; 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. case "$host_os" in solaris* | hpux*) AC_DEFINE([PTHREAD_IN_USE_DETECTION_HARD], [1], [Define if the pthread_in_use() detection is hard.]) esac ]) else # 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 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-3.6.3/m4/exponentf.m40000644000175000017500000000545612076511425012157 00000000000000# exponentf.m4 serial 2 dnl Copyright (C) 2007-2008, 2010-2013 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_EXPONENT_LOCATION], [ AC_CACHE_CHECK([where to find the exponent in a 'float'], [gl_cv_cc_float_expbit0], [ AC_RUN_IFELSE( [AC_LANG_SOURCE([[ #include #include #include #include #define NWORDS \ ((sizeof (float) + sizeof (unsigned int) - 1) / sizeof (unsigned int)) typedef union { float value; unsigned int word[NWORDS]; } memory_float; static unsigned int ored_words[NWORDS]; static unsigned int anded_words[NWORDS]; static void add_to_ored_words (float x) { memory_float m; size_t i; /* Clear it first, in case sizeof (float) < sizeof (memory_float). */ memset (&m, 0, sizeof (memory_float)); m.value = x; for (i = 0; i < NWORDS; i++) { ored_words[i] |= m.word[i]; anded_words[i] &= m.word[i]; } } int main () { size_t j; FILE *fp = fopen ("conftest.out", "w"); if (fp == NULL) return 1; for (j = 0; j < NWORDS; j++) anded_words[j] = ~ (unsigned int) 0; add_to_ored_words (0.25f); add_to_ored_words (0.5f); add_to_ored_words (1.0f); add_to_ored_words (2.0f); add_to_ored_words (4.0f); /* Remove bits that are common (e.g. if representation of the first mantissa bit is explicit). */ for (j = 0; j < NWORDS; j++) ored_words[j] &= ~anded_words[j]; /* Now find the nonzero word. */ for (j = 0; j < NWORDS; j++) if (ored_words[j] != 0) break; if (j < NWORDS) { size_t i; for (i = j + 1; i < NWORDS; i++) if (ored_words[i] != 0) { fprintf (fp, "unknown"); return (fclose (fp) != 0); } for (i = 0; ; i++) if ((ored_words[j] >> i) & 1) { fprintf (fp, "word %d bit %d", (int) j, (int) i); return (fclose (fp) != 0); } } fprintf (fp, "unknown"); return (fclose (fp) != 0); } ]])], [gl_cv_cc_float_expbit0=`cat conftest.out`], [gl_cv_cc_float_expbit0="unknown"], [gl_cv_cc_float_expbit0="word 0 bit 23"]) rm -f conftest.out ]) case "$gl_cv_cc_float_expbit0" in word*bit*) word=`echo "$gl_cv_cc_float_expbit0" | sed -e 's/word //' -e 's/ bit.*//'` bit=`echo "$gl_cv_cc_float_expbit0" | sed -e 's/word.*bit //'` AC_DEFINE_UNQUOTED([FLT_EXPBIT0_WORD], [$word], [Define as the word index where to find the exponent of 'float'.]) AC_DEFINE_UNQUOTED([FLT_EXPBIT0_BIT], [$bit], [Define as the bit index in the word where to find bit 0 of the exponent of 'float'.]) ;; esac ]) gcal-3.6.3/m4/open.m40000644000175000017500000000504612076511425011105 00000000000000# open.m4 serial 14 dnl Copyright (C) 2007-2013 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-3.6.3/m4/wchar_t.m40000644000175000017500000000146212076511425011571 00000000000000# wchar_t.m4 serial 4 (gettext-0.18.2) dnl Copyright (C) 2002-2003, 2008-2013 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-3.6.3/m4/printf.m40000644000175000017500000016635012076511425011454 00000000000000# printf.m4 serial 50 dnl Copyright (C) 2003, 2007-2013 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 Test whether the *printf family of functions supports the 'j', 'z', 't', dnl 'L' size specifiers. (ISO C99, POSIX:2001) dnl Result is gl_cv_func_printf_sizes_c99. AC_DEFUN([gl_PRINTF_SIZES_C99], [ AC_REQUIRE([AC_PROG_CC]) AC_REQUIRE([gl_AC_HEADER_STDINT_H]) AC_REQUIRE([gl_AC_HEADER_INTTYPES_H]) AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles AC_CACHE_CHECK([whether printf supports size specifiers as in C99], [gl_cv_func_printf_sizes_c99], [ AC_RUN_IFELSE( [AC_LANG_SOURCE([[ #include #include #include #include #if HAVE_STDINT_H_WITH_UINTMAX # include #endif #if HAVE_INTTYPES_H_WITH_UINTMAX # include #endif static char buf[100]; int main () { int result = 0; #if HAVE_STDINT_H_WITH_UINTMAX || HAVE_INTTYPES_H_WITH_UINTMAX buf[0] = '\0'; if (sprintf (buf, "%ju %d", (uintmax_t) 12345671, 33, 44, 55) < 0 || strcmp (buf, "12345671 33") != 0) result |= 1; #endif buf[0] = '\0'; if (sprintf (buf, "%zu %d", (size_t) 12345672, 33, 44, 55) < 0 || strcmp (buf, "12345672 33") != 0) result |= 2; buf[0] = '\0'; if (sprintf (buf, "%tu %d", (ptrdiff_t) 12345673, 33, 44, 55) < 0 || strcmp (buf, "12345673 33") != 0) result |= 4; buf[0] = '\0'; if (sprintf (buf, "%Lg %d", (long double) 1.5, 33, 44, 55) < 0 || strcmp (buf, "1.5 33") != 0) result |= 8; return result; }]])], [gl_cv_func_printf_sizes_c99=yes], [gl_cv_func_printf_sizes_c99=no], [ changequote(,)dnl case "$host_os" in # Guess yes on glibc systems. *-gnu*) gl_cv_func_printf_sizes_c99="guessing yes";; # Guess yes on FreeBSD >= 5. freebsd[1-4]*) gl_cv_func_printf_sizes_c99="guessing no";; freebsd* | kfreebsd*) gl_cv_func_printf_sizes_c99="guessing yes";; # Guess yes on Mac OS X >= 10.3. darwin[1-6].*) gl_cv_func_printf_sizes_c99="guessing no";; darwin*) gl_cv_func_printf_sizes_c99="guessing yes";; # Guess yes on OpenBSD >= 3.9. openbsd[1-2].* | openbsd3.[0-8] | openbsd3.[0-8].*) gl_cv_func_printf_sizes_c99="guessing no";; openbsd*) gl_cv_func_printf_sizes_c99="guessing yes";; # Guess yes on Solaris >= 2.10. solaris2.[1-9][0-9]*) gl_cv_func_printf_sizes_c99="guessing yes";; solaris*) gl_cv_func_printf_sizes_c99="guessing no";; # Guess yes on NetBSD >= 3. netbsd[1-2]* | netbsdelf[1-2]* | netbsdaout[1-2]* | netbsdcoff[1-2]*) gl_cv_func_printf_sizes_c99="guessing no";; netbsd*) gl_cv_func_printf_sizes_c99="guessing yes";; # If we don't know, assume the worst. *) gl_cv_func_printf_sizes_c99="guessing no";; esac changequote([,])dnl ]) ]) ]) dnl Test whether the *printf family of functions supports 'long double' dnl arguments together with the 'L' size specifier. (ISO C99, POSIX:2001) dnl Result is gl_cv_func_printf_long_double. AC_DEFUN([gl_PRINTF_LONG_DOUBLE], [ AC_REQUIRE([AC_PROG_CC]) AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles AC_CACHE_CHECK([whether printf supports 'long double' arguments], [gl_cv_func_printf_long_double], [ AC_RUN_IFELSE( [AC_LANG_SOURCE([[ #include #include static char buf[10000]; int main () { int result = 0; buf[0] = '\0'; if (sprintf (buf, "%Lf %d", 1.75L, 33, 44, 55) < 0 || strcmp (buf, "1.750000 33") != 0) result |= 1; buf[0] = '\0'; if (sprintf (buf, "%Le %d", 1.75L, 33, 44, 55) < 0 || strcmp (buf, "1.750000e+00 33") != 0) result |= 2; buf[0] = '\0'; if (sprintf (buf, "%Lg %d", 1.75L, 33, 44, 55) < 0 || strcmp (buf, "1.75 33") != 0) result |= 4; return result; }]])], [gl_cv_func_printf_long_double=yes], [gl_cv_func_printf_long_double=no], [ changequote(,)dnl case "$host_os" in beos*) gl_cv_func_printf_long_double="guessing no";; mingw* | pw*) gl_cv_func_printf_long_double="guessing no";; *) gl_cv_func_printf_long_double="guessing yes";; esac changequote([,])dnl ]) ]) ]) dnl Test whether the *printf family of functions supports infinite and NaN dnl 'double' arguments and negative zero arguments in the %f, %e, %g dnl directives. (ISO C99, POSIX:2001) dnl Result is gl_cv_func_printf_infinite. AC_DEFUN([gl_PRINTF_INFINITE], [ AC_REQUIRE([AC_PROG_CC]) AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles AC_CACHE_CHECK([whether printf supports infinite 'double' arguments], [gl_cv_func_printf_infinite], [ AC_RUN_IFELSE( [AC_LANG_SOURCE([[ #include #include static int strisnan (const char *string, size_t start_index, size_t end_index) { if (start_index < end_index) { if (string[start_index] == '-') start_index++; if (start_index + 3 <= end_index && memcmp (string + start_index, "nan", 3) == 0) { start_index += 3; if (start_index == end_index || (string[start_index] == '(' && string[end_index - 1] == ')')) return 1; } } return 0; } static int have_minus_zero () { static double plus_zero = 0.0; double minus_zero = - plus_zero; return memcmp (&plus_zero, &minus_zero, sizeof (double)) != 0; } static char buf[10000]; static double zero = 0.0; int main () { int result = 0; if (sprintf (buf, "%f", 1.0 / zero) < 0 || (strcmp (buf, "inf") != 0 && strcmp (buf, "infinity") != 0)) result |= 1; if (sprintf (buf, "%f", -1.0 / zero) < 0 || (strcmp (buf, "-inf") != 0 && strcmp (buf, "-infinity") != 0)) result |= 1; if (sprintf (buf, "%f", zero / zero) < 0 || !strisnan (buf, 0, strlen (buf))) result |= 2; if (sprintf (buf, "%e", 1.0 / zero) < 0 || (strcmp (buf, "inf") != 0 && strcmp (buf, "infinity") != 0)) result |= 4; if (sprintf (buf, "%e", -1.0 / zero) < 0 || (strcmp (buf, "-inf") != 0 && strcmp (buf, "-infinity") != 0)) result |= 4; if (sprintf (buf, "%e", zero / zero) < 0 || !strisnan (buf, 0, strlen (buf))) result |= 8; if (sprintf (buf, "%g", 1.0 / zero) < 0 || (strcmp (buf, "inf") != 0 && strcmp (buf, "infinity") != 0)) result |= 16; if (sprintf (buf, "%g", -1.0 / zero) < 0 || (strcmp (buf, "-inf") != 0 && strcmp (buf, "-infinity") != 0)) result |= 16; if (sprintf (buf, "%g", zero / zero) < 0 || !strisnan (buf, 0, strlen (buf))) result |= 32; /* This test fails on HP-UX 10.20. */ if (have_minus_zero ()) if (sprintf (buf, "%g", - zero) < 0 || strcmp (buf, "-0") != 0) result |= 64; return result; }]])], [gl_cv_func_printf_infinite=yes], [gl_cv_func_printf_infinite=no], [ changequote(,)dnl case "$host_os" in # Guess yes on glibc systems. *-gnu*) gl_cv_func_printf_infinite="guessing yes";; # Guess yes on FreeBSD >= 6. freebsd[1-5]*) gl_cv_func_printf_infinite="guessing no";; freebsd* | kfreebsd*) gl_cv_func_printf_infinite="guessing yes";; # Guess yes on Mac OS X >= 10.3. darwin[1-6].*) gl_cv_func_printf_infinite="guessing no";; darwin*) gl_cv_func_printf_infinite="guessing yes";; # Guess yes on HP-UX >= 11. hpux[7-9]* | hpux10*) gl_cv_func_printf_infinite="guessing no";; hpux*) gl_cv_func_printf_infinite="guessing yes";; # Guess yes on NetBSD >= 3. netbsd[1-2]* | netbsdelf[1-2]* | netbsdaout[1-2]* | netbsdcoff[1-2]*) gl_cv_func_printf_infinite="guessing no";; netbsd*) gl_cv_func_printf_infinite="guessing yes";; # Guess yes on BeOS. beos*) gl_cv_func_printf_infinite="guessing yes";; # If we don't know, assume the worst. *) gl_cv_func_printf_infinite="guessing no";; esac changequote([,])dnl ]) ]) ]) dnl Test whether the *printf family of functions supports infinite and NaN dnl 'long double' arguments in the %f, %e, %g directives. (ISO C99, POSIX:2001) dnl Result is gl_cv_func_printf_infinite_long_double. AC_DEFUN([gl_PRINTF_INFINITE_LONG_DOUBLE], [ AC_REQUIRE([gl_PRINTF_LONG_DOUBLE]) AC_REQUIRE([AC_PROG_CC]) AC_REQUIRE([gl_BIGENDIAN]) AC_REQUIRE([gl_LONG_DOUBLE_VS_DOUBLE]) AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles dnl The user can set or unset the variable gl_printf_safe to indicate dnl that he wishes a safe handling of non-IEEE-754 'long double' values. if test -n "$gl_printf_safe"; then AC_DEFINE([CHECK_PRINTF_SAFE], [1], [Define if you wish *printf() functions that have a safe handling of non-IEEE-754 'long double' values.]) fi case "$gl_cv_func_printf_long_double" in *yes) AC_CACHE_CHECK([whether printf supports infinite 'long double' arguments], [gl_cv_func_printf_infinite_long_double], [ AC_RUN_IFELSE( [AC_LANG_SOURCE([[ ]GL_NOCRASH[ #include #include #include static int strisnan (const char *string, size_t start_index, size_t end_index) { if (start_index < end_index) { if (string[start_index] == '-') start_index++; if (start_index + 3 <= end_index && memcmp (string + start_index, "nan", 3) == 0) { start_index += 3; if (start_index == end_index || (string[start_index] == '(' && string[end_index - 1] == ')')) return 1; } } return 0; } static char buf[10000]; static long double zeroL = 0.0L; int main () { int result = 0; nocrash_init(); if (sprintf (buf, "%Lf", 1.0L / zeroL) < 0 || (strcmp (buf, "inf") != 0 && strcmp (buf, "infinity") != 0)) result |= 1; if (sprintf (buf, "%Lf", -1.0L / zeroL) < 0 || (strcmp (buf, "-inf") != 0 && strcmp (buf, "-infinity") != 0)) result |= 1; if (sprintf (buf, "%Lf", zeroL / zeroL) < 0 || !strisnan (buf, 0, strlen (buf))) result |= 1; if (sprintf (buf, "%Le", 1.0L / zeroL) < 0 || (strcmp (buf, "inf") != 0 && strcmp (buf, "infinity") != 0)) result |= 1; if (sprintf (buf, "%Le", -1.0L / zeroL) < 0 || (strcmp (buf, "-inf") != 0 && strcmp (buf, "-infinity") != 0)) result |= 1; if (sprintf (buf, "%Le", zeroL / zeroL) < 0 || !strisnan (buf, 0, strlen (buf))) result |= 1; if (sprintf (buf, "%Lg", 1.0L / zeroL) < 0 || (strcmp (buf, "inf") != 0 && strcmp (buf, "infinity") != 0)) result |= 1; if (sprintf (buf, "%Lg", -1.0L / zeroL) < 0 || (strcmp (buf, "-inf") != 0 && strcmp (buf, "-infinity") != 0)) result |= 1; if (sprintf (buf, "%Lg", zeroL / zeroL) < 0 || !strisnan (buf, 0, strlen (buf))) result |= 1; #if CHECK_PRINTF_SAFE && ((defined __ia64 && LDBL_MANT_DIG == 64) || (defined __x86_64__ || defined __amd64__) || (defined __i386 || defined __i386__ || defined _I386 || defined _M_IX86 || defined _X86_)) && !HAVE_SAME_LONG_DOUBLE_AS_DOUBLE /* Representation of an 80-bit 'long double' as an initializer for a sequence of 'unsigned int' words. */ # ifdef WORDS_BIGENDIAN # define LDBL80_WORDS(exponent,manthi,mantlo) \ { ((unsigned int) (exponent) << 16) | ((unsigned int) (manthi) >> 16), \ ((unsigned int) (manthi) << 16) | (unsigned int) (mantlo) >> 16), \ (unsigned int) (mantlo) << 16 \ } # else # define LDBL80_WORDS(exponent,manthi,mantlo) \ { mantlo, manthi, exponent } # endif { /* Quiet NaN. */ static union { unsigned int word[4]; long double value; } x = { LDBL80_WORDS (0xFFFF, 0xC3333333, 0x00000000) }; if (sprintf (buf, "%Lf", x.value) < 0 || !strisnan (buf, 0, strlen (buf))) result |= 2; if (sprintf (buf, "%Le", x.value) < 0 || !strisnan (buf, 0, strlen (buf))) result |= 2; if (sprintf (buf, "%Lg", x.value) < 0 || !strisnan (buf, 0, strlen (buf))) result |= 2; } { /* Signalling NaN. */ static union { unsigned int word[4]; long double value; } x = { LDBL80_WORDS (0xFFFF, 0x83333333, 0x00000000) }; if (sprintf (buf, "%Lf", x.value) < 0 || !strisnan (buf, 0, strlen (buf))) result |= 2; if (sprintf (buf, "%Le", x.value) < 0 || !strisnan (buf, 0, strlen (buf))) result |= 2; if (sprintf (buf, "%Lg", x.value) < 0 || !strisnan (buf, 0, strlen (buf))) result |= 2; } { /* Pseudo-NaN. */ static union { unsigned int word[4]; long double value; } x = { LDBL80_WORDS (0xFFFF, 0x40000001, 0x00000000) }; if (sprintf (buf, "%Lf", x.value) < 0 || !strisnan (buf, 0, strlen (buf))) result |= 4; if (sprintf (buf, "%Le", x.value) < 0 || !strisnan (buf, 0, strlen (buf))) result |= 4; if (sprintf (buf, "%Lg", x.value) < 0 || !strisnan (buf, 0, strlen (buf))) result |= 4; } { /* Pseudo-Infinity. */ static union { unsigned int word[4]; long double value; } x = { LDBL80_WORDS (0xFFFF, 0x00000000, 0x00000000) }; if (sprintf (buf, "%Lf", x.value) < 0 || !strisnan (buf, 0, strlen (buf))) result |= 8; if (sprintf (buf, "%Le", x.value) < 0 || !strisnan (buf, 0, strlen (buf))) result |= 8; if (sprintf (buf, "%Lg", x.value) < 0 || !strisnan (buf, 0, strlen (buf))) result |= 8; } { /* Pseudo-Zero. */ static union { unsigned int word[4]; long double value; } x = { LDBL80_WORDS (0x4004, 0x00000000, 0x00000000) }; if (sprintf (buf, "%Lf", x.value) < 0 || !strisnan (buf, 0, strlen (buf))) result |= 16; if (sprintf (buf, "%Le", x.value) < 0 || !strisnan (buf, 0, strlen (buf))) result |= 16; if (sprintf (buf, "%Lg", x.value) < 0 || !strisnan (buf, 0, strlen (buf))) result |= 16; } { /* Unnormalized number. */ static union { unsigned int word[4]; long double value; } x = { LDBL80_WORDS (0x4000, 0x63333333, 0x00000000) }; if (sprintf (buf, "%Lf", x.value) < 0 || !strisnan (buf, 0, strlen (buf))) result |= 32; if (sprintf (buf, "%Le", x.value) < 0 || !strisnan (buf, 0, strlen (buf))) result |= 32; if (sprintf (buf, "%Lg", x.value) < 0 || !strisnan (buf, 0, strlen (buf))) result |= 32; } { /* Pseudo-Denormal. */ static union { unsigned int word[4]; long double value; } x = { LDBL80_WORDS (0x0000, 0x83333333, 0x00000000) }; if (sprintf (buf, "%Lf", x.value) < 0 || !strisnan (buf, 0, strlen (buf))) result |= 64; if (sprintf (buf, "%Le", x.value) < 0 || !strisnan (buf, 0, strlen (buf))) result |= 64; if (sprintf (buf, "%Lg", x.value) < 0 || !strisnan (buf, 0, strlen (buf))) result |= 64; } #endif return result; }]])], [gl_cv_func_printf_infinite_long_double=yes], [gl_cv_func_printf_infinite_long_double=no], [ changequote(,)dnl case "$host_cpu" in # Guess no on ia64, x86_64, i386. ia64 | x86_64 | i*86) gl_cv_func_printf_infinite_long_double="guessing no";; *) case "$host_os" in # Guess yes on glibc systems. *-gnu*) gl_cv_func_printf_infinite_long_double="guessing yes";; # Guess yes on FreeBSD >= 6. freebsd[1-5]*) gl_cv_func_printf_infinite_long_double="guessing no";; freebsd* | kfreebsd*) gl_cv_func_printf_infinite_long_double="guessing yes";; # Guess yes on HP-UX >= 11. hpux[7-9]* | hpux10*) gl_cv_func_printf_infinite_long_double="guessing no";; hpux*) gl_cv_func_printf_infinite_long_double="guessing yes";; # If we don't know, assume the worst. *) gl_cv_func_printf_infinite_long_double="guessing no";; esac ;; esac changequote([,])dnl ]) ]) ;; *) gl_cv_func_printf_infinite_long_double="irrelevant" ;; esac ]) dnl Test whether the *printf family of functions supports the 'a' and 'A' dnl conversion specifier for hexadecimal output of floating-point numbers. dnl (ISO C99, POSIX:2001) dnl Result is gl_cv_func_printf_directive_a. AC_DEFUN([gl_PRINTF_DIRECTIVE_A], [ AC_REQUIRE([AC_PROG_CC]) AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles AC_CACHE_CHECK([whether printf supports the 'a' and 'A' directives], [gl_cv_func_printf_directive_a], [ AC_RUN_IFELSE( [AC_LANG_SOURCE([[ #include #include static char buf[100]; static double zero = 0.0; int main () { int result = 0; if (sprintf (buf, "%a %d", 3.1416015625, 33, 44, 55) < 0 || (strcmp (buf, "0x1.922p+1 33") != 0 && strcmp (buf, "0x3.244p+0 33") != 0 && strcmp (buf, "0x6.488p-1 33") != 0 && strcmp (buf, "0xc.91p-2 33") != 0)) result |= 1; if (sprintf (buf, "%A %d", -3.1416015625, 33, 44, 55) < 0 || (strcmp (buf, "-0X1.922P+1 33") != 0 && strcmp (buf, "-0X3.244P+0 33") != 0 && strcmp (buf, "-0X6.488P-1 33") != 0 && strcmp (buf, "-0XC.91P-2 33") != 0)) result |= 2; /* This catches a FreeBSD 6.1 bug: it doesn't round. */ if (sprintf (buf, "%.2a %d", 1.51, 33, 44, 55) < 0 || (strcmp (buf, "0x1.83p+0 33") != 0 && strcmp (buf, "0x3.05p-1 33") != 0 && strcmp (buf, "0x6.0ap-2 33") != 0 && strcmp (buf, "0xc.14p-3 33") != 0)) result |= 4; /* This catches a FreeBSD 6.1 bug. See */ if (sprintf (buf, "%010a %d", 1.0 / zero, 33, 44, 55) < 0 || buf[0] == '0') result |= 8; /* This catches a Mac OS X 10.3.9 (Darwin 7.9) bug. */ if (sprintf (buf, "%.1a", 1.999) < 0 || (strcmp (buf, "0x1.0p+1") != 0 && strcmp (buf, "0x2.0p+0") != 0 && strcmp (buf, "0x4.0p-1") != 0 && strcmp (buf, "0x8.0p-2") != 0)) result |= 16; /* This catches the same Mac OS X 10.3.9 (Darwin 7.9) bug and also a glibc 2.4 bug . */ if (sprintf (buf, "%.1La", 1.999L) < 0 || (strcmp (buf, "0x1.0p+1") != 0 && strcmp (buf, "0x2.0p+0") != 0 && strcmp (buf, "0x4.0p-1") != 0 && strcmp (buf, "0x8.0p-2") != 0)) result |= 32; return result; }]])], [gl_cv_func_printf_directive_a=yes], [gl_cv_func_printf_directive_a=no], [ case "$host_os" in # Guess yes on glibc >= 2.5 systems. *-gnu*) AC_EGREP_CPP([BZ2908], [ #include #ifdef __GNU_LIBRARY__ #if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 5) || (__GLIBC__ > 2)) && !defined __UCLIBC__ BZ2908 #endif #endif ], [gl_cv_func_printf_directive_a="guessing yes"], [gl_cv_func_printf_directive_a="guessing no"]) ;; # If we don't know, assume the worst. *) gl_cv_func_printf_directive_a="guessing no";; esac ]) ]) ]) dnl Test whether the *printf family of functions supports the %F format dnl directive. (ISO C99, POSIX:2001) dnl Result is gl_cv_func_printf_directive_f. AC_DEFUN([gl_PRINTF_DIRECTIVE_F], [ AC_REQUIRE([AC_PROG_CC]) AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles AC_CACHE_CHECK([whether printf supports the 'F' directive], [gl_cv_func_printf_directive_f], [ AC_RUN_IFELSE( [AC_LANG_SOURCE([[ #include #include static char buf[100]; static double zero = 0.0; int main () { int result = 0; if (sprintf (buf, "%F %d", 1234567.0, 33, 44, 55) < 0 || strcmp (buf, "1234567.000000 33") != 0) result |= 1; if (sprintf (buf, "%F", 1.0 / zero) < 0 || (strcmp (buf, "INF") != 0 && strcmp (buf, "INFINITY") != 0)) result |= 2; /* This catches a Cygwin 1.5.x bug. */ if (sprintf (buf, "%.F", 1234.0) < 0 || strcmp (buf, "1234") != 0) result |= 4; return result; }]])], [gl_cv_func_printf_directive_f=yes], [gl_cv_func_printf_directive_f=no], [ changequote(,)dnl case "$host_os" in # Guess yes on glibc systems. *-gnu*) gl_cv_func_printf_directive_f="guessing yes";; # Guess yes on FreeBSD >= 6. freebsd[1-5]*) gl_cv_func_printf_directive_f="guessing no";; freebsd* | kfreebsd*) gl_cv_func_printf_directive_f="guessing yes";; # Guess yes on Mac OS X >= 10.3. darwin[1-6].*) gl_cv_func_printf_directive_f="guessing no";; darwin*) gl_cv_func_printf_directive_f="guessing yes";; # Guess yes on Solaris >= 2.10. solaris2.[1-9][0-9]*) gl_cv_func_printf_sizes_c99="guessing yes";; solaris*) gl_cv_func_printf_sizes_c99="guessing no";; # If we don't know, assume the worst. *) gl_cv_func_printf_directive_f="guessing no";; esac changequote([,])dnl ]) ]) ]) dnl Test whether the *printf family of functions supports the %n format dnl directive. (ISO C99, POSIX:2001) dnl Result is gl_cv_func_printf_directive_n. AC_DEFUN([gl_PRINTF_DIRECTIVE_N], [ AC_REQUIRE([AC_PROG_CC]) AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles AC_CACHE_CHECK([whether printf supports the 'n' directive], [gl_cv_func_printf_directive_n], [ AC_RUN_IFELSE( [AC_LANG_SOURCE([[ #include #include #include #ifdef _MSC_VER /* See page about "Parameter Validation" on msdn.microsoft.com. */ static void cdecl invalid_parameter_handler (const wchar_t *expression, const wchar_t *function, const wchar_t *file, unsigned int line, uintptr_t dummy) { exit (1); } #endif static char fmtstring[10]; static char buf[100]; int main () { int count = -1; #ifdef _MSC_VER _set_invalid_parameter_handler (invalid_parameter_handler); #endif /* Copy the format string. Some systems (glibc with _FORTIFY_SOURCE=2) support %n in format strings in read-only memory but not in writable memory. */ strcpy (fmtstring, "%d %n"); if (sprintf (buf, fmtstring, 123, &count, 33, 44, 55) < 0 || strcmp (buf, "123 ") != 0 || count != 4) return 1; return 0; }]])], [gl_cv_func_printf_directive_n=yes], [gl_cv_func_printf_directive_n=no], [ changequote(,)dnl case "$host_os" in mingw*) gl_cv_func_printf_directive_n="guessing no";; *) gl_cv_func_printf_directive_n="guessing yes";; esac changequote([,])dnl ]) ]) ]) dnl Test whether the *printf family of functions supports the %ls format dnl directive and in particular, when a precision is specified, whether dnl the functions stop converting the wide string argument when the number dnl of bytes that have been produced by this conversion equals or exceeds dnl the precision. dnl Result is gl_cv_func_printf_directive_ls. AC_DEFUN([gl_PRINTF_DIRECTIVE_LS], [ AC_REQUIRE([AC_PROG_CC]) AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles AC_CACHE_CHECK([whether printf supports the 'ls' directive], [gl_cv_func_printf_directive_ls], [ 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 () { int result = 0; char buf[100]; /* Test whether %ls works at all. This test fails on OpenBSD 4.0, IRIX 6.5, Solaris 2.6, Haiku, but not on Cygwin 1.5. */ { static const wchar_t wstring[] = { 'a', 'b', 'c', 0 }; buf[0] = '\0'; if (sprintf (buf, "%ls", wstring) < 0 || strcmp (buf, "abc") != 0) result |= 1; } /* This test fails on IRIX 6.5, Solaris 2.6, Cygwin 1.5, Haiku (with an assertion failure inside libc), but not on OpenBSD 4.0. */ { static const wchar_t wstring[] = { 'a', 0 }; buf[0] = '\0'; if (sprintf (buf, "%ls", wstring) < 0 || strcmp (buf, "a") != 0) result |= 2; } /* Test whether precisions in %ls are supported as specified in ISO C 99 section 7.19.6.1: "If a precision is specified, no more than that many bytes are written (including shift sequences, if any), and the array shall contain a null wide character if, to equal the multibyte character sequence length given by the precision, the function would need to access a wide character one past the end of the array." This test fails on Solaris 10. */ { static const wchar_t wstring[] = { 'a', 'b', (wchar_t) 0xfdfdfdfd, 0 }; buf[0] = '\0'; if (sprintf (buf, "%.2ls", wstring) < 0 || strcmp (buf, "ab") != 0) result |= 8; } return result; }]])], [gl_cv_func_printf_directive_ls=yes], [gl_cv_func_printf_directive_ls=no], [ changequote(,)dnl case "$host_os" in openbsd*) gl_cv_func_printf_directive_ls="guessing no";; irix*) gl_cv_func_printf_directive_ls="guessing no";; solaris*) gl_cv_func_printf_directive_ls="guessing no";; cygwin*) gl_cv_func_printf_directive_ls="guessing no";; beos* | haiku*) gl_cv_func_printf_directive_ls="guessing no";; *) gl_cv_func_printf_directive_ls="guessing yes";; esac changequote([,])dnl ]) ]) ]) dnl Test whether the *printf family of functions supports POSIX/XSI format dnl strings with positions. (POSIX:2001) dnl Result is gl_cv_func_printf_positions. AC_DEFUN([gl_PRINTF_POSITIONS], [ AC_REQUIRE([AC_PROG_CC]) AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles AC_CACHE_CHECK([whether printf supports POSIX/XSI format strings with positions], [gl_cv_func_printf_positions], [ AC_RUN_IFELSE( [AC_LANG_SOURCE([[ #include #include /* The string "%2$d %1$d", with dollar characters protected from the shell's dollar expansion (possibly an autoconf bug). */ static char format[] = { '%', '2', '$', 'd', ' ', '%', '1', '$', 'd', '\0' }; static char buf[100]; int main () { sprintf (buf, format, 33, 55); return (strcmp (buf, "55 33") != 0); }]])], [gl_cv_func_printf_positions=yes], [gl_cv_func_printf_positions=no], [ changequote(,)dnl case "$host_os" in netbsd[1-3]* | netbsdelf[1-3]* | netbsdaout[1-3]* | netbsdcoff[1-3]*) gl_cv_func_printf_positions="guessing no";; beos*) gl_cv_func_printf_positions="guessing no";; mingw* | pw*) gl_cv_func_printf_positions="guessing no";; *) gl_cv_func_printf_positions="guessing yes";; esac changequote([,])dnl ]) ]) ]) dnl Test whether the *printf family of functions supports POSIX/XSI format dnl strings with the ' flag for grouping of decimal digits. (POSIX:2001) dnl Result is gl_cv_func_printf_flag_grouping. AC_DEFUN([gl_PRINTF_FLAG_GROUPING], [ AC_REQUIRE([AC_PROG_CC]) AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles AC_CACHE_CHECK([whether printf supports the grouping flag], [gl_cv_func_printf_flag_grouping], [ AC_RUN_IFELSE( [AC_LANG_SOURCE([[ #include #include static char buf[100]; int main () { if (sprintf (buf, "%'d %d", 1234567, 99) < 0 || buf[strlen (buf) - 1] != '9') return 1; return 0; }]])], [gl_cv_func_printf_flag_grouping=yes], [gl_cv_func_printf_flag_grouping=no], [ changequote(,)dnl case "$host_os" in cygwin*) gl_cv_func_printf_flag_grouping="guessing no";; netbsd*) gl_cv_func_printf_flag_grouping="guessing no";; mingw* | pw*) gl_cv_func_printf_flag_grouping="guessing no";; *) gl_cv_func_printf_flag_grouping="guessing yes";; esac changequote([,])dnl ]) ]) ]) dnl Test whether the *printf family of functions supports the - flag correctly. dnl (ISO C99.) See dnl dnl Result is gl_cv_func_printf_flag_leftadjust. AC_DEFUN([gl_PRINTF_FLAG_LEFTADJUST], [ AC_REQUIRE([AC_PROG_CC]) AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles AC_CACHE_CHECK([whether printf supports the left-adjust flag correctly], [gl_cv_func_printf_flag_leftadjust], [ AC_RUN_IFELSE( [AC_LANG_SOURCE([[ #include #include static char buf[100]; int main () { /* Check that a '-' flag is not annihilated by a negative width. */ if (sprintf (buf, "a%-*sc", -3, "b") < 0 || strcmp (buf, "ab c") != 0) return 1; return 0; }]])], [gl_cv_func_printf_flag_leftadjust=yes], [gl_cv_func_printf_flag_leftadjust=no], [ changequote(,)dnl case "$host_os" in # Guess yes on HP-UX 11. hpux11*) gl_cv_func_printf_flag_leftadjust="guessing yes";; # Guess no on HP-UX 10 and older. hpux*) gl_cv_func_printf_flag_leftadjust="guessing no";; # Guess yes otherwise. *) gl_cv_func_printf_flag_leftadjust="guessing yes";; esac changequote([,])dnl ]) ]) ]) dnl Test whether the *printf family of functions supports padding of non-finite dnl values with the 0 flag correctly. (ISO C99 + TC1 + TC2.) See dnl dnl Result is gl_cv_func_printf_flag_zero. AC_DEFUN([gl_PRINTF_FLAG_ZERO], [ AC_REQUIRE([AC_PROG_CC]) AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles AC_CACHE_CHECK([whether printf supports the zero flag correctly], [gl_cv_func_printf_flag_zero], [ AC_RUN_IFELSE( [AC_LANG_SOURCE([[ #include #include static char buf[100]; static double zero = 0.0; int main () { if (sprintf (buf, "%010f", 1.0 / zero, 33, 44, 55) < 0 || (strcmp (buf, " inf") != 0 && strcmp (buf, " infinity") != 0)) return 1; return 0; }]])], [gl_cv_func_printf_flag_zero=yes], [gl_cv_func_printf_flag_zero=no], [ changequote(,)dnl case "$host_os" in # Guess yes on glibc systems. *-gnu*) gl_cv_func_printf_flag_zero="guessing yes";; # Guess yes on BeOS. beos*) gl_cv_func_printf_flag_zero="guessing yes";; # If we don't know, assume the worst. *) gl_cv_func_printf_flag_zero="guessing no";; esac changequote([,])dnl ]) ]) ]) dnl Test whether the *printf family of functions supports large precisions. dnl On mingw, precisions larger than 512 are treated like 512, in integer, dnl floating-point or pointer output. On Solaris 10/x86, precisions larger dnl than 510 in floating-point output crash the program. On Solaris 10/SPARC, dnl precisions larger than 510 in floating-point output yield wrong results. dnl On AIX 7.1, precisions larger than 998 in floating-point output yield dnl wrong results. On BeOS, precisions larger than 1044 crash the program. dnl Result is gl_cv_func_printf_precision. AC_DEFUN([gl_PRINTF_PRECISION], [ AC_REQUIRE([AC_PROG_CC]) AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles AC_CACHE_CHECK([whether printf supports large precisions], [gl_cv_func_printf_precision], [ AC_RUN_IFELSE( [AC_LANG_SOURCE([[ #include #include static char buf[5000]; int main () { int result = 0; #ifdef __BEOS__ /* On BeOS, this would crash and show a dialog box. Avoid the crash. */ return 1; #endif if (sprintf (buf, "%.4000d %d", 1, 33, 44) < 4000 + 3) result |= 1; if (sprintf (buf, "%.4000f %d", 1.0, 33, 44) < 4000 + 5) result |= 2; if (sprintf (buf, "%.511f %d", 1.0, 33, 44) < 511 + 5 || buf[0] != '1') result |= 4; if (sprintf (buf, "%.999f %d", 1.0, 33, 44) < 999 + 5 || buf[0] != '1') result |= 4; return result; }]])], [gl_cv_func_printf_precision=yes], [gl_cv_func_printf_precision=no], [ changequote(,)dnl case "$host_os" in # Guess no only on Solaris, native Windows, and BeOS systems. solaris*) gl_cv_func_printf_precision="guessing no" ;; mingw* | pw*) gl_cv_func_printf_precision="guessing no" ;; beos*) gl_cv_func_printf_precision="guessing no" ;; *) gl_cv_func_printf_precision="guessing yes" ;; esac changequote([,])dnl ]) ]) ]) dnl Test whether the *printf family of functions recovers gracefully in case dnl of an out-of-memory condition, or whether it crashes the entire program. dnl Result is gl_cv_func_printf_enomem. AC_DEFUN([gl_PRINTF_ENOMEM], [ AC_REQUIRE([AC_PROG_CC]) AC_REQUIRE([gl_MULTIARCH]) AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles AC_CACHE_CHECK([whether printf survives out-of-memory conditions], [gl_cv_func_printf_enomem], [ gl_cv_func_printf_enomem="guessing no" if test "$cross_compiling" = no; then if test $APPLE_UNIVERSAL_BUILD = 0; then AC_LANG_CONFTEST([AC_LANG_SOURCE([ ]GL_NOCRASH[ changequote(,)dnl #include #include #include #include #include int main() { struct rlimit limit; int ret; nocrash_init (); /* Some printf implementations allocate temporary space with malloc. */ /* On BSD systems, malloc() is limited by RLIMIT_DATA. */ #ifdef RLIMIT_DATA if (getrlimit (RLIMIT_DATA, &limit) < 0) return 77; if (limit.rlim_max == RLIM_INFINITY || limit.rlim_max > 5000000) limit.rlim_max = 5000000; limit.rlim_cur = limit.rlim_max; if (setrlimit (RLIMIT_DATA, &limit) < 0) return 77; #endif /* On Linux systems, malloc() is limited by RLIMIT_AS. */ #ifdef RLIMIT_AS if (getrlimit (RLIMIT_AS, &limit) < 0) return 77; if (limit.rlim_max == RLIM_INFINITY || limit.rlim_max > 5000000) limit.rlim_max = 5000000; limit.rlim_cur = limit.rlim_max; if (setrlimit (RLIMIT_AS, &limit) < 0) return 77; #endif /* Some printf implementations allocate temporary space on the stack. */ #ifdef RLIMIT_STACK if (getrlimit (RLIMIT_STACK, &limit) < 0) return 77; if (limit.rlim_max == RLIM_INFINITY || limit.rlim_max > 5000000) limit.rlim_max = 5000000; limit.rlim_cur = limit.rlim_max; if (setrlimit (RLIMIT_STACK, &limit) < 0) return 77; #endif ret = printf ("%.5000000f", 1.0); return !(ret == 5000002 || (ret < 0 && errno == ENOMEM)); } changequote([,])dnl ])]) if AC_TRY_EVAL([ac_link]) && test -s conftest$ac_exeext; then (./conftest 2>&AS_MESSAGE_LOG_FD result=$? _AS_ECHO_LOG([\$? = $result]) if test $result != 0 && test $result != 77; then result=1; fi exit $result ) >/dev/null 2>/dev/null case $? in 0) gl_cv_func_printf_enomem="yes" ;; 77) gl_cv_func_printf_enomem="guessing no" ;; *) gl_cv_func_printf_enomem="no" ;; esac else gl_cv_func_printf_enomem="guessing no" fi rm -fr conftest* else dnl A universal build on Apple Mac OS X platforms. dnl The result would be 'no' in 32-bit mode and 'yes' in 64-bit mode. dnl But we need a configuration result that is valid in both modes. gl_cv_func_printf_enomem="guessing no" fi fi if test "$gl_cv_func_printf_enomem" = "guessing no"; then changequote(,)dnl case "$host_os" in # Guess yes on glibc systems. *-gnu*) gl_cv_func_printf_enomem="guessing yes";; # Guess yes on Solaris. solaris*) gl_cv_func_printf_enomem="guessing yes";; # Guess yes on AIX. aix*) gl_cv_func_printf_enomem="guessing yes";; # Guess yes on HP-UX/hppa. hpux*) case "$host_cpu" in hppa*) gl_cv_func_printf_enomem="guessing yes";; *) gl_cv_func_printf_enomem="guessing no";; esac ;; # Guess yes on IRIX. irix*) gl_cv_func_printf_enomem="guessing yes";; # Guess yes on OSF/1. osf*) gl_cv_func_printf_enomem="guessing yes";; # Guess yes on BeOS. beos*) gl_cv_func_printf_enomem="guessing yes";; # Guess yes on Haiku. haiku*) gl_cv_func_printf_enomem="guessing yes";; # If we don't know, assume the worst. *) gl_cv_func_printf_enomem="guessing no";; esac changequote([,])dnl fi ]) ]) dnl Test whether the snprintf function exists. (ISO C99, POSIX:2001) dnl Result is ac_cv_func_snprintf. AC_DEFUN([gl_SNPRINTF_PRESENCE], [ AC_CHECK_FUNCS_ONCE([snprintf]) ]) dnl Test whether the string produced by the snprintf function is always NUL dnl terminated. (ISO C99, POSIX:2001) dnl Result is gl_cv_func_snprintf_truncation_c99. AC_DEFUN([gl_SNPRINTF_TRUNCATION_C99], [ AC_REQUIRE([AC_PROG_CC]) AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles AC_REQUIRE([gl_SNPRINTF_PRESENCE]) AC_CACHE_CHECK([whether snprintf truncates the result as in C99], [gl_cv_func_snprintf_truncation_c99], [ AC_RUN_IFELSE( [AC_LANG_SOURCE([[ #include #include #if HAVE_SNPRINTF # define my_snprintf snprintf #else # include static int my_snprintf (char *buf, int size, const char *format, ...) { va_list args; int ret; va_start (args, format); ret = vsnprintf (buf, size, format, args); va_end (args); return ret; } #endif static char buf[100]; int main () { strcpy (buf, "ABCDEF"); my_snprintf (buf, 3, "%d %d", 4567, 89); if (memcmp (buf, "45\0DEF", 6) != 0) return 1; return 0; }]])], [gl_cv_func_snprintf_truncation_c99=yes], [gl_cv_func_snprintf_truncation_c99=no], [ changequote(,)dnl case "$host_os" in # Guess yes on glibc systems. *-gnu*) gl_cv_func_snprintf_truncation_c99="guessing yes";; # Guess yes on FreeBSD >= 5. freebsd[1-4]*) gl_cv_func_snprintf_truncation_c99="guessing no";; freebsd* | kfreebsd*) gl_cv_func_snprintf_truncation_c99="guessing yes";; # Guess yes on Mac OS X >= 10.3. darwin[1-6].*) gl_cv_func_snprintf_truncation_c99="guessing no";; darwin*) gl_cv_func_snprintf_truncation_c99="guessing yes";; # Guess yes on OpenBSD >= 3.9. openbsd[1-2].* | openbsd3.[0-8] | openbsd3.[0-8].*) gl_cv_func_snprintf_truncation_c99="guessing no";; openbsd*) gl_cv_func_snprintf_truncation_c99="guessing yes";; # Guess yes on Solaris >= 2.6. solaris2.[0-5] | solaris2.[0-5].*) gl_cv_func_snprintf_truncation_c99="guessing no";; solaris*) gl_cv_func_snprintf_truncation_c99="guessing yes";; # Guess yes on AIX >= 4. aix[1-3]*) gl_cv_func_snprintf_truncation_c99="guessing no";; aix*) gl_cv_func_snprintf_truncation_c99="guessing yes";; # Guess yes on HP-UX >= 11. hpux[7-9]* | hpux10*) gl_cv_func_snprintf_truncation_c99="guessing no";; hpux*) gl_cv_func_snprintf_truncation_c99="guessing yes";; # Guess yes on IRIX >= 6.5. irix6.5) gl_cv_func_snprintf_truncation_c99="guessing yes";; # Guess yes on OSF/1 >= 5. osf[3-4]*) gl_cv_func_snprintf_truncation_c99="guessing no";; osf*) gl_cv_func_snprintf_truncation_c99="guessing yes";; # Guess yes on NetBSD >= 3. netbsd[1-2]* | netbsdelf[1-2]* | netbsdaout[1-2]* | netbsdcoff[1-2]*) gl_cv_func_snprintf_truncation_c99="guessing no";; netbsd*) gl_cv_func_snprintf_truncation_c99="guessing yes";; # Guess yes on BeOS. beos*) gl_cv_func_snprintf_truncation_c99="guessing yes";; # If we don't know, assume the worst. *) gl_cv_func_snprintf_truncation_c99="guessing no";; esac changequote([,])dnl ]) ]) ]) dnl Test whether the return value of the snprintf function is the number dnl of bytes (excluding the terminating NUL) that would have been produced dnl if the buffer had been large enough. (ISO C99, POSIX:2001) dnl For example, this test program fails on IRIX 6.5: dnl --------------------------------------------------------------------- dnl #include dnl int main() dnl { dnl static char buf[8]; dnl int retval = snprintf (buf, 3, "%d", 12345); dnl return retval >= 0 && retval < 3; dnl } dnl --------------------------------------------------------------------- dnl Result is gl_cv_func_snprintf_retval_c99. AC_DEFUN_ONCE([gl_SNPRINTF_RETVAL_C99], [ AC_REQUIRE([AC_PROG_CC]) AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles AC_REQUIRE([gl_SNPRINTF_PRESENCE]) AC_CACHE_CHECK([whether snprintf returns a byte count as in C99], [gl_cv_func_snprintf_retval_c99], [ AC_RUN_IFELSE( [AC_LANG_SOURCE([[ #include #include #if HAVE_SNPRINTF # define my_snprintf snprintf #else # include static int my_snprintf (char *buf, int size, const char *format, ...) { va_list args; int ret; va_start (args, format); ret = vsnprintf (buf, size, format, args); va_end (args); return ret; } #endif static char buf[100]; int main () { strcpy (buf, "ABCDEF"); if (my_snprintf (buf, 3, "%d %d", 4567, 89) != 7) return 1; if (my_snprintf (buf, 0, "%d %d", 4567, 89) != 7) return 2; if (my_snprintf (NULL, 0, "%d %d", 4567, 89) != 7) return 3; return 0; }]])], [gl_cv_func_snprintf_retval_c99=yes], [gl_cv_func_snprintf_retval_c99=no], [ changequote(,)dnl case "$host_os" in # Guess yes on glibc systems. *-gnu*) gl_cv_func_snprintf_retval_c99="guessing yes";; # Guess yes on FreeBSD >= 5. freebsd[1-4]*) gl_cv_func_snprintf_retval_c99="guessing no";; freebsd* | kfreebsd*) gl_cv_func_snprintf_retval_c99="guessing yes";; # Guess yes on Mac OS X >= 10.3. darwin[1-6].*) gl_cv_func_snprintf_retval_c99="guessing no";; darwin*) gl_cv_func_snprintf_retval_c99="guessing yes";; # Guess yes on OpenBSD >= 3.9. openbsd[1-2].* | openbsd3.[0-8] | openbsd3.[0-8].*) gl_cv_func_snprintf_retval_c99="guessing no";; openbsd*) gl_cv_func_snprintf_retval_c99="guessing yes";; # Guess yes on Solaris >= 2.10. solaris2.[1-9][0-9]*) gl_cv_func_printf_sizes_c99="guessing yes";; solaris*) gl_cv_func_printf_sizes_c99="guessing no";; # Guess yes on AIX >= 4. aix[1-3]*) gl_cv_func_snprintf_retval_c99="guessing no";; aix*) gl_cv_func_snprintf_retval_c99="guessing yes";; # Guess yes on NetBSD >= 3. netbsd[1-2]* | netbsdelf[1-2]* | netbsdaout[1-2]* | netbsdcoff[1-2]*) gl_cv_func_snprintf_retval_c99="guessing no";; netbsd*) gl_cv_func_snprintf_retval_c99="guessing yes";; # Guess yes on BeOS. beos*) gl_cv_func_snprintf_retval_c99="guessing yes";; # If we don't know, assume the worst. *) gl_cv_func_snprintf_retval_c99="guessing no";; esac changequote([,])dnl ]) ]) ]) dnl Test whether the snprintf function supports the %n format directive dnl also in truncated portions of the format string. (ISO C99, POSIX:2001) dnl Result is gl_cv_func_snprintf_directive_n. AC_DEFUN([gl_SNPRINTF_DIRECTIVE_N], [ AC_REQUIRE([AC_PROG_CC]) AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles AC_REQUIRE([gl_SNPRINTF_PRESENCE]) AC_CACHE_CHECK([whether snprintf fully supports the 'n' directive], [gl_cv_func_snprintf_directive_n], [ AC_RUN_IFELSE( [AC_LANG_SOURCE([[ #include #include #if HAVE_SNPRINTF # define my_snprintf snprintf #else # include static int my_snprintf (char *buf, int size, const char *format, ...) { va_list args; int ret; va_start (args, format); ret = vsnprintf (buf, size, format, args); va_end (args); return ret; } #endif static char fmtstring[10]; static char buf[100]; int main () { int count = -1; /* Copy the format string. Some systems (glibc with _FORTIFY_SOURCE=2) support %n in format strings in read-only memory but not in writable memory. */ strcpy (fmtstring, "%d %n"); my_snprintf (buf, 4, fmtstring, 12345, &count, 33, 44, 55); if (count != 6) return 1; return 0; }]])], [gl_cv_func_snprintf_directive_n=yes], [gl_cv_func_snprintf_directive_n=no], [ changequote(,)dnl case "$host_os" in # Guess yes on glibc systems. *-gnu*) gl_cv_func_snprintf_directive_n="guessing yes";; # Guess yes on FreeBSD >= 5. freebsd[1-4]*) gl_cv_func_snprintf_directive_n="guessing no";; freebsd* | kfreebsd*) gl_cv_func_snprintf_directive_n="guessing yes";; # Guess yes on Mac OS X >= 10.3. darwin[1-6].*) gl_cv_func_snprintf_directive_n="guessing no";; darwin*) gl_cv_func_snprintf_directive_n="guessing yes";; # Guess yes on Solaris >= 2.6. solaris2.[0-5] | solaris2.[0-5].*) gl_cv_func_snprintf_directive_n="guessing no";; solaris*) gl_cv_func_snprintf_directive_n="guessing yes";; # Guess yes on AIX >= 4. aix[1-3]*) gl_cv_func_snprintf_directive_n="guessing no";; aix*) gl_cv_func_snprintf_directive_n="guessing yes";; # Guess yes on IRIX >= 6.5. irix6.5) gl_cv_func_snprintf_directive_n="guessing yes";; # Guess yes on OSF/1 >= 5. osf[3-4]*) gl_cv_func_snprintf_directive_n="guessing no";; osf*) gl_cv_func_snprintf_directive_n="guessing yes";; # Guess yes on NetBSD >= 3. netbsd[1-2]* | netbsdelf[1-2]* | netbsdaout[1-2]* | netbsdcoff[1-2]*) gl_cv_func_snprintf_directive_n="guessing no";; netbsd*) gl_cv_func_snprintf_directive_n="guessing yes";; # Guess yes on BeOS. beos*) gl_cv_func_snprintf_directive_n="guessing yes";; # If we don't know, assume the worst. *) gl_cv_func_snprintf_directive_n="guessing no";; esac changequote([,])dnl ]) ]) ]) dnl Test whether the snprintf function, when passed a size = 1, writes any dnl output without bounds in this case, behaving like sprintf. This is the dnl case on Linux libc5. dnl Result is gl_cv_func_snprintf_size1. AC_DEFUN([gl_SNPRINTF_SIZE1], [ AC_REQUIRE([AC_PROG_CC]) AC_REQUIRE([gl_SNPRINTF_PRESENCE]) AC_CACHE_CHECK([whether snprintf respects a size of 1], [gl_cv_func_snprintf_size1], [ AC_RUN_IFELSE( [AC_LANG_SOURCE([[ #include #if HAVE_SNPRINTF # define my_snprintf snprintf #else # include static int my_snprintf (char *buf, int size, const char *format, ...) { va_list args; int ret; va_start (args, format); ret = vsnprintf (buf, size, format, args); va_end (args); return ret; } #endif int main() { static char buf[8] = { 'D', 'E', 'A', 'D', 'B', 'E', 'E', 'F' }; my_snprintf (buf, 1, "%d", 12345); return buf[1] != 'E'; }]])], [gl_cv_func_snprintf_size1=yes], [gl_cv_func_snprintf_size1=no], [gl_cv_func_snprintf_size1="guessing yes"]) ]) ]) dnl Test whether the vsnprintf function, when passed a zero size, produces no dnl output. (ISO C99, POSIX:2001) dnl For example, snprintf nevertheless writes a NUL byte in this case dnl on OSF/1 5.1: dnl --------------------------------------------------------------------- dnl #include dnl int main() dnl { dnl static char buf[8] = { 'D', 'E', 'A', 'D', 'B', 'E', 'E', 'F' }; dnl snprintf (buf, 0, "%d", 12345); dnl return buf[0] != 'D'; dnl } dnl --------------------------------------------------------------------- dnl And vsnprintf writes any output without bounds in this case, behaving like dnl vsprintf, on HP-UX 11 and OSF/1 5.1: dnl --------------------------------------------------------------------- dnl #include dnl #include dnl static int my_snprintf (char *buf, int size, const char *format, ...) dnl { dnl va_list args; dnl int ret; dnl va_start (args, format); dnl ret = vsnprintf (buf, size, format, args); dnl va_end (args); dnl return ret; dnl } dnl int main() dnl { dnl static char buf[8] = { 'D', 'E', 'A', 'D', 'B', 'E', 'E', 'F' }; dnl my_snprintf (buf, 0, "%d", 12345); dnl return buf[0] != 'D'; dnl } dnl --------------------------------------------------------------------- dnl Result is gl_cv_func_vsnprintf_zerosize_c99. AC_DEFUN([gl_VSNPRINTF_ZEROSIZE_C99], [ AC_REQUIRE([AC_PROG_CC]) AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles AC_CACHE_CHECK([whether vsnprintf respects a zero size as in C99], [gl_cv_func_vsnprintf_zerosize_c99], [ AC_RUN_IFELSE( [AC_LANG_SOURCE([[ #include #include static int my_snprintf (char *buf, int size, const char *format, ...) { va_list args; int ret; va_start (args, format); ret = vsnprintf (buf, size, format, args); va_end (args); return ret; } int main() { static char buf[8] = { 'D', 'E', 'A', 'D', 'B', 'E', 'E', 'F' }; my_snprintf (buf, 0, "%d", 12345); return buf[0] != 'D'; }]])], [gl_cv_func_vsnprintf_zerosize_c99=yes], [gl_cv_func_vsnprintf_zerosize_c99=no], [ changequote(,)dnl case "$host_os" in # Guess yes on glibc systems. *-gnu*) gl_cv_func_vsnprintf_zerosize_c99="guessing yes";; # Guess yes on FreeBSD >= 5. freebsd[1-4]*) gl_cv_func_vsnprintf_zerosize_c99="guessing no";; freebsd* | kfreebsd*) gl_cv_func_vsnprintf_zerosize_c99="guessing yes";; # Guess yes on Mac OS X >= 10.3. darwin[1-6].*) gl_cv_func_vsnprintf_zerosize_c99="guessing no";; darwin*) gl_cv_func_vsnprintf_zerosize_c99="guessing yes";; # Guess yes on Cygwin. cygwin*) gl_cv_func_vsnprintf_zerosize_c99="guessing yes";; # Guess yes on Solaris >= 2.6. solaris2.[0-5] | solaris2.[0-5].*) gl_cv_func_vsnprintf_zerosize_c99="guessing no";; solaris*) gl_cv_func_vsnprintf_zerosize_c99="guessing yes";; # Guess yes on AIX >= 4. aix[1-3]*) gl_cv_func_vsnprintf_zerosize_c99="guessing no";; aix*) gl_cv_func_vsnprintf_zerosize_c99="guessing yes";; # Guess yes on IRIX >= 6.5. irix6.5) gl_cv_func_vsnprintf_zerosize_c99="guessing yes";; # Guess yes on NetBSD >= 3. netbsd[1-2]* | netbsdelf[1-2]* | netbsdaout[1-2]* | netbsdcoff[1-2]*) gl_cv_func_vsnprintf_zerosize_c99="guessing no";; netbsd*) gl_cv_func_vsnprintf_zerosize_c99="guessing yes";; # Guess yes on BeOS. beos*) gl_cv_func_vsnprintf_zerosize_c99="guessing yes";; # Guess yes on mingw. mingw* | pw*) gl_cv_func_vsnprintf_zerosize_c99="guessing yes";; # If we don't know, assume the worst. *) gl_cv_func_vsnprintf_zerosize_c99="guessing no";; esac changequote([,])dnl ]) ]) ]) dnl The results of these tests on various platforms are: dnl dnl 1 = gl_PRINTF_SIZES_C99 dnl 2 = gl_PRINTF_LONG_DOUBLE dnl 3 = gl_PRINTF_INFINITE dnl 4 = gl_PRINTF_INFINITE_LONG_DOUBLE dnl 5 = gl_PRINTF_DIRECTIVE_A dnl 6 = gl_PRINTF_DIRECTIVE_F dnl 7 = gl_PRINTF_DIRECTIVE_N dnl 8 = gl_PRINTF_DIRECTIVE_LS dnl 9 = gl_PRINTF_POSITIONS dnl 10 = gl_PRINTF_FLAG_GROUPING dnl 11 = gl_PRINTF_FLAG_LEFTADJUST dnl 12 = gl_PRINTF_FLAG_ZERO dnl 13 = gl_PRINTF_PRECISION dnl 14 = gl_PRINTF_ENOMEM dnl 15 = gl_SNPRINTF_PRESENCE dnl 16 = gl_SNPRINTF_TRUNCATION_C99 dnl 17 = gl_SNPRINTF_RETVAL_C99 dnl 18 = gl_SNPRINTF_DIRECTIVE_N dnl 19 = gl_SNPRINTF_SIZE1 dnl 20 = gl_VSNPRINTF_ZEROSIZE_C99 dnl dnl 1 = checking whether printf supports size specifiers as in C99... dnl 2 = checking whether printf supports 'long double' arguments... dnl 3 = checking whether printf supports infinite 'double' arguments... dnl 4 = checking whether printf supports infinite 'long double' arguments... dnl 5 = checking whether printf supports the 'a' and 'A' directives... dnl 6 = checking whether printf supports the 'F' directive... dnl 7 = checking whether printf supports the 'n' directive... dnl 8 = checking whether printf supports the 'ls' directive... dnl 9 = checking whether printf supports POSIX/XSI format strings with positions... dnl 10 = checking whether printf supports the grouping flag... dnl 11 = checking whether printf supports the left-adjust flag correctly... dnl 12 = checking whether printf supports the zero flag correctly... dnl 13 = checking whether printf supports large precisions... dnl 14 = checking whether printf survives out-of-memory conditions... dnl 15 = checking for snprintf... dnl 16 = checking whether snprintf truncates the result as in C99... dnl 17 = checking whether snprintf returns a byte count as in C99... dnl 18 = checking whether snprintf fully supports the 'n' directive... dnl 19 = checking whether snprintf respects a size of 1... dnl 20 = checking whether vsnprintf respects a zero size as in C99... dnl dnl . = yes, # = no. dnl dnl 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 dnl glibc 2.5 . . . . . . . . . . . . . . . . . . . . dnl glibc 2.3.6 . . . . # . . . . . . . . . . . . . . . dnl FreeBSD 5.4, 6.1 . . . . # . . . . . . # . # . . . . . . dnl Mac OS X 10.5.8 . . . # # . . . . . . # . . . . . . . . dnl Mac OS X 10.3.9 . . . . # . . . . . . # . # . . . . . . dnl OpenBSD 3.9, 4.0 . . # # # # . # . # . # . # . . . . . . dnl Cygwin 1.7.0 (2009) . . . # . . . ? . . . . . ? . . . . . . dnl Cygwin 1.5.25 (2008) . . . # # . . # . . . . . # . . . . . . dnl Cygwin 1.5.19 (2006) # . . # # # . # . # . # # # . . . . . . dnl Solaris 11 2011-11 . . # # # . . # . . . # . . . . . . . . dnl Solaris 10 . . # # # . . # . . . # # . . . . . . . dnl Solaris 2.6 ... 9 # . # # # # . # . . . # # . . . # . . . dnl Solaris 2.5.1 # . # # # # . # . . . # . . # # # # # # dnl AIX 7.1 . . # # # . . . . . . # # . . . . . . . dnl AIX 5.2 . . # # # . . . . . . # . . . . . . . . dnl AIX 4.3.2, 5.1 # . # # # # . . . . . # . . . . # . . . dnl HP-UX 11.31 . . . . # . . . . . . # . . . . # # . . dnl HP-UX 11.{00,11,23} # . . . # # . . . . . # . . . . # # . # dnl HP-UX 10.20 # . # . # # . ? . . # # . . . . # # ? # dnl IRIX 6.5 # . # # # # . # . . . # . . . . # . . . dnl OSF/1 5.1 # . # # # # . . . . . # . . . . # . . # dnl OSF/1 4.0d # . # # # # . . . . . # . . # # # # # # dnl NetBSD 5.0 . . . # # . . . . . . # . # . . . . . . dnl NetBSD 4.0 . ? ? ? ? ? . ? . ? ? ? ? ? . . . ? ? ? dnl NetBSD 3.0 . . . . # # . ? # # ? # . # . . . . . . dnl Haiku . . . # # # . # . . . . . ? . . ? . . . dnl BeOS # # . # # # . ? # . ? . # ? . . ? . . . dnl old mingw / msvcrt # # # # # # . . # # . # # ? . # # # . . dnl MSVC 9 # # # # # # # . # # . # # ? # # # # . . dnl mingw 2009-2011 . # . # . . . . # # . . . ? . . . . . . dnl mingw-w64 2011 # # # # # # . . # # . # # ? . # # # . . gcal-3.6.3/m4/extern-inline.m40000644000175000017500000000501112116431050012703 00000000000000dnl 'extern inline' a la ISO C99. dnl Copyright 2012-2013 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], [/* _GL_INLINE is a portable alternative to ISO C99 plain 'inline'. _GL_EXTERN_INLINE is a portable alternative to 'extern inline'. _GL_INLINE_HEADER_BEGIN contains useful stuff to put in an include file, before uses of _GL_INLINE. It suppresses GCC's bogus "no previous prototype for 'FOO'" diagnostic, when FOO is an inline function in the header; see . _GL_INLINE_HEADER_END contains useful stuff to put in the same include file, after uses of _GL_INLINE. Suppress extern inline with HP-UX cc, as it appears to be broken; see . Suppress the use of extern inline on Apple's platforms, as Libc-825.25 (2012-09-19) is incompatible with it; see . Perhaps Apple will fix this some day. */ #if ((__GNUC__ \ ? defined __GNUC_STDC_INLINE__ && __GNUC_STDC_INLINE__ \ : 199901L <= __STDC_VERSION__ && !defined __HP_cc) \ && !defined __APPLE__) # define _GL_INLINE inline # define _GL_EXTERN_INLINE extern inline #elif 2 < __GNUC__ + (7 <= __GNUC_MINOR__) && !defined __APPLE__ # if __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 #else # define _GL_INLINE static _GL_UNUSED # define _GL_EXTERN_INLINE static _GL_UNUSED #endif #if 4 < __GNUC__ + (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-3.6.3/m4/malloc.m40000644000175000017500000000627612076511425011421 00000000000000# malloc.m4 serial 14 dnl Copyright (C) 2007, 2009-2013 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 taken from the following Autoconf patch: # http://git.savannah.gnu.org/gitweb/?p=autoconf.git;a=commitdiff;h=7fbb553727ed7e0e689a17594b58559ecf3ea6e9 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 ]], [[return ! malloc (0);]]) ], [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-3.6.3/m4/strerror_r.m40000644000175000017500000001506712076511425012353 00000000000000# strerror_r.m4 serial 15 dnl Copyright (C) 2002, 2007-2013 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_DECLS_ONCE([strerror_r]) if test $ac_cv_have_decl_strerror_r = no; then HAVE_DECL_STRERROR_R=0 fi 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 ]) # 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_FUNCS_ONCE([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-3.6.3/m4/iconv_open.m40000644000175000017500000000367112076511425012305 00000000000000# iconv_open.m4 serial 14 dnl Copyright (C) 2007-2013 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_ICONV_OPEN], [ AC_REQUIRE([AM_ICONV]) AC_REQUIRE([AC_CANONICAL_HOST]) AC_REQUIRE([gl_ICONV_H_DEFAULTS]) if test "$am_cv_func_iconv" = yes; then dnl Provide the override, for the sake of the C++ aliases. gl_REPLACE_ICONV_H dnl Test whether iconv_open accepts standardized encoding names. dnl We know that GNU libiconv and GNU libc do. AC_EGREP_CPP([gnu_iconv], [ #include #if defined _LIBICONV_VERSION || (defined __GLIBC__ && !defined __UCLIBC__) gnu_iconv #endif ], [gl_func_iconv_gnu=yes], [gl_func_iconv_gnu=no]) if test $gl_func_iconv_gnu = no; then iconv_flavor= case "$host_os" in aix*) iconv_flavor=ICONV_FLAVOR_AIX ;; irix*) iconv_flavor=ICONV_FLAVOR_IRIX ;; hpux*) iconv_flavor=ICONV_FLAVOR_HPUX ;; osf*) iconv_flavor=ICONV_FLAVOR_OSF ;; solaris*) iconv_flavor=ICONV_FLAVOR_SOLARIS ;; esac if test -n "$iconv_flavor"; then AC_DEFINE_UNQUOTED([ICONV_FLAVOR], [$iconv_flavor], [Define to a symbolic name denoting the flavor of iconv_open() implementation.]) gl_REPLACE_ICONV_OPEN fi fi m4_ifdef([gl_FUNC_ICONV_OPEN_UTF_SUPPORT], [ gl_FUNC_ICONV_OPEN_UTF_SUPPORT if test $gl_cv_func_iconv_supports_utf = no; then REPLACE_ICONV_UTF=1 AC_DEFINE([REPLACE_ICONV_UTF], [1], [Define if the iconv() functions are enhanced to handle the UTF-{16,32}{BE,LE} encodings.]) REPLACE_ICONV=1 gl_REPLACE_ICONV_OPEN fi ]) fi ]) AC_DEFUN([gl_REPLACE_ICONV_OPEN], [ gl_REPLACE_ICONV_H REPLACE_ICONV_OPEN=1 ]) gcal-3.6.3/m4/log10.m40000644000175000017500000000552112076511425011064 00000000000000# log10.m4 serial 4 dnl Copyright (C) 2011-2013 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-3.6.3/m4/sys_ioctl_h.m40000644000175000017500000000460612076511425012464 00000000000000# sys_ioctl_h.m4 serial 10 dnl Copyright (C) 2008-2013 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-3.6.3/m4/stdalign.m40000644000175000017500000000364312076511425011752 00000000000000# Check for stdalign.h that conforms to C11. dnl Copyright 2011-2013 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 \ (__GNUC__ || __IBMC__ || __IBMCPP__ \ || 0x5110 <= __SUNPRO_C || 1300 <= _MSC_VER) int alignas (8) alignas_int = 1; char test_alignas[_Alignof (alignas_int) == 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-3.6.3/m4/tan.m40000644000175000017500000000055212076511425010723 00000000000000# tan.m4 serial 1 dnl Copyright (C) 2011-2013 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-3.6.3/m4/vasnprintf.m40000644000175000017500000002113312076511425012331 00000000000000# vasnprintf.m4 serial 36 dnl Copyright (C) 2002-2004, 2006-2013 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_VASNPRINTF], [ AC_CHECK_FUNCS_ONCE([vasnprintf]) if test $ac_cv_func_vasnprintf = no; then gl_REPLACE_VASNPRINTF fi ]) AC_DEFUN([gl_REPLACE_VASNPRINTF], [ AC_CHECK_FUNCS_ONCE([vasnprintf]) AC_LIBOBJ([vasnprintf]) AC_LIBOBJ([printf-args]) AC_LIBOBJ([printf-parse]) AC_LIBOBJ([asnprintf]) if test $ac_cv_func_vasnprintf = yes; then AC_DEFINE([REPLACE_VASNPRINTF], [1], [Define if vasnprintf exists but is overridden by gnulib.]) fi gl_PREREQ_PRINTF_ARGS gl_PREREQ_PRINTF_PARSE gl_PREREQ_VASNPRINTF gl_PREREQ_ASNPRINTF ]) # Prerequisites of lib/printf-args.h, lib/printf-args.c. AC_DEFUN([gl_PREREQ_PRINTF_ARGS], [ AC_REQUIRE([AC_TYPE_LONG_LONG_INT]) AC_REQUIRE([gt_TYPE_WCHAR_T]) AC_REQUIRE([gt_TYPE_WINT_T]) ]) # Prerequisites of lib/printf-parse.h, lib/printf-parse.c. AC_DEFUN([gl_PREREQ_PRINTF_PARSE], [ AC_REQUIRE([gl_FEATURES_H]) AC_REQUIRE([AC_TYPE_LONG_LONG_INT]) AC_REQUIRE([gt_TYPE_WCHAR_T]) AC_REQUIRE([gt_TYPE_WINT_T]) AC_REQUIRE([AC_TYPE_SIZE_T]) AC_CHECK_TYPE([ptrdiff_t], , [AC_DEFINE([ptrdiff_t], [long], [Define as the type of the result of subtracting two pointers, if the system doesn't define it.]) ]) AC_REQUIRE([gt_AC_TYPE_INTMAX_T]) ]) # Prerequisites of lib/vasnprintf.c. AC_DEFUN_ONCE([gl_PREREQ_VASNPRINTF], [ AC_REQUIRE([AC_FUNC_ALLOCA]) AC_REQUIRE([AC_TYPE_LONG_LONG_INT]) AC_REQUIRE([gt_TYPE_WCHAR_T]) AC_REQUIRE([gt_TYPE_WINT_T]) AC_CHECK_FUNCS([snprintf strnlen wcslen wcsnlen mbrtowc wcrtomb]) dnl Use the _snprintf function only if it is declared (because on NetBSD it dnl is defined as a weak alias of snprintf; we prefer to use the latter). AC_CHECK_DECLS([_snprintf], , , [[#include ]]) dnl Knowing DBL_EXPBIT0_WORD and DBL_EXPBIT0_BIT enables an optimization dnl in the code for NEED_PRINTF_LONG_DOUBLE || NEED_PRINTF_DOUBLE. AC_REQUIRE([gl_DOUBLE_EXPONENT_LOCATION]) dnl We can avoid a lot of code by assuming that snprintf's return value dnl conforms to ISO C99. So check that. AC_REQUIRE([gl_SNPRINTF_RETVAL_C99]) case "$gl_cv_func_snprintf_retval_c99" in *yes) AC_DEFINE([HAVE_SNPRINTF_RETVAL_C99], [1], [Define if the return value of the snprintf function is the number of of bytes (excluding the terminating NUL) that would have been produced if the buffer had been large enough.]) ;; esac ]) # Extra prerequisites of lib/vasnprintf.c for supporting 'long double' # arguments. AC_DEFUN_ONCE([gl_PREREQ_VASNPRINTF_LONG_DOUBLE], [ AC_REQUIRE([gl_PRINTF_LONG_DOUBLE]) case "$gl_cv_func_printf_long_double" in *yes) ;; *) AC_DEFINE([NEED_PRINTF_LONG_DOUBLE], [1], [Define if the vasnprintf implementation needs special code for 'long double' arguments.]) ;; esac ]) # Extra prerequisites of lib/vasnprintf.c for supporting infinite 'double' # arguments. AC_DEFUN([gl_PREREQ_VASNPRINTF_INFINITE_DOUBLE], [ AC_REQUIRE([gl_PRINTF_INFINITE]) case "$gl_cv_func_printf_infinite" in *yes) ;; *) AC_DEFINE([NEED_PRINTF_INFINITE_DOUBLE], [1], [Define if the vasnprintf implementation needs special code for infinite 'double' arguments.]) ;; esac ]) # Extra prerequisites of lib/vasnprintf.c for supporting infinite 'long double' # arguments. AC_DEFUN([gl_PREREQ_VASNPRINTF_INFINITE_LONG_DOUBLE], [ AC_REQUIRE([gl_PRINTF_INFINITE_LONG_DOUBLE]) dnl There is no need to set NEED_PRINTF_INFINITE_LONG_DOUBLE if dnl NEED_PRINTF_LONG_DOUBLE is already set. AC_REQUIRE([gl_PREREQ_VASNPRINTF_LONG_DOUBLE]) case "$gl_cv_func_printf_long_double" in *yes) case "$gl_cv_func_printf_infinite_long_double" in *yes) ;; *) AC_DEFINE([NEED_PRINTF_INFINITE_LONG_DOUBLE], [1], [Define if the vasnprintf implementation needs special code for infinite 'long double' arguments.]) ;; esac ;; esac ]) # Extra prerequisites of lib/vasnprintf.c for supporting the 'a' directive. AC_DEFUN([gl_PREREQ_VASNPRINTF_DIRECTIVE_A], [ AC_REQUIRE([gl_PRINTF_DIRECTIVE_A]) case "$gl_cv_func_printf_directive_a" in *yes) ;; *) AC_DEFINE([NEED_PRINTF_DIRECTIVE_A], [1], [Define if the vasnprintf implementation needs special code for the 'a' and 'A' directives.]) AC_CHECK_FUNCS([nl_langinfo]) ;; esac ]) # Extra prerequisites of lib/vasnprintf.c for supporting the 'F' directive. AC_DEFUN([gl_PREREQ_VASNPRINTF_DIRECTIVE_F], [ AC_REQUIRE([gl_PRINTF_DIRECTIVE_F]) case "$gl_cv_func_printf_directive_f" in *yes) ;; *) AC_DEFINE([NEED_PRINTF_DIRECTIVE_F], [1], [Define if the vasnprintf implementation needs special code for the 'F' directive.]) ;; esac ]) # Extra prerequisites of lib/vasnprintf.c for supporting the 'ls' directive. AC_DEFUN([gl_PREREQ_VASNPRINTF_DIRECTIVE_LS], [ AC_REQUIRE([gl_PRINTF_DIRECTIVE_LS]) case "$gl_cv_func_printf_directive_ls" in *yes) ;; *) AC_DEFINE([NEED_PRINTF_DIRECTIVE_LS], [1], [Define if the vasnprintf implementation needs special code for the 'ls' directive.]) ;; esac ]) # Extra prerequisites of lib/vasnprintf.c for supporting the ' flag. AC_DEFUN([gl_PREREQ_VASNPRINTF_FLAG_GROUPING], [ AC_REQUIRE([gl_PRINTF_FLAG_GROUPING]) case "$gl_cv_func_printf_flag_grouping" in *yes) ;; *) AC_DEFINE([NEED_PRINTF_FLAG_GROUPING], [1], [Define if the vasnprintf implementation needs special code for the ' flag.]) ;; esac ]) # Extra prerequisites of lib/vasnprintf.c for supporting the '-' flag. AC_DEFUN([gl_PREREQ_VASNPRINTF_FLAG_LEFTADJUST], [ AC_REQUIRE([gl_PRINTF_FLAG_LEFTADJUST]) case "$gl_cv_func_printf_flag_leftadjust" in *yes) ;; *) AC_DEFINE([NEED_PRINTF_FLAG_LEFTADJUST], [1], [Define if the vasnprintf implementation needs special code for the '-' flag.]) ;; esac ]) # Extra prerequisites of lib/vasnprintf.c for supporting the 0 flag. AC_DEFUN([gl_PREREQ_VASNPRINTF_FLAG_ZERO], [ AC_REQUIRE([gl_PRINTF_FLAG_ZERO]) case "$gl_cv_func_printf_flag_zero" in *yes) ;; *) AC_DEFINE([NEED_PRINTF_FLAG_ZERO], [1], [Define if the vasnprintf implementation needs special code for the 0 flag.]) ;; esac ]) # Extra prerequisites of lib/vasnprintf.c for supporting large precisions. AC_DEFUN([gl_PREREQ_VASNPRINTF_PRECISION], [ AC_REQUIRE([gl_PRINTF_PRECISION]) case "$gl_cv_func_printf_precision" in *yes) ;; *) AC_DEFINE([NEED_PRINTF_UNBOUNDED_PRECISION], [1], [Define if the vasnprintf implementation needs special code for supporting large precisions without arbitrary bounds.]) AC_DEFINE([NEED_PRINTF_DOUBLE], [1], [Define if the vasnprintf implementation needs special code for 'double' arguments.]) AC_DEFINE([NEED_PRINTF_LONG_DOUBLE], [1], [Define if the vasnprintf implementation needs special code for 'long double' arguments.]) ;; esac ]) # Extra prerequisites of lib/vasnprintf.c for surviving out-of-memory # conditions. AC_DEFUN([gl_PREREQ_VASNPRINTF_ENOMEM], [ AC_REQUIRE([gl_PRINTF_ENOMEM]) case "$gl_cv_func_printf_enomem" in *yes) ;; *) AC_DEFINE([NEED_PRINTF_ENOMEM], [1], [Define if the vasnprintf implementation needs special code for surviving out-of-memory conditions.]) AC_DEFINE([NEED_PRINTF_DOUBLE], [1], [Define if the vasnprintf implementation needs special code for 'double' arguments.]) AC_DEFINE([NEED_PRINTF_LONG_DOUBLE], [1], [Define if the vasnprintf implementation needs special code for 'long double' arguments.]) ;; esac ]) # Prerequisites of lib/vasnprintf.c including all extras for POSIX compliance. AC_DEFUN([gl_PREREQ_VASNPRINTF_WITH_EXTRAS], [ AC_REQUIRE([gl_PREREQ_VASNPRINTF]) gl_PREREQ_VASNPRINTF_LONG_DOUBLE gl_PREREQ_VASNPRINTF_INFINITE_DOUBLE gl_PREREQ_VASNPRINTF_INFINITE_LONG_DOUBLE gl_PREREQ_VASNPRINTF_DIRECTIVE_A gl_PREREQ_VASNPRINTF_DIRECTIVE_F gl_PREREQ_VASNPRINTF_DIRECTIVE_LS gl_PREREQ_VASNPRINTF_FLAG_GROUPING gl_PREREQ_VASNPRINTF_FLAG_LEFTADJUST gl_PREREQ_VASNPRINTF_FLAG_ZERO gl_PREREQ_VASNPRINTF_PRECISION gl_PREREQ_VASNPRINTF_ENOMEM ]) # Prerequisites of lib/asnprintf.c. AC_DEFUN([gl_PREREQ_ASNPRINTF], [ ]) gcal-3.6.3/m4/strcspn.m40000644000175000017500000000064212076511425011635 00000000000000# strcspn.m4 serial 4 dnl Copyright (C) 2002-2003, 2009-2013 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-3.6.3/m4/acos.m40000644000175000017500000000055612076511425011072 00000000000000# acos.m4 serial 1 dnl Copyright (C) 2011-2013 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-3.6.3/m4/wait-process.m40000644000175000017500000000065312076511425012563 00000000000000# wait-process.m4 serial 6 dnl Copyright (C) 2003, 2008-2013 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-3.6.3/m4/exponentd.m40000644000175000017500000000755212076511425012154 00000000000000# exponentd.m4 serial 3 dnl Copyright (C) 2007-2008, 2010-2013 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_EXPONENT_LOCATION], [ AC_CACHE_CHECK([where to find the exponent in a 'double'], [gl_cv_cc_double_expbit0], [ AC_RUN_IFELSE( [AC_LANG_SOURCE([[ #include #include #include #include #define NWORDS \ ((sizeof (double) + sizeof (unsigned int) - 1) / sizeof (unsigned int)) typedef union { double value; unsigned int word[NWORDS]; } memory_double; static unsigned int ored_words[NWORDS]; static unsigned int anded_words[NWORDS]; static void add_to_ored_words (double x) { memory_double m; size_t i; /* Clear it first, in case sizeof (double) < sizeof (memory_double). */ memset (&m, 0, sizeof (memory_double)); m.value = x; for (i = 0; i < NWORDS; i++) { ored_words[i] |= m.word[i]; anded_words[i] &= m.word[i]; } } int main () { size_t j; FILE *fp = fopen ("conftest.out", "w"); if (fp == NULL) return 1; for (j = 0; j < NWORDS; j++) anded_words[j] = ~ (unsigned int) 0; add_to_ored_words (0.25); add_to_ored_words (0.5); add_to_ored_words (1.0); add_to_ored_words (2.0); add_to_ored_words (4.0); /* Remove bits that are common (e.g. if representation of the first mantissa bit is explicit). */ for (j = 0; j < NWORDS; j++) ored_words[j] &= ~anded_words[j]; /* Now find the nonzero word. */ for (j = 0; j < NWORDS; j++) if (ored_words[j] != 0) break; if (j < NWORDS) { size_t i; for (i = j + 1; i < NWORDS; i++) if (ored_words[i] != 0) { fprintf (fp, "unknown"); return (fclose (fp) != 0); } for (i = 0; ; i++) if ((ored_words[j] >> i) & 1) { fprintf (fp, "word %d bit %d", (int) j, (int) i); return (fclose (fp) != 0); } } fprintf (fp, "unknown"); return (fclose (fp) != 0); } ]])], [gl_cv_cc_double_expbit0=`cat conftest.out`], [gl_cv_cc_double_expbit0="unknown"], [ dnl On ARM, there are two 'double' floating-point formats, used by dnl different sets of instructions: The older FPA instructions assume dnl that they are stored in big-endian word order, while the words dnl (like integer types) are stored in little-endian byte order. dnl The newer VFP instructions assume little-endian order dnl consistently. AC_EGREP_CPP([mixed_endianness], [ #if defined arm || defined __arm || defined __arm__ mixed_endianness #endif ], [gl_cv_cc_double_expbit0="unknown"], [ pushdef([AC_MSG_CHECKING],[:])dnl pushdef([AC_MSG_RESULT],[:])dnl pushdef([AC_MSG_RESULT_UNQUOTED],[:])dnl AC_C_BIGENDIAN( [gl_cv_cc_double_expbit0="word 0 bit 20"], [gl_cv_cc_double_expbit0="word 1 bit 20"], [gl_cv_cc_double_expbit0="unknown"]) popdef([AC_MSG_RESULT_UNQUOTED])dnl popdef([AC_MSG_RESULT])dnl popdef([AC_MSG_CHECKING])dnl ]) ]) rm -f conftest.out ]) case "$gl_cv_cc_double_expbit0" in word*bit*) word=`echo "$gl_cv_cc_double_expbit0" | sed -e 's/word //' -e 's/ bit.*//'` bit=`echo "$gl_cv_cc_double_expbit0" | sed -e 's/word.*bit //'` AC_DEFINE_UNQUOTED([DBL_EXPBIT0_WORD], [$word], [Define as the word index where to find the exponent of 'double'.]) AC_DEFINE_UNQUOTED([DBL_EXPBIT0_BIT], [$bit], [Define as the bit index in the word where to find bit 0 of the exponent of 'double'.]) ;; esac ]) gcal-3.6.3/m4/sys_socket_h.m40000644000175000017500000001416312076511425012641 00000000000000# sys_socket_h.m4 serial 23 dnl Copyright (C) 2005-2013 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-3.6.3/m4/stdint_h.m40000644000175000017500000000174312076511425011760 00000000000000# stdint_h.m4 serial 9 dnl Copyright (C) 1997-2004, 2006, 2008-2013 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_STDINT_H_WITH_UINTMAX if exists, # doesn't clash with , and declares uintmax_t. AC_DEFUN([gl_AC_HEADER_STDINT_H], [ AC_CACHE_CHECK([for stdint.h], [gl_cv_header_stdint_h], [AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( [[#include #include ]], [[uintmax_t i = (uintmax_t) -1; return !i;]])], [gl_cv_header_stdint_h=yes], [gl_cv_header_stdint_h=no])]) if test $gl_cv_header_stdint_h = yes; then AC_DEFINE_UNQUOTED([HAVE_STDINT_H_WITH_UINTMAX], [1], [Define if exists, doesn't clash with , and declares uintmax_t. ]) fi ]) gcal-3.6.3/m4/sys_wait_h.m40000644000175000017500000000224512076511425012313 00000000000000# sys_wait_h.m4 serial 6 dnl Copyright (C) 2008-2013 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_SYS_WAIT_H], [ AC_REQUIRE([gl_SYS_WAIT_H_DEFAULTS]) dnl 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-3.6.3/m4/stddef_h.m40000644000175000017500000000275512076511425011730 00000000000000dnl A placeholder for POSIX 2008 , for platforms that have issues. # stddef_h.m4 serial 4 dnl Copyright (C) 2009-2013 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= 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_WCHAR_T=1; AC_SUBST([HAVE_WCHAR_T]) ]) gcal-3.6.3/m4/mbstate_t.m40000644000175000017500000000256712076511425012133 00000000000000# mbstate_t.m4 serial 13 dnl Copyright (C) 2000-2002, 2008-2013 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-3.6.3/m4/perror.m40000644000175000017500000000440212076511425011450 00000000000000# perror.m4 serial 6 dnl Copyright (C) 2008-2013 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-3.6.3/m4/tempname.m40000644000175000017500000000103212076511425011741 00000000000000#serial 5 # Copyright (C) 2006-2007, 2009-2013 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-3.6.3/m4/cos.m40000644000175000017500000000055212076511425010725 00000000000000# cos.m4 serial 1 dnl Copyright (C) 2011-2013 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-3.6.3/m4/raise.m40000644000175000017500000000171012076511425011241 00000000000000# raise.m4 serial 3 dnl Copyright (C) 2011-2013 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-3.6.3/m4/free.m40000644000175000017500000000303012076511425011054 00000000000000# Check whether free (NULL) is supposed to work. # Copyright (C) 2003-2005, 2009-2013 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-3.6.3/m4/ceil.m40000644000175000017500000000601112076511425011051 00000000000000# ceil.m4 serial 9 dnl Copyright (C) 2007, 2009-2013 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-3.6.3/m4/mbtowc.m40000644000175000017500000000071412076511425011434 00000000000000# mbtowc.m4 serial 2 dnl Copyright (C) 2011-2013 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-3.6.3/m4/unlink.m40000644000175000017500000001107612076511425011444 00000000000000# unlink.m4 serial 11 dnl Copyright (C) 2009-2013 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-3.6.3/m4/strtol.m40000644000175000017500000000053712076511425011473 00000000000000# strtol.m4 serial 6 dnl Copyright (C) 2002-2003, 2006, 2009-2013 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-3.6.3/m4/ssize_t.m40000644000175000017500000000146312076511425011623 00000000000000# ssize_t.m4 serial 5 (gettext-0.18.2) dnl Copyright (C) 2001-2003, 2006, 2010-2013 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-3.6.3/m4/fcntl.m40000644000175000017500000000600512076511425011246 00000000000000# fcntl.m4 serial 5 dnl Copyright (C) 2009-2013 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 ]], [[int result = 0; if (fcntl (0, F_DUPFD, -1) != -1) result |= 1; if (errno != EINVAL) result |= 2; return result; ]])], [gl_cv_func_fcntl_f_dupfd_works=yes], [gl_cv_func_fcntl_f_dupfd_works=no], [# Guess that it works on glibc systems case $host_os in #(( *-gnu*) gl_cv_func_fcntl_f_dupfd_works="guessing yes";; *) gl_cv_func_fcntl_f_dupfd_works="guessing no";; 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-3.6.3/m4/glibc21.m40000644000175000017500000000161312076511425011363 00000000000000# glibc21.m4 serial 5 dnl Copyright (C) 2000-2002, 2004, 2008, 2010-2013 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-3.6.3/m4/btowc.m40000644000175000017500000000613312076511425011260 00000000000000# btowc.m4 serial 10 dnl Copyright (C) 2008-2013 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-3.6.3/m4/gettimeofday.m40000644000175000017500000001172512076511425012626 00000000000000# serial 20 # Copyright (C) 2001-2003, 2005, 2007, 2009-2013 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], [ AC_DEFINE([gmtime], [rpl_gmtime], [Define to rpl_gmtime if the replacement function should be used.]) AC_DEFINE([localtime], [rpl_localtime], [Define to rpl_localtime if the replacement function should be used.]) ]) # Prerequisites of lib/gettimeofday.c. AC_DEFUN([gl_PREREQ_GETTIMEOFDAY], [ AC_CHECK_HEADERS([sys/timeb.h]) AC_CHECK_FUNCS([_ftime]) ]) gcal-3.6.3/m4/time_h.m40000644000175000017500000001020612076511425011403 00000000000000# Configure a more-standard replacement for . # Copyright (C) 2000-2001, 2003-2007, 2009-2013 Free Software Foundation, Inc. # serial 7 # 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, or pthread.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 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 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_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]) 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]) ]) gcal-3.6.3/m4/locale-ja.m40000644000175000017500000001260312076511425011770 00000000000000# locale-ja.m4 serial 12 dnl Copyright (C) 2003, 2005-2013 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-3.6.3/m4/mbrtowc.m40000644000175000017500000004153712076511425011626 00000000000000# mbrtowc.m4 serial 25 dnl Copyright (C) 2001-2002, 2004-2005, 2008-2013 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 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 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 1; } 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 1; } 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 1; } 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 1; } return 0; }]])], [gl_cv_func_mbrtowc_nul_retval=yes], [gl_cv_func_mbrtowc_nul_retval=no], [:]) fi ]) ]) # 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-3.6.3/m4/configmake.m40000644000175000017500000000354012076511425012244 00000000000000# configmake.m4 serial 1 dnl Copyright (C) 2010-2013 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) or automake # 1.9.6 (pkglibexecdir wasn't supported until 1.10b.). 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 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-3.6.3/m4/stdlib_h.m40000644000175000017500000001310112116431050011711 00000000000000# stdlib_h.m4 serial 42 dnl Copyright (C) 2007-2013 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 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_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_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_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-3.6.3/m4/gnulib-comp.m40000644000175000017500000011430112125375413012353 00000000000000# -*- buffer-read-only: t -*- vi: set ro: # DO NOT EDIT! GENERATED AUTOMATICALLY! # DO NOT EDIT! GENERATED AUTOMATICALLY! # Copyright (C) 2002-2013 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 AC_REQUIRE([gl_PROG_AR_RANLIB]) AC_REQUIRE([AM_PROG_CC_C_O]) # 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 c-ctype: # Code from module c-strcase: # Code from module c-strcaseeq: # 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 dosname: # Code from module dup2: # Code from module environ: # Code from module errno: # Code from module error: # Code from module exitfail: # Code from module extensions: AC_REQUIRE([gl_USE_SYSTEM_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 fpieee: AC_REQUIRE([gl_FP_IEEE]) # Code from module fpucw: # Code from module fpurge: # Code from module freading: # Code from module free: # Code from module frexp-nolibm: # Code from module frexpl-nolibm: # 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 gettext: # Code from module gettext-h: # Code from module gettimeofday: # Code from module git-version-gen: # Code from module gperf: # Code from module havelib: # Code from module iconv: # Code from module iconv-h: # Code from module iconv_open: # Code from module include_next: # Code from module inline: # Code from module intprops: # Code from module ioctl: # Code from module isnand-nolibm: # Code from module isnanf-nolibm: # Code from module isnanl-nolibm: # Code from module langinfo: # Code from module largefile: AC_REQUIRE([AC_SYS_LARGEFILE]) # 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 malloc: # Code from module malloc-gnu: # Code from module malloc-posix: # Code from module malloca: # 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 nocrash: # 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 printf-frexp: # Code from module printf-frexpl: # Code from module printf-safe: # 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 signbit: # Code from module sigprocmask: # Code from module sin: # Code from module size_max: # 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 striconveh: # Code from module striconveha: # 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 uniconv/base: # Code from module uniconv/u8-conv-from-enc: # Code from module unistd: # Code from module unistd-safer: # Code from module unistdio/base: # Code from module unistdio/u-printf-args: # Code from module unistdio/u8-sprintf: # Code from module unistdio/u8-vasnprintf: # Code from module unistdio/u8-vsprintf: # Code from module unistdio/ulc-printf-parse: # Code from module unistr/base: # Code from module unistr/u16-mbtoucr: # Code from module unistr/u16-strlen: # Code from module unistr/u16-strmblen: # Code from module unistr/u16-to-u8: # Code from module unistr/u32-strlen: # Code from module unistr/u32-strmblen: # Code from module unistr/u32-to-u8: # Code from module unistr/u8-check: # Code from module unistr/u8-cpy: # Code from module unistr/u8-mblen: # Code from module unistr/u8-mbsnlen: # Code from module unistr/u8-mbtouc: # Code from module unistr/u8-mbtouc-unsafe: # Code from module unistr/u8-mbtoucr: # Code from module unistr/u8-prev: # Code from module unistr/u8-set: # Code from module unistr/u8-strlen: # Code from module unistr/u8-strmblen: # Code from module unistr/u8-uctomb: # Code from module unitypes: # Code from module unlink: # 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: # Code from module xsize: ]) # 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_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_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_FREXP_NO_LIBM if test $gl_func_frexp_no_libm != yes; then AC_LIBOBJ([frexp]) fi gl_MATH_MODULE_INDICATOR([frexp]) gl_FUNC_FREXPL_NO_LIBM if test $HAVE_DECL_FREXPL = 0 || test $gl_func_frexpl_no_libm = no; then AC_LIBOBJ([frexpl]) fi gl_MATH_MODULE_INDICATOR([frexpl]) 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; then AC_LIBOBJ([getdtablesize]) gl_PREREQ_GETDTABLESIZE fi gl_UNISTD_MODULE_INDICATOR([getdtablesize]) dnl you must add AM_GNU_GETTEXT([external]) or similar to configure.ac. AM_GNU_GETTEXT_VERSION([0.18.1]) 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]) AM_ICONV m4_ifdef([gl_ICONV_MODULE_INDICATOR], [gl_ICONV_MODULE_INDICATOR([iconv])]) gl_ICONV_H gl_FUNC_ICONV_OPEN if test $REPLACE_ICONV_OPEN = 1; then AC_LIBOBJ([iconv_open]) fi if test $REPLACE_ICONV = 1; then AC_LIBOBJ([iconv]) AC_LIBOBJ([iconv_close]) fi gl_INLINE gl_FUNC_IOCTL if test $HAVE_IOCTL = 0 || test $REPLACE_IOCTL = 1; then AC_LIBOBJ([ioctl]) fi gl_SYS_IOCTL_MODULE_INDICATOR([ioctl]) gl_FUNC_ISNAND_NO_LIBM if test $gl_func_isnand_no_libm != yes; then AC_LIBOBJ([isnand]) gl_PREREQ_ISNAND fi gl_FUNC_ISNANF_NO_LIBM if test $gl_func_isnanf_no_libm != yes; then AC_LIBOBJ([isnanf]) gl_PREREQ_ISNANF fi gl_FUNC_ISNANL_NO_LIBM if test $gl_func_isnanl_no_libm != yes; then AC_LIBOBJ([isnanl]) gl_PREREQ_ISNANL fi gl_LANGINFO_H AC_REQUIRE([gl_LARGEFILE]) 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 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]) 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_MALLOCA 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]) gl_MSVC_INVAL if test $HAVE_MSVC_INVALID_PARAMETER_HANDLER = 1; then AC_LIBOBJ([msvc-inval]) fi 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_PRINTF_FREXP gl_FUNC_PRINTF_FREXPL m4_divert_text([INIT_PREPARE], [gl_printf_safe=yes]) 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_SIGNBIT if test $REPLACE_SIGNBIT = 1; then AC_LIBOBJ([signbitf]) AC_LIBOBJ([signbitd]) AC_LIBOBJ([signbitl]) fi gl_MATH_MODULE_INDICATOR([signbit]) 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_SIZE_MAX 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]) if test $gl_cond_libtool = false; then gl_ltlibdeps="$gl_ltlibdeps $LTLIBICONV" gl_libdeps="$gl_libdeps $LIBICONV" fi 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 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_LIBUNISTRING_LIBHEADER([0.9], [uniconv.h]) gl_LIBUNISTRING_MODULE([0.9], [uniconv/u8-conv-from-enc]) gl_UNISTD_H gl_UNISTD_SAFER gl_LIBUNISTRING_LIBHEADER([0.9], [unistdio.h]) gl_PREREQ_PRINTF_ARGS gl_LIBUNISTRING_MODULE([0.9], [unistdio/u8-sprintf]) gl_PREREQ_VASNPRINTF_WITH_EXTRAS gl_LIBUNISTRING_MODULE([0.9], [unistdio/u8-vasnprintf]) gl_LIBUNISTRING_MODULE([0.9], [unistdio/u8-vsprintf]) gl_PREREQ_PRINTF_PARSE gl_LIBUNISTRING_LIBHEADER([0.9.2], [unistr.h]) gl_MODULE_INDICATOR([unistr/u16-mbtoucr]) gl_LIBUNISTRING_MODULE([0.9], [unistr/u16-mbtoucr]) gl_LIBUNISTRING_MODULE([0.9], [unistr/u16-strlen]) gl_LIBUNISTRING_MODULE([0.9], [unistr/u16-strmblen]) gl_LIBUNISTRING_MODULE([0.9.3], [unistr/u16-to-u8]) gl_LIBUNISTRING_MODULE([0.9], [unistr/u32-strlen]) gl_LIBUNISTRING_MODULE([0.9], [unistr/u32-strmblen]) gl_LIBUNISTRING_MODULE([0.9], [unistr/u32-to-u8]) gl_LIBUNISTRING_MODULE([0.9], [unistr/u8-check]) gl_LIBUNISTRING_MODULE([0.9], [unistr/u8-cpy]) gl_LIBUNISTRING_MODULE([0.9], [unistr/u8-mblen]) gl_LIBUNISTRING_MODULE([0.9.4], [unistr/u8-mbsnlen]) gl_MODULE_INDICATOR([unistr/u8-mbtouc]) gl_LIBUNISTRING_MODULE([0.9.4], [unistr/u8-mbtouc]) gl_MODULE_INDICATOR([unistr/u8-mbtouc-unsafe]) gl_LIBUNISTRING_MODULE([0.9.4], [unistr/u8-mbtouc-unsafe]) gl_MODULE_INDICATOR([unistr/u8-mbtoucr]) gl_LIBUNISTRING_MODULE([0.9], [unistr/u8-mbtoucr]) gl_LIBUNISTRING_MODULE([0.9], [unistr/u8-prev]) gl_LIBUNISTRING_MODULE([0.9], [unistr/u8-set]) gl_LIBUNISTRING_MODULE([0.9], [unistr/u8-strlen]) gl_LIBUNISTRING_MODULE([0.9], [unistr/u8-strmblen]) gl_MODULE_INDICATOR([unistr/u8-uctomb]) gl_LIBUNISTRING_MODULE([0.9], [unistr/u8-uctomb]) gl_LIBUNISTRING_LIBHEADER([0.9], [unitypes.h]) 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 gl_XSIZE # 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 lib/alloca.c lib/alloca.in.h lib/binary-io.c lib/binary-io.h lib/btowc.c lib/c-ctype.c lib/c-ctype.h lib/c-strcase.h lib/c-strcasecmp.c lib/c-strcaseeq.h lib/c-strncasecmp.c lib/ceil.c lib/cloexec.c lib/cloexec.h lib/close.c lib/config.charset 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+.h lib/float.c lib/float.in.h lib/floor.c lib/fopen.c lib/fpucw.h lib/fpurge.c lib/freading.c lib/freading.h lib/free.c lib/frexp.c lib/frexpl.c lib/fseek.c lib/fseeko.c lib/fstat.c lib/ftell.c lib/ftello.c lib/getdtablesize.c 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/iconv.c lib/iconv.in.h lib/iconv_close.c lib/iconv_open-aix.gperf lib/iconv_open-hpux.gperf lib/iconv_open-irix.gperf lib/iconv_open-osf.gperf lib/iconv_open-solaris.gperf lib/iconv_open.c lib/iconveh.h lib/intprops.h lib/ioctl.c lib/isnan.c lib/isnand-nolibm.h lib/isnand.c lib/isnanf-nolibm.h lib/isnanf.c lib/isnanl-nolibm.h lib/isnanl.c lib/itold.c lib/langinfo.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/malloca.c lib/malloca.h lib/malloca.valgrind 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/printf-args.c lib/printf-args.h lib/printf-frexp.c lib/printf-frexp.h lib/printf-frexpl.c lib/printf-frexpl.h lib/printf-parse.c lib/printf-parse.h 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/signbitd.c lib/signbitf.c lib/signbitl.c lib/sigprocmask.c lib/size_max.h 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/striconveh.c lib/striconveh.h lib/striconveha.c lib/striconveha.h lib/string.in.h lib/strings.in.h 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/uniconv.in.h lib/uniconv/u8-conv-from-enc.c lib/unistd--.h lib/unistd-safer.h lib/unistd.c lib/unistd.in.h lib/unistdio.in.h lib/unistdio/u-printf-args.c lib/unistdio/u-printf-args.h lib/unistdio/u-printf-parse.h lib/unistdio/u-sprintf.h lib/unistdio/u-vsprintf.h lib/unistdio/u8-sprintf.c lib/unistdio/u8-vasnprintf.c lib/unistdio/u8-vsprintf.c lib/unistdio/ulc-printf-parse.c lib/unistr.in.h lib/unistr/u-cpy.h lib/unistr/u-strlen.h lib/unistr/u16-mbtoucr.c lib/unistr/u16-strlen.c lib/unistr/u16-strmblen.c lib/unistr/u16-to-u8.c lib/unistr/u32-strlen.c lib/unistr/u32-strmblen.c lib/unistr/u32-to-u8.c lib/unistr/u8-check.c lib/unistr/u8-cpy.c lib/unistr/u8-mblen.c lib/unistr/u8-mbsnlen.c lib/unistr/u8-mbtouc-aux.c lib/unistr/u8-mbtouc-unsafe-aux.c lib/unistr/u8-mbtouc-unsafe.c lib/unistr/u8-mbtouc.c lib/unistr/u8-mbtoucr.c lib/unistr/u8-prev.c lib/unistr/u8-set.c lib/unistr/u8-strlen.c lib/unistr/u8-strmblen.c lib/unistr/u8-uctomb-aux.c lib/unistr/u8-uctomb.c lib/unitypes.in.h lib/unlink.c lib/vasnprintf.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 lib/xsize.c lib/xsize.h m4/00gnulib.m4 m4/acos.m4 m4/alloca.m4 m4/asin.m4 m4/assert.m4 m4/atan.m4 m4/atan2.m4 m4/btowc.m4 m4/ceil.m4 m4/close.m4 m4/codeset.m4 m4/cond.m4 m4/configmake.m4 m4/cos.m4 m4/dup2.m4 m4/eealloc.m4 m4/environ.m4 m4/errno_h.m4 m4/error.m4 m4/exponentd.m4 m4/exponentf.m4 m4/exponentl.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/fpieee.m4 m4/fpurge.m4 m4/freading.m4 m4/free.m4 m4/frexp.m4 m4/frexpl.m4 m4/fseek.m4 m4/fseeko.m4 m4/fstat.m4 m4/ftell.m4 m4/ftello.m4 m4/getdtablesize.m4 m4/gettext.m4 m4/gettimeofday.m4 m4/glibc2.m4 m4/glibc21.m4 m4/gnulib-common.m4 m4/iconv.m4 m4/iconv_h.m4 m4/iconv_open.m4 m4/include_next.m4 m4/inline.m4 m4/intdiv0.m4 m4/intl.m4 m4/intldir.m4 m4/intlmacosx.m4 m4/intmax.m4 m4/intmax_t.m4 m4/inttypes-pri.m4 m4/inttypes_h.m4 m4/ioctl.m4 m4/isnand.m4 m4/isnanf.m4 m4/isnanl.m4 m4/langinfo_h.m4 m4/largefile.m4 m4/lcmessage.m4 m4/ldexpl.m4 m4/lib-ld.m4 m4/lib-link.m4 m4/lib-prefix.m4 m4/libunistring-base.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/malloca.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/nls.m4 m4/nocrash.m4 m4/off_t.m4 m4/open.m4 m4/pathmax.m4 m4/perror.m4 m4/pipe2.m4 m4/po.m4 m4/posix_spawn.m4 m4/printf-frexp.m4 m4/printf-frexpl.m4 m4/printf-posix.m4 m4/printf.m4 m4/progtest.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/signbit.m4 m4/sin.m4 m4/size_max.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/stdint_h.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/uintmax_t.m4 m4/unistd-safer.m4 m4/unistd_h.m4 m4/unlink.m4 m4/vasnprintf.m4 m4/visibility.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 m4/xsize.m4 ]) gcal-3.6.3/m4/fcntl-o.m40000644000175000017500000001107412076511425011504 00000000000000# fcntl-o.m4 serial 4 dnl Copyright (C) 2006, 2009-2013 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-3.6.3/m4/sys_types_h.m40000644000175000017500000000121712116431050012477 00000000000000# sys_types_h.m4 serial 5 dnl Copyright (C) 2011-2013 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], [ ]) gcal-3.6.3/m4/sig_atomic_t.m40000644000175000017500000000110312076511425012573 00000000000000# sig_atomic_t.m4 serial 3 dnl Copyright (C) 2003, 2009-2013 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-3.6.3/m4/sqrt.m40000644000175000017500000000052312076511425011130 00000000000000# sqrt.m4 serial 3 dnl Copyright (C) 2010-2013 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-3.6.3/m4/stdbool.m40000644000175000017500000000637112076511425011614 00000000000000# Check for stdbool.h that conforms to C99. dnl Copyright (C) 2002-2006, 2009-2013 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 5 # 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 #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 #ifndef __bool_true_false_are_defined "error: __bool_true_false_are_defined is not defined" #endif struct s { _Bool s: 1; _Bool t; } 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 e = &s; *pq |= q; *pq |= ! 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); ]])], [ac_cv_header_stdbool_h=yes], [ac_cv_header_stdbool_h=no])]) AC_CHECK_TYPES([_Bool]) ]) gcal-3.6.3/m4/sigaction.m40000644000175000017500000000232512076511425012121 00000000000000# sigaction.m4 serial 7 dnl Copyright (C) 2008-2013 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-3.6.3/m4/realloc.m40000644000175000017500000000475312076511425011571 00000000000000# realloc.m4 serial 13 dnl Copyright (C) 2007, 2009-2013 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 taken from the following Autoconf patch: # http://git.savannah.gnu.org/gitweb/?p=autoconf.git;a=commitdiff;h=7fbb553727ed7e0e689a17594b58559ecf3ea6e9 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 ]], [[return ! realloc (0, 0);]]) ], [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-3.6.3/m4/unistd_h.m40000644000175000017500000002143412076511425011760 00000000000000# unistd_h.m4 serial 66 dnl Copyright (C) 2006-2013 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_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_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_RMDIR=0; AC_SUBST([REPLACE_RMDIR]) REPLACE_SLEEP=0; AC_SUBST([REPLACE_SLEEP]) REPLACE_SYMLINK=0; AC_SUBST([REPLACE_SYMLINK]) 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-3.6.3/m4/lib-link.m40000644000175000017500000010044312076511425011642 00000000000000# lib-link.m4 serial 26 (gettext-0.18.2) dnl Copyright (C) 2001-2013 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-3.6.3/m4/errno_h.m40000644000175000017500000000623412076511425011600 00000000000000# errno_h.m4 serial 12 dnl Copyright (C) 2004, 2006, 2008-2013 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-3.6.3/m4/printf-frexpl.m40000644000175000017500000000332312076511425012740 00000000000000# printf-frexpl.m4 serial 10 dnl Copyright (C) 2007, 2009-2013 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 how to define printf_frexpl() without linking with libm. AC_DEFUN([gl_FUNC_PRINTF_FREXPL], [ AC_REQUIRE([gl_MATH_H_DEFAULTS]) AC_REQUIRE([gl_LONG_DOUBLE_VS_DOUBLE]) dnl Subset of gl_FUNC_FREXPL_NO_LIBM. gl_CHECK_FREXPL_NO_LIBM if test $gl_cv_func_frexpl_no_libm = yes; then gl_FUNC_FREXPL_WORKS case "$gl_cv_func_frexpl_works" in *yes) gl_func_frexpl_no_libm=yes ;; *) gl_func_frexpl_no_libm=no; REPLACE_FREXPL=1 ;; esac else gl_func_frexpl_no_libm=no dnl Set REPLACE_FREXPL here because the system may have frexpl in libm. REPLACE_FREXPL=1 fi if test $gl_func_frexpl_no_libm = yes; then AC_DEFINE([HAVE_FREXPL_IN_LIBC], [1], [Define if the frexpl function is available in libc.]) dnl Also check whether it's declared. dnl Mac OS X 10.3 has frexpl() in libc but doesn't declare it in . AC_CHECK_DECL([frexpl], , [HAVE_DECL_FREXPL=0], [[#include ]]) fi gl_CHECK_LDEXPL_NO_LIBM if test $gl_cv_func_ldexpl_no_libm = yes; then gl_FUNC_LDEXPL_WORKS case "$gl_cv_func_ldexpl_works" in *yes) AC_DEFINE([HAVE_LDEXPL_IN_LIBC], [1], [Define if the ldexpl function is available in libc.]) dnl Also check whether it's declared. dnl Mac OS X 10.3 has ldexpl() in libc but doesn't declare it in . AC_CHECK_DECL([ldexpl], , [HAVE_DECL_LDEXPL=0], [[#include ]]) ;; esac fi ]) gcal-3.6.3/m4/rawmemchr.m40000644000175000017500000000117212076511425012125 00000000000000# rawmemchr.m4 serial 2 dnl Copyright (C) 2003, 2007-2013 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-3.6.3/m4/fatal-signal.m40000644000175000017500000000065612076511425012510 00000000000000# fatal-signal.m4 serial 9 dnl Copyright (C) 2003-2004, 2006, 2008-2013 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-3.6.3/m4/close.m40000644000175000017500000000214612076511425011247 00000000000000# close.m4 serial 8 dnl Copyright (C) 2008-2013 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-3.6.3/m4/signal_h.m40000644000175000017500000000604212076511425011725 00000000000000# signal_h.m4 serial 18 dnl Copyright (C) 2007-2013 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-3.6.3/m4/sys_uio_h.m40000644000175000017500000000165412076511425012146 00000000000000# sys_uio_h.m4 serial 1 dnl Copyright (C) 2011-2013 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-3.6.3/m4/strdup.m40000644000175000017500000000165712076511425011471 00000000000000# strdup.m4 serial 13 dnl Copyright (C) 2002-2013 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-3.6.3/m4/longlong.m40000644000175000017500000001120312076511425011753 00000000000000# longlong.m4 serial 17 dnl Copyright (C) 1999-2007, 2009-2013 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-3.6.3/m4/signalblocking.m40000644000175000017500000000164112076511425013127 00000000000000# signalblocking.m4 serial 14 dnl Copyright (C) 2001-2002, 2006-2013 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-3.6.3/m4/mode_t.m40000644000175000017500000000234212076511425011407 00000000000000# mode_t.m4 serial 2 dnl Copyright (C) 2009-2013 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-3.6.3/m4/fpieee.m40000644000175000017500000000435612076511425011404 00000000000000# fpieee.m4 serial 2 dnl Copyright (C) 2007, 2009-2013 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 IEEE 754 standardized three items: dnl - The formats of single-float and double-float - nowadays commonly dnl available as 'float' and 'double' in C and C++. dnl No autoconf test needed. dnl - The overflow and division by zero behaviour: The result are values dnl '±Inf' and 'NaN', rather than exceptions as it was before. dnl This file provides an autoconf macro for ensuring this behaviour of dnl floating-point operations. dnl - A set of conditions (overflow, underflow, inexact, etc.) which can dnl be configured to trigger an exception. dnl This cannot be done in a portable way: it depends on the compiler, dnl libc, kernel, and CPU. No autoconf macro is provided for this. dnl Ensure non-trapping behaviour of floating-point overflow and dnl floating-point division by zero. dnl (For integer overflow, see gcc's -ftrapv option; for integer division by dnl zero, see the autoconf macro in intdiv0.m4.) AC_DEFUN([gl_FP_IEEE], [ AC_REQUIRE([AC_PROG_CC]) AC_REQUIRE([AC_CANONICAL_HOST]) # IEEE behaviour is the default on all CPUs except Alpha and SH # (according to the test results of Bruno Haible's ieeefp/fenv_default.m4 # and the GCC 4.1.2 manual). case "$host_cpu" in alpha*) # On Alpha systems, a compiler option provides the behaviour. # See the ieee(3) manual page, also available at # if test -n "$GCC"; then # GCC has the option -mieee. # For full IEEE compliance (rarely needed), use option -mieee-with-inexact. CPPFLAGS="$CPPFLAGS -mieee" else # Compaq (ex-DEC) C has the option -ieee, equivalent to -ieee_with_no_inexact. # For full IEEE compliance (rarely needed), use option -ieee_with_inexact. CPPFLAGS="$CPPFLAGS -ieee" fi ;; sh*) if test -n "$GCC"; then # GCC has the option -mieee. CPPFLAGS="$CPPFLAGS -mieee" fi ;; esac ]) gcal-3.6.3/m4/log.m40000644000175000017500000000541312076511425010723 00000000000000# log.m4 serial 4 dnl Copyright (C) 2011-2013 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-3.6.3/m4/sys_stat_h.m40000644000175000017500000000723612076511425012327 00000000000000# sys_stat_h.m4 serial 28 -*- Autoconf -*- dnl Copyright (C) 2006-2013 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-3.6.3/m4/stdint.m40000644000175000017500000003701412076511425011451 00000000000000# stdint.m4 serial 43 dnl Copyright (C) 2001-2013 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 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 */ #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; #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 */ #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 if test "$gl_cv_header_working_stdint_h" = yes; then STDINT_H= 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 else HAVE_SYS_INTTYPES_H=0 fi AC_SUBST([HAVE_SYS_INTTYPES_H]) if test $ac_cv_header_sys_bitypes_h = yes; then HAVE_SYS_BITYPES_H=1 else HAVE_SYS_BITYPES_H=0 fi AC_SUBST([HAVE_SYS_BITYPES_H]) gl_STDINT_TYPE_PROPERTIES STDINT_H=stdint.h fi 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 $BITSIZEOF_WINT_T -lt 32; 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])]) ]) # Hey Emacs! # Local Variables: # indent-tabs-mode: nil # End: gcal-3.6.3/m4/intmax_t.m40000644000175000017500000000416612076511425011771 00000000000000# intmax_t.m4 serial 8 dnl Copyright (C) 1997-2004, 2006-2007, 2009-2013 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 Paul Eggert. AC_PREREQ([2.53]) # Define intmax_t to 'long' or 'long long' # if it is not already defined in or . AC_DEFUN([gl_AC_TYPE_INTMAX_T], [ dnl For simplicity, we assume that a header file defines 'intmax_t' if and dnl only if it defines 'uintmax_t'. AC_REQUIRE([gl_AC_HEADER_INTTYPES_H]) AC_REQUIRE([gl_AC_HEADER_STDINT_H]) if test $gl_cv_header_inttypes_h = no && test $gl_cv_header_stdint_h = no; then AC_REQUIRE([AC_TYPE_LONG_LONG_INT]) test $ac_cv_type_long_long_int = yes \ && ac_type='long long' \ || ac_type='long' AC_DEFINE_UNQUOTED([intmax_t], [$ac_type], [Define to long or long long if and don't define.]) else AC_DEFINE([HAVE_INTMAX_T], [1], [Define if you have the 'intmax_t' type in or .]) fi ]) dnl An alternative would be to explicitly test for 'intmax_t'. AC_DEFUN([gt_AC_TYPE_INTMAX_T], [ AC_REQUIRE([gl_AC_HEADER_INTTYPES_H]) AC_REQUIRE([gl_AC_HEADER_STDINT_H]) AC_CACHE_CHECK([for intmax_t], [gt_cv_c_intmax_t], [AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( [[ #include #include #if HAVE_STDINT_H_WITH_UINTMAX #include #endif #if HAVE_INTTYPES_H_WITH_UINTMAX #include #endif ]], [[intmax_t x = -1; return !x;]])], [gt_cv_c_intmax_t=yes], [gt_cv_c_intmax_t=no])]) if test $gt_cv_c_intmax_t = yes; then AC_DEFINE([HAVE_INTMAX_T], [1], [Define if you have the 'intmax_t' type in or .]) else AC_REQUIRE([AC_TYPE_LONG_LONG_INT]) test $ac_cv_type_long_long_int = yes \ && ac_type='long long' \ || ac_type='long' AC_DEFINE_UNQUOTED([intmax_t], [$ac_type], [Define to long or long long if and don't define.]) fi ]) gcal-3.6.3/m4/socklen.m40000644000175000017500000000623612076511425011604 00000000000000# socklen.m4 serial 10 dnl Copyright (C) 2005-2007, 2009-2013 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-3.6.3/m4/nocrash.m40000644000175000017500000001055512076511425011602 00000000000000# nocrash.m4 serial 4 dnl Copyright (C) 2005, 2009-2013 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 Based on libsigsegv, from Bruno Haible and Paolo Bonzini. AC_PREREQ([2.13]) dnl Expands to some code for use in .c programs that will cause the configure dnl test to exit instead of crashing. This is useful to avoid triggering dnl action from a background debugger and to avoid core dumps. dnl Usage: ... dnl ]GL_NOCRASH[ dnl ... dnl int main() { nocrash_init(); ... } AC_DEFUN([GL_NOCRASH],[[ #include #if defined __MACH__ && defined __APPLE__ /* Avoid a crash on Mac OS X. */ #include #include #include #include #include #include /* The exception port on which our thread listens. */ static mach_port_t our_exception_port; /* The main function of the thread listening for exceptions of type EXC_BAD_ACCESS. */ static void * mach_exception_thread (void *arg) { /* Buffer for a message to be received. */ struct { mach_msg_header_t head; mach_msg_body_t msgh_body; char data[1024]; } msg; mach_msg_return_t retval; /* Wait for a message on the exception port. */ retval = mach_msg (&msg.head, MACH_RCV_MSG | MACH_RCV_LARGE, 0, sizeof (msg), our_exception_port, MACH_MSG_TIMEOUT_NONE, MACH_PORT_NULL); if (retval != MACH_MSG_SUCCESS) abort (); exit (1); } static void nocrash_init (void) { mach_port_t self = mach_task_self (); /* Allocate a port on which the thread shall listen for exceptions. */ if (mach_port_allocate (self, MACH_PORT_RIGHT_RECEIVE, &our_exception_port) == KERN_SUCCESS) { /* See http://web.mit.edu/darwin/src/modules/xnu/osfmk/man/mach_port_insert_right.html. */ if (mach_port_insert_right (self, our_exception_port, our_exception_port, MACH_MSG_TYPE_MAKE_SEND) == KERN_SUCCESS) { /* The exceptions we want to catch. Only EXC_BAD_ACCESS is interesting for us. */ exception_mask_t mask = EXC_MASK_BAD_ACCESS; /* Create the thread listening on the exception port. */ pthread_attr_t attr; pthread_t thread; if (pthread_attr_init (&attr) == 0 && pthread_attr_setdetachstate (&attr, PTHREAD_CREATE_DETACHED) == 0 && pthread_create (&thread, &attr, mach_exception_thread, NULL) == 0) { pthread_attr_destroy (&attr); /* Replace the exception port info for these exceptions with our own. Note that we replace the exception port for the entire task, not only for a particular thread. This has the effect that when our exception port gets the message, the thread specific exception port has already been asked, and we don't need to bother about it. See http://web.mit.edu/darwin/src/modules/xnu/osfmk/man/task_set_exception_ports.html. */ task_set_exception_ports (self, mask, our_exception_port, EXCEPTION_DEFAULT, MACHINE_THREAD_STATE); } } } } #elif (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ /* Avoid a crash on native Windows. */ #define WIN32_LEAN_AND_MEAN #include #include static LONG WINAPI exception_filter (EXCEPTION_POINTERS *ExceptionInfo) { switch (ExceptionInfo->ExceptionRecord->ExceptionCode) { case EXCEPTION_ACCESS_VIOLATION: case EXCEPTION_IN_PAGE_ERROR: case EXCEPTION_STACK_OVERFLOW: case EXCEPTION_GUARD_PAGE: case EXCEPTION_PRIV_INSTRUCTION: case EXCEPTION_ILLEGAL_INSTRUCTION: case EXCEPTION_DATATYPE_MISALIGNMENT: case EXCEPTION_ARRAY_BOUNDS_EXCEEDED: case EXCEPTION_NONCONTINUABLE_EXCEPTION: exit (1); } return EXCEPTION_CONTINUE_SEARCH; } static void nocrash_init (void) { SetUnhandledExceptionFilter ((LPTOP_LEVEL_EXCEPTION_FILTER) exception_filter); } #else /* Avoid a crash on POSIX systems. */ #include /* A POSIX signal handler. */ static void exception_handler (int sig) { exit (1); } static void nocrash_init (void) { #ifdef SIGSEGV signal (SIGSEGV, exception_handler); #endif #ifdef SIGBUS signal (SIGBUS, exception_handler); #endif } #endif ]]) gcal-3.6.3/m4/warn-on-use.m40000644000175000017500000000415412076511425012316 00000000000000# warn-on-use.m4 serial 5 dnl Copyright (C) 2010-2013 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-3.6.3/m4/progtest.m40000644000175000017500000000604012076511425012006 00000000000000# progtest.m4 serial 7 (gettext-0.18.2) dnl Copyright (C) 1996-2003, 2005, 2008-2013 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 # 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 # 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-3.6.3/m4/sys_time_h.m40000644000175000017500000000734112076511425012307 00000000000000# Configure a replacement for . # serial 8 # Copyright (C) 2007, 2009-2013 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]) REPLACE_GETTIMEOFDAY=0; AC_SUBST([REPLACE_GETTIMEOFDAY]) REPLACE_STRUCT_TIMEVAL=0; AC_SUBST([REPLACE_STRUCT_TIMEVAL]) ]) gcal-3.6.3/m4/assert.m40000644000175000017500000000166012076511425011443 00000000000000#serial 7 # Copyright (C) 1998-1999, 2001, 2004, 2008-2013 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-3.6.3/m4/mbsinit.m40000644000175000017500000000276312076511425011614 00000000000000# mbsinit.m4 serial 8 dnl Copyright (C) 2008, 2010-2013 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-3.6.3/m4/ulonglong.m40000644000175000017500000000365412125375415012155 00000000000000# -*- buffer-read-only: t -*- vi: set ro: # DO NOT EDIT! GENERATED AUTOMATICALLY! # ulonglong.m4 serial 6 dnl Copyright (C) 1999-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 From Paul Eggert. # Define HAVE_UNSIGNED_LONG_LONG_INT if 'unsigned long long int' works. # This fixes a bug in Autoconf 2.60, but can be removed once we # assume 2.61 everywhere. # 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_LINK_IFELSE( [AC_LANG_PROGRAM( [[unsigned long long int ull = 18446744073709551615ULL; typedef int a[(18446744073709551615ULL <= (unsigned long long int) -1 ? 1 : -1)]; int i = 63;]], [[unsigned long long int ullmax = 18446744073709551615ull; return (ull << 63 | ull >> 63 | ull << i | ull >> i | ullmax / ull | ullmax % ull);]])], [ac_cv_type_unsigned_long_long_int=yes], [ac_cv_type_unsigned_long_long_int=no])]) 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 ]) # This macro is obsolescent and should go away soon. AC_DEFUN([gl_AC_TYPE_UNSIGNED_LONG_LONG], [ AC_REQUIRE([AC_TYPE_UNSIGNED_LONG_LONG_INT]) ac_cv_type_unsigned_long_long=$ac_cv_type_unsigned_long_long_int if test $ac_cv_type_unsigned_long_long = yes; then AC_DEFINE(HAVE_UNSIGNED_LONG_LONG, 1, [Define if you have the 'unsigned long long' type.]) fi ]) gcal-3.6.3/m4/00gnulib.m40000644000175000017500000000252212076511424011557 00000000000000# 00gnulib.m4 serial 2 dnl Copyright (C) 2009-2013 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 semantics. # 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-3.6.3/m4/nls.m40000644000175000017500000000231512076511425010734 00000000000000# nls.m4 serial 5 (gettext-0.18) dnl Copyright (C) 1995-2003, 2005-2006, 2008-2013 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 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-3.6.3/m4/eealloc.m40000644000175000017500000000166712076511425011555 00000000000000# eealloc.m4 serial 3 dnl Copyright (C) 2003, 2009-2013 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-3.6.3/m4/lib-prefix.m40000644000175000017500000002042212076511425012200 00000000000000# lib-prefix.m4 serial 7 (gettext-0.18) dnl Copyright (C) 2001-2005, 2008-2013 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-3.6.3/m4/langinfo_h.m40000644000175000017500000000672112076511425012251 00000000000000# langinfo_h.m4 serial 7 dnl Copyright (C) 2009-2013 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-3.6.3/m4/off_t.m40000644000175000017500000000100612076511425011231 00000000000000# off_t.m4 serial 1 dnl Copyright (C) 2012-2013 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-3.6.3/m4/localcharset.m40000644000175000017500000000112512076511425012602 00000000000000# localcharset.m4 serial 7 dnl Copyright (C) 2002, 2004, 2006, 2009-2013 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-3.6.3/m4/ldexpl.m40000644000175000017500000000742512076511425011437 00000000000000# ldexpl.m4 serial 16 dnl Copyright (C) 2007-2013 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_LDEXPL], [ AC_REQUIRE([gl_MATH_H_DEFAULTS]) AC_REQUIRE([gl_LONG_DOUBLE_VS_DOUBLE]) AC_REQUIRE([gl_FUNC_ISNANL]) dnl for ISNANL_LIBM dnl Persuade glibc to declare ldexpl(). AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS]) dnl Check whether it's declared. dnl Mac OS X 10.3 has ldexpl() in libc but doesn't declare it in . AC_CHECK_DECL([ldexpl], , [HAVE_DECL_LDEXPL=0], [[#include ]]) LDEXPL_LIBM= if test $HAVE_DECL_LDEXPL = 1; then gl_CHECK_LDEXPL_NO_LIBM if test $gl_cv_func_ldexpl_no_libm = no; then AC_CACHE_CHECK([whether ldexpl() can be used with libm], [gl_cv_func_ldexpl_in_libm], [ save_LIBS="$LIBS" LIBS="$LIBS -lm" AC_LINK_IFELSE( [AC_LANG_PROGRAM( [[#include long double x;]], [[return ldexpl (x, -1) > 0;]])], [gl_cv_func_ldexpl_in_libm=yes], [gl_cv_func_ldexpl_in_libm=no]) LIBS="$save_LIBS" ]) if test $gl_cv_func_ldexpl_in_libm = yes; then LDEXPL_LIBM=-lm fi fi if test $gl_cv_func_ldexpl_no_libm = yes \ || test $gl_cv_func_ldexpl_in_libm = yes; then save_LIBS="$LIBS" LIBS="$LIBS $LDEXPL_LIBM" gl_FUNC_LDEXPL_WORKS LIBS="$save_LIBS" case "$gl_cv_func_ldexpl_works" in *yes) gl_func_ldexpl=yes ;; *) gl_func_ldexpl=no; REPLACE_LDEXPL=1 ;; esac else gl_func_ldexpl=no fi if test $gl_func_ldexpl = yes; then AC_DEFINE([HAVE_LDEXPL], [1], [Define if the ldexpl() function is available.]) fi fi if test $HAVE_DECL_LDEXPL = 0 || test $gl_func_ldexpl = no; then dnl Find libraries needed to link lib/ldexpl.c. if test $HAVE_SAME_LONG_DOUBLE_AS_DOUBLE = 1; then AC_REQUIRE([gl_FUNC_LDEXP]) LDEXPL_LIBM="$LDEXP_LIBM" else LDEXPL_LIBM="$ISNANL_LIBM" fi fi AC_SUBST([LDEXPL_LIBM]) ]) dnl Test whether ldexpl() can be used without linking with libm. dnl Set gl_cv_func_ldexpl_no_libm to 'yes' or 'no' accordingly. AC_DEFUN([gl_CHECK_LDEXPL_NO_LIBM], [ AC_CACHE_CHECK([whether ldexpl() can be used without linking with libm], [gl_cv_func_ldexpl_no_libm], [ AC_LINK_IFELSE( [AC_LANG_PROGRAM( [[#include long double x;]], [[return ldexpl (x, -1) > 0;]])], [gl_cv_func_ldexpl_no_libm=yes], [gl_cv_func_ldexpl_no_libm=no]) ]) ]) dnl Test whether ldexpl() works on finite numbers (this fails on AIX 5.1 dnl and Mac OS X 10.4/PowerPC). AC_DEFUN([gl_FUNC_LDEXPL_WORKS], [ AC_REQUIRE([AC_PROG_CC]) AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles AC_CACHE_CHECK([whether ldexpl works], [gl_cv_func_ldexpl_works], [ AC_RUN_IFELSE( [AC_LANG_SOURCE([[ #include extern #ifdef __cplusplus "C" #endif long double ldexpl (long double, int); int main() { int result = 0; { volatile long double x = 1.0; volatile long double y = ldexpl (x, -1); if (y != 0.5L) result |= 1; } { volatile long double x = 1.73205L; volatile long double y = ldexpl (x, 0); if (y != x) result |= 2; } return result; }]])], [gl_cv_func_ldexpl_works=yes], [gl_cv_func_ldexpl_works=no], [ changequote(,)dnl case "$host_os" in aix | aix[3-6]*) gl_cv_func_ldexpl_works="guessing no";; *) gl_cv_func_ldexpl_works="guessing yes";; esac changequote([,])dnl ]) ]) ]) gcal-3.6.3/m4/lib-ld.m40000644000175000017500000000714312076511425011307 00000000000000# lib-ld.m4 serial 6 dnl Copyright (C) 1996-2003, 2009-2013 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 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-3.6.3/m4/dup2.m40000644000175000017500000000546412076511425011022 00000000000000#serial 19 dnl Copyright (C) 2002, 2005, 2007, 2009-2013 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 ]], [int result = 0; #ifdef FD_CLOEXEC if (fcntl (1, F_SETFD, FD_CLOEXEC) == -1) result |= 1; #endif if (dup2 (1, 1) == 0) 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, 1000000) == -1 && errno != EBADF) result |= 16; /* Flush out a cygwin core dump. */ if (dup2 (2, -1) != -1 || errno != EBADF) result |= 32; 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" ;; linux*) # On linux between 2008-07-27 and 2009-05-11, dup2 of a # closed fd may yield -EBADF instead of -1 / errno=EBADF. gl_cv_func_dup2_works="guessing no" ;; freebsd*) # on FreeBSD 6.1, dup2(1,1000000) 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" ;; *) gl_cv_func_dup2_works="guessing yes" ;; esac]) ]) case "$gl_cv_func_dup2_works" in *yes) ;; *) REPLACE_DUP2=1 ;; 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-3.6.3/m4/strchrnul.m40000644000175000017500000000276612076511425012176 00000000000000# strchrnul.m4 serial 9 dnl Copyright (C) 2003, 2007, 2009-2013 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-3.6.3/m4/po.m40000644000175000017500000004500212116431050010544 00000000000000# po.m4 serial 20 (gettext-0.18.2) dnl Copyright (C) 1995-2013 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.60]) 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([AC_PROG_MKDIR_P])dnl 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.18]) 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" gt_tab=`printf '\t'` cat "$ac_given_srcdir/$ac_dir/POTFILES.in" | sed -e "/^#/d" -e "/^[ ${gt_tab}]*\$/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 assignment 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 assignment 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" tab=`printf '\t'` 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" < #include #include #include #define NWORDS \ ((sizeof (long double) + sizeof (unsigned int) - 1) / sizeof (unsigned int)) typedef union { long double value; unsigned int word[NWORDS]; } memory_long_double; static unsigned int ored_words[NWORDS]; static unsigned int anded_words[NWORDS]; static void add_to_ored_words (long double x) { memory_long_double m; size_t i; /* Clear it first, in case sizeof (long double) < sizeof (memory_long_double). */ memset (&m, 0, sizeof (memory_long_double)); m.value = x; for (i = 0; i < NWORDS; i++) { ored_words[i] |= m.word[i]; anded_words[i] &= m.word[i]; } } int main () { size_t j; FILE *fp = fopen ("conftest.out", "w"); if (fp == NULL) return 1; for (j = 0; j < NWORDS; j++) anded_words[j] = ~ (unsigned int) 0; add_to_ored_words (0.25L); add_to_ored_words (0.5L); add_to_ored_words (1.0L); add_to_ored_words (2.0L); add_to_ored_words (4.0L); /* Remove bits that are common (e.g. if representation of the first mantissa bit is explicit). */ for (j = 0; j < NWORDS; j++) ored_words[j] &= ~anded_words[j]; /* Now find the nonzero word. */ for (j = 0; j < NWORDS; j++) if (ored_words[j] != 0) break; if (j < NWORDS) { size_t i; for (i = j + 1; i < NWORDS; i++) if (ored_words[i] != 0) { fprintf (fp, "unknown"); return (fclose (fp) != 0); } for (i = 0; ; i++) if ((ored_words[j] >> i) & 1) { fprintf (fp, "word %d bit %d", (int) j, (int) i); return (fclose (fp) != 0); } } fprintf (fp, "unknown"); return (fclose (fp) != 0); } ]])], [gl_cv_cc_long_double_expbit0=`cat conftest.out`], [gl_cv_cc_long_double_expbit0="unknown"], [ dnl When cross-compiling, we don't know. It depends on the dnl ABI and compiler version. There are too many cases. gl_cv_cc_long_double_expbit0="unknown" ]) rm -f conftest.out ]) case "$gl_cv_cc_long_double_expbit0" in word*bit*) word=`echo "$gl_cv_cc_long_double_expbit0" | sed -e 's/word //' -e 's/ bit.*//'` bit=`echo "$gl_cv_cc_long_double_expbit0" | sed -e 's/word.*bit //'` AC_DEFINE_UNQUOTED([LDBL_EXPBIT0_WORD], [$word], [Define as the word index where to find the exponent of 'long double'.]) AC_DEFINE_UNQUOTED([LDBL_EXPBIT0_BIT], [$bit], [Define as the bit index in the word where to find bit 0 of the exponent of 'long double'.]) ;; esac ]) gcal-3.6.3/m4/size_max.m40000644000175000017500000000577012076511425011767 00000000000000# size_max.m4 serial 10 dnl Copyright (C) 2003, 2005-2006, 2008-2013 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_SIZE_MAX], [ AC_CHECK_HEADERS([stdint.h]) dnl First test whether the system already has SIZE_MAX. AC_CACHE_CHECK([for SIZE_MAX], [gl_cv_size_max], [ gl_cv_size_max= AC_EGREP_CPP([Found it], [ #include #if HAVE_STDINT_H #include #endif #ifdef SIZE_MAX Found it #endif ], [gl_cv_size_max=yes]) if test -z "$gl_cv_size_max"; then dnl Define it ourselves. Here we assume that the type 'size_t' is not wider dnl than the type 'unsigned long'. Try hard to find a definition that can dnl be used in a preprocessor #if, i.e. doesn't contain a cast. AC_COMPUTE_INT([size_t_bits_minus_1], [sizeof (size_t) * CHAR_BIT - 1], [#include #include ], [size_t_bits_minus_1=]) AC_COMPUTE_INT([fits_in_uint], [sizeof (size_t) <= sizeof (unsigned int)], [#include ], [fits_in_uint=]) if test -n "$size_t_bits_minus_1" && test -n "$fits_in_uint"; then if test $fits_in_uint = 1; then dnl Even though SIZE_MAX fits in an unsigned int, it must be of type dnl 'unsigned long' if the type 'size_t' is the same as 'unsigned long'. AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( [[#include extern size_t foo; extern unsigned long foo; ]], [[]])], [fits_in_uint=0]) fi dnl We cannot use 'expr' to simplify this expression, because 'expr' dnl works only with 'long' integers in the host environment, while we dnl might be cross-compiling from a 32-bit platform to a 64-bit platform. if test $fits_in_uint = 1; then gl_cv_size_max="(((1U << $size_t_bits_minus_1) - 1) * 2 + 1)" else gl_cv_size_max="(((1UL << $size_t_bits_minus_1) - 1) * 2 + 1)" fi else dnl Shouldn't happen, but who knows... gl_cv_size_max='((size_t)~(size_t)0)' fi fi ]) if test "$gl_cv_size_max" != yes; then AC_DEFINE_UNQUOTED([SIZE_MAX], [$gl_cv_size_max], [Define as the maximum value of type 'size_t', if the system doesn't define it.]) fi dnl Don't redefine SIZE_MAX in config.h if config.h is re-included after dnl . Remember that the #undef in AH_VERBATIM gets replaced with dnl #define by AC_DEFINE_UNQUOTED. AH_VERBATIM([SIZE_MAX], [/* Define as the maximum value of type 'size_t', if the system doesn't define it. */ #ifndef SIZE_MAX # undef SIZE_MAX #endif]) ]) 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-3.6.3/m4/stat.m40000644000175000017500000000521412076511425011114 00000000000000# serial 11 # Copyright (C) 2009-2013 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-3.6.3/m4/signbit.m40000644000175000017500000002724612076511425011611 00000000000000# signbit.m4 serial 13 dnl Copyright (C) 2007-2013 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_SIGNBIT], [ AC_REQUIRE([gl_MATH_H_DEFAULTS]) AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles AC_CACHE_CHECK([for signbit macro], [gl_cv_func_signbit], [ AC_RUN_IFELSE( [AC_LANG_SOURCE([[ #include /* If signbit is defined as a function, don't use it, since calling it for 'float' or 'long double' arguments would involve conversions. If signbit is not declared at all but exists as a library function, don't use it, since the prototype may not match. If signbit is not declared at all but exists as a compiler built-in, don't use it, since it's preferable to use __builtin_signbit* (no warnings, no conversions). */ #ifndef signbit # error "signbit should be a macro" #endif #include ]gl_SIGNBIT_TEST_PROGRAM ])], [gl_cv_func_signbit=yes], [gl_cv_func_signbit=no], [case "$host_os" in # Guess yes on glibc systems. *-gnu*) gl_cv_func_signbit="guessing yes" ;; # If we don't know, assume the worst. *) gl_cv_func_signbit="guessing no" ;; esac ]) ]) dnl GCC 4.0 and newer provides three built-ins for signbit. dnl They can be used without warnings, also in C++, regardless of . dnl But they may expand to calls to functions, which may or may not be in dnl libc. AC_CACHE_CHECK([for signbit compiler built-ins], [gl_cv_func_signbit_gcc], [ AC_RUN_IFELSE( [AC_LANG_SOURCE([[ #if __GNUC__ >= 4 # define signbit(x) \ (sizeof (x) == sizeof (long double) ? __builtin_signbitl (x) : \ sizeof (x) == sizeof (double) ? __builtin_signbit (x) : \ __builtin_signbitf (x)) #else # error "signbit should be three compiler built-ins" #endif #include ]gl_SIGNBIT_TEST_PROGRAM ])], [gl_cv_func_signbit_gcc=yes], [gl_cv_func_signbit_gcc=no], [case "$host_os" in # Guess yes on glibc systems. *-gnu*) gl_cv_func_signbit_gcc="guessing yes" ;; # If we don't know, assume the worst. *) gl_cv_func_signbit_gcc="guessing no" ;; esac ]) ]) dnl Use the compiler built-ins whenever possible, because they are more dnl efficient than the system library functions (if they exist). case "$gl_cv_func_signbit_gcc" in *yes) REPLACE_SIGNBIT_USING_GCC=1 ;; *) case "$gl_cv_func_signbit" in *yes) ;; *) dnl REPLACE_SIGNBIT=1 makes sure the signbit[fdl] functions get built. REPLACE_SIGNBIT=1 gl_FLOAT_SIGN_LOCATION gl_DOUBLE_SIGN_LOCATION gl_LONG_DOUBLE_SIGN_LOCATION if test "$gl_cv_cc_float_signbit" = unknown; then dnl Test whether copysignf() is declared. AC_CHECK_DECLS([copysignf], , , [[#include ]]) if test "$ac_cv_have_decl_copysignf" = yes; then dnl Test whether copysignf() can be used without libm. AC_CACHE_CHECK([whether copysignf can be used without linking with libm], [gl_cv_func_copysignf_no_libm], [ AC_LINK_IFELSE( [AC_LANG_PROGRAM( [[#include float x, y;]], [[return copysignf (x, y) < 0;]])], [gl_cv_func_copysignf_no_libm=yes], [gl_cv_func_copysignf_no_libm=no]) ]) if test $gl_cv_func_copysignf_no_libm = yes; then AC_DEFINE([HAVE_COPYSIGNF_IN_LIBC], [1], [Define if the copysignf function is declared in and available in libc.]) fi fi fi if test "$gl_cv_cc_double_signbit" = unknown; then dnl Test whether copysign() is declared. AC_CHECK_DECLS([copysign], , , [[#include ]]) if test "$ac_cv_have_decl_copysign" = yes; then dnl Test whether copysign() can be used without libm. AC_CACHE_CHECK([whether copysign can be used without linking with libm], [gl_cv_func_copysign_no_libm], [ AC_LINK_IFELSE( [AC_LANG_PROGRAM( [[#include double x, y;]], [[return copysign (x, y) < 0;]])], [gl_cv_func_copysign_no_libm=yes], [gl_cv_func_copysign_no_libm=no]) ]) if test $gl_cv_func_copysign_no_libm = yes; then AC_DEFINE([HAVE_COPYSIGN_IN_LIBC], [1], [Define if the copysign function is declared in and available in libc.]) fi fi fi if test "$gl_cv_cc_long_double_signbit" = unknown; then dnl Test whether copysignl() is declared. AC_CHECK_DECLS([copysignl], , , [[#include ]]) if test "$ac_cv_have_decl_copysignl" = yes; then dnl Test whether copysignl() can be used without libm. AC_CACHE_CHECK([whether copysignl can be used without linking with libm], [gl_cv_func_copysignl_no_libm], [ AC_LINK_IFELSE( [AC_LANG_PROGRAM( [[#include long double x, y;]], [[return copysignl (x, y) < 0;]])], [gl_cv_func_copysignl_no_libm=yes], [gl_cv_func_copysignl_no_libm=no]) ]) if test $gl_cv_func_copysignl_no_libm = yes; then AC_DEFINE([HAVE_COPYSIGNL_IN_LIBC], [1], [Define if the copysignl function is declared in and available in libc.]) fi fi fi ;; esac ;; esac ]) AC_DEFUN([gl_SIGNBIT_TEST_PROGRAM], [[ /* Global variables. Needed because GCC 4 constant-folds __builtin_signbitl (literal) but cannot constant-fold __builtin_signbitl (variable). */ float vf; double vd; long double vl; int main () { /* HP cc on HP-UX 10.20 has a bug with the constant expression -0.0. So we use -p0f and -p0d instead. */ float p0f = 0.0f; float m0f = -p0f; double p0d = 0.0; double m0d = -p0d; /* On HP-UX 10.20, negating 0.0L does not yield -0.0L. So we use another constant expression instead. But that expression does not work on other platforms, such as when cross-compiling to PowerPC on Mac OS X 10.5. */ long double p0l = 0.0L; #if defined __hpux || defined __sgi long double m0l = -LDBL_MIN * LDBL_MIN; #else long double m0l = -p0l; #endif int result = 0; if (signbit (vf)) /* link check */ vf++; { float plus_inf = 1.0f / p0f; float minus_inf = -1.0f / p0f; if (!(!signbit (255.0f) && signbit (-255.0f) && !signbit (p0f) && (memcmp (&m0f, &p0f, sizeof (float)) == 0 || signbit (m0f)) && !signbit (plus_inf) && signbit (minus_inf))) result |= 1; } if (signbit (vd)) /* link check */ vd++; { double plus_inf = 1.0 / p0d; double minus_inf = -1.0 / p0d; if (!(!signbit (255.0) && signbit (-255.0) && !signbit (p0d) && (memcmp (&m0d, &p0d, sizeof (double)) == 0 || signbit (m0d)) && !signbit (plus_inf) && signbit (minus_inf))) result |= 2; } if (signbit (vl)) /* link check */ vl++; { long double plus_inf = 1.0L / p0l; long double minus_inf = -1.0L / p0l; if (signbit (255.0L)) result |= 4; if (!signbit (-255.0L)) result |= 4; if (signbit (p0l)) result |= 8; if (!(memcmp (&m0l, &p0l, sizeof (long double)) == 0 || signbit (m0l))) result |= 16; if (signbit (plus_inf)) result |= 32; if (!signbit (minus_inf)) result |= 64; } return result; } ]]) AC_DEFUN([gl_FLOAT_SIGN_LOCATION], [ gl_FLOATTYPE_SIGN_LOCATION([float], [gl_cv_cc_float_signbit], [f], [FLT]) ]) AC_DEFUN([gl_DOUBLE_SIGN_LOCATION], [ gl_FLOATTYPE_SIGN_LOCATION([double], [gl_cv_cc_double_signbit], [], [DBL]) ]) AC_DEFUN([gl_LONG_DOUBLE_SIGN_LOCATION], [ gl_FLOATTYPE_SIGN_LOCATION([long double], [gl_cv_cc_long_double_signbit], [L], [LDBL]) ]) AC_DEFUN([gl_FLOATTYPE_SIGN_LOCATION], [ AC_CACHE_CHECK([where to find the sign bit in a '$1'], [$2], [ AC_RUN_IFELSE( [AC_LANG_SOURCE([[ #include #include #define NWORDS \ ((sizeof ($1) + sizeof (unsigned int) - 1) / sizeof (unsigned int)) typedef union { $1 value; unsigned int word[NWORDS]; } memory_float; static memory_float plus = { 1.0$3 }; static memory_float minus = { -1.0$3 }; int main () { size_t j, k, i; unsigned int m; FILE *fp = fopen ("conftest.out", "w"); if (fp == NULL) return 1; /* Find the different bit. */ k = 0; m = 0; for (j = 0; j < NWORDS; j++) { unsigned int x = plus.word[j] ^ minus.word[j]; if ((x & (x - 1)) || (x && m)) { /* More than one bit difference. */ fprintf (fp, "unknown"); return 2; } if (x) { k = j; m = x; } } if (m == 0) { /* No difference. */ fprintf (fp, "unknown"); return 3; } /* Now m = plus.word[k] ^ ~minus.word[k]. */ if (plus.word[k] & ~minus.word[k]) { /* Oh? The sign bit is set in the positive and cleared in the negative numbers? */ fprintf (fp, "unknown"); return 4; } for (i = 0; ; i++) if ((m >> i) & 1) break; fprintf (fp, "word %d bit %d", (int) k, (int) i); if (fclose (fp) != 0) return 5; return 0; } ]])], [$2=`cat conftest.out`], [$2="unknown"], [ dnl When cross-compiling, we don't know. It depends on the dnl ABI and compiler version. There are too many cases. $2="unknown" ]) rm -f conftest.out ]) case "$]$2[" in word*bit*) word=`echo "$]$2[" | sed -e 's/word //' -e 's/ bit.*//'` bit=`echo "$]$2[" | sed -e 's/word.*bit //'` AC_DEFINE_UNQUOTED([$4][_SIGNBIT_WORD], [$word], [Define as the word index where to find the sign of '$1'.]) AC_DEFINE_UNQUOTED([$4][_SIGNBIT_BIT], [$bit], [Define as the bit index in the word where to find the sign of '$1'.]) ;; esac ]) # Expands to code that defines a function signbitf(float). # It extracts the sign bit of a non-NaN value. AC_DEFUN([gl_FLOAT_SIGNBIT_CODE], [ gl_FLOATTYPE_SIGNBIT_CODE([float], [f], [f]) ]) # Expands to code that defines a function signbitd(double). # It extracts the sign bit of a non-NaN value. AC_DEFUN([gl_DOUBLE_SIGNBIT_CODE], [ gl_FLOATTYPE_SIGNBIT_CODE([double], [d], []) ]) # Expands to code that defines a function signbitl(long double). # It extracts the sign bit of a non-NaN value. AC_DEFUN([gl_LONG_DOUBLE_SIGNBIT_CODE], [ gl_FLOATTYPE_SIGNBIT_CODE([long double], [l], [L]) ]) AC_DEFUN([gl_FLOATTYPE_SIGNBIT_CODE], [[ static int signbit$2 ($1 value) { typedef union { $1 f; unsigned char b[sizeof ($1)]; } float_union; static float_union plus_one = { 1.0$3 }; /* unused bits are zero here */ static float_union minus_one = { -1.0$3 }; /* unused bits are zero here */ /* Compute the sign bit mask as the XOR of plus_one and minus_one. */ float_union u; unsigned int i; u.f = value; for (i = 0; i < sizeof ($1); i++) if (u.b[i] & (plus_one.b[i] ^ minus_one.b[i])) return 1; return 0; } ]]) gcal-3.6.3/m4/wctype_h.m40000644000175000017500000001543512076511425011771 00000000000000# wctype_h.m4 serial 18 dnl A placeholder for ISO C99 , for platforms that lack it. dnl Copyright (C) 2006-2013 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-3.6.3/m4/msvc-nothrow.m40000644000175000017500000000053012076511425012603 00000000000000# msvc-nothrow.m4 serial 1 dnl Copyright (C) 2011-2013 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-3.6.3/m4/getdtablesize.m40000644000175000017500000000105612076511425012767 00000000000000# getdtablesize.m4 serial 4 dnl Copyright (C) 2008-2013 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_CHECK_FUNCS_ONCE([getdtablesize]) if test $ac_cv_func_getdtablesize != yes; then HAVE_GETDTABLESIZE=0 fi ]) # Prerequisites of lib/getdtablesize.c. AC_DEFUN([gl_PREREQ_GETDTABLESIZE], [:]) gcal-3.6.3/m4/ftell.m40000644000175000017500000000100512076511425011241 00000000000000# ftell.m4 serial 3 dnl Copyright (C) 2007, 2009-2013 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-3.6.3/m4/strstr.m40000644000175000017500000000774612076511425011516 00000000000000# strstr.m4 serial 16 dnl Copyright (C) 2008-2013 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([[ #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-3.6.3/m4/unistd-safer.m40000644000175000017500000000053012076511425012541 00000000000000#serial 9 dnl Copyright (C) 2002, 2005-2006, 2009-2013 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-3.6.3/m4/cond.m40000644000175000017500000000050712076511425011064 00000000000000# cond.m4 serial 2 dnl Copyright (C) 2008-2013 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-3.6.3/install-inf.in0000644000175000017500000005445512125364451012142 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 2, 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-3.6.3/data/0000755000175000017500000000000012125376244010351 500000000000000gcal-3.6.3/data/de-mdata.rc0000644000175000017500000002230312125364444012272 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 2, 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-3.6.3/data/scripts/0000755000175000017500000000000012125376244012040 500000000000000gcal-3.6.3/data/scripts/v2x2v300.awk0000644000175000017500000002303512125364444013700 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 2, 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-3.6.3/data/scripts/v2x2v300.pl0000644000175000017500000001551612125364444013536 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 2, 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-3.6.3/data/scripts/cal2gcal.awk0000644000175000017500000001163112125364444014135 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 2, 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-3.6.3/data/scripts/old2v220.awk0000644000175000017500000001273312125364444013743 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 2, 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-3.6.3/data/scripts/ct2gcal.pl0000644000175000017500000002305312125364444013636 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 2, 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-3.6.3/data/scripts/ct2gcal.awk0000644000175000017500000003014512125364444014005 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 2, 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-3.6.3/data/scripts/cal2gcal.pl0000644000175000017500000001131212125364444013762 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 2, 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-3.6.3/data/scripts/old2v220.pl0000644000175000017500000001075012125364444013571 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 2, 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-3.6.3/data/mdata.rc0000644000175000017500000001672512125364444011717 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 2, 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-3.6.3/data/meteoric.rc0000644000175000017500000001603112125364444012426 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-3.6.3/data/wtt2.rc0000644000175000017500000000653712125364444011531 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 2, 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-3.6.3/data/README0000644000175000017500000002000612125364443011145 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-3.6.3/data/gcalrc0000644000175000017500000001721412125364444011453 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-3.6.3/data/dates/0000755000175000017500000000000012125376244011451 500000000000000gcal-3.6.3/data/dates/lives40000644000175000017500000011170712125364444012530 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-3.6.3/data/dates/events10000644000175000017500000007116412125364444012711 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-3.6.3/data/dates/celtic0000644000175000017500000000103512125364444012555 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-3.6.3/data/dates/radio0000644000175000017500000000576012125364444012421 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-3.6.3/data/dates/ancient0000644000175000017500000000223312125364444012734 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-3.6.3/data/dates/lives30000644000175000017500000011213512125364444012523 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 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-3.6.3/data/dates/lives60000644000175000017500000007722212125364444012535 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 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-3.6.3/data/dates/README0000644000175000017500000000177212125364444012257 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-3.6.3/data/dates/witchcraft0000644000175000017500000000102312125364444013445 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-3.6.3/data/dates/CREDITS0000644000175000017500000000656212125364444012421 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-3.6.3/data/dates/sports0000644000175000017500000002046212125364444012651 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-3.6.3/data/dates/events40000644000175000017500000010504212125364444012705 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-3.6.3/data/dates/hawaii0000644000175000017500000001320012125364444012551 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-3.6.3/data/dates/music0000644000175000017500000002041712125364444012437 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-3.6.3/data/dates/computing0000644000175000017500000002415412125364444013326 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-3.6.3/data/dates/gdead0000644000175000017500000002315012125364444012360 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-3.6.3/data/dates/events50000644000175000017500000010670112125364444012711 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 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-3.6.3/data/dates/literature0000644000175000017500000001616412125364444013503 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-3.6.3/data/dates/events60000644000175000017500000011025612125364444012712 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 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-3.6.3/data/dates/usa_states0000644000175000017500000000671512125364444013477 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-3.6.3/data/dates/lives50000644000175000017500000011203312125364444012522 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-3.6.3/data/dates/lotr0000644000175000017500000000417612125364444012303 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-3.6.3/data/dates/world0000644000175000017500000006565512125364444012463 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 Fawke's 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-3.6.3/data/dates/sfo0000644000175000017500000006353512125364444012116 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-3.6.3/data/dates/lives10000644000175000017500000007211712125364444012526 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-3.6.3/data/dates/events30000644000175000017500000010375512125364444012715 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 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-3.6.3/data/dates/lives20000644000175000017500000007553412125364444012535 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-3.6.3/data/dates/events20000644000175000017500000006521312125364444012710 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-3.6.3/data/dates/lives0000644000175000017500000000043012125364444012432 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-3.6.3/data/dates/movies0000644000175000017500000001267312125364444012626 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-3.6.3/data/dates/events0000644000175000017500000000044012125364444012615 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-3.6.3/data/dates/usa_other0000644000175000017500000001236312125364444013311 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-3.6.3/data/dates/television0000644000175000017500000001511012125364444013472 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-3.6.3/data/dates/space0000644000175000017500000011217512125364444012415 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-3.6.3/data/dates/can_holiday0000644000175000017500000000170312125364444013566 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-3.6.3/data/dates/usa_holiday0000644000175000017500000000143412125364444013616 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-3.6.3/data/de-sdata.rc0000644000175000017500000002371012125364444012303 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 2, 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-3.6.3/data/Makefile.in0000644000175000017500000016443212125375434012350 00000000000000# Makefile.in generated by automake 1.11.6 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 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 2 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__make_dryrun = \ { \ am__dry=no; \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ *) \ for am__flg in $$MAKEFLAGS; do \ case $$am__flg in \ *=*|--*) ;; \ *n*) am__dry=yes; break;; \ esac; \ done;; \ esac; \ test $$am__dry = yes; \ } 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 DIST_COMMON = README $(dist_pkgdata_DATA) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.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/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/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/exponentd.m4 $(top_srcdir)/m4/exponentf.m4 \ $(top_srcdir)/m4/exponentl.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/fpieee.m4 \ $(top_srcdir)/m4/fpurge.m4 $(top_srcdir)/m4/freading.m4 \ $(top_srcdir)/m4/free.m4 $(top_srcdir)/m4/frexp.m4 \ $(top_srcdir)/m4/frexpl.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/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/iconv.m4 \ $(top_srcdir)/m4/iconv_h.m4 $(top_srcdir)/m4/iconv_open.m4 \ $(top_srcdir)/m4/include_next.m4 $(top_srcdir)/m4/inline.m4 \ $(top_srcdir)/m4/intlmacosx.m4 $(top_srcdir)/m4/intmax_t.m4 \ $(top_srcdir)/m4/inttypes_h.m4 $(top_srcdir)/m4/ioctl.m4 \ $(top_srcdir)/m4/isnand.m4 $(top_srcdir)/m4/isnanf.m4 \ $(top_srcdir)/m4/isnanl.m4 $(top_srcdir)/m4/langinfo_h.m4 \ $(top_srcdir)/m4/largefile.m4 $(top_srcdir)/m4/ldexpl.m4 \ $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ $(top_srcdir)/m4/lib-prefix.m4 \ $(top_srcdir)/m4/libunistring-base.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/malloca.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/nocrash.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/printf-frexp.m4 \ $(top_srcdir)/m4/printf-frexpl.m4 $(top_srcdir)/m4/printf.m4 \ $(top_srcdir)/m4/progtest.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/signbit.m4 \ $(top_srcdir)/m4/sin.m4 $(top_srcdir)/m4/size_max.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/stdint_h.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/ulonglong.m4 $(top_srcdir)/m4/unistd-safer.m4 \ $(top_srcdir)/m4/unistd_h.m4 $(top_srcdir)/m4/unlink.m4 \ $(top_srcdir)/m4/vasnprintf.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)/m4/xsize.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = 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_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ 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) 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@ 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_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_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_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_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_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_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_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_SAME_LONG_DOUBLE_AS_DOUBLE = @HAVE_SAME_LONG_DOUBLE_AS_DOUBLE@ 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_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_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@ LIBUNISTRING_UNICONV_H = @LIBUNISTRING_UNICONV_H@ LIBUNISTRING_UNISTDIO_H = @LIBUNISTRING_UNISTDIO_H@ LIBUNISTRING_UNISTR_H = @LIBUNISTRING_UNISTR_H@ LIBUNISTRING_UNITYPES_H = @LIBUNISTRING_UNITYPES_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_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_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_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_DPRINTF = @REPLACE_DPRINTF@ REPLACE_DUP = @REPLACE_DUP@ REPLACE_DUP2 = @REPLACE_DUP2@ REPLACE_DUPLOCALE = @REPLACE_DUPLOCALE@ REPLACE_EXP2 = @REPLACE_EXP2@ REPLACE_EXP2L = @REPLACE_EXP2L@ 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_GETGROUPS = @REPLACE_GETGROUPS@ REPLACE_GETLINE = @REPLACE_GETLINE@ REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@ REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@ REPLACE_GETTIMEOFDAY = @REPLACE_GETTIMEOFDAY@ 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_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_RAISE = @REPLACE_RAISE@ REPLACE_RANDOM_R = @REPLACE_RANDOM_R@ REPLACE_READ = @REPLACE_READ@ REPLACE_READLINK = @REPLACE_READLINK@ 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_SLEEP = @REPLACE_SLEEP@ REPLACE_SNPRINTF = @REPLACE_SNPRINTF@ REPLACE_SPRINTF = @REPLACE_SPRINTF@ 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_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@ 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_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_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@ 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 .PRECIOUS: 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 TAGS: ctags: CTAGS CTAGS: 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 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 uninstall uninstall-am \ uninstall-dist_pkgdataDATA # 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-3.6.3/data/ansipic.rc0000644000175000017500000000571012125364443012246 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-3.6.3/data/sdata.rc0000644000175000017500000002003512125364444011712 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 2, 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-3.6.3/data/Makefile.am0000644000175000017500000000730712125364443012332 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 2 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-3.6.3/data/wtt1.rc0000644000175000017500000000560312125364444011521 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 2, 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-3.6.3/data/ms.rc0000644000175000017500000000634612125364444011246 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 2, 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-3.6.3/data/bkk.rc0000644000175000017500000000444212125364443011370 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 2, 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-3.6.3/data/wtt3.rc0000644000175000017500000000765112125364444011530 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 2, 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-3.6.3/data/calendars/0000755000175000017500000000000012125376244012305 500000000000000gcal-3.6.3/data/calendars/calendar.compu0000644000175000017500000000553112125364444015046 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-3.6.3/data/calendars/calendar.chris0000644000175000017500000000112412125364444015025 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-3.6.3/data/calendars/calendar.holid0000644000175000017500000005211712125364444015024 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-3.6.3/data/calendars/calendar.histo0000644000175000017500000006101512125364444015050 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-3.6.3/data/calendars/calendar.birth0000644000175000017500000002570412125364443015036 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-3.6.3/data/calendars/calendar.music0000644000175000017500000002301112125364444015034 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-3.6.3/data/calendars/calendar.judai0000644000175000017500000000267012125364444015020 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-3.6.3/data/calendars/calendar.ushol0000644000175000017500000000214412125364444015052 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-3.6.3/data/textpic.rc0000644000175000017500000011540412125364444012303 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-3.6.3/data/birthday.rc0000644000175000017500000000257412125364443012433 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-3.6.3/data/sun-moon.rc0000644000175000017500000000764512125364444012405 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 2, 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-3.6.3/data/wloc.rc0000644000175000017500000000557612125364444011577 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 2, 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-3.6.3/TODO0000644000175000017500000000323212125364443010046 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-3.6.3/AUTHORS0000644000175000017500000000003012125364443010417 00000000000000Thomas Esken -- author gcal-3.6.3/aclocal.m40000644000175000017500000012672612125375425011236 00000000000000# generated automatically by aclocal 1.11.6 -*- Autoconf -*- # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, # 2005, 2006, 2007, 2008, 2009, 2010, 2011 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_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, 2003, 2005, 2006, 2007, 2008, 2011 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 1 # 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.11' 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.11.6], [], [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.11.6])dnl m4_ifndef([AC_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl _AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))]) # AM_AUX_DIR_EXPAND -*- Autoconf -*- # Copyright (C) 2001, 2003, 2005, 2011 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 1 # 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], [dnl Rely on autoconf to set up CDPATH properly. AC_PREREQ([2.50])dnl # expand $ac_aux_dir to an absolute path am_aux_dir=`cd $ac_aux_dir && pwd` ]) # AM_CONDITIONAL -*- Autoconf -*- # Copyright (C) 1997, 2000, 2001, 2003, 2004, 2005, 2006, 2008 # 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 9 # AM_CONDITIONAL(NAME, SHELL-CONDITION) # ------------------------------------- # Define a conditional. AC_DEFUN([AM_CONDITIONAL], [AC_PREREQ(2.52)dnl ifelse([$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, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2009, # 2010, 2011 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 12 # 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", "GCJ", or "OBJC". # 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 ifelse([$1], CC, [depcc="$CC" am_compiler_list=], [$1], CXX, [depcc="$CXX" am_compiler_list=], [$1], OBJC, [depcc="$OBJC" 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 8's {/usr,}/bin/sh. touch 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, [ --disable-dependency-tracking speeds up one-time build --enable-dependency-tracking do not reject slow dependency extractors]) 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, 2000, 2001, 2002, 2003, 2004, 2005, 2008 # 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 5 # _AM_OUTPUT_DEPENDENCY_COMMANDS # ------------------------------ AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], [{ # Autoconf 2.62 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"` # When using ansi2knr, U may be empty or an underscore; expand it U=`sed -n 's/^U = //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' -e 's/\$U/'"$U"'/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, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, # 2005, 2006, 2008, 2009 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 16 # 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. # 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.62])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], [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], 1)m4_ifdef([AC_PACKAGE_VERSION], 1), 11,, [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([AM_PROG_MKDIR_P])dnl # We need awk for the "check" target. 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)], [define([AC_PROG_CC], defn([AC_PROG_CC])[_AM_DEPENDENCIES(CC)])])dnl AC_PROVIDE_IFELSE([AC_PROG_CXX], [_AM_DEPENDENCIES(CXX)], [define([AC_PROG_CXX], defn([AC_PROG_CXX])[_AM_DEPENDENCIES(CXX)])])dnl AC_PROVIDE_IFELSE([AC_PROG_OBJC], [_AM_DEPENDENCIES(OBJC)], [define([AC_PROG_OBJC], defn([AC_PROG_OBJC])[_AM_DEPENDENCIES(OBJC)])])dnl ]) _AM_IF_OPTION([silent-rules], [AC_REQUIRE([AM_SILENT_RULES])])dnl dnl The `parallel-tests' driver may need to know about EXEEXT, so add the dnl `am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen. This macro dnl 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 ]) 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, 2003, 2005, 2008, 2011 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 1 # 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}" != 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, 2005 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 2 # 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, 2002, 2003, 2005, 2009 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 # 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 ]) # Copyright (C) 1999, 2000, 2001, 2003, 2004, 2005, 2008 # 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 6 # AM_PROG_CC_C_O # -------------- # Like AC_PROG_CC_C_O, but changed for automake. AC_DEFUN([AM_PROG_CC_C_O], [AC_REQUIRE([AC_PROG_CC_C_O])dnl AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl AC_REQUIRE_AUX_FILE([compile])dnl # FIXME: we rely on the cache variable name because # there is no other way. set dummy $CC am_cc=`echo $[2] | sed ['s/[^a-zA-Z0-9_]/_/g;s/^[0-9]/_/']` eval am_t=\$ac_cv_prog_cc_${am_cc}_c_o if test "$am_t" != 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 dnl Make sure AC_PROG_CC is never called again, or it will override our dnl setting of CC. m4_define([AC_PROG_CC], [m4_fatal([AC_PROG_CC cannot be called after AM_PROG_CC_C_O])]) ]) # Fake the existence of programs that GNU maintainers use. -*- Autoconf -*- # Copyright (C) 1997, 1999, 2000, 2001, 2003, 2004, 2005, 2008 # 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 6 # 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 supports --run. # If it does, 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 --run true"; then am_missing_run="$MISSING --run " else am_missing_run= AC_MSG_WARN([`missing' script is too old or missing]) fi ]) # Copyright (C) 2003, 2004, 2005, 2006, 2011 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 1 # 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 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 ]) # Copyright (C) 2002, 2003, 2005 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 2 # Obsolete Automake macros. # We put here only the macros whose substitution is not an Automake # macro; otherwise including this file would trigger dependencies for # all the substitutions. Generally, obsolete Automake macros are # better AU_DEFUNed in the same file as their replacement, or alone in # a separate file (see obsol-gt.m4 or obsol-lt.m4 for instance). AU_DEFUN([AC_FEATURE_CTYPE], [AC_HEADER_STDC]) AU_DEFUN([AC_FEATURE_ERRNO], [AC_REPLACE_FUNCS([strerror])]) AU_DEFUN([AM_CYGWIN32], [AC_CYGWIN]) AU_DEFUN([AM_EXEEXT], [AC_EXEEXT]) AU_DEFUN([AM_FUNC_MKTIME], [AC_FUNC_MKTIME]) AU_DEFUN([AM_HEADER_TIOCGWINSZ_NEEDS_SYS_IOCTL], [AC_HEADER_TIOCGWINSZ]) AU_DEFUN([AM_MINGW32], [AC_MINGW32]) AU_DEFUN([AM_PROG_INSTALL], [AC_PROG_INSTALL]) AU_DEFUN([AM_SANITY_CHECK_CC], [AC_PROG_CC]) AU_DEFUN([AM_SYS_POSIX_TERMIOS], [AC_SYS_POSIX_TERMIOS]) AU_DEFUN([fp_FUNC_FNMATCH], [AC_FUNC_FNMATCH]) AU_DEFUN([fp_PROG_INSTALL], [AC_PROG_INSTALL]) AU_DEFUN([md_TYPE_PTRDIFF_T], [AC_CHECK_TYPES([ptrdiff_t])]) # Don't know how to translate these. # If used, Autoconf will complain that they are possibly unexpended; # this seems a good enough error message. # AC_FEATURE_EXIT # AC_SYSTEM_HEADER # Helper functions for option handling. -*- Autoconf -*- # Copyright (C) 2001, 2002, 2003, 2005, 2008, 2010 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 5 # _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])]) # Check to make sure that the build environment is sane. -*- Autoconf -*- # Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005, 2008 # 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 5 # AM_SANITY_CHECK # --------------- AC_DEFUN([AM_SANITY_CHECK], [AC_MSG_CHECKING([whether build environment is sane]) # Just in case sleep 1 echo timestamp > conftest.file # 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 ( 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 rm -f conftest.file 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 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)]) # Copyright (C) 2009, 2011 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 2 # 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], [ --enable-silent-rules less verbose build output (undo: `make V=1') --disable-silent-rules verbose build output (undo: `make V=0')]) 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, 2003, 2005, 2011 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 1 # 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, 2008, 2010 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 3 # _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, 2005, 2012 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 2 # _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}']) m4_if([$1], [v7], [am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'], [m4_case([$1], [ustar],, [pax],, [m4_fatal([Unknown tar format])]) AC_MSG_CHECKING([how to create a $1 tar archive]) # Loop over all known methods to create a tar archive until one works. _am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none' _am_tools=${am_cv_prog_tar_$1-$_am_tools} # Do not fold the above two line into one, because Tru64 sh and # Solaris sh will not grok spaces in the rhs of `-'. 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/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/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/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/exponentd.m4]) m4_include([m4/exponentf.m4]) m4_include([m4/exponentl.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/fpieee.m4]) m4_include([m4/fpurge.m4]) m4_include([m4/freading.m4]) m4_include([m4/free.m4]) m4_include([m4/frexp.m4]) m4_include([m4/frexpl.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/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/iconv.m4]) m4_include([m4/iconv_h.m4]) m4_include([m4/iconv_open.m4]) m4_include([m4/include_next.m4]) m4_include([m4/inline.m4]) m4_include([m4/intlmacosx.m4]) m4_include([m4/intmax_t.m4]) m4_include([m4/inttypes_h.m4]) m4_include([m4/ioctl.m4]) m4_include([m4/isnand.m4]) m4_include([m4/isnanf.m4]) m4_include([m4/isnanl.m4]) m4_include([m4/langinfo_h.m4]) m4_include([m4/largefile.m4]) m4_include([m4/ldexpl.m4]) m4_include([m4/lib-ld.m4]) m4_include([m4/lib-link.m4]) m4_include([m4/lib-prefix.m4]) m4_include([m4/libunistring-base.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/malloca.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/nocrash.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/printf-frexp.m4]) m4_include([m4/printf-frexpl.m4]) m4_include([m4/printf.m4]) m4_include([m4/progtest.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/signbit.m4]) m4_include([m4/sin.m4]) m4_include([m4/size_max.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/stdint_h.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/ulonglong.m4]) m4_include([m4/unistd-safer.m4]) m4_include([m4/unistd_h.m4]) m4_include([m4/unlink.m4]) m4_include([m4/vasnprintf.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]) m4_include([m4/xsize.m4]) gcal-3.6.3/.version0000644000175000017500000000000612125376132011036 000000000000003.6.3 gcal-3.6.3/configure.ac0000644000175000017500000005164312125364443011655 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_AUX_DIR([build-aux]) AM_INIT_AUTOMAKE([gnu]) AC_CONFIG_HEADERS([config.h]) 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 gl_INIT 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 for install program/script. dnl AM_PROG_INSTALL 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) 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([external]) AM_GNU_GETTEXT_VERSION([0.16]) 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_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-3.6.3/NEWS0000644000175000017500000014123412125373716010065 00000000000000NEWS file for `gcal'. User-visible changes. 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 informations 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-3.6.3/configure0000755000175000017500000364327612125375430011310 00000000000000#! /bin/sh # Guess values for system-dependent variables and create Makefiles. # Generated by GNU Autoconf 2.69 for gcal 3.6.3. # # 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='3.6.3' PACKAGE_STRING='gcal 3.6.3' 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= ac_func_list= gl_ceil_required=plain ac_header_list= gl_floor_required=plain gl_log_required=plain gl_log10_required=plain gt_needs= ac_subst_vars='gltests_LTLIBOBJS gltests_LIBOBJS gl_LTLIBOBJS gl_LIBOBJS am__EXEEXT_FALSE am__EXEEXT_TRUE LTLIBOBJS LIBOBJS POSUB INTLLIBS 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 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 NEXT_AS_FIRST_DIRECTIVE_WCHAR_H NEXT_WCHAR_H LIBUNISTRING_UNITYPES_H LIBUNISTRING_COMPILE_UNISTR_U8_UCTOMB_FALSE LIBUNISTRING_COMPILE_UNISTR_U8_UCTOMB_TRUE LIBUNISTRING_COMPILE_UNISTR_U8_STRMBLEN_FALSE LIBUNISTRING_COMPILE_UNISTR_U8_STRMBLEN_TRUE LIBUNISTRING_COMPILE_UNISTR_U8_STRLEN_FALSE LIBUNISTRING_COMPILE_UNISTR_U8_STRLEN_TRUE LIBUNISTRING_COMPILE_UNISTR_U8_SET_FALSE LIBUNISTRING_COMPILE_UNISTR_U8_SET_TRUE LIBUNISTRING_COMPILE_UNISTR_U8_PREV_FALSE LIBUNISTRING_COMPILE_UNISTR_U8_PREV_TRUE LIBUNISTRING_COMPILE_UNISTR_U8_MBTOUCR_FALSE LIBUNISTRING_COMPILE_UNISTR_U8_MBTOUCR_TRUE LIBUNISTRING_COMPILE_UNISTR_U8_MBTOUC_UNSAFE_FALSE LIBUNISTRING_COMPILE_UNISTR_U8_MBTOUC_UNSAFE_TRUE LIBUNISTRING_COMPILE_UNISTR_U8_MBTOUC_FALSE LIBUNISTRING_COMPILE_UNISTR_U8_MBTOUC_TRUE LIBUNISTRING_COMPILE_UNISTR_U8_MBSNLEN_FALSE LIBUNISTRING_COMPILE_UNISTR_U8_MBSNLEN_TRUE LIBUNISTRING_COMPILE_UNISTR_U8_MBLEN_FALSE LIBUNISTRING_COMPILE_UNISTR_U8_MBLEN_TRUE LIBUNISTRING_COMPILE_UNISTR_U8_CPY_FALSE LIBUNISTRING_COMPILE_UNISTR_U8_CPY_TRUE LIBUNISTRING_COMPILE_UNISTR_U8_CHECK_FALSE LIBUNISTRING_COMPILE_UNISTR_U8_CHECK_TRUE LIBUNISTRING_COMPILE_UNISTR_U32_TO_U8_FALSE LIBUNISTRING_COMPILE_UNISTR_U32_TO_U8_TRUE LIBUNISTRING_COMPILE_UNISTR_U32_STRMBLEN_FALSE LIBUNISTRING_COMPILE_UNISTR_U32_STRMBLEN_TRUE LIBUNISTRING_COMPILE_UNISTR_U32_STRLEN_FALSE LIBUNISTRING_COMPILE_UNISTR_U32_STRLEN_TRUE LIBUNISTRING_COMPILE_UNISTR_U16_TO_U8_FALSE LIBUNISTRING_COMPILE_UNISTR_U16_TO_U8_TRUE LIBUNISTRING_COMPILE_UNISTR_U16_STRMBLEN_FALSE LIBUNISTRING_COMPILE_UNISTR_U16_STRMBLEN_TRUE LIBUNISTRING_COMPILE_UNISTR_U16_STRLEN_FALSE LIBUNISTRING_COMPILE_UNISTR_U16_STRLEN_TRUE LIBUNISTRING_COMPILE_UNISTR_U16_MBTOUCR_FALSE LIBUNISTRING_COMPILE_UNISTR_U16_MBTOUCR_TRUE LIBUNISTRING_UNISTR_H HAVE_FEATURES_H LIBUNISTRING_COMPILE_UNISTDIO_U8_VSPRINTF_FALSE LIBUNISTRING_COMPILE_UNISTDIO_U8_VSPRINTF_TRUE LIBUNISTRING_COMPILE_UNISTDIO_U8_VASNPRINTF_FALSE LIBUNISTRING_COMPILE_UNISTDIO_U8_VASNPRINTF_TRUE LIBUNISTRING_COMPILE_UNISTDIO_U8_SPRINTF_FALSE LIBUNISTRING_COMPILE_UNISTDIO_U8_SPRINTF_TRUE LIBUNISTRING_UNISTDIO_H HAVE_UNISTD_H NEXT_AS_FIRST_DIRECTIVE_UNISTD_H NEXT_UNISTD_H LIBUNISTRING_COMPILE_UNICONV_U8_CONV_FROM_ENC_FALSE LIBUNISTRING_COMPILE_UNICONV_U8_CONV_FROM_ENC_TRUE LIBUNISTRING_UNICONV_H 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_TIMEGM REPLACE_NANOSLEEP REPLACE_MKTIME REPLACE_LOCALTIME_R HAVE_TIMEGM HAVE_STRPTIME HAVE_NANOSLEEP HAVE_DECL_LOCALTIME_R 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 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_SYS_BITYPES_H HAVE_SYS_INTTYPES_H 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 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_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 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_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_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_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 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 REPLACE_NULL REPLACE_STRUCT_LCONV REPLACE_DUPLOCALE REPLACE_SETLOCALE REPLACE_LOCALECONV HAVE_DUPLOCALE GNULIB_DUPLOCALE GNULIB_SETLOCALE GNULIB_LOCALECONV LOCALCHARSET_TESTS_ENVIRONMENT GLIBC21 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 LTLIBICONV LIBICONV NEXT_AS_FIRST_DIRECTIVE_SYS_TIME_H NEXT_SYS_TIME_H REPLACE_STRUCT_TIMEVAL REPLACE_GETTIMEOFDAY HAVE_SYS_TIME_H HAVE_STRUCT_TIMEVAL HAVE_GETTIMEOFDAY GNULIB_GETTIMEOFDAY LTLIBINTL LIBINTL 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 HAVE_SAME_LONG_DOUBLE_AS_DOUBLE 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 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_SYMLINK REPLACE_SLEEP REPLACE_RMDIR 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_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_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_SQRTL 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_CEILL REPLACE_CEILF REPLACE_CEIL REPLACE_CBRTL REPLACE_CBRTF 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 ALLOCA ACOS_LIBM POW_LIBM GL_COND_LIBTOOL_FALSE GL_COND_LIBTOOL_TRUE host_os host_vendor host_cpu host build_os build_vendor build_cpu build ARFLAGS 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_assert with_gnu_ld enable_rpath with_libpth_prefix with_libiconv_prefix with_included_regex enable_unicode enable_easc enable_cc_holidays enable_hls enable_pager enable_rc enable_term enable_nls with_libintl_prefix ' 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 3.6.3 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 3.6.3:";; 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') --disable-dependency-tracking speeds up one-time build --enable-dependency-tracking do not reject slow dependency extractors --disable-largefile omit support for large files --enable-threads={posix|solaris|pth|windows} specify multithreading API --disable-threads build without multithread safety --disable-assert turn off assertions --disable-rpath do not hardcode runtime library paths --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 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-libpth-prefix[=DIR] search for libpth in DIR/include and DIR/lib --without-libpth-prefix don't search for libpth in includedir and libdir --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 --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). --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 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 3.6.3 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 3.6.3, 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 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_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_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 " strerror_r" as_fn_append ac_func_list " __xpg_strerror_r" as_fn_append ac_func_list " pipe2" as_fn_append ac_func_list " posix_spawn" gl_printf_safe=yes as_fn_append ac_func_list " isblank" as_fn_append ac_func_list " iswctype" as_fn_append ac_func_list " wcscoll" as_fn_append ac_header_list " sched.h" as_fn_append ac_func_list " secure_getenv" 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" gt_needs="$gt_needs " # 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.11' # 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; } # Just in case sleep 1 echo timestamp > conftest.file # 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 ( 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 rm -f conftest.file 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 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; } 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 --run true"; then am_missing_run="$MISSING --run " 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}" != 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; } mkdir_p="$MKDIR_P" case $mkdir_p in [\\/$]* | ?:[\\/]*) ;; */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;; esac 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 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='3.6.3' 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"} # We need awk for the "check" target. 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}' am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -' ac_config_headers="$ac_config_headers config.h" # 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 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 8's {/usr,}/bin/sh. touch 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 _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 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 8's {/usr,}/bin/sh. touch 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 "x$CC" != xcc; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC and cc understand -c and -o together" >&5 $as_echo_n "checking whether $CC and cc understand -c and -o together... " >&6; } else { $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; } fi set dummy $CC; ac_cc=`$as_echo "$2" | sed 's/[^a-zA-Z0-9_]/_/g;s/^[0-9]/_/'` if eval \${ac_cv_prog_cc_${ac_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. # We do the test twice because some compilers refuse to overwrite an # existing .o file with -o, though they will create one. ac_try='$CC -c conftest.$ac_ext -o conftest2.$ac_objext >&5' rm -f conftest2.* if { { 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; } && test -f conftest2.$ac_objext && { { 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 eval ac_cv_prog_cc_${ac_cc}_c_o=yes if test "x$CC" != xcc; then # Test first that cc exists at all. if { ac_try='cc -c conftest.$ac_ext >&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_try") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; }; then ac_try='cc -c conftest.$ac_ext -o conftest2.$ac_objext >&5' rm -f conftest2.* if { { 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; } && test -f conftest2.$ac_objext && { { 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 # cc works too. : else # cc exists but doesn't like -o. eval ac_cv_prog_cc_${ac_cc}_c_o=no fi fi fi else eval ac_cv_prog_cc_${ac_cc}_c_o=no fi rm -f core conftest* fi if eval test \$ac_cv_prog_cc_${ac_cc}_c_o = yes; 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" >&5 $as_echo "no" >&6; } $as_echo "#define NO_MINUS_C_MINUS_O 1" >>confdefs.h fi # FIXME: we rely on the cache variable name because # there is no other way. set dummy $CC am_cc=`echo $2 | sed 's/[^a-zA-Z0-9_]/_/g;s/^[0-9]/_/'` eval am_t=\$ac_cv_prog_cc_${am_cc}_c_o if test "$am_t" != 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 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 -z "$AR"; then if test $gl_cv_c_amsterdam_compiler = yes; then AR='cc -c.a' if test -z "$ARFLAGS"; then ARFLAGS='-o' fi else 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='cru' fi fi else if test -z "$ARFLAGS"; then ARFLAGS='cru' fi 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 # 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 # IEEE behaviour is the default on all CPUs except Alpha and SH # (according to the test results of Bruno Haible's ieeefp/fenv_default.m4 # and the GCC 4.1.2 manual). case "$host_cpu" in alpha*) # On Alpha systems, a compiler option provides the behaviour. # See the ieee(3) manual page, also available at # if test -n "$GCC"; then # GCC has the option -mieee. # For full IEEE compliance (rarely needed), use option -mieee-with-inexact. CPPFLAGS="$CPPFLAGS -mieee" else # Compaq (ex-DEC) C has the option -ieee, equivalent to -ieee_with_no_inexact. # For full IEEE compliance (rarely needed), use option -ieee_with_inexact. CPPFLAGS="$CPPFLAGS -ieee" fi ;; sh*) if test -n "$GCC"; then # GCC has the option -mieee. CPPFLAGS="$CPPFLAGS -mieee" fi ;; esac # 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 # 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 # 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 c-ctype: # Code from module c-strcase: # Code from module c-strcaseeq: # 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 dosname: # 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 fpieee: # Code from module fpucw: # Code from module fpurge: # Code from module freading: # Code from module free: # Code from module frexp-nolibm: # Code from module frexpl-nolibm: # 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 gettext: # Code from module gettext-h: # Code from module gettimeofday: # Code from module git-version-gen: # Code from module gperf: # Code from module havelib: # Code from module iconv: # Code from module iconv-h: # Code from module iconv_open: # Code from module include_next: # Code from module inline: # Code from module intprops: # Code from module ioctl: # Code from module isnand-nolibm: # Code from module isnanf-nolibm: # Code from module isnanl-nolibm: # Code from module langinfo: # Code from module largefile: # 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 malloc: # Code from module malloc-gnu: # Code from module malloc-posix: # Code from module malloca: # 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 nocrash: # 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 printf-frexp: # Code from module printf-frexpl: # Code from module printf-safe: # 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 signbit: # Code from module sigprocmask: # Code from module sin: # Code from module size_max: # 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 striconveh: # Code from module striconveha: # 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 uniconv/base: # Code from module uniconv/u8-conv-from-enc: # Code from module unistd: # Code from module unistd-safer: # Code from module unistdio/base: # Code from module unistdio/u-printf-args: # Code from module unistdio/u8-sprintf: # Code from module unistdio/u8-vasnprintf: # Code from module unistdio/u8-vsprintf: # Code from module unistdio/ulc-printf-parse: # Code from module unistr/base: # Code from module unistr/u16-mbtoucr: # Code from module unistr/u16-strlen: # Code from module unistr/u16-strmblen: # Code from module unistr/u16-to-u8: # Code from module unistr/u32-strlen: # Code from module unistr/u32-strmblen: # Code from module unistr/u32-to-u8: # Code from module unistr/u8-check: # Code from module unistr/u8-cpy: # Code from module unistr/u8-mblen: # Code from module unistr/u8-mbsnlen: # Code from module unistr/u8-mbtouc: # Code from module unistr/u8-mbtouc-unsafe: # Code from module unistr/u8-mbtoucr: # Code from module unistr/u8-prev: # Code from module unistr/u8-set: # Code from module unistr/u8-strlen: # Code from module unistr/u8-strmblen: # Code from module unistr/u8-uctomb: # Code from module unitypes: # Code from module unlink: # 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: # Code from module xsize: 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 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 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 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 mv conftest.$ac_objext conftest1.$ac_objext 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 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 mv conftest.$ac_objext conftest2.$ac_objext 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 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_CBRTF=0; REPLACE_CBRTL=0; REPLACE_CEIL=0; REPLACE_CEILF=0; REPLACE_CEILL=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_SQRTL=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_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_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_RMDIR=0; REPLACE_SLEEP=0; REPLACE_SYMLINK=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 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" 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. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { pthread_mutex_lock((pthread_mutex_t*)0); pthread_mutexattr_init((pthread_mutexattr_t*)0); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : gl_have_pthread=yes fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext # 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"; 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. case "$host_os" in solaris* | hpux*) $as_echo "#define PTHREAD_IN_USE_DETECTION_HARD 1" >>confdefs.h esac fi else # 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 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_next_errno_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | sed -n "$gl_absolute_header_sed"`'"' 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 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 : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF #define HAVE_DECL_STRERROR_R $ac_have_decl _ACEOF for ac_func in strerror_r do : ac_fn_c_check_func "$LINENO" "strerror_r" "ac_cv_func_strerror_r" if test "x$ac_cv_func_strerror_r" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_STRERROR_R 1 _ACEOF fi done { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether strerror_r returns char *" >&5 $as_echo_n "checking whether strerror_r returns char *... " >&6; } if ${ac_cv_func_strerror_r_char_p+:} false; then : $as_echo_n "(cached) " >&6 else ac_cv_func_strerror_r_char_p=no if test $ac_cv_have_decl_strerror_r = yes; then cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $ac_includes_default int main () { char buf[100]; char x = *strerror_r (0, buf, sizeof buf); char *p = strerror_r (0, buf, sizeof buf); return !p || x; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_func_strerror_r_char_p=yes fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext else # strerror_r is not declared. Choose between # systems that have relatively inaccessible declarations for the # function. BeOS and DEC UNIX 4.0 fall in this category, but the # former has a strerror_r that returns char*, while the latter # has a strerror_r that returns `int'. # This test should segfault on the DEC system. if test "$cross_compiling" = yes; then : : else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $ac_includes_default extern char *strerror_r (); int main () { char buf[100]; char x = *strerror_r (0, buf, sizeof buf); return ! isalpha (x); ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : ac_cv_func_strerror_r_char_p=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 fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_strerror_r_char_p" >&5 $as_echo "$ac_cv_func_strerror_r_char_p" >&6; } if test $ac_cv_func_strerror_r_char_p = yes; then $as_echo "#define STRERROR_R_CHAR_P 1" >>confdefs.h fi 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" "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 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 frexp() can be used without linking with libm" >&5 $as_echo_n "checking whether frexp() can be used without linking with libm... " >&6; } if ${gl_cv_func_frexp_no_libm+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include double x; int main () { int e; return frexp (x, &e) > 0; ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : gl_cv_func_frexp_no_libm=yes else gl_cv_func_frexp_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_frexp_no_libm" >&5 $as_echo "$gl_cv_func_frexp_no_libm" >&6; } 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 whether long double and double are the same" >&5 $as_echo_n "checking whether long double and double are the same... " >&6; } if ${gl_cv_long_double_equals_double+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { 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]; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_long_double_equals_double=yes else gl_cv_long_double_equals_double=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_long_double_equals_double" >&5 $as_echo "$gl_cv_long_double_equals_double" >&6; } if test $gl_cv_long_double_equals_double = yes; then $as_echo "#define HAVE_SAME_LONG_DOUBLE_AS_DOUBLE 1" >>confdefs.h HAVE_SAME_LONG_DOUBLE_AS_DOUBLE=1 else HAVE_SAME_LONG_DOUBLE_AS_DOUBLE=0 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_next_sys_types_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | sed -n "$gl_absolute_header_sed"`'"' 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=no 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; } if test $gl_cv_func_fflush_stdin = no; 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_next_sys_stat_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | sed -n "$gl_absolute_header_sed"`'"' 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 { $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 main () { int s[1]; int * $ac_kw t = s; t[0] = 0; return foo(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; 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_next_sys_time_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | sed -n "$gl_absolute_header_sed"`'"' 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 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 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 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 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 const char input[] = "\342\202\254"; /* EURO SIGN */ char buf[10]; 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, (char **) &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 const char input[] = "\263"; char buf[10]; 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, (char **) &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 const char input[] = "\304"; static char buf[2] = { (char)0xDE, (char)0xAD }; const char *inptr = input; size_t inbytesleft = 1; char *outptr = buf; size_t outbytesleft = 1; size_t res = iconv (cd_88591_to_utf8, (char **) &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 const char input[] = "\304rger mit b\366sen B\374bchen ohne Augenma\337"; char buf[50]; 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, (char **) &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; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : am_cv_func_iconv_works=yes else am_cv_func_iconv_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 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; } 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 fi { $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 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_next_sys_socket_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | sed -n "$gl_absolute_header_sed"`'"' 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 { $as_echo "$as_me:${as_lineno-$LINENO}: checking where to find the exponent in a 'double'" >&5 $as_echo_n "checking where to find the exponent in a 'double'... " >&6; } if ${gl_cv_cc_double_expbit0+:} 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 arm || defined __arm || defined __arm__ mixed_endianness #endif _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "mixed_endianness" >/dev/null 2>&1; then : gl_cv_cc_double_expbit0="unknown" else : if ${ac_cv_c_bigendian+:} false; then : $as_echo_n "(cached) " >&6 else ac_cv_c_bigendian=unknown # See if we're dealing with a universal compiler. 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 : # Check for potential -arch flags. It is not universal unless # there are at least two -arch flags with different values. ac_arch= ac_prev= for ac_word in $CC $CFLAGS $CPPFLAGS $LDFLAGS; do if test -n "$ac_prev"; then case $ac_word in i?86 | x86_64 | ppc | ppc64) if test -z "$ac_arch" || test "$ac_arch" = "$ac_word"; then ac_arch=$ac_word else ac_cv_c_bigendian=universal break fi ;; esac ac_prev= elif test "x$ac_word" = "x-arch"; then ac_prev=arch fi done fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext if test $ac_cv_c_bigendian = unknown; then # See if sys/param.h defines the BYTE_ORDER macro. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include int main () { #if ! (defined BYTE_ORDER && defined BIG_ENDIAN \ && defined LITTLE_ENDIAN && BYTE_ORDER && BIG_ENDIAN \ && LITTLE_ENDIAN) bogus endian macros #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : # It does; now see whether it defined to BIG_ENDIAN or not. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include int main () { #if BYTE_ORDER != BIG_ENDIAN not big endian #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_c_bigendian=yes else ac_cv_c_bigendian=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 if test $ac_cv_c_bigendian = unknown; then # See if defines _LITTLE_ENDIAN or _BIG_ENDIAN (e.g., Solaris). cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { #if ! (defined _LITTLE_ENDIAN || defined _BIG_ENDIAN) bogus endian macros #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : # It does; now see whether it defined to _BIG_ENDIAN or not. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { #ifndef _BIG_ENDIAN not big endian #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_c_bigendian=yes else ac_cv_c_bigendian=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 if test $ac_cv_c_bigendian = unknown; then # Compile a test program. if test "$cross_compiling" = yes; then : # Try to guess by grepping values from an object file. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ short int ascii_mm[] = { 0x4249, 0x4765, 0x6E44, 0x6961, 0x6E53, 0x7953, 0 }; short int ascii_ii[] = { 0x694C, 0x5454, 0x656C, 0x6E45, 0x6944, 0x6E61, 0 }; int use_ascii (int i) { return ascii_mm[i] + ascii_ii[i]; } short int ebcdic_ii[] = { 0x89D3, 0xE3E3, 0x8593, 0x95C5, 0x89C4, 0x9581, 0 }; short int ebcdic_mm[] = { 0xC2C9, 0xC785, 0x95C4, 0x8981, 0x95E2, 0xA8E2, 0 }; int use_ebcdic (int i) { return ebcdic_mm[i] + ebcdic_ii[i]; } extern int foo; int main () { return use_ascii (foo) == use_ebcdic (foo); ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : if grep BIGenDianSyS conftest.$ac_objext >/dev/null; then ac_cv_c_bigendian=yes fi if grep LiTTleEnDian conftest.$ac_objext >/dev/null ; then if test "$ac_cv_c_bigendian" = unknown; then ac_cv_c_bigendian=no else # finding both strings is unlikely to happen, but who knows? ac_cv_c_bigendian=unknown fi fi fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $ac_includes_default int main () { /* Are we little or big endian? From Harbison&Steele. */ union { long int l; char c[sizeof (long int)]; } u; u.l = 1; return u.c[sizeof (long int) - 1] == 1; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : ac_cv_c_bigendian=no else ac_cv_c_bigendian=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 fi : case $ac_cv_c_bigendian in #( yes) gl_cv_cc_double_expbit0="word 0 bit 20";; #( no) gl_cv_cc_double_expbit0="word 1 bit 20" ;; #( universal) $as_echo "#define AC_APPLE_UNIVERSAL_BUILD 1" >>confdefs.h ;; #( *) gl_cv_cc_double_expbit0="unknown" ;; esac fi rm -f conftest* else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include #include #define NWORDS \ ((sizeof (double) + sizeof (unsigned int) - 1) / sizeof (unsigned int)) typedef union { double value; unsigned int word[NWORDS]; } memory_double; static unsigned int ored_words[NWORDS]; static unsigned int anded_words[NWORDS]; static void add_to_ored_words (double x) { memory_double m; size_t i; /* Clear it first, in case sizeof (double) < sizeof (memory_double). */ memset (&m, 0, sizeof (memory_double)); m.value = x; for (i = 0; i < NWORDS; i++) { ored_words[i] |= m.word[i]; anded_words[i] &= m.word[i]; } } int main () { size_t j; FILE *fp = fopen ("conftest.out", "w"); if (fp == NULL) return 1; for (j = 0; j < NWORDS; j++) anded_words[j] = ~ (unsigned int) 0; add_to_ored_words (0.25); add_to_ored_words (0.5); add_to_ored_words (1.0); add_to_ored_words (2.0); add_to_ored_words (4.0); /* Remove bits that are common (e.g. if representation of the first mantissa bit is explicit). */ for (j = 0; j < NWORDS; j++) ored_words[j] &= ~anded_words[j]; /* Now find the nonzero word. */ for (j = 0; j < NWORDS; j++) if (ored_words[j] != 0) break; if (j < NWORDS) { size_t i; for (i = j + 1; i < NWORDS; i++) if (ored_words[i] != 0) { fprintf (fp, "unknown"); return (fclose (fp) != 0); } for (i = 0; ; i++) if ((ored_words[j] >> i) & 1) { fprintf (fp, "word %d bit %d", (int) j, (int) i); return (fclose (fp) != 0); } } fprintf (fp, "unknown"); return (fclose (fp) != 0); } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_cc_double_expbit0=`cat conftest.out` else gl_cv_cc_double_expbit0="unknown" 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.out fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_cc_double_expbit0" >&5 $as_echo "$gl_cv_cc_double_expbit0" >&6; } case "$gl_cv_cc_double_expbit0" in word*bit*) word=`echo "$gl_cv_cc_double_expbit0" | sed -e 's/word //' -e 's/ bit.*//'` bit=`echo "$gl_cv_cc_double_expbit0" | sed -e 's/word.*bit //'` cat >>confdefs.h <<_ACEOF #define DBL_EXPBIT0_WORD $word _ACEOF cat >>confdefs.h <<_ACEOF #define DBL_EXPBIT0_BIT $bit _ACEOF ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking where to find the exponent in a 'float'" >&5 $as_echo_n "checking where to find the exponent in a 'float'... " >&6; } if ${gl_cv_cc_float_expbit0+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : gl_cv_cc_float_expbit0="word 0 bit 23" else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include #include #define NWORDS \ ((sizeof (float) + sizeof (unsigned int) - 1) / sizeof (unsigned int)) typedef union { float value; unsigned int word[NWORDS]; } memory_float; static unsigned int ored_words[NWORDS]; static unsigned int anded_words[NWORDS]; static void add_to_ored_words (float x) { memory_float m; size_t i; /* Clear it first, in case sizeof (float) < sizeof (memory_float). */ memset (&m, 0, sizeof (memory_float)); m.value = x; for (i = 0; i < NWORDS; i++) { ored_words[i] |= m.word[i]; anded_words[i] &= m.word[i]; } } int main () { size_t j; FILE *fp = fopen ("conftest.out", "w"); if (fp == NULL) return 1; for (j = 0; j < NWORDS; j++) anded_words[j] = ~ (unsigned int) 0; add_to_ored_words (0.25f); add_to_ored_words (0.5f); add_to_ored_words (1.0f); add_to_ored_words (2.0f); add_to_ored_words (4.0f); /* Remove bits that are common (e.g. if representation of the first mantissa bit is explicit). */ for (j = 0; j < NWORDS; j++) ored_words[j] &= ~anded_words[j]; /* Now find the nonzero word. */ for (j = 0; j < NWORDS; j++) if (ored_words[j] != 0) break; if (j < NWORDS) { size_t i; for (i = j + 1; i < NWORDS; i++) if (ored_words[i] != 0) { fprintf (fp, "unknown"); return (fclose (fp) != 0); } for (i = 0; ; i++) if ((ored_words[j] >> i) & 1) { fprintf (fp, "word %d bit %d", (int) j, (int) i); return (fclose (fp) != 0); } } fprintf (fp, "unknown"); return (fclose (fp) != 0); } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_cc_float_expbit0=`cat conftest.out` else gl_cv_cc_float_expbit0="unknown" 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.out fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_cc_float_expbit0" >&5 $as_echo "$gl_cv_cc_float_expbit0" >&6; } case "$gl_cv_cc_float_expbit0" in word*bit*) word=`echo "$gl_cv_cc_float_expbit0" | sed -e 's/word //' -e 's/ bit.*//'` bit=`echo "$gl_cv_cc_float_expbit0" | sed -e 's/word.*bit //'` cat >>confdefs.h <<_ACEOF #define FLT_EXPBIT0_WORD $word _ACEOF cat >>confdefs.h <<_ACEOF #define FLT_EXPBIT0_BIT $bit _ACEOF ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether byte ordering is bigendian" >&5 $as_echo_n "checking whether byte ordering is bigendian... " >&6; } if ${ac_cv_c_bigendian+:} false; then : $as_echo_n "(cached) " >&6 else ac_cv_c_bigendian=unknown # See if we're dealing with a universal compiler. 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 : # Check for potential -arch flags. It is not universal unless # there are at least two -arch flags with different values. ac_arch= ac_prev= for ac_word in $CC $CFLAGS $CPPFLAGS $LDFLAGS; do if test -n "$ac_prev"; then case $ac_word in i?86 | x86_64 | ppc | ppc64) if test -z "$ac_arch" || test "$ac_arch" = "$ac_word"; then ac_arch=$ac_word else ac_cv_c_bigendian=universal break fi ;; esac ac_prev= elif test "x$ac_word" = "x-arch"; then ac_prev=arch fi done fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext if test $ac_cv_c_bigendian = unknown; then # See if sys/param.h defines the BYTE_ORDER macro. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include int main () { #if ! (defined BYTE_ORDER && defined BIG_ENDIAN \ && defined LITTLE_ENDIAN && BYTE_ORDER && BIG_ENDIAN \ && LITTLE_ENDIAN) bogus endian macros #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : # It does; now see whether it defined to BIG_ENDIAN or not. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include int main () { #if BYTE_ORDER != BIG_ENDIAN not big endian #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_c_bigendian=yes else ac_cv_c_bigendian=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 if test $ac_cv_c_bigendian = unknown; then # See if defines _LITTLE_ENDIAN or _BIG_ENDIAN (e.g., Solaris). cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { #if ! (defined _LITTLE_ENDIAN || defined _BIG_ENDIAN) bogus endian macros #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : # It does; now see whether it defined to _BIG_ENDIAN or not. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { #ifndef _BIG_ENDIAN not big endian #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_c_bigendian=yes else ac_cv_c_bigendian=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 if test $ac_cv_c_bigendian = unknown; then # Compile a test program. if test "$cross_compiling" = yes; then : # Try to guess by grepping values from an object file. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ short int ascii_mm[] = { 0x4249, 0x4765, 0x6E44, 0x6961, 0x6E53, 0x7953, 0 }; short int ascii_ii[] = { 0x694C, 0x5454, 0x656C, 0x6E45, 0x6944, 0x6E61, 0 }; int use_ascii (int i) { return ascii_mm[i] + ascii_ii[i]; } short int ebcdic_ii[] = { 0x89D3, 0xE3E3, 0x8593, 0x95C5, 0x89C4, 0x9581, 0 }; short int ebcdic_mm[] = { 0xC2C9, 0xC785, 0x95C4, 0x8981, 0x95E2, 0xA8E2, 0 }; int use_ebcdic (int i) { return ebcdic_mm[i] + ebcdic_ii[i]; } extern int foo; int main () { return use_ascii (foo) == use_ebcdic (foo); ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : if grep BIGenDianSyS conftest.$ac_objext >/dev/null; then ac_cv_c_bigendian=yes fi if grep LiTTleEnDian conftest.$ac_objext >/dev/null ; then if test "$ac_cv_c_bigendian" = unknown; then ac_cv_c_bigendian=no else # finding both strings is unlikely to happen, but who knows? ac_cv_c_bigendian=unknown fi fi fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $ac_includes_default int main () { /* Are we little or big endian? From Harbison&Steele. */ union { long int l; char c[sizeof (long int)]; } u; u.l = 1; return u.c[sizeof (long int) - 1] == 1; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : ac_cv_c_bigendian=no else ac_cv_c_bigendian=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 fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_bigendian" >&5 $as_echo "$ac_cv_c_bigendian" >&6; } case $ac_cv_c_bigendian in #( yes) $as_echo "#define WORDS_BIGENDIAN 1" >>confdefs.h ;; #( no) ;; #( universal) $as_echo "#define AC_APPLE_UNIVERSAL_BUILD 1" >>confdefs.h ;; #( *) as_fn_error $? "unknown endianness presetting ac_cv_c_bigendian=no (or yes) will help" "$LINENO" 5 ;; esac GNULIB_NL_LANGINFO=0; HAVE_NL_LANGINFO=1; REPLACE_NL_LANGINFO=0; 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_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= 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_next_stddef_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | sed -n "$gl_absolute_header_sed"`'"' 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 "$as_ln_s" = "ln -s" && ln -s conftest.file conftest.sym; then if test "$cross_compiling" = yes; then : case "$host_os" in # Guess yes on glibc systems. *-gnu*) 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; /* 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 else # If the 'ln -s' command failed, then we probably don't even # have an lstat function. gl_cv_func_lstat_dereferences_slashed_symlink="guessing no" 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 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_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_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_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; } 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 () { return ! malloc (0); ; 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 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 cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ unsigned long long int ull = 18446744073709551615ULL; typedef int a[(18446744073709551615ULL <= (unsigned long long int) -1 ? 1 : -1)]; int i = 63; int main () { unsigned long long int ullmax = 18446744073709551615ull; return (ull << 63 | ull >> 63 | ull << i | ull >> i | ullmax / ull | ullmax % ull); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_type_unsigned_long_long_int=yes 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 { $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 { $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 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 : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF #define HAVE_DECL_STRERROR_R $ac_have_decl _ACEOF if test $ac_cv_have_decl_strerror_r = no; then HAVE_DECL_STRERROR_R=0 fi 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 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; 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 { $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 #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 #ifndef __bool_true_false_are_defined "error: __bool_true_false_are_defined is not defined" #endif struct s { _Bool s: 1; _Bool t; } 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; int main () { bool e = &s; *pq |= q; *pq |= ! 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); ; 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 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_next_stdint_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | sed -n "$gl_absolute_header_sed"`'"' 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 */ #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; #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 */ #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 if test "$gl_cv_header_working_stdint_h" = yes; then STDINT_H= 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 else HAVE_SYS_INTTYPES_H=0 fi if test $ac_cv_header_sys_bitypes_h = yes; then HAVE_SYS_BITYPES_H=1 else HAVE_SYS_BITYPES_H=0 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 $BITSIZEOF_WINT_T -lt 32; then BITSIZEOF_WINT_T=32 fi STDINT_H=stdint.h 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_next_string_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | sed -n "$gl_absolute_header_sed"`'"' 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_next_strings_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | sed -n "$gl_absolute_header_sed"`'"' 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; 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; { $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 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 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_next_time_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | sed -n "$gl_absolute_header_sed"`'"' 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 gl_libunistring_sed_extract_major='/^[0-9]/{s/^\([0-9]*\).*/\1/p;q;} i\ 0 q ' gl_libunistring_sed_extract_minor='/^[0-9][0-9]*[.][0-9]/{s/^[0-9]*[.]\([0-9]*\).*/\1/p;q;} i\ 0 q ' gl_libunistring_sed_extract_subminor='/^[0-9][0-9]*[.][0-9][0-9]*[.][0-9]/{s/^[0-9]*[.][0-9]*[.]\([0-9]*\).*/\1/p;q;} i\ 0 q ' if test "$HAVE_LIBUNISTRING" = yes; then LIBUNISTRING_VERSION_MAJOR=`echo "$LIBUNISTRING_VERSION" | sed -n -e "$gl_libunistring_sed_extract_major"` LIBUNISTRING_VERSION_MINOR=`echo "$LIBUNISTRING_VERSION" | sed -n -e "$gl_libunistring_sed_extract_minor"` LIBUNISTRING_VERSION_SUBMINOR=`echo "$LIBUNISTRING_VERSION" | sed -n -e "$gl_libunistring_sed_extract_subminor"` 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 fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether snprintf returns a byte count as in C99" >&5 $as_echo_n "checking whether snprintf returns a byte count as in C99... " >&6; } if ${gl_cv_func_snprintf_retval_c99+:} 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_snprintf_retval_c99="guessing yes";; # Guess yes on FreeBSD >= 5. freebsd[1-4]*) gl_cv_func_snprintf_retval_c99="guessing no";; freebsd* | kfreebsd*) gl_cv_func_snprintf_retval_c99="guessing yes";; # Guess yes on Mac OS X >= 10.3. darwin[1-6].*) gl_cv_func_snprintf_retval_c99="guessing no";; darwin*) gl_cv_func_snprintf_retval_c99="guessing yes";; # Guess yes on OpenBSD >= 3.9. openbsd[1-2].* | openbsd3.[0-8] | openbsd3.[0-8].*) gl_cv_func_snprintf_retval_c99="guessing no";; openbsd*) gl_cv_func_snprintf_retval_c99="guessing yes";; # Guess yes on Solaris >= 2.10. solaris2.[1-9][0-9]*) gl_cv_func_printf_sizes_c99="guessing yes";; solaris*) gl_cv_func_printf_sizes_c99="guessing no";; # Guess yes on AIX >= 4. aix[1-3]*) gl_cv_func_snprintf_retval_c99="guessing no";; aix*) gl_cv_func_snprintf_retval_c99="guessing yes";; # Guess yes on NetBSD >= 3. netbsd[1-2]* | netbsdelf[1-2]* | netbsdaout[1-2]* | netbsdcoff[1-2]*) gl_cv_func_snprintf_retval_c99="guessing no";; netbsd*) gl_cv_func_snprintf_retval_c99="guessing yes";; # Guess yes on BeOS. beos*) gl_cv_func_snprintf_retval_c99="guessing yes";; # If we don't know, assume the worst. *) gl_cv_func_snprintf_retval_c99="guessing no";; esac else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #if HAVE_SNPRINTF # define my_snprintf snprintf #else # include static int my_snprintf (char *buf, int size, const char *format, ...) { va_list args; int ret; va_start (args, format); ret = vsnprintf (buf, size, format, args); va_end (args); return ret; } #endif static char buf[100]; int main () { strcpy (buf, "ABCDEF"); if (my_snprintf (buf, 3, "%d %d", 4567, 89) != 7) return 1; if (my_snprintf (buf, 0, "%d %d", 4567, 89) != 7) return 2; if (my_snprintf (NULL, 0, "%d %d", 4567, 89) != 7) return 3; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_func_snprintf_retval_c99=yes else gl_cv_func_snprintf_retval_c99=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_snprintf_retval_c99" >&5 $as_echo "$gl_cv_func_snprintf_retval_c99" >&6; } for ac_func in snprintf strnlen wcslen wcsnlen mbrtowc wcrtomb 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_decl "$LINENO" "_snprintf" "ac_cv_have_decl__snprintf" "#include " if test "x$ac_cv_have_decl__snprintf" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF #define HAVE_DECL__SNPRINTF $ac_have_decl _ACEOF case "$gl_cv_func_snprintf_retval_c99" in *yes) $as_echo "#define HAVE_SNPRINTF_RETVAL_C99 1" >>confdefs.h ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether printf supports 'long double' arguments" >&5 $as_echo_n "checking whether printf supports 'long double' arguments... " >&6; } if ${gl_cv_func_printf_long_double+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : case "$host_os" in beos*) gl_cv_func_printf_long_double="guessing no";; mingw* | pw*) gl_cv_func_printf_long_double="guessing no";; *) gl_cv_func_printf_long_double="guessing yes";; esac else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include static char buf[10000]; int main () { int result = 0; buf[0] = '\0'; if (sprintf (buf, "%Lf %d", 1.75L, 33, 44, 55) < 0 || strcmp (buf, "1.750000 33") != 0) result |= 1; buf[0] = '\0'; if (sprintf (buf, "%Le %d", 1.75L, 33, 44, 55) < 0 || strcmp (buf, "1.750000e+00 33") != 0) result |= 2; buf[0] = '\0'; if (sprintf (buf, "%Lg %d", 1.75L, 33, 44, 55) < 0 || strcmp (buf, "1.75 33") != 0) result |= 4; return result; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_func_printf_long_double=yes else gl_cv_func_printf_long_double=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_printf_long_double" >&5 $as_echo "$gl_cv_func_printf_long_double" >&6; } case "$gl_cv_func_printf_long_double" in *yes) ;; *) $as_echo "#define NEED_PRINTF_LONG_DOUBLE 1" >>confdefs.h ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether printf supports infinite 'double' arguments" >&5 $as_echo_n "checking whether printf supports infinite 'double' arguments... " >&6; } if ${gl_cv_func_printf_infinite+:} 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_printf_infinite="guessing yes";; # Guess yes on FreeBSD >= 6. freebsd[1-5]*) gl_cv_func_printf_infinite="guessing no";; freebsd* | kfreebsd*) gl_cv_func_printf_infinite="guessing yes";; # Guess yes on Mac OS X >= 10.3. darwin[1-6].*) gl_cv_func_printf_infinite="guessing no";; darwin*) gl_cv_func_printf_infinite="guessing yes";; # Guess yes on HP-UX >= 11. hpux[7-9]* | hpux10*) gl_cv_func_printf_infinite="guessing no";; hpux*) gl_cv_func_printf_infinite="guessing yes";; # Guess yes on NetBSD >= 3. netbsd[1-2]* | netbsdelf[1-2]* | netbsdaout[1-2]* | netbsdcoff[1-2]*) gl_cv_func_printf_infinite="guessing no";; netbsd*) gl_cv_func_printf_infinite="guessing yes";; # Guess yes on BeOS. beos*) gl_cv_func_printf_infinite="guessing yes";; # If we don't know, assume the worst. *) gl_cv_func_printf_infinite="guessing no";; esac else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include static int strisnan (const char *string, size_t start_index, size_t end_index) { if (start_index < end_index) { if (string[start_index] == '-') start_index++; if (start_index + 3 <= end_index && memcmp (string + start_index, "nan", 3) == 0) { start_index += 3; if (start_index == end_index || (string[start_index] == '(' && string[end_index - 1] == ')')) return 1; } } return 0; } static int have_minus_zero () { static double plus_zero = 0.0; double minus_zero = - plus_zero; return memcmp (&plus_zero, &minus_zero, sizeof (double)) != 0; } static char buf[10000]; static double zero = 0.0; int main () { int result = 0; if (sprintf (buf, "%f", 1.0 / zero) < 0 || (strcmp (buf, "inf") != 0 && strcmp (buf, "infinity") != 0)) result |= 1; if (sprintf (buf, "%f", -1.0 / zero) < 0 || (strcmp (buf, "-inf") != 0 && strcmp (buf, "-infinity") != 0)) result |= 1; if (sprintf (buf, "%f", zero / zero) < 0 || !strisnan (buf, 0, strlen (buf))) result |= 2; if (sprintf (buf, "%e", 1.0 / zero) < 0 || (strcmp (buf, "inf") != 0 && strcmp (buf, "infinity") != 0)) result |= 4; if (sprintf (buf, "%e", -1.0 / zero) < 0 || (strcmp (buf, "-inf") != 0 && strcmp (buf, "-infinity") != 0)) result |= 4; if (sprintf (buf, "%e", zero / zero) < 0 || !strisnan (buf, 0, strlen (buf))) result |= 8; if (sprintf (buf, "%g", 1.0 / zero) < 0 || (strcmp (buf, "inf") != 0 && strcmp (buf, "infinity") != 0)) result |= 16; if (sprintf (buf, "%g", -1.0 / zero) < 0 || (strcmp (buf, "-inf") != 0 && strcmp (buf, "-infinity") != 0)) result |= 16; if (sprintf (buf, "%g", zero / zero) < 0 || !strisnan (buf, 0, strlen (buf))) result |= 32; /* This test fails on HP-UX 10.20. */ if (have_minus_zero ()) if (sprintf (buf, "%g", - zero) < 0 || strcmp (buf, "-0") != 0) result |= 64; return result; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_func_printf_infinite=yes else gl_cv_func_printf_infinite=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_printf_infinite" >&5 $as_echo "$gl_cv_func_printf_infinite" >&6; } if test -n "$gl_printf_safe"; then $as_echo "#define CHECK_PRINTF_SAFE 1" >>confdefs.h fi case "$gl_cv_func_printf_long_double" in *yes) { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether printf supports infinite 'long double' arguments" >&5 $as_echo_n "checking whether printf supports infinite 'long double' arguments... " >&6; } if ${gl_cv_func_printf_infinite_long_double+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : case "$host_cpu" in # Guess no on ia64, x86_64, i386. ia64 | x86_64 | i*86) gl_cv_func_printf_infinite_long_double="guessing no";; *) case "$host_os" in # Guess yes on glibc systems. *-gnu*) gl_cv_func_printf_infinite_long_double="guessing yes";; # Guess yes on FreeBSD >= 6. freebsd[1-5]*) gl_cv_func_printf_infinite_long_double="guessing no";; freebsd* | kfreebsd*) gl_cv_func_printf_infinite_long_double="guessing yes";; # Guess yes on HP-UX >= 11. hpux[7-9]* | hpux10*) gl_cv_func_printf_infinite_long_double="guessing no";; hpux*) gl_cv_func_printf_infinite_long_double="guessing yes";; # If we don't know, assume the worst. *) gl_cv_func_printf_infinite_long_double="guessing no";; esac ;; esac else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #if defined __MACH__ && defined __APPLE__ /* Avoid a crash on Mac OS X. */ #include #include #include #include #include #include /* The exception port on which our thread listens. */ static mach_port_t our_exception_port; /* The main function of the thread listening for exceptions of type EXC_BAD_ACCESS. */ static void * mach_exception_thread (void *arg) { /* Buffer for a message to be received. */ struct { mach_msg_header_t head; mach_msg_body_t msgh_body; char data[1024]; } msg; mach_msg_return_t retval; /* Wait for a message on the exception port. */ retval = mach_msg (&msg.head, MACH_RCV_MSG | MACH_RCV_LARGE, 0, sizeof (msg), our_exception_port, MACH_MSG_TIMEOUT_NONE, MACH_PORT_NULL); if (retval != MACH_MSG_SUCCESS) abort (); exit (1); } static void nocrash_init (void) { mach_port_t self = mach_task_self (); /* Allocate a port on which the thread shall listen for exceptions. */ if (mach_port_allocate (self, MACH_PORT_RIGHT_RECEIVE, &our_exception_port) == KERN_SUCCESS) { /* See http://web.mit.edu/darwin/src/modules/xnu/osfmk/man/mach_port_insert_right.html. */ if (mach_port_insert_right (self, our_exception_port, our_exception_port, MACH_MSG_TYPE_MAKE_SEND) == KERN_SUCCESS) { /* The exceptions we want to catch. Only EXC_BAD_ACCESS is interesting for us. */ exception_mask_t mask = EXC_MASK_BAD_ACCESS; /* Create the thread listening on the exception port. */ pthread_attr_t attr; pthread_t thread; if (pthread_attr_init (&attr) == 0 && pthread_attr_setdetachstate (&attr, PTHREAD_CREATE_DETACHED) == 0 && pthread_create (&thread, &attr, mach_exception_thread, NULL) == 0) { pthread_attr_destroy (&attr); /* Replace the exception port info for these exceptions with our own. Note that we replace the exception port for the entire task, not only for a particular thread. This has the effect that when our exception port gets the message, the thread specific exception port has already been asked, and we don't need to bother about it. See http://web.mit.edu/darwin/src/modules/xnu/osfmk/man/task_set_exception_ports.html. */ task_set_exception_ports (self, mask, our_exception_port, EXCEPTION_DEFAULT, MACHINE_THREAD_STATE); } } } } #elif (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ /* Avoid a crash on native Windows. */ #define WIN32_LEAN_AND_MEAN #include #include static LONG WINAPI exception_filter (EXCEPTION_POINTERS *ExceptionInfo) { switch (ExceptionInfo->ExceptionRecord->ExceptionCode) { case EXCEPTION_ACCESS_VIOLATION: case EXCEPTION_IN_PAGE_ERROR: case EXCEPTION_STACK_OVERFLOW: case EXCEPTION_GUARD_PAGE: case EXCEPTION_PRIV_INSTRUCTION: case EXCEPTION_ILLEGAL_INSTRUCTION: case EXCEPTION_DATATYPE_MISALIGNMENT: case EXCEPTION_ARRAY_BOUNDS_EXCEEDED: case EXCEPTION_NONCONTINUABLE_EXCEPTION: exit (1); } return EXCEPTION_CONTINUE_SEARCH; } static void nocrash_init (void) { SetUnhandledExceptionFilter ((LPTOP_LEVEL_EXCEPTION_FILTER) exception_filter); } #else /* Avoid a crash on POSIX systems. */ #include /* A POSIX signal handler. */ static void exception_handler (int sig) { exit (1); } static void nocrash_init (void) { #ifdef SIGSEGV signal (SIGSEGV, exception_handler); #endif #ifdef SIGBUS signal (SIGBUS, exception_handler); #endif } #endif #include #include #include static int strisnan (const char *string, size_t start_index, size_t end_index) { if (start_index < end_index) { if (string[start_index] == '-') start_index++; if (start_index + 3 <= end_index && memcmp (string + start_index, "nan", 3) == 0) { start_index += 3; if (start_index == end_index || (string[start_index] == '(' && string[end_index - 1] == ')')) return 1; } } return 0; } static char buf[10000]; static long double zeroL = 0.0L; int main () { int result = 0; nocrash_init(); if (sprintf (buf, "%Lf", 1.0L / zeroL) < 0 || (strcmp (buf, "inf") != 0 && strcmp (buf, "infinity") != 0)) result |= 1; if (sprintf (buf, "%Lf", -1.0L / zeroL) < 0 || (strcmp (buf, "-inf") != 0 && strcmp (buf, "-infinity") != 0)) result |= 1; if (sprintf (buf, "%Lf", zeroL / zeroL) < 0 || !strisnan (buf, 0, strlen (buf))) result |= 1; if (sprintf (buf, "%Le", 1.0L / zeroL) < 0 || (strcmp (buf, "inf") != 0 && strcmp (buf, "infinity") != 0)) result |= 1; if (sprintf (buf, "%Le", -1.0L / zeroL) < 0 || (strcmp (buf, "-inf") != 0 && strcmp (buf, "-infinity") != 0)) result |= 1; if (sprintf (buf, "%Le", zeroL / zeroL) < 0 || !strisnan (buf, 0, strlen (buf))) result |= 1; if (sprintf (buf, "%Lg", 1.0L / zeroL) < 0 || (strcmp (buf, "inf") != 0 && strcmp (buf, "infinity") != 0)) result |= 1; if (sprintf (buf, "%Lg", -1.0L / zeroL) < 0 || (strcmp (buf, "-inf") != 0 && strcmp (buf, "-infinity") != 0)) result |= 1; if (sprintf (buf, "%Lg", zeroL / zeroL) < 0 || !strisnan (buf, 0, strlen (buf))) result |= 1; #if CHECK_PRINTF_SAFE && ((defined __ia64 && LDBL_MANT_DIG == 64) || (defined __x86_64__ || defined __amd64__) || (defined __i386 || defined __i386__ || defined _I386 || defined _M_IX86 || defined _X86_)) && !HAVE_SAME_LONG_DOUBLE_AS_DOUBLE /* Representation of an 80-bit 'long double' as an initializer for a sequence of 'unsigned int' words. */ # ifdef WORDS_BIGENDIAN # define LDBL80_WORDS(exponent,manthi,mantlo) \ { ((unsigned int) (exponent) << 16) | ((unsigned int) (manthi) >> 16), \ ((unsigned int) (manthi) << 16) | (unsigned int) (mantlo) >> 16), \ (unsigned int) (mantlo) << 16 \ } # else # define LDBL80_WORDS(exponent,manthi,mantlo) \ { mantlo, manthi, exponent } # endif { /* Quiet NaN. */ static union { unsigned int word[4]; long double value; } x = { LDBL80_WORDS (0xFFFF, 0xC3333333, 0x00000000) }; if (sprintf (buf, "%Lf", x.value) < 0 || !strisnan (buf, 0, strlen (buf))) result |= 2; if (sprintf (buf, "%Le", x.value) < 0 || !strisnan (buf, 0, strlen (buf))) result |= 2; if (sprintf (buf, "%Lg", x.value) < 0 || !strisnan (buf, 0, strlen (buf))) result |= 2; } { /* Signalling NaN. */ static union { unsigned int word[4]; long double value; } x = { LDBL80_WORDS (0xFFFF, 0x83333333, 0x00000000) }; if (sprintf (buf, "%Lf", x.value) < 0 || !strisnan (buf, 0, strlen (buf))) result |= 2; if (sprintf (buf, "%Le", x.value) < 0 || !strisnan (buf, 0, strlen (buf))) result |= 2; if (sprintf (buf, "%Lg", x.value) < 0 || !strisnan (buf, 0, strlen (buf))) result |= 2; } { /* Pseudo-NaN. */ static union { unsigned int word[4]; long double value; } x = { LDBL80_WORDS (0xFFFF, 0x40000001, 0x00000000) }; if (sprintf (buf, "%Lf", x.value) < 0 || !strisnan (buf, 0, strlen (buf))) result |= 4; if (sprintf (buf, "%Le", x.value) < 0 || !strisnan (buf, 0, strlen (buf))) result |= 4; if (sprintf (buf, "%Lg", x.value) < 0 || !strisnan (buf, 0, strlen (buf))) result |= 4; } { /* Pseudo-Infinity. */ static union { unsigned int word[4]; long double value; } x = { LDBL80_WORDS (0xFFFF, 0x00000000, 0x00000000) }; if (sprintf (buf, "%Lf", x.value) < 0 || !strisnan (buf, 0, strlen (buf))) result |= 8; if (sprintf (buf, "%Le", x.value) < 0 || !strisnan (buf, 0, strlen (buf))) result |= 8; if (sprintf (buf, "%Lg", x.value) < 0 || !strisnan (buf, 0, strlen (buf))) result |= 8; } { /* Pseudo-Zero. */ static union { unsigned int word[4]; long double value; } x = { LDBL80_WORDS (0x4004, 0x00000000, 0x00000000) }; if (sprintf (buf, "%Lf", x.value) < 0 || !strisnan (buf, 0, strlen (buf))) result |= 16; if (sprintf (buf, "%Le", x.value) < 0 || !strisnan (buf, 0, strlen (buf))) result |= 16; if (sprintf (buf, "%Lg", x.value) < 0 || !strisnan (buf, 0, strlen (buf))) result |= 16; } { /* Unnormalized number. */ static union { unsigned int word[4]; long double value; } x = { LDBL80_WORDS (0x4000, 0x63333333, 0x00000000) }; if (sprintf (buf, "%Lf", x.value) < 0 || !strisnan (buf, 0, strlen (buf))) result |= 32; if (sprintf (buf, "%Le", x.value) < 0 || !strisnan (buf, 0, strlen (buf))) result |= 32; if (sprintf (buf, "%Lg", x.value) < 0 || !strisnan (buf, 0, strlen (buf))) result |= 32; } { /* Pseudo-Denormal. */ static union { unsigned int word[4]; long double value; } x = { LDBL80_WORDS (0x0000, 0x83333333, 0x00000000) }; if (sprintf (buf, "%Lf", x.value) < 0 || !strisnan (buf, 0, strlen (buf))) result |= 64; if (sprintf (buf, "%Le", x.value) < 0 || !strisnan (buf, 0, strlen (buf))) result |= 64; if (sprintf (buf, "%Lg", x.value) < 0 || !strisnan (buf, 0, strlen (buf))) result |= 64; } #endif return result; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_func_printf_infinite_long_double=yes else gl_cv_func_printf_infinite_long_double=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_printf_infinite_long_double" >&5 $as_echo "$gl_cv_func_printf_infinite_long_double" >&6; } ;; *) gl_cv_func_printf_infinite_long_double="irrelevant" ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether printf supports the 'a' and 'A' directives" >&5 $as_echo_n "checking whether printf supports the 'a' and 'A' directives... " >&6; } if ${gl_cv_func_printf_directive_a+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : case "$host_os" in # Guess yes on glibc >= 2.5 systems. *-gnu*) cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #ifdef __GNU_LIBRARY__ #if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 5) || (__GLIBC__ > 2)) && !defined __UCLIBC__ BZ2908 #endif #endif _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "BZ2908" >/dev/null 2>&1; then : gl_cv_func_printf_directive_a="guessing yes" else gl_cv_func_printf_directive_a="guessing no" fi rm -f conftest* ;; # If we don't know, assume the worst. *) gl_cv_func_printf_directive_a="guessing no";; esac else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include static char buf[100]; static double zero = 0.0; int main () { int result = 0; if (sprintf (buf, "%a %d", 3.1416015625, 33, 44, 55) < 0 || (strcmp (buf, "0x1.922p+1 33") != 0 && strcmp (buf, "0x3.244p+0 33") != 0 && strcmp (buf, "0x6.488p-1 33") != 0 && strcmp (buf, "0xc.91p-2 33") != 0)) result |= 1; if (sprintf (buf, "%A %d", -3.1416015625, 33, 44, 55) < 0 || (strcmp (buf, "-0X1.922P+1 33") != 0 && strcmp (buf, "-0X3.244P+0 33") != 0 && strcmp (buf, "-0X6.488P-1 33") != 0 && strcmp (buf, "-0XC.91P-2 33") != 0)) result |= 2; /* This catches a FreeBSD 6.1 bug: it doesn't round. */ if (sprintf (buf, "%.2a %d", 1.51, 33, 44, 55) < 0 || (strcmp (buf, "0x1.83p+0 33") != 0 && strcmp (buf, "0x3.05p-1 33") != 0 && strcmp (buf, "0x6.0ap-2 33") != 0 && strcmp (buf, "0xc.14p-3 33") != 0)) result |= 4; /* This catches a FreeBSD 6.1 bug. See */ if (sprintf (buf, "%010a %d", 1.0 / zero, 33, 44, 55) < 0 || buf[0] == '0') result |= 8; /* This catches a Mac OS X 10.3.9 (Darwin 7.9) bug. */ if (sprintf (buf, "%.1a", 1.999) < 0 || (strcmp (buf, "0x1.0p+1") != 0 && strcmp (buf, "0x2.0p+0") != 0 && strcmp (buf, "0x4.0p-1") != 0 && strcmp (buf, "0x8.0p-2") != 0)) result |= 16; /* This catches the same Mac OS X 10.3.9 (Darwin 7.9) bug and also a glibc 2.4 bug . */ if (sprintf (buf, "%.1La", 1.999L) < 0 || (strcmp (buf, "0x1.0p+1") != 0 && strcmp (buf, "0x2.0p+0") != 0 && strcmp (buf, "0x4.0p-1") != 0 && strcmp (buf, "0x8.0p-2") != 0)) result |= 32; return result; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_func_printf_directive_a=yes else gl_cv_func_printf_directive_a=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_printf_directive_a" >&5 $as_echo "$gl_cv_func_printf_directive_a" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether printf supports the 'F' directive" >&5 $as_echo_n "checking whether printf supports the 'F' directive... " >&6; } if ${gl_cv_func_printf_directive_f+:} 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_printf_directive_f="guessing yes";; # Guess yes on FreeBSD >= 6. freebsd[1-5]*) gl_cv_func_printf_directive_f="guessing no";; freebsd* | kfreebsd*) gl_cv_func_printf_directive_f="guessing yes";; # Guess yes on Mac OS X >= 10.3. darwin[1-6].*) gl_cv_func_printf_directive_f="guessing no";; darwin*) gl_cv_func_printf_directive_f="guessing yes";; # Guess yes on Solaris >= 2.10. solaris2.[1-9][0-9]*) gl_cv_func_printf_sizes_c99="guessing yes";; solaris*) gl_cv_func_printf_sizes_c99="guessing no";; # If we don't know, assume the worst. *) gl_cv_func_printf_directive_f="guessing no";; esac else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include static char buf[100]; static double zero = 0.0; int main () { int result = 0; if (sprintf (buf, "%F %d", 1234567.0, 33, 44, 55) < 0 || strcmp (buf, "1234567.000000 33") != 0) result |= 1; if (sprintf (buf, "%F", 1.0 / zero) < 0 || (strcmp (buf, "INF") != 0 && strcmp (buf, "INFINITY") != 0)) result |= 2; /* This catches a Cygwin 1.5.x bug. */ if (sprintf (buf, "%.F", 1234.0) < 0 || strcmp (buf, "1234") != 0) result |= 4; return result; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_func_printf_directive_f=yes else gl_cv_func_printf_directive_f=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_printf_directive_f" >&5 $as_echo "$gl_cv_func_printf_directive_f" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether printf supports the 'ls' directive" >&5 $as_echo_n "checking whether printf supports the 'ls' directive... " >&6; } if ${gl_cv_func_printf_directive_ls+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : case "$host_os" in openbsd*) gl_cv_func_printf_directive_ls="guessing no";; irix*) gl_cv_func_printf_directive_ls="guessing no";; solaris*) gl_cv_func_printf_directive_ls="guessing no";; cygwin*) gl_cv_func_printf_directive_ls="guessing no";; beos* | haiku*) gl_cv_func_printf_directive_ls="guessing no";; *) gl_cv_func_printf_directive_ls="guessing yes";; esac 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 () { int result = 0; char buf[100]; /* Test whether %ls works at all. This test fails on OpenBSD 4.0, IRIX 6.5, Solaris 2.6, Haiku, but not on Cygwin 1.5. */ { static const wchar_t wstring[] = { 'a', 'b', 'c', 0 }; buf[0] = '\0'; if (sprintf (buf, "%ls", wstring) < 0 || strcmp (buf, "abc") != 0) result |= 1; } /* This test fails on IRIX 6.5, Solaris 2.6, Cygwin 1.5, Haiku (with an assertion failure inside libc), but not on OpenBSD 4.0. */ { static const wchar_t wstring[] = { 'a', 0 }; buf[0] = '\0'; if (sprintf (buf, "%ls", wstring) < 0 || strcmp (buf, "a") != 0) result |= 2; } /* Test whether precisions in %ls are supported as specified in ISO C 99 section 7.19.6.1: "If a precision is specified, no more than that many bytes are written (including shift sequences, if any), and the array shall contain a null wide character if, to equal the multibyte character sequence length given by the precision, the function would need to access a wide character one past the end of the array." This test fails on Solaris 10. */ { static const wchar_t wstring[] = { 'a', 'b', (wchar_t) 0xfdfdfdfd, 0 }; buf[0] = '\0'; if (sprintf (buf, "%.2ls", wstring) < 0 || strcmp (buf, "ab") != 0) result |= 8; } return result; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_func_printf_directive_ls=yes else gl_cv_func_printf_directive_ls=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_printf_directive_ls" >&5 $as_echo "$gl_cv_func_printf_directive_ls" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether printf supports the grouping flag" >&5 $as_echo_n "checking whether printf supports the grouping flag... " >&6; } if ${gl_cv_func_printf_flag_grouping+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : case "$host_os" in cygwin*) gl_cv_func_printf_flag_grouping="guessing no";; netbsd*) gl_cv_func_printf_flag_grouping="guessing no";; mingw* | pw*) gl_cv_func_printf_flag_grouping="guessing no";; *) gl_cv_func_printf_flag_grouping="guessing yes";; esac else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include static char buf[100]; int main () { if (sprintf (buf, "%'d %d", 1234567, 99) < 0 || buf[strlen (buf) - 1] != '9') return 1; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_func_printf_flag_grouping=yes else gl_cv_func_printf_flag_grouping=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_printf_flag_grouping" >&5 $as_echo "$gl_cv_func_printf_flag_grouping" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether printf supports the left-adjust flag correctly" >&5 $as_echo_n "checking whether printf supports the left-adjust flag correctly... " >&6; } if ${gl_cv_func_printf_flag_leftadjust+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : case "$host_os" in # Guess yes on HP-UX 11. hpux11*) gl_cv_func_printf_flag_leftadjust="guessing yes";; # Guess no on HP-UX 10 and older. hpux*) gl_cv_func_printf_flag_leftadjust="guessing no";; # Guess yes otherwise. *) gl_cv_func_printf_flag_leftadjust="guessing yes";; esac else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include static char buf[100]; int main () { /* Check that a '-' flag is not annihilated by a negative width. */ if (sprintf (buf, "a%-*sc", -3, "b") < 0 || strcmp (buf, "ab c") != 0) return 1; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_func_printf_flag_leftadjust=yes else gl_cv_func_printf_flag_leftadjust=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_printf_flag_leftadjust" >&5 $as_echo "$gl_cv_func_printf_flag_leftadjust" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether printf supports the zero flag correctly" >&5 $as_echo_n "checking whether printf supports the zero flag correctly... " >&6; } if ${gl_cv_func_printf_flag_zero+:} 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_printf_flag_zero="guessing yes";; # Guess yes on BeOS. beos*) gl_cv_func_printf_flag_zero="guessing yes";; # If we don't know, assume the worst. *) gl_cv_func_printf_flag_zero="guessing no";; esac else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include static char buf[100]; static double zero = 0.0; int main () { if (sprintf (buf, "%010f", 1.0 / zero, 33, 44, 55) < 0 || (strcmp (buf, " inf") != 0 && strcmp (buf, " infinity") != 0)) return 1; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_func_printf_flag_zero=yes else gl_cv_func_printf_flag_zero=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_printf_flag_zero" >&5 $as_echo "$gl_cv_func_printf_flag_zero" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether printf supports large precisions" >&5 $as_echo_n "checking whether printf supports large precisions... " >&6; } if ${gl_cv_func_printf_precision+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : case "$host_os" in # Guess no only on Solaris, native Windows, and BeOS systems. solaris*) gl_cv_func_printf_precision="guessing no" ;; mingw* | pw*) gl_cv_func_printf_precision="guessing no" ;; beos*) gl_cv_func_printf_precision="guessing no" ;; *) gl_cv_func_printf_precision="guessing yes" ;; esac else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include static char buf[5000]; int main () { int result = 0; #ifdef __BEOS__ /* On BeOS, this would crash and show a dialog box. Avoid the crash. */ return 1; #endif if (sprintf (buf, "%.4000d %d", 1, 33, 44) < 4000 + 3) result |= 1; if (sprintf (buf, "%.4000f %d", 1.0, 33, 44) < 4000 + 5) result |= 2; if (sprintf (buf, "%.511f %d", 1.0, 33, 44) < 511 + 5 || buf[0] != '1') result |= 4; if (sprintf (buf, "%.999f %d", 1.0, 33, 44) < 999 + 5 || buf[0] != '1') result |= 4; return result; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_func_printf_precision=yes else gl_cv_func_printf_precision=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_printf_precision" >&5 $as_echo "$gl_cv_func_printf_precision" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether printf survives out-of-memory conditions" >&5 $as_echo_n "checking whether printf survives out-of-memory conditions... " >&6; } if ${gl_cv_func_printf_enomem+:} false; then : $as_echo_n "(cached) " >&6 else gl_cv_func_printf_enomem="guessing no" if test "$cross_compiling" = no; then if test $APPLE_UNIVERSAL_BUILD = 0; then cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #if defined __MACH__ && defined __APPLE__ /* Avoid a crash on Mac OS X. */ #include #include #include #include #include #include /* The exception port on which our thread listens. */ static mach_port_t our_exception_port; /* The main function of the thread listening for exceptions of type EXC_BAD_ACCESS. */ static void * mach_exception_thread (void *arg) { /* Buffer for a message to be received. */ struct { mach_msg_header_t head; mach_msg_body_t msgh_body; char data1024; } msg; mach_msg_return_t retval; /* Wait for a message on the exception port. */ retval = mach_msg (&msg.head, MACH_RCV_MSG | MACH_RCV_LARGE, 0, sizeof (msg), our_exception_port, MACH_MSG_TIMEOUT_NONE, MACH_PORT_NULL); if (retval != MACH_MSG_SUCCESS) abort (); exit (1); } static void nocrash_init (void) { mach_port_t self = mach_task_self (); /* Allocate a port on which the thread shall listen for exceptions. */ if (mach_port_allocate (self, MACH_PORT_RIGHT_RECEIVE, &our_exception_port) == KERN_SUCCESS) { /* See http://web.mit.edu/darwin/src/modules/xnu/osfmk/man/mach_port_insert_right.html. */ if (mach_port_insert_right (self, our_exception_port, our_exception_port, MACH_MSG_TYPE_MAKE_SEND) == KERN_SUCCESS) { /* The exceptions we want to catch. Only EXC_BAD_ACCESS is interesting for us. */ exception_mask_t mask = EXC_MASK_BAD_ACCESS; /* Create the thread listening on the exception port. */ pthread_attr_t attr; pthread_t thread; if (pthread_attr_init (&attr) == 0 && pthread_attr_setdetachstate (&attr, PTHREAD_CREATE_DETACHED) == 0 && pthread_create (&thread, &attr, mach_exception_thread, NULL) == 0) { pthread_attr_destroy (&attr); /* Replace the exception port info for these exceptions with our own. Note that we replace the exception port for the entire task, not only for a particular thread. This has the effect that when our exception port gets the message, the thread specific exception port has already been asked, and we don't need to bother about it. See http://web.mit.edu/darwin/src/modules/xnu/osfmk/man/task_set_exception_ports.html. */ task_set_exception_ports (self, mask, our_exception_port, EXCEPTION_DEFAULT, MACHINE_THREAD_STATE); } } } } #elif (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ /* Avoid a crash on native Windows. */ #define WIN32_LEAN_AND_MEAN #include #include static LONG WINAPI exception_filter (EXCEPTION_POINTERS *ExceptionInfo) { switch (ExceptionInfo->ExceptionRecord->ExceptionCode) { case EXCEPTION_ACCESS_VIOLATION: case EXCEPTION_IN_PAGE_ERROR: case EXCEPTION_STACK_OVERFLOW: case EXCEPTION_GUARD_PAGE: case EXCEPTION_PRIV_INSTRUCTION: case EXCEPTION_ILLEGAL_INSTRUCTION: case EXCEPTION_DATATYPE_MISALIGNMENT: case EXCEPTION_ARRAY_BOUNDS_EXCEEDED: case EXCEPTION_NONCONTINUABLE_EXCEPTION: exit (1); } return EXCEPTION_CONTINUE_SEARCH; } static void nocrash_init (void) { SetUnhandledExceptionFilter ((LPTOP_LEVEL_EXCEPTION_FILTER) exception_filter); } #else /* Avoid a crash on POSIX systems. */ #include /* A POSIX signal handler. */ static void exception_handler (int sig) { exit (1); } static void nocrash_init (void) { #ifdef SIGSEGV signal (SIGSEGV, exception_handler); #endif #ifdef SIGBUS signal (SIGBUS, exception_handler); #endif } #endif #include #include #include #include #include int main() { struct rlimit limit; int ret; nocrash_init (); /* Some printf implementations allocate temporary space with malloc. */ /* On BSD systems, malloc() is limited by RLIMIT_DATA. */ #ifdef RLIMIT_DATA if (getrlimit (RLIMIT_DATA, &limit) < 0) return 77; if (limit.rlim_max == RLIM_INFINITY || limit.rlim_max > 5000000) limit.rlim_max = 5000000; limit.rlim_cur = limit.rlim_max; if (setrlimit (RLIMIT_DATA, &limit) < 0) return 77; #endif /* On Linux systems, malloc() is limited by RLIMIT_AS. */ #ifdef RLIMIT_AS if (getrlimit (RLIMIT_AS, &limit) < 0) return 77; if (limit.rlim_max == RLIM_INFINITY || limit.rlim_max > 5000000) limit.rlim_max = 5000000; limit.rlim_cur = limit.rlim_max; if (setrlimit (RLIMIT_AS, &limit) < 0) return 77; #endif /* Some printf implementations allocate temporary space on the stack. */ #ifdef RLIMIT_STACK if (getrlimit (RLIMIT_STACK, &limit) < 0) return 77; if (limit.rlim_max == RLIM_INFINITY || limit.rlim_max > 5000000) limit.rlim_max = 5000000; limit.rlim_cur = limit.rlim_max; if (setrlimit (RLIMIT_STACK, &limit) < 0) return 77; #endif ret = printf ("%.5000000f", 1.0); return !(ret == 5000002 || (ret < 0 && errno == ENOMEM)); } _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 (./conftest 2>&5 result=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $result" >&5 if test $result != 0 && test $result != 77; then result=1; fi exit $result ) >/dev/null 2>/dev/null case $? in 0) gl_cv_func_printf_enomem="yes" ;; 77) gl_cv_func_printf_enomem="guessing no" ;; *) gl_cv_func_printf_enomem="no" ;; esac else gl_cv_func_printf_enomem="guessing no" fi rm -fr conftest* else gl_cv_func_printf_enomem="guessing no" fi fi if test "$gl_cv_func_printf_enomem" = "guessing no"; then case "$host_os" in # Guess yes on glibc systems. *-gnu*) gl_cv_func_printf_enomem="guessing yes";; # Guess yes on Solaris. solaris*) gl_cv_func_printf_enomem="guessing yes";; # Guess yes on AIX. aix*) gl_cv_func_printf_enomem="guessing yes";; # Guess yes on HP-UX/hppa. hpux*) case "$host_cpu" in hppa*) gl_cv_func_printf_enomem="guessing yes";; *) gl_cv_func_printf_enomem="guessing no";; esac ;; # Guess yes on IRIX. irix*) gl_cv_func_printf_enomem="guessing yes";; # Guess yes on OSF/1. osf*) gl_cv_func_printf_enomem="guessing yes";; # Guess yes on BeOS. beos*) gl_cv_func_printf_enomem="guessing yes";; # Guess yes on Haiku. haiku*) gl_cv_func_printf_enomem="guessing yes";; # If we don't know, assume the worst. *) gl_cv_func_printf_enomem="guessing no";; esac fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_printf_enomem" >&5 $as_echo "$gl_cv_func_printf_enomem" >&6; } if test $ac_cv_header_features_h = yes; then HAVE_FEATURES_H=1 else HAVE_FEATURES_H=0 fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for inttypes.h" >&5 $as_echo_n "checking for inttypes.h... " >&6; } if ${gl_cv_header_inttypes_h+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include int main () { uintmax_t i = (uintmax_t) -1; return !i; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_header_inttypes_h=yes else gl_cv_header_inttypes_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_inttypes_h" >&5 $as_echo "$gl_cv_header_inttypes_h" >&6; } if test $gl_cv_header_inttypes_h = yes; then cat >>confdefs.h <<_ACEOF #define HAVE_INTTYPES_H_WITH_UINTMAX 1 _ACEOF fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for stdint.h" >&5 $as_echo_n "checking for stdint.h... " >&6; } if ${gl_cv_header_stdint_h+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include int main () { uintmax_t i = (uintmax_t) -1; return !i; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_header_stdint_h=yes else gl_cv_header_stdint_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_h" >&5 $as_echo "$gl_cv_header_stdint_h" >&6; } if test $gl_cv_header_stdint_h = yes; then cat >>confdefs.h <<_ACEOF #define HAVE_STDINT_H_WITH_UINTMAX 1 _ACEOF fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for intmax_t" >&5 $as_echo_n "checking for intmax_t... " >&6; } if ${gt_cv_c_intmax_t+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #if HAVE_STDINT_H_WITH_UINTMAX #include #endif #if HAVE_INTTYPES_H_WITH_UINTMAX #include #endif int main () { intmax_t x = -1; return !x; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gt_cv_c_intmax_t=yes else gt_cv_c_intmax_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_intmax_t" >&5 $as_echo "$gt_cv_c_intmax_t" >&6; } if test $gt_cv_c_intmax_t = yes; then $as_echo "#define HAVE_INTMAX_T 1" >>confdefs.h else test $ac_cv_type_long_long_int = yes \ && ac_type='long long' \ || ac_type='long' cat >>confdefs.h <<_ACEOF #define intmax_t $ac_type _ACEOF 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 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 pkglibexecdir='${libexecdir}/${PACKAGE}' COS_LIBM="$POW_LIBM" $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" ;; linux*) # On linux between 2008-07-27 and 2009-05-11, dup2 of a # closed fd may yield -EBADF instead of -1 / errno=EBADF. gl_cv_func_dup2_works="guessing no" ;; freebsd*) # on FreeBSD 6.1, dup2(1,1000000) 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" ;; *) gl_cv_func_dup2_works="guessing yes" ;; esac else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include int main () { int result = 0; #ifdef FD_CLOEXEC if (fcntl (1, F_SETFD, FD_CLOEXEC) == -1) result |= 1; #endif if (dup2 (1, 1) == 0) 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, 1000000) == -1 && errno != EBADF) result |= 16; /* Flush out a cygwin core dump. */ if (dup2 (2, -1) != -1 || errno != EBADF) result |= 32; 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 ;; 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=no 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; } if test $gl_cv_func_fflush_stdin = no; then REPLACE_FCLOSE=1 fi if test $REPLACE_CLOSE = 1; then REPLACE_FCLOSE=1 fi 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 : # Guess that it works on glibc systems case $host_os in #(( *-gnu*) gl_cv_func_fcntl_f_dupfd_works="guessing yes";; *) gl_cv_func_fcntl_f_dupfd_works="guessing no";; esac else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include int main () { int result = 0; if (fcntl (0, F_DUPFD, -1) != -1) result |= 1; if (errno != EINVAL) result |= 2; 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_next_fcntl_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | sed -n "$gl_absolute_header_sed"`'"' 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=no 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; } if test $gl_cv_func_fflush_stdin = no; 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_next_float_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | sed -n "$gl_absolute_header_sed"`'"' 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 $gl_cv_func_frexp_no_libm = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether frexp works" >&5 $as_echo_n "checking whether frexp works... " >&6; } if ${gl_cv_func_frexp_works+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : case "$host_os" in netbsd* | irix* | mingw*) gl_cv_func_frexp_works="guessing no";; *) gl_cv_func_frexp_works="guessing yes";; esac else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include #if HAVE_DECL_ALARM # include # include #endif /* HP cc on HP-UX 10.20 has a bug with the constant expression -0.0. ICC 10.0 has a bug when optimizing the expression -zero. The expression -DBL_MIN * DBL_MIN does not work when cross-compiling to PowerPC on Mac OS X 10.5. */ #if defined __hpux || defined __sgi || defined __ICC static double compute_minus_zero (void) { return -DBL_MIN * DBL_MIN; } # define minus_zero compute_minus_zero () #else double minus_zero = -0.0; #endif int main() { int result = 0; int i; volatile double x; double zero = 0.0; #if HAVE_DECL_ALARM /* NeXTstep 3.3 frexp() runs into an endless loop when called on an infinite number. Let the test fail in this case. */ signal (SIGALRM, SIG_DFL); alarm (5); #endif /* Test on denormalized numbers. */ for (i = 1, x = 1.0; i >= DBL_MIN_EXP; i--, x *= 0.5) ; if (x > 0.0) { int exp; double y = frexp (x, &exp); /* On machines with IEEE754 arithmetic: x = 1.11254e-308, exp = -1022. On NetBSD: y = 0.75. Correct: y = 0.5. */ if (y != 0.5) result |= 1; } /* Test on infinite numbers. */ x = 1.0 / zero; { int exp; double y = frexp (x, &exp); if (y != x) result |= 2; } /* Test on negative zero. */ x = minus_zero; { int exp; double y = frexp (x, &exp); if (memcmp (&y, &x, sizeof x)) result |= 4; } return result; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_func_frexp_works=yes else gl_cv_func_frexp_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_frexp_works" >&5 $as_echo "$gl_cv_func_frexp_works" >&6; } case "$gl_cv_func_frexp_works" in *yes) gl_func_frexp_no_libm=yes ;; *) gl_func_frexp_no_libm=no; REPLACE_FREXP=1 ;; esac else gl_func_frexp_no_libm=no REPLACE_FREXP=1 fi if test $gl_func_frexp_no_libm = yes; then $as_echo "#define HAVE_FREXP_IN_LIBC 1" >>confdefs.h fi if test $gl_func_frexp_no_libm != yes; then gl_LIBOBJS="$gl_LIBOBJS frexp.$ac_objext" fi GNULIB_FREXP=1 $as_echo "#define GNULIB_TEST_FREXP 1" >>confdefs.h ac_fn_c_check_decl "$LINENO" "frexpl" "ac_cv_have_decl_frexpl" "#include " if test "x$ac_cv_have_decl_frexpl" = xyes; then : else HAVE_DECL_FREXPL=0 fi if test $HAVE_DECL_FREXPL = 1; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether frexpl() can be used without linking with libm" >&5 $as_echo_n "checking whether frexpl() can be used without linking with libm... " >&6; } if ${gl_cv_func_frexpl_no_libm+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include long double x; int main () { int e; return frexpl (x, &e) > 0; ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : gl_cv_func_frexpl_no_libm=yes else gl_cv_func_frexpl_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_frexpl_no_libm" >&5 $as_echo "$gl_cv_func_frexpl_no_libm" >&6; } if test $gl_cv_func_frexpl_no_libm = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether frexpl works" >&5 $as_echo_n "checking whether frexpl works... " >&6; } if ${gl_cv_func_frexpl_works+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : case "$host_os" in aix | aix[3-6]* | beos* | darwin* | irix* | mingw* | pw*) gl_cv_func_frexpl_works="guessing no";; *) gl_cv_func_frexpl_works="guessing yes";; esac else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include /* Override the values of , like done in float.in.h. */ #if defined __i386__ && (defined __BEOS__ || defined __OpenBSD__) # undef LDBL_MIN_EXP # define LDBL_MIN_EXP (-16381) #endif #if defined __i386__ && defined __FreeBSD__ # undef LDBL_MIN_EXP # define LDBL_MIN_EXP (-16381) #endif #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 #endif #if defined __sgi && (LDBL_MANT_DIG >= 106) # if defined __GNUC__ # undef LDBL_MIN_EXP # define LDBL_MIN_EXP DBL_MIN_EXP # endif #endif extern #ifdef __cplusplus "C" #endif long double frexpl (long double, int *); int main() { int result = 0; volatile long double x; /* Test on finite numbers that fails on AIX 5.1. */ x = 16.0L; { int exp = -9999; frexpl (x, &exp); if (exp != 5) result |= 1; } /* Test on finite numbers that fails on Mac OS X 10.4, because its frexpl function returns an invalid (incorrectly normalized) value: it returns y = { 0x3fe028f5, 0xc28f5c28, 0x3c9eb851, 0xeb851eb8 } but the correct result is 0.505L = { 0x3fe028f5, 0xc28f5c29, 0xbc547ae1, 0x47ae1480 } */ x = 1.01L; { int exp = -9999; long double y = frexpl (x, &exp); if (!(exp == 1 && y == 0.505L)) result |= 2; } /* Test on large finite numbers. This fails on BeOS at i = 16322, while LDBL_MAX_EXP = 16384. In the loop end test, we test x against Infinity, rather than comparing i with LDBL_MAX_EXP, because BeOS has a wrong LDBL_MAX_EXP. */ { int i; for (i = 1, x = 1.0L; x != x + x; i++, x *= 2.0L) { int exp = -9999; frexpl (x, &exp); if (exp != i) { result |= 4; break; } } } /* Test on denormalized numbers. */ { int i; for (i = 1, x = 1.0L; i >= LDBL_MIN_EXP; i--, x *= 0.5L) ; if (x > 0.0L) { int exp; long double y = frexpl (x, &exp); /* On machines with IEEE854 arithmetic: x = 1.68105e-4932, exp = -16382, y = 0.5. On Mac OS X 10.5: exp = -16384, y = 0.5. */ if (exp != LDBL_MIN_EXP - 1) result |= 8; } } /* Test on infinite numbers. */ x = 1.0L / 0.0L; { int exp; long double y = frexpl (x, &exp); if (y != x) result |= 16; } return result; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_func_frexpl_works=yes else gl_cv_func_frexpl_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_frexpl_works" >&5 $as_echo "$gl_cv_func_frexpl_works" >&6; } case "$gl_cv_func_frexpl_works" in *yes) gl_func_frexpl_no_libm=yes ;; *) gl_func_frexpl_no_libm=no; REPLACE_FREXPL=1 ;; esac else gl_func_frexpl_no_libm=no REPLACE_FREXPL=1 fi if test $gl_func_frexpl_no_libm = yes; then $as_echo "#define HAVE_FREXPL_IN_LIBC 1" >>confdefs.h fi fi if test $HAVE_DECL_FREXPL = 0 || test $gl_func_frexpl_no_libm = no; then gl_LIBOBJS="$gl_LIBOBJS frexpl.$ac_objext" fi GNULIB_FREXPL=1 $as_echo "#define GNULIB_TEST_FREXPL 1" >>confdefs.h 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=no 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; } if test $gl_cv_func_fflush_stdin = no; 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; then HAVE_GETDTABLESIZE=0 fi if test $HAVE_GETDTABLESIZE = 0; then gl_LIBOBJS="$gl_LIBOBJS getdtablesize.$ac_objext" : fi GNULIB_GETDTABLESIZE=1 $as_echo "#define GNULIB_TEST_GETDTABLESIZE 1" >>confdefs.h 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 $as_echo "#define gmtime rpl_gmtime" >>confdefs.h $as_echo "#define localtime rpl_localtime" >>confdefs.h $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 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_next_iconv_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | sed -n "$gl_absolute_header_sed"`'"' 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 if test "$am_cv_func_iconv" = yes; then ICONV_H='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 cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #if defined _LIBICONV_VERSION || (defined __GLIBC__ && !defined __UCLIBC__) gnu_iconv #endif _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "gnu_iconv" >/dev/null 2>&1; then : gl_func_iconv_gnu=yes else gl_func_iconv_gnu=no fi rm -f conftest* if test $gl_func_iconv_gnu = no; then iconv_flavor= case "$host_os" in aix*) iconv_flavor=ICONV_FLAVOR_AIX ;; irix*) iconv_flavor=ICONV_FLAVOR_IRIX ;; hpux*) iconv_flavor=ICONV_FLAVOR_HPUX ;; osf*) iconv_flavor=ICONV_FLAVOR_OSF ;; solaris*) iconv_flavor=ICONV_FLAVOR_SOLARIS ;; esac if test -n "$iconv_flavor"; then cat >>confdefs.h <<_ACEOF #define ICONV_FLAVOR $iconv_flavor _ACEOF ICONV_H='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 REPLACE_ICONV_OPEN=1 fi fi fi if test $REPLACE_ICONV_OPEN = 1; then gl_LIBOBJS="$gl_LIBOBJS iconv_open.$ac_objext" fi if test $REPLACE_ICONV = 1; then gl_LIBOBJS="$gl_LIBOBJS iconv.$ac_objext" gl_LIBOBJS="$gl_LIBOBJS iconv_close.$ac_objext" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the compiler generally respects inline" >&5 $as_echo_n "checking whether the compiler generally respects inline... " >&6; } if ${gl_cv_c_inline_effective+:} false; then : $as_echo_n "(cached) " >&6 else if test $ac_cv_c_inline = no; then gl_cv_c_inline_effective=no else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { #ifdef __NO_INLINE__ #error "inline is not effective" #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_c_inline_effective=yes else gl_cv_c_inline_effective=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_c_inline_effective" >&5 $as_echo "$gl_cv_c_inline_effective" >&6; } if test $gl_cv_c_inline_effective = yes; then $as_echo "#define HAVE_INLINE 1" >>confdefs.h fi 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 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether isnan(double) can be used without linking with libm" >&5 $as_echo_n "checking whether isnan(double) can be used without linking with libm... " >&6; } if ${gl_cv_func_isnand_no_libm+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #if __GNUC__ >= 4 # undef isnand # define isnand(x) __builtin_isnan ((double)(x)) #else # undef isnand # define isnand(x) isnan ((double)(x)) #endif double x; int main () { return isnand (x); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : gl_cv_func_isnand_no_libm=yes else gl_cv_func_isnand_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_isnand_no_libm" >&5 $as_echo "$gl_cv_func_isnand_no_libm" >&6; } gl_func_isnand_no_libm=$gl_cv_func_isnand_no_libm if test $gl_cv_func_isnand_no_libm = yes; then $as_echo "#define HAVE_ISNAND_IN_LIBC 1" >>confdefs.h fi if test $gl_func_isnand_no_libm != yes; then gl_LIBOBJS="$gl_LIBOBJS isnand.$ac_objext" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether isnan(float) can be used without linking with libm" >&5 $as_echo_n "checking whether isnan(float) can be used without linking with libm... " >&6; } if ${gl_cv_func_isnanf_no_libm+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #if __GNUC__ >= 4 # undef isnanf # define isnanf(x) __builtin_isnanf ((float)(x)) #elif defined isnan # undef isnanf # define isnanf(x) isnan ((float)(x)) #endif float x; int main () { return isnanf (x); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : gl_cv_func_isnanf_no_libm=yes else gl_cv_func_isnanf_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_isnanf_no_libm" >&5 $as_echo "$gl_cv_func_isnanf_no_libm" >&6; } if test $gl_cv_func_isnanf_no_libm = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether isnan(float) works" >&5 $as_echo_n "checking whether isnan(float) works... " >&6; } if ${gl_cv_func_isnanf_works+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : case "$host_os" in irix* | solaris*) gl_cv_func_isnanf_works="guessing no";; *) gl_cv_func_isnanf_works="guessing yes";; esac else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #if __GNUC__ >= 4 # undef isnanf # define isnanf(x) __builtin_isnanf ((float)(x)) #elif defined isnan # undef isnanf # define isnanf(x) isnan ((float)(x)) #endif /* The Compaq (ex-DEC) C 6.4 compiler chokes on the expression 0.0 / 0.0. */ #ifdef __DECC static float NaN () { static float zero = 0.0f; return zero / zero; } #else # define NaN() (0.0f / 0.0f) #endif #define NWORDS \ ((sizeof (float) + sizeof (unsigned int) - 1) / sizeof (unsigned int)) typedef union { unsigned int word[NWORDS]; float value; } memory_float; int main() { int result = 0; if (isnanf (1.0f / 0.0f)) result |= 1; if (!isnanf (NaN ())) result |= 2; #if defined FLT_EXPBIT0_WORD && defined FLT_EXPBIT0_BIT /* The isnanf function should be immune against changes in the sign bit and in the mantissa bits. The xor operation twiddles a bit that can only be a sign bit or a mantissa bit. */ if (FLT_EXPBIT0_WORD == 0 && FLT_EXPBIT0_BIT > 0) { memory_float m; m.value = NaN (); /* Set the bits below the exponent to 01111...111. */ m.word[0] &= -1U << FLT_EXPBIT0_BIT; m.word[0] |= 1U << (FLT_EXPBIT0_BIT - 1) - 1; if (!isnanf (m.value)) result |= 4; } #endif return result; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_func_isnanf_works=yes else gl_cv_func_isnanf_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_isnanf_works" >&5 $as_echo "$gl_cv_func_isnanf_works" >&6; } fi if test $gl_cv_func_isnanf_no_libm = yes \ && { case "$gl_cv_func_isnanf_works" in *yes) true;; *) false;; esac }; then gl_func_isnanf_no_libm=yes $as_echo "#define HAVE_ISNANF_IN_LIBC 1" >>confdefs.h else gl_func_isnanf_no_libm=no fi if test $gl_func_isnanf_no_libm != yes; then gl_LIBOBJS="$gl_LIBOBJS isnanf.$ac_objext" { $as_echo "$as_me:${as_lineno-$LINENO}: checking where to find the exponent in a 'float'" >&5 $as_echo_n "checking where to find the exponent in a 'float'... " >&6; } if ${gl_cv_cc_float_expbit0+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : gl_cv_cc_float_expbit0="word 0 bit 23" else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include #include #define NWORDS \ ((sizeof (float) + sizeof (unsigned int) - 1) / sizeof (unsigned int)) typedef union { float value; unsigned int word[NWORDS]; } memory_float; static unsigned int ored_words[NWORDS]; static unsigned int anded_words[NWORDS]; static void add_to_ored_words (float x) { memory_float m; size_t i; /* Clear it first, in case sizeof (float) < sizeof (memory_float). */ memset (&m, 0, sizeof (memory_float)); m.value = x; for (i = 0; i < NWORDS; i++) { ored_words[i] |= m.word[i]; anded_words[i] &= m.word[i]; } } int main () { size_t j; FILE *fp = fopen ("conftest.out", "w"); if (fp == NULL) return 1; for (j = 0; j < NWORDS; j++) anded_words[j] = ~ (unsigned int) 0; add_to_ored_words (0.25f); add_to_ored_words (0.5f); add_to_ored_words (1.0f); add_to_ored_words (2.0f); add_to_ored_words (4.0f); /* Remove bits that are common (e.g. if representation of the first mantissa bit is explicit). */ for (j = 0; j < NWORDS; j++) ored_words[j] &= ~anded_words[j]; /* Now find the nonzero word. */ for (j = 0; j < NWORDS; j++) if (ored_words[j] != 0) break; if (j < NWORDS) { size_t i; for (i = j + 1; i < NWORDS; i++) if (ored_words[i] != 0) { fprintf (fp, "unknown"); return (fclose (fp) != 0); } for (i = 0; ; i++) if ((ored_words[j] >> i) & 1) { fprintf (fp, "word %d bit %d", (int) j, (int) i); return (fclose (fp) != 0); } } fprintf (fp, "unknown"); return (fclose (fp) != 0); } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_cc_float_expbit0=`cat conftest.out` else gl_cv_cc_float_expbit0="unknown" 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.out fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_cc_float_expbit0" >&5 $as_echo "$gl_cv_cc_float_expbit0" >&6; } case "$gl_cv_cc_float_expbit0" in word*bit*) word=`echo "$gl_cv_cc_float_expbit0" | sed -e 's/word //' -e 's/ bit.*//'` bit=`echo "$gl_cv_cc_float_expbit0" | sed -e 's/word.*bit //'` cat >>confdefs.h <<_ACEOF #define FLT_EXPBIT0_WORD $word _ACEOF cat >>confdefs.h <<_ACEOF #define FLT_EXPBIT0_BIT $bit _ACEOF ;; esac fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether isnan(long double) can be used without linking with libm" >&5 $as_echo_n "checking whether isnan(long double) can be used without linking with libm... " >&6; } if ${gl_cv_func_isnanl_no_libm+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #if __GNUC__ >= 4 # undef isnanl # define isnanl(x) __builtin_isnanl ((long double)(x)) #elif defined isnan # undef isnanl # define isnanl(x) isnan ((long double)(x)) #endif long double x; int main () { return isnanl (x); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : gl_cv_func_isnanl_no_libm=yes else gl_cv_func_isnanl_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_isnanl_no_libm" >&5 $as_echo "$gl_cv_func_isnanl_no_libm" >&6; } gl_func_isnanl_no_libm=$gl_cv_func_isnanl_no_libm if test $gl_func_isnanl_no_libm = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether isnanl works" >&5 $as_echo_n "checking whether isnanl works... " >&6; } if ${gl_cv_func_isnanl_works+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : case "$host_cpu" in # Guess no on ia64, x86_64, i386. ia64 | x86_64 | i*86) gl_cv_func_isnanl_works="guessing no";; *) case "$host_os" in netbsd*) gl_cv_func_isnanl_works="guessing no";; *) gl_cv_func_isnanl_works="guessing yes";; esac ;; esac else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include #if __GNUC__ >= 4 # undef isnanl # define isnanl(x) __builtin_isnanl ((long double)(x)) #elif defined isnan # undef isnanl # define isnanl(x) isnan ((long double)(x)) #endif #define NWORDS \ ((sizeof (long double) + sizeof (unsigned int) - 1) / sizeof (unsigned int)) typedef union { unsigned int word[NWORDS]; long double value; } memory_long_double; /* On Irix 6.5, gcc 3.4.3 can't compute compile-time NaN, and needs the runtime type conversion. */ #ifdef __sgi static long double NaNl () { double zero = 0.0; return zero / zero; } #else # define NaNl() (0.0L / 0.0L) #endif int main () { int result = 0; if (!isnanl (NaNl ())) result |= 1; { memory_long_double m; unsigned int i; /* The isnanl function should be immune against changes in the sign bit and in the mantissa bits. The xor operation twiddles a bit that can only be a sign bit or a mantissa bit (since the exponent never extends to bit 31). */ m.value = NaNl (); m.word[NWORDS / 2] ^= (unsigned int) 1 << (sizeof (unsigned int) * CHAR_BIT - 1); for (i = 0; i < NWORDS; i++) m.word[i] |= 1; if (!isnanl (m.value)) result |= 1; } #if ((defined __ia64 && LDBL_MANT_DIG == 64) || (defined __x86_64__ || defined __amd64__) || (defined __i386 || defined __i386__ || defined _I386 || defined _M_IX86 || defined _X86_)) && !HAVE_SAME_LONG_DOUBLE_AS_DOUBLE /* Representation of an 80-bit 'long double' as an initializer for a sequence of 'unsigned int' words. */ # ifdef WORDS_BIGENDIAN # define LDBL80_WORDS(exponent,manthi,mantlo) \ { ((unsigned int) (exponent) << 16) | ((unsigned int) (manthi) >> 16), \ ((unsigned int) (manthi) << 16) | (unsigned int) (mantlo) >> 16), \ (unsigned int) (mantlo) << 16 \ } # else # define LDBL80_WORDS(exponent,manthi,mantlo) \ { mantlo, manthi, exponent } # endif { /* Quiet NaN. */ static memory_long_double x = { LDBL80_WORDS (0xFFFF, 0xC3333333, 0x00000000) }; if (!isnanl (x.value)) result |= 2; } { /* Signalling NaN. */ static memory_long_double x = { LDBL80_WORDS (0xFFFF, 0x83333333, 0x00000000) }; if (!isnanl (x.value)) result |= 2; } /* The isnanl function should recognize Pseudo-NaNs, Pseudo-Infinities, Pseudo-Zeroes, Unnormalized Numbers, and Pseudo-Denormals, as defined in Intel IA-64 Architecture Software Developer's Manual, Volume 1: Application Architecture. Table 5-2 "Floating-Point Register Encodings" Figure 5-6 "Memory to Floating-Point Register Data Translation" */ { /* Pseudo-NaN. */ static memory_long_double x = { LDBL80_WORDS (0xFFFF, 0x40000001, 0x00000000) }; if (!isnanl (x.value)) result |= 4; } { /* Pseudo-Infinity. */ static memory_long_double x = { LDBL80_WORDS (0xFFFF, 0x00000000, 0x00000000) }; if (!isnanl (x.value)) result |= 8; } { /* Pseudo-Zero. */ static memory_long_double x = { LDBL80_WORDS (0x4004, 0x00000000, 0x00000000) }; if (!isnanl (x.value)) result |= 16; } { /* Unnormalized number. */ static memory_long_double x = { LDBL80_WORDS (0x4000, 0x63333333, 0x00000000) }; if (!isnanl (x.value)) result |= 32; } { /* Pseudo-Denormal. */ static memory_long_double x = { LDBL80_WORDS (0x0000, 0x83333333, 0x00000000) }; if (!isnanl (x.value)) result |= 64; } #endif return result; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_func_isnanl_works=yes else gl_cv_func_isnanl_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_isnanl_works" >&5 $as_echo "$gl_cv_func_isnanl_works" >&6; } case "$gl_cv_func_isnanl_works" in *yes) ;; *) gl_func_isnanl_no_libm=no ;; esac fi if test $gl_func_isnanl_no_libm = yes; then $as_echo "#define HAVE_ISNANL_IN_LIBC 1" >>confdefs.h fi if test $gl_func_isnanl_no_libm != yes; then gl_LIBOBJS="$gl_LIBOBJS isnanl.$ac_objext" { $as_echo "$as_me:${as_lineno-$LINENO}: checking where to find the exponent in a 'long double'" >&5 $as_echo_n "checking where to find the exponent in a 'long double'... " >&6; } if ${gl_cv_cc_long_double_expbit0+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : gl_cv_cc_long_double_expbit0="unknown" else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include #include #define NWORDS \ ((sizeof (long double) + sizeof (unsigned int) - 1) / sizeof (unsigned int)) typedef union { long double value; unsigned int word[NWORDS]; } memory_long_double; static unsigned int ored_words[NWORDS]; static unsigned int anded_words[NWORDS]; static void add_to_ored_words (long double x) { memory_long_double m; size_t i; /* Clear it first, in case sizeof (long double) < sizeof (memory_long_double). */ memset (&m, 0, sizeof (memory_long_double)); m.value = x; for (i = 0; i < NWORDS; i++) { ored_words[i] |= m.word[i]; anded_words[i] &= m.word[i]; } } int main () { size_t j; FILE *fp = fopen ("conftest.out", "w"); if (fp == NULL) return 1; for (j = 0; j < NWORDS; j++) anded_words[j] = ~ (unsigned int) 0; add_to_ored_words (0.25L); add_to_ored_words (0.5L); add_to_ored_words (1.0L); add_to_ored_words (2.0L); add_to_ored_words (4.0L); /* Remove bits that are common (e.g. if representation of the first mantissa bit is explicit). */ for (j = 0; j < NWORDS; j++) ored_words[j] &= ~anded_words[j]; /* Now find the nonzero word. */ for (j = 0; j < NWORDS; j++) if (ored_words[j] != 0) break; if (j < NWORDS) { size_t i; for (i = j + 1; i < NWORDS; i++) if (ored_words[i] != 0) { fprintf (fp, "unknown"); return (fclose (fp) != 0); } for (i = 0; ; i++) if ((ored_words[j] >> i) & 1) { fprintf (fp, "word %d bit %d", (int) j, (int) i); return (fclose (fp) != 0); } } fprintf (fp, "unknown"); return (fclose (fp) != 0); } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_cc_long_double_expbit0=`cat conftest.out` else gl_cv_cc_long_double_expbit0="unknown" 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.out fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_cc_long_double_expbit0" >&5 $as_echo "$gl_cv_cc_long_double_expbit0" >&6; } case "$gl_cv_cc_long_double_expbit0" in word*bit*) word=`echo "$gl_cv_cc_long_double_expbit0" | sed -e 's/word //' -e 's/ bit.*//'` bit=`echo "$gl_cv_cc_long_double_expbit0" | sed -e 's/word.*bit //'` cat >>confdefs.h <<_ACEOF #define LDBL_EXPBIT0_WORD $word _ACEOF cat >>confdefs.h <<_ACEOF #define LDBL_EXPBIT0_BIT $bit _ACEOF ;; esac fi 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_next_langinfo_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | sed -n "$gl_absolute_header_sed"`'"' 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 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_next_locale_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | sed -n "$gl_absolute_header_sed"`'"' 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. 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 : $as_echo "#define HAVE_PTHREAD_RWLOCK 1" >>confdefs.h 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." #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 : 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 () { return ! malloc (0); ; 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_next_math_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | sed -n "$gl_absolute_header_sed"`'"' 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 1; } 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 1; } 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 1; } 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 1; } 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; } 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 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 1; } 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 1; } 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 $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 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 if test $gl_cv_func_frexp_no_libm = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether frexp works" >&5 $as_echo_n "checking whether frexp works... " >&6; } if ${gl_cv_func_frexp_works+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : case "$host_os" in netbsd* | irix* | mingw*) gl_cv_func_frexp_works="guessing no";; *) gl_cv_func_frexp_works="guessing yes";; esac else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include #if HAVE_DECL_ALARM # include # include #endif /* HP cc on HP-UX 10.20 has a bug with the constant expression -0.0. ICC 10.0 has a bug when optimizing the expression -zero. The expression -DBL_MIN * DBL_MIN does not work when cross-compiling to PowerPC on Mac OS X 10.5. */ #if defined __hpux || defined __sgi || defined __ICC static double compute_minus_zero (void) { return -DBL_MIN * DBL_MIN; } # define minus_zero compute_minus_zero () #else double minus_zero = -0.0; #endif int main() { int result = 0; int i; volatile double x; double zero = 0.0; #if HAVE_DECL_ALARM /* NeXTstep 3.3 frexp() runs into an endless loop when called on an infinite number. Let the test fail in this case. */ signal (SIGALRM, SIG_DFL); alarm (5); #endif /* Test on denormalized numbers. */ for (i = 1, x = 1.0; i >= DBL_MIN_EXP; i--, x *= 0.5) ; if (x > 0.0) { int exp; double y = frexp (x, &exp); /* On machines with IEEE754 arithmetic: x = 1.11254e-308, exp = -1022. On NetBSD: y = 0.75. Correct: y = 0.5. */ if (y != 0.5) result |= 1; } /* Test on infinite numbers. */ x = 1.0 / zero; { int exp; double y = frexp (x, &exp); if (y != x) result |= 2; } /* Test on negative zero. */ x = minus_zero; { int exp; double y = frexp (x, &exp); if (memcmp (&y, &x, sizeof x)) result |= 4; } return result; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_func_frexp_works=yes else gl_cv_func_frexp_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_frexp_works" >&5 $as_echo "$gl_cv_func_frexp_works" >&6; } case "$gl_cv_func_frexp_works" in *yes) $as_echo "#define HAVE_FREXP_IN_LIBC 1" >>confdefs.h ;; esac fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ldexp can be used without linking with libm" >&5 $as_echo_n "checking whether ldexp can be used without linking with libm... " >&6; } if ${gl_cv_func_ldexp_no_libm+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include double x; int y; int main () { return ldexp (x, y) < 1; ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : gl_cv_func_ldexp_no_libm=yes else gl_cv_func_ldexp_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_ldexp_no_libm" >&5 $as_echo "$gl_cv_func_ldexp_no_libm" >&6; } if test $gl_cv_func_ldexp_no_libm = yes; then $as_echo "#define HAVE_LDEXP_IN_LIBC 1" >>confdefs.h fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether frexpl() can be used without linking with libm" >&5 $as_echo_n "checking whether frexpl() can be used without linking with libm... " >&6; } if ${gl_cv_func_frexpl_no_libm+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include long double x; int main () { int e; return frexpl (x, &e) > 0; ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : gl_cv_func_frexpl_no_libm=yes else gl_cv_func_frexpl_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_frexpl_no_libm" >&5 $as_echo "$gl_cv_func_frexpl_no_libm" >&6; } if test $gl_cv_func_frexpl_no_libm = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether frexpl works" >&5 $as_echo_n "checking whether frexpl works... " >&6; } if ${gl_cv_func_frexpl_works+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : case "$host_os" in aix | aix[3-6]* | beos* | darwin* | irix* | mingw* | pw*) gl_cv_func_frexpl_works="guessing no";; *) gl_cv_func_frexpl_works="guessing yes";; esac else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include /* Override the values of , like done in float.in.h. */ #if defined __i386__ && (defined __BEOS__ || defined __OpenBSD__) # undef LDBL_MIN_EXP # define LDBL_MIN_EXP (-16381) #endif #if defined __i386__ && defined __FreeBSD__ # undef LDBL_MIN_EXP # define LDBL_MIN_EXP (-16381) #endif #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 #endif #if defined __sgi && (LDBL_MANT_DIG >= 106) # if defined __GNUC__ # undef LDBL_MIN_EXP # define LDBL_MIN_EXP DBL_MIN_EXP # endif #endif extern #ifdef __cplusplus "C" #endif long double frexpl (long double, int *); int main() { int result = 0; volatile long double x; /* Test on finite numbers that fails on AIX 5.1. */ x = 16.0L; { int exp = -9999; frexpl (x, &exp); if (exp != 5) result |= 1; } /* Test on finite numbers that fails on Mac OS X 10.4, because its frexpl function returns an invalid (incorrectly normalized) value: it returns y = { 0x3fe028f5, 0xc28f5c28, 0x3c9eb851, 0xeb851eb8 } but the correct result is 0.505L = { 0x3fe028f5, 0xc28f5c29, 0xbc547ae1, 0x47ae1480 } */ x = 1.01L; { int exp = -9999; long double y = frexpl (x, &exp); if (!(exp == 1 && y == 0.505L)) result |= 2; } /* Test on large finite numbers. This fails on BeOS at i = 16322, while LDBL_MAX_EXP = 16384. In the loop end test, we test x against Infinity, rather than comparing i with LDBL_MAX_EXP, because BeOS has a wrong LDBL_MAX_EXP. */ { int i; for (i = 1, x = 1.0L; x != x + x; i++, x *= 2.0L) { int exp = -9999; frexpl (x, &exp); if (exp != i) { result |= 4; break; } } } /* Test on denormalized numbers. */ { int i; for (i = 1, x = 1.0L; i >= LDBL_MIN_EXP; i--, x *= 0.5L) ; if (x > 0.0L) { int exp; long double y = frexpl (x, &exp); /* On machines with IEEE854 arithmetic: x = 1.68105e-4932, exp = -16382, y = 0.5. On Mac OS X 10.5: exp = -16384, y = 0.5. */ if (exp != LDBL_MIN_EXP - 1) result |= 8; } } /* Test on infinite numbers. */ x = 1.0L / 0.0L; { int exp; long double y = frexpl (x, &exp); if (y != x) result |= 16; } return result; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_func_frexpl_works=yes else gl_cv_func_frexpl_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_frexpl_works" >&5 $as_echo "$gl_cv_func_frexpl_works" >&6; } case "$gl_cv_func_frexpl_works" in *yes) gl_func_frexpl_no_libm=yes ;; *) gl_func_frexpl_no_libm=no; REPLACE_FREXPL=1 ;; esac else gl_func_frexpl_no_libm=no REPLACE_FREXPL=1 fi if test $gl_func_frexpl_no_libm = yes; then $as_echo "#define HAVE_FREXPL_IN_LIBC 1" >>confdefs.h ac_fn_c_check_decl "$LINENO" "frexpl" "ac_cv_have_decl_frexpl" "#include " if test "x$ac_cv_have_decl_frexpl" = xyes; then : else HAVE_DECL_FREXPL=0 fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ldexpl() can be used without linking with libm" >&5 $as_echo_n "checking whether ldexpl() can be used without linking with libm... " >&6; } if ${gl_cv_func_ldexpl_no_libm+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include long double x; int main () { return ldexpl (x, -1) > 0; ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : gl_cv_func_ldexpl_no_libm=yes else gl_cv_func_ldexpl_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_ldexpl_no_libm" >&5 $as_echo "$gl_cv_func_ldexpl_no_libm" >&6; } if test $gl_cv_func_ldexpl_no_libm = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ldexpl works" >&5 $as_echo_n "checking whether ldexpl works... " >&6; } if ${gl_cv_func_ldexpl_works+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : case "$host_os" in aix | aix[3-6]*) gl_cv_func_ldexpl_works="guessing no";; *) gl_cv_func_ldexpl_works="guessing yes";; esac else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include extern #ifdef __cplusplus "C" #endif long double ldexpl (long double, int); int main() { int result = 0; { volatile long double x = 1.0; volatile long double y = ldexpl (x, -1); if (y != 0.5L) result |= 1; } { volatile long double x = 1.73205L; volatile long double y = ldexpl (x, 0); if (y != x) result |= 2; } return result; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_func_ldexpl_works=yes else gl_cv_func_ldexpl_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_ldexpl_works" >&5 $as_echo "$gl_cv_func_ldexpl_works" >&6; } case "$gl_cv_func_ldexpl_works" in *yes) $as_echo "#define HAVE_LDEXPL_IN_LIBC 1" >>confdefs.h ac_fn_c_check_decl "$LINENO" "ldexpl" "ac_cv_have_decl_ldexpl" "#include " if test "x$ac_cv_have_decl_ldexpl" = xyes; then : else HAVE_DECL_LDEXPL=0 fi ;; esac fi { $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 () { return ! realloc (0, 0); ; 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 HAVE_DECL_ALARM # include # include #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; #if HAVE_DECL_ALARM /* Some builds of glibc go into an infinite loop on this test. */ signal (SIGALRM, SIG_DFL); alarm (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; } { /* 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\xbax"; re_set_syntax (0); 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, 0) != 21) result |= 1; } 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' 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 if test $ac_cv_header_sched_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 '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_next_sched_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | sed -n "$gl_absolute_header_sed"`'"' else gl_cv_next_sched_h='<'sched.h'>' fi 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 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 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_next_signal_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | sed -n "$gl_absolute_header_sed"`'"' 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 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for signbit macro" >&5 $as_echo_n "checking for signbit macro... " >&6; } if ${gl_cv_func_signbit+:} 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_signbit="guessing yes" ;; # If we don't know, assume the worst. *) gl_cv_func_signbit="guessing no" ;; esac else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include /* If signbit is defined as a function, don't use it, since calling it for 'float' or 'long double' arguments would involve conversions. If signbit is not declared at all but exists as a library function, don't use it, since the prototype may not match. If signbit is not declared at all but exists as a compiler built-in, don't use it, since it's preferable to use __builtin_signbit* (no warnings, no conversions). */ #ifndef signbit # error "signbit should be a macro" #endif #include /* Global variables. Needed because GCC 4 constant-folds __builtin_signbitl (literal) but cannot constant-fold __builtin_signbitl (variable). */ float vf; double vd; long double vl; int main () { /* HP cc on HP-UX 10.20 has a bug with the constant expression -0.0. So we use -p0f and -p0d instead. */ float p0f = 0.0f; float m0f = -p0f; double p0d = 0.0; double m0d = -p0d; /* On HP-UX 10.20, negating 0.0L does not yield -0.0L. So we use another constant expression instead. But that expression does not work on other platforms, such as when cross-compiling to PowerPC on Mac OS X 10.5. */ long double p0l = 0.0L; #if defined __hpux || defined __sgi long double m0l = -LDBL_MIN * LDBL_MIN; #else long double m0l = -p0l; #endif int result = 0; if (signbit (vf)) /* link check */ vf++; { float plus_inf = 1.0f / p0f; float minus_inf = -1.0f / p0f; if (!(!signbit (255.0f) && signbit (-255.0f) && !signbit (p0f) && (memcmp (&m0f, &p0f, sizeof (float)) == 0 || signbit (m0f)) && !signbit (plus_inf) && signbit (minus_inf))) result |= 1; } if (signbit (vd)) /* link check */ vd++; { double plus_inf = 1.0 / p0d; double minus_inf = -1.0 / p0d; if (!(!signbit (255.0) && signbit (-255.0) && !signbit (p0d) && (memcmp (&m0d, &p0d, sizeof (double)) == 0 || signbit (m0d)) && !signbit (plus_inf) && signbit (minus_inf))) result |= 2; } if (signbit (vl)) /* link check */ vl++; { long double plus_inf = 1.0L / p0l; long double minus_inf = -1.0L / p0l; if (signbit (255.0L)) result |= 4; if (!signbit (-255.0L)) result |= 4; if (signbit (p0l)) result |= 8; if (!(memcmp (&m0l, &p0l, sizeof (long double)) == 0 || signbit (m0l))) result |= 16; if (signbit (plus_inf)) result |= 32; if (!signbit (minus_inf)) result |= 64; } return result; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_func_signbit=yes else gl_cv_func_signbit=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_signbit" >&5 $as_echo "$gl_cv_func_signbit" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking for signbit compiler built-ins" >&5 $as_echo_n "checking for signbit compiler built-ins... " >&6; } if ${gl_cv_func_signbit_gcc+:} 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_signbit_gcc="guessing yes" ;; # If we don't know, assume the worst. *) gl_cv_func_signbit_gcc="guessing no" ;; esac else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #if __GNUC__ >= 4 # define signbit(x) \ (sizeof (x) == sizeof (long double) ? __builtin_signbitl (x) : \ sizeof (x) == sizeof (double) ? __builtin_signbit (x) : \ __builtin_signbitf (x)) #else # error "signbit should be three compiler built-ins" #endif #include /* Global variables. Needed because GCC 4 constant-folds __builtin_signbitl (literal) but cannot constant-fold __builtin_signbitl (variable). */ float vf; double vd; long double vl; int main () { /* HP cc on HP-UX 10.20 has a bug with the constant expression -0.0. So we use -p0f and -p0d instead. */ float p0f = 0.0f; float m0f = -p0f; double p0d = 0.0; double m0d = -p0d; /* On HP-UX 10.20, negating 0.0L does not yield -0.0L. So we use another constant expression instead. But that expression does not work on other platforms, such as when cross-compiling to PowerPC on Mac OS X 10.5. */ long double p0l = 0.0L; #if defined __hpux || defined __sgi long double m0l = -LDBL_MIN * LDBL_MIN; #else long double m0l = -p0l; #endif int result = 0; if (signbit (vf)) /* link check */ vf++; { float plus_inf = 1.0f / p0f; float minus_inf = -1.0f / p0f; if (!(!signbit (255.0f) && signbit (-255.0f) && !signbit (p0f) && (memcmp (&m0f, &p0f, sizeof (float)) == 0 || signbit (m0f)) && !signbit (plus_inf) && signbit (minus_inf))) result |= 1; } if (signbit (vd)) /* link check */ vd++; { double plus_inf = 1.0 / p0d; double minus_inf = -1.0 / p0d; if (!(!signbit (255.0) && signbit (-255.0) && !signbit (p0d) && (memcmp (&m0d, &p0d, sizeof (double)) == 0 || signbit (m0d)) && !signbit (plus_inf) && signbit (minus_inf))) result |= 2; } if (signbit (vl)) /* link check */ vl++; { long double plus_inf = 1.0L / p0l; long double minus_inf = -1.0L / p0l; if (signbit (255.0L)) result |= 4; if (!signbit (-255.0L)) result |= 4; if (signbit (p0l)) result |= 8; if (!(memcmp (&m0l, &p0l, sizeof (long double)) == 0 || signbit (m0l))) result |= 16; if (signbit (plus_inf)) result |= 32; if (!signbit (minus_inf)) result |= 64; } return result; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_func_signbit_gcc=yes else gl_cv_func_signbit_gcc=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_signbit_gcc" >&5 $as_echo "$gl_cv_func_signbit_gcc" >&6; } case "$gl_cv_func_signbit_gcc" in *yes) REPLACE_SIGNBIT_USING_GCC=1 ;; *) case "$gl_cv_func_signbit" in *yes) ;; *) REPLACE_SIGNBIT=1 { $as_echo "$as_me:${as_lineno-$LINENO}: checking where to find the sign bit in a 'float'" >&5 $as_echo_n "checking where to find the sign bit in a 'float'... " >&6; } if ${gl_cv_cc_float_signbit+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : gl_cv_cc_float_signbit="unknown" else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #define NWORDS \ ((sizeof (float) + sizeof (unsigned int) - 1) / sizeof (unsigned int)) typedef union { float value; unsigned int word[NWORDS]; } memory_float; static memory_float plus = { 1.0f }; static memory_float minus = { -1.0f }; int main () { size_t j, k, i; unsigned int m; FILE *fp = fopen ("conftest.out", "w"); if (fp == NULL) return 1; /* Find the different bit. */ k = 0; m = 0; for (j = 0; j < NWORDS; j++) { unsigned int x = plus.word[j] ^ minus.word[j]; if ((x & (x - 1)) || (x && m)) { /* More than one bit difference. */ fprintf (fp, "unknown"); return 2; } if (x) { k = j; m = x; } } if (m == 0) { /* No difference. */ fprintf (fp, "unknown"); return 3; } /* Now m = plus.word[k] ^ ~minus.word[k]. */ if (plus.word[k] & ~minus.word[k]) { /* Oh? The sign bit is set in the positive and cleared in the negative numbers? */ fprintf (fp, "unknown"); return 4; } for (i = 0; ; i++) if ((m >> i) & 1) break; fprintf (fp, "word %d bit %d", (int) k, (int) i); if (fclose (fp) != 0) return 5; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_cc_float_signbit=`cat conftest.out` else gl_cv_cc_float_signbit="unknown" 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.out fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_cc_float_signbit" >&5 $as_echo "$gl_cv_cc_float_signbit" >&6; } case "$gl_cv_cc_float_signbit" in word*bit*) word=`echo "$gl_cv_cc_float_signbit" | sed -e 's/word //' -e 's/ bit.*//'` bit=`echo "$gl_cv_cc_float_signbit" | sed -e 's/word.*bit //'` cat >>confdefs.h <<_ACEOF #define FLT_SIGNBIT_WORD $word _ACEOF cat >>confdefs.h <<_ACEOF #define FLT_SIGNBIT_BIT $bit _ACEOF ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking where to find the sign bit in a 'double'" >&5 $as_echo_n "checking where to find the sign bit in a 'double'... " >&6; } if ${gl_cv_cc_double_signbit+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : gl_cv_cc_double_signbit="unknown" else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #define NWORDS \ ((sizeof (double) + sizeof (unsigned int) - 1) / sizeof (unsigned int)) typedef union { double value; unsigned int word[NWORDS]; } memory_float; static memory_float plus = { 1.0 }; static memory_float minus = { -1.0 }; int main () { size_t j, k, i; unsigned int m; FILE *fp = fopen ("conftest.out", "w"); if (fp == NULL) return 1; /* Find the different bit. */ k = 0; m = 0; for (j = 0; j < NWORDS; j++) { unsigned int x = plus.word[j] ^ minus.word[j]; if ((x & (x - 1)) || (x && m)) { /* More than one bit difference. */ fprintf (fp, "unknown"); return 2; } if (x) { k = j; m = x; } } if (m == 0) { /* No difference. */ fprintf (fp, "unknown"); return 3; } /* Now m = plus.word[k] ^ ~minus.word[k]. */ if (plus.word[k] & ~minus.word[k]) { /* Oh? The sign bit is set in the positive and cleared in the negative numbers? */ fprintf (fp, "unknown"); return 4; } for (i = 0; ; i++) if ((m >> i) & 1) break; fprintf (fp, "word %d bit %d", (int) k, (int) i); if (fclose (fp) != 0) return 5; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_cc_double_signbit=`cat conftest.out` else gl_cv_cc_double_signbit="unknown" 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.out fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_cc_double_signbit" >&5 $as_echo "$gl_cv_cc_double_signbit" >&6; } case "$gl_cv_cc_double_signbit" in word*bit*) word=`echo "$gl_cv_cc_double_signbit" | sed -e 's/word //' -e 's/ bit.*//'` bit=`echo "$gl_cv_cc_double_signbit" | sed -e 's/word.*bit //'` cat >>confdefs.h <<_ACEOF #define DBL_SIGNBIT_WORD $word _ACEOF cat >>confdefs.h <<_ACEOF #define DBL_SIGNBIT_BIT $bit _ACEOF ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking where to find the sign bit in a 'long double'" >&5 $as_echo_n "checking where to find the sign bit in a 'long double'... " >&6; } if ${gl_cv_cc_long_double_signbit+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : gl_cv_cc_long_double_signbit="unknown" else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #define NWORDS \ ((sizeof (long double) + sizeof (unsigned int) - 1) / sizeof (unsigned int)) typedef union { long double value; unsigned int word[NWORDS]; } memory_float; static memory_float plus = { 1.0L }; static memory_float minus = { -1.0L }; int main () { size_t j, k, i; unsigned int m; FILE *fp = fopen ("conftest.out", "w"); if (fp == NULL) return 1; /* Find the different bit. */ k = 0; m = 0; for (j = 0; j < NWORDS; j++) { unsigned int x = plus.word[j] ^ minus.word[j]; if ((x & (x - 1)) || (x && m)) { /* More than one bit difference. */ fprintf (fp, "unknown"); return 2; } if (x) { k = j; m = x; } } if (m == 0) { /* No difference. */ fprintf (fp, "unknown"); return 3; } /* Now m = plus.word[k] ^ ~minus.word[k]. */ if (plus.word[k] & ~minus.word[k]) { /* Oh? The sign bit is set in the positive and cleared in the negative numbers? */ fprintf (fp, "unknown"); return 4; } for (i = 0; ; i++) if ((m >> i) & 1) break; fprintf (fp, "word %d bit %d", (int) k, (int) i); if (fclose (fp) != 0) return 5; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_cc_long_double_signbit=`cat conftest.out` else gl_cv_cc_long_double_signbit="unknown" 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.out fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_cc_long_double_signbit" >&5 $as_echo "$gl_cv_cc_long_double_signbit" >&6; } case "$gl_cv_cc_long_double_signbit" in word*bit*) word=`echo "$gl_cv_cc_long_double_signbit" | sed -e 's/word //' -e 's/ bit.*//'` bit=`echo "$gl_cv_cc_long_double_signbit" | sed -e 's/word.*bit //'` cat >>confdefs.h <<_ACEOF #define LDBL_SIGNBIT_WORD $word _ACEOF cat >>confdefs.h <<_ACEOF #define LDBL_SIGNBIT_BIT $bit _ACEOF ;; esac if test "$gl_cv_cc_float_signbit" = unknown; then ac_fn_c_check_decl "$LINENO" "copysignf" "ac_cv_have_decl_copysignf" "#include " if test "x$ac_cv_have_decl_copysignf" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF #define HAVE_DECL_COPYSIGNF $ac_have_decl _ACEOF if test "$ac_cv_have_decl_copysignf" = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether copysignf can be used without linking with libm" >&5 $as_echo_n "checking whether copysignf can be used without linking with libm... " >&6; } if ${gl_cv_func_copysignf_no_libm+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include float x, y; int main () { return copysignf (x, y) < 0; ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : gl_cv_func_copysignf_no_libm=yes else gl_cv_func_copysignf_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_copysignf_no_libm" >&5 $as_echo "$gl_cv_func_copysignf_no_libm" >&6; } if test $gl_cv_func_copysignf_no_libm = yes; then $as_echo "#define HAVE_COPYSIGNF_IN_LIBC 1" >>confdefs.h fi fi fi if test "$gl_cv_cc_double_signbit" = unknown; then ac_fn_c_check_decl "$LINENO" "copysign" "ac_cv_have_decl_copysign" "#include " if test "x$ac_cv_have_decl_copysign" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF #define HAVE_DECL_COPYSIGN $ac_have_decl _ACEOF if test "$ac_cv_have_decl_copysign" = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether copysign can be used without linking with libm" >&5 $as_echo_n "checking whether copysign can be used without linking with libm... " >&6; } if ${gl_cv_func_copysign_no_libm+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include double x, y; int main () { return copysign (x, y) < 0; ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : gl_cv_func_copysign_no_libm=yes else gl_cv_func_copysign_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_copysign_no_libm" >&5 $as_echo "$gl_cv_func_copysign_no_libm" >&6; } if test $gl_cv_func_copysign_no_libm = yes; then $as_echo "#define HAVE_COPYSIGN_IN_LIBC 1" >>confdefs.h fi fi fi if test "$gl_cv_cc_long_double_signbit" = unknown; then ac_fn_c_check_decl "$LINENO" "copysignl" "ac_cv_have_decl_copysignl" "#include " if test "x$ac_cv_have_decl_copysignl" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF #define HAVE_DECL_COPYSIGNL $ac_have_decl _ACEOF if test "$ac_cv_have_decl_copysignl" = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether copysignl can be used without linking with libm" >&5 $as_echo_n "checking whether copysignl can be used without linking with libm... " >&6; } if ${gl_cv_func_copysignl_no_libm+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include long double x, y; int main () { return copysignl (x, y) < 0; ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : gl_cv_func_copysignl_no_libm=yes else gl_cv_func_copysignl_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_copysignl_no_libm" >&5 $as_echo "$gl_cv_func_copysignl_no_libm" >&6; } if test $gl_cv_func_copysignl_no_libm = yes; then $as_echo "#define HAVE_COPYSIGNL_IN_LIBC 1" >>confdefs.h fi fi fi ;; esac ;; esac if test $REPLACE_SIGNBIT = 1; then gl_LIBOBJS="$gl_LIBOBJS signbitf.$ac_objext" gl_LIBOBJS="$gl_LIBOBJS signbitd.$ac_objext" gl_LIBOBJS="$gl_LIBOBJS signbitl.$ac_objext" fi GNULIB_SIGNBIT=1 $as_echo "#define GNULIB_TEST_SIGNBIT 1" >>confdefs.h 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" for ac_header in stdint.h do : ac_fn_c_check_header_mongrel "$LINENO" "stdint.h" "ac_cv_header_stdint_h" "$ac_includes_default" if test "x$ac_cv_header_stdint_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_STDINT_H 1 _ACEOF fi done { $as_echo "$as_me:${as_lineno-$LINENO}: checking for SIZE_MAX" >&5 $as_echo_n "checking for SIZE_MAX... " >&6; } if ${gl_cv_size_max+:} false; then : $as_echo_n "(cached) " >&6 else gl_cv_size_max= cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #if HAVE_STDINT_H #include #endif #ifdef SIZE_MAX Found it #endif _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "Found it" >/dev/null 2>&1; then : gl_cv_size_max=yes fi rm -f conftest* if test -z "$gl_cv_size_max"; then if ac_fn_c_compute_int "$LINENO" "sizeof (size_t) * CHAR_BIT - 1" "size_t_bits_minus_1" "#include #include "; then : else size_t_bits_minus_1= fi if ac_fn_c_compute_int "$LINENO" "sizeof (size_t) <= sizeof (unsigned int)" "fits_in_uint" "#include "; then : else fits_in_uint= fi if test -n "$size_t_bits_minus_1" && test -n "$fits_in_uint"; then if test $fits_in_uint = 1; then cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include extern size_t foo; extern unsigned long foo; int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : fits_in_uint=0 fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi if test $fits_in_uint = 1; then gl_cv_size_max="(((1U << $size_t_bits_minus_1) - 1) * 2 + 1)" else gl_cv_size_max="(((1UL << $size_t_bits_minus_1) - 1) * 2 + 1)" fi else gl_cv_size_max='((size_t)~(size_t)0)' fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_size_max" >&5 $as_echo "$gl_cv_size_max" >&6; } if test "$gl_cv_size_max" != yes; then cat >>confdefs.h <<_ACEOF #define SIZE_MAX $gl_cv_size_max _ACEOF fi 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_next_spawn_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | sed -n "$gl_absolute_header_sed"`'"' 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 \ (__GNUC__ || __IBMC__ || __IBMCPP__ \ || 0x5110 <= __SUNPRO_C || 1300 <= _MSC_VER) int alignas (8) alignas_int = 1; char test_alignas[_Alignof (alignas_int) == 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= 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_next_stddef_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | sed -n "$gl_absolute_header_sed"`'"' 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 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_next_stdio_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | sed -n "$gl_absolute_header_sed"`'"' 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 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_next_stdlib_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | sed -n "$gl_absolute_header_sed"`'"' 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 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 if test $ac_cv_have_decl_strerror_r = no; then HAVE_DECL_STRERROR_R=0 fi 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 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 $gl_cond_libtool = false; then gl_ltlibdeps="$gl_ltlibdeps $LTLIBICONV" gl_libdeps="$gl_libdeps $LIBICONV" fi 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. */ #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_next_sys_ioctl_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | sed -n "$gl_absolute_header_sed"`'"' 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 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_next_sys_socket_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | sed -n "$gl_absolute_header_sed"`'"' 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 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_next_sys_stat_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | sed -n "$gl_absolute_header_sed"`'"' 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_next_sys_uio_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | sed -n "$gl_absolute_header_sed"`'"' 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_next_sys_wait_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | sed -n "$gl_absolute_header_sed"`'"' 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 "$HAVE_LIBUNISTRING" != yes \ || { test $LIBUNISTRING_VERSION_MAJOR -lt 0 \ || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \ && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \ || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \ && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0 } } } } }; then LIBUNISTRING_UNICONV_H='uniconv.h' else LIBUNISTRING_UNICONV_H= fi if { test "$HAVE_LIBUNISTRING" != yes \ || { test $LIBUNISTRING_VERSION_MAJOR -lt 0 \ || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \ && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \ || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \ && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0 } } } } }; then LIBUNISTRING_COMPILE_UNICONV_U8_CONV_FROM_ENC_TRUE= LIBUNISTRING_COMPILE_UNICONV_U8_CONV_FROM_ENC_FALSE='#' else LIBUNISTRING_COMPILE_UNICONV_U8_CONV_FROM_ENC_TRUE='#' LIBUNISTRING_COMPILE_UNICONV_U8_CONV_FROM_ENC_FALSE= fi 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_next_unistd_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | sed -n "$gl_absolute_header_sed"`'"' 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 if { test "$HAVE_LIBUNISTRING" != yes \ || { test $LIBUNISTRING_VERSION_MAJOR -lt 0 \ || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \ && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \ || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \ && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0 } } } } }; then LIBUNISTRING_UNISTDIO_H='unistdio.h' else LIBUNISTRING_UNISTDIO_H= fi if { test "$HAVE_LIBUNISTRING" != yes \ || { test $LIBUNISTRING_VERSION_MAJOR -lt 0 \ || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \ && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \ || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \ && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0 } } } } }; then LIBUNISTRING_COMPILE_UNISTDIO_U8_SPRINTF_TRUE= LIBUNISTRING_COMPILE_UNISTDIO_U8_SPRINTF_FALSE='#' else LIBUNISTRING_COMPILE_UNISTDIO_U8_SPRINTF_TRUE='#' LIBUNISTRING_COMPILE_UNISTDIO_U8_SPRINTF_FALSE= fi case "$gl_cv_func_printf_infinite" in *yes) ;; *) $as_echo "#define NEED_PRINTF_INFINITE_DOUBLE 1" >>confdefs.h ;; esac case "$gl_cv_func_printf_long_double" in *yes) case "$gl_cv_func_printf_infinite_long_double" in *yes) ;; *) $as_echo "#define NEED_PRINTF_INFINITE_LONG_DOUBLE 1" >>confdefs.h ;; esac ;; esac case "$gl_cv_func_printf_directive_a" in *yes) ;; *) $as_echo "#define NEED_PRINTF_DIRECTIVE_A 1" >>confdefs.h for ac_func in nl_langinfo do : ac_fn_c_check_func "$LINENO" "nl_langinfo" "ac_cv_func_nl_langinfo" if test "x$ac_cv_func_nl_langinfo" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_NL_LANGINFO 1 _ACEOF fi done ;; esac case "$gl_cv_func_printf_directive_f" in *yes) ;; *) $as_echo "#define NEED_PRINTF_DIRECTIVE_F 1" >>confdefs.h ;; esac case "$gl_cv_func_printf_directive_ls" in *yes) ;; *) $as_echo "#define NEED_PRINTF_DIRECTIVE_LS 1" >>confdefs.h ;; esac case "$gl_cv_func_printf_flag_grouping" in *yes) ;; *) $as_echo "#define NEED_PRINTF_FLAG_GROUPING 1" >>confdefs.h ;; esac case "$gl_cv_func_printf_flag_leftadjust" in *yes) ;; *) $as_echo "#define NEED_PRINTF_FLAG_LEFTADJUST 1" >>confdefs.h ;; esac case "$gl_cv_func_printf_flag_zero" in *yes) ;; *) $as_echo "#define NEED_PRINTF_FLAG_ZERO 1" >>confdefs.h ;; esac case "$gl_cv_func_printf_precision" in *yes) ;; *) $as_echo "#define NEED_PRINTF_UNBOUNDED_PRECISION 1" >>confdefs.h $as_echo "#define NEED_PRINTF_DOUBLE 1" >>confdefs.h $as_echo "#define NEED_PRINTF_LONG_DOUBLE 1" >>confdefs.h ;; esac case "$gl_cv_func_printf_enomem" in *yes) ;; *) $as_echo "#define NEED_PRINTF_ENOMEM 1" >>confdefs.h $as_echo "#define NEED_PRINTF_DOUBLE 1" >>confdefs.h $as_echo "#define NEED_PRINTF_LONG_DOUBLE 1" >>confdefs.h ;; esac if { test "$HAVE_LIBUNISTRING" != yes \ || { test $LIBUNISTRING_VERSION_MAJOR -lt 0 \ || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \ && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \ || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \ && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0 } } } } }; then LIBUNISTRING_COMPILE_UNISTDIO_U8_VASNPRINTF_TRUE= LIBUNISTRING_COMPILE_UNISTDIO_U8_VASNPRINTF_FALSE='#' else LIBUNISTRING_COMPILE_UNISTDIO_U8_VASNPRINTF_TRUE='#' LIBUNISTRING_COMPILE_UNISTDIO_U8_VASNPRINTF_FALSE= fi if { test "$HAVE_LIBUNISTRING" != yes \ || { test $LIBUNISTRING_VERSION_MAJOR -lt 0 \ || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \ && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \ || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \ && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0 } } } } }; then LIBUNISTRING_COMPILE_UNISTDIO_U8_VSPRINTF_TRUE= LIBUNISTRING_COMPILE_UNISTDIO_U8_VSPRINTF_FALSE='#' else LIBUNISTRING_COMPILE_UNISTDIO_U8_VSPRINTF_TRUE='#' LIBUNISTRING_COMPILE_UNISTDIO_U8_VSPRINTF_FALSE= fi ac_fn_c_check_type "$LINENO" "ptrdiff_t" "ac_cv_type_ptrdiff_t" "$ac_includes_default" if test "x$ac_cv_type_ptrdiff_t" = xyes; then : else $as_echo "#define ptrdiff_t long" >>confdefs.h fi if { test "$HAVE_LIBUNISTRING" != yes \ || { test $LIBUNISTRING_VERSION_MAJOR -lt 0 \ || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \ && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \ || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \ && test $LIBUNISTRING_VERSION_SUBMINOR -lt 2 } } } } }; then LIBUNISTRING_UNISTR_H='unistr.h' else LIBUNISTRING_UNISTR_H= fi cat >>confdefs.h <<_ACEOF #define GNULIB_UNISTR_U16_MBTOUCR 1 _ACEOF if { test "$HAVE_LIBUNISTRING" != yes \ || { test $LIBUNISTRING_VERSION_MAJOR -lt 0 \ || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \ && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \ || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \ && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0 } } } } }; then LIBUNISTRING_COMPILE_UNISTR_U16_MBTOUCR_TRUE= LIBUNISTRING_COMPILE_UNISTR_U16_MBTOUCR_FALSE='#' else LIBUNISTRING_COMPILE_UNISTR_U16_MBTOUCR_TRUE='#' LIBUNISTRING_COMPILE_UNISTR_U16_MBTOUCR_FALSE= fi if { test "$HAVE_LIBUNISTRING" != yes \ || { test $LIBUNISTRING_VERSION_MAJOR -lt 0 \ || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \ && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \ || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \ && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0 } } } } }; then LIBUNISTRING_COMPILE_UNISTR_U16_STRLEN_TRUE= LIBUNISTRING_COMPILE_UNISTR_U16_STRLEN_FALSE='#' else LIBUNISTRING_COMPILE_UNISTR_U16_STRLEN_TRUE='#' LIBUNISTRING_COMPILE_UNISTR_U16_STRLEN_FALSE= fi if { test "$HAVE_LIBUNISTRING" != yes \ || { test $LIBUNISTRING_VERSION_MAJOR -lt 0 \ || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \ && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \ || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \ && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0 } } } } }; then LIBUNISTRING_COMPILE_UNISTR_U16_STRMBLEN_TRUE= LIBUNISTRING_COMPILE_UNISTR_U16_STRMBLEN_FALSE='#' else LIBUNISTRING_COMPILE_UNISTR_U16_STRMBLEN_TRUE='#' LIBUNISTRING_COMPILE_UNISTR_U16_STRMBLEN_FALSE= fi if { test "$HAVE_LIBUNISTRING" != yes \ || { test $LIBUNISTRING_VERSION_MAJOR -lt 0 \ || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \ && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \ || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \ && test $LIBUNISTRING_VERSION_SUBMINOR -lt 3 } } } } }; then LIBUNISTRING_COMPILE_UNISTR_U16_TO_U8_TRUE= LIBUNISTRING_COMPILE_UNISTR_U16_TO_U8_FALSE='#' else LIBUNISTRING_COMPILE_UNISTR_U16_TO_U8_TRUE='#' LIBUNISTRING_COMPILE_UNISTR_U16_TO_U8_FALSE= fi if { test "$HAVE_LIBUNISTRING" != yes \ || { test $LIBUNISTRING_VERSION_MAJOR -lt 0 \ || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \ && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \ || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \ && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0 } } } } }; then LIBUNISTRING_COMPILE_UNISTR_U32_STRLEN_TRUE= LIBUNISTRING_COMPILE_UNISTR_U32_STRLEN_FALSE='#' else LIBUNISTRING_COMPILE_UNISTR_U32_STRLEN_TRUE='#' LIBUNISTRING_COMPILE_UNISTR_U32_STRLEN_FALSE= fi if { test "$HAVE_LIBUNISTRING" != yes \ || { test $LIBUNISTRING_VERSION_MAJOR -lt 0 \ || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \ && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \ || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \ && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0 } } } } }; then LIBUNISTRING_COMPILE_UNISTR_U32_STRMBLEN_TRUE= LIBUNISTRING_COMPILE_UNISTR_U32_STRMBLEN_FALSE='#' else LIBUNISTRING_COMPILE_UNISTR_U32_STRMBLEN_TRUE='#' LIBUNISTRING_COMPILE_UNISTR_U32_STRMBLEN_FALSE= fi if { test "$HAVE_LIBUNISTRING" != yes \ || { test $LIBUNISTRING_VERSION_MAJOR -lt 0 \ || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \ && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \ || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \ && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0 } } } } }; then LIBUNISTRING_COMPILE_UNISTR_U32_TO_U8_TRUE= LIBUNISTRING_COMPILE_UNISTR_U32_TO_U8_FALSE='#' else LIBUNISTRING_COMPILE_UNISTR_U32_TO_U8_TRUE='#' LIBUNISTRING_COMPILE_UNISTR_U32_TO_U8_FALSE= fi if { test "$HAVE_LIBUNISTRING" != yes \ || { test $LIBUNISTRING_VERSION_MAJOR -lt 0 \ || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \ && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \ || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \ && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0 } } } } }; then LIBUNISTRING_COMPILE_UNISTR_U8_CHECK_TRUE= LIBUNISTRING_COMPILE_UNISTR_U8_CHECK_FALSE='#' else LIBUNISTRING_COMPILE_UNISTR_U8_CHECK_TRUE='#' LIBUNISTRING_COMPILE_UNISTR_U8_CHECK_FALSE= fi if { test "$HAVE_LIBUNISTRING" != yes \ || { test $LIBUNISTRING_VERSION_MAJOR -lt 0 \ || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \ && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \ || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \ && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0 } } } } }; then LIBUNISTRING_COMPILE_UNISTR_U8_CPY_TRUE= LIBUNISTRING_COMPILE_UNISTR_U8_CPY_FALSE='#' else LIBUNISTRING_COMPILE_UNISTR_U8_CPY_TRUE='#' LIBUNISTRING_COMPILE_UNISTR_U8_CPY_FALSE= fi if { test "$HAVE_LIBUNISTRING" != yes \ || { test $LIBUNISTRING_VERSION_MAJOR -lt 0 \ || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \ && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \ || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \ && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0 } } } } }; then LIBUNISTRING_COMPILE_UNISTR_U8_MBLEN_TRUE= LIBUNISTRING_COMPILE_UNISTR_U8_MBLEN_FALSE='#' else LIBUNISTRING_COMPILE_UNISTR_U8_MBLEN_TRUE='#' LIBUNISTRING_COMPILE_UNISTR_U8_MBLEN_FALSE= fi if { test "$HAVE_LIBUNISTRING" != yes \ || { test $LIBUNISTRING_VERSION_MAJOR -lt 0 \ || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \ && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \ || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \ && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4 } } } } }; then LIBUNISTRING_COMPILE_UNISTR_U8_MBSNLEN_TRUE= LIBUNISTRING_COMPILE_UNISTR_U8_MBSNLEN_FALSE='#' else LIBUNISTRING_COMPILE_UNISTR_U8_MBSNLEN_TRUE='#' LIBUNISTRING_COMPILE_UNISTR_U8_MBSNLEN_FALSE= fi cat >>confdefs.h <<_ACEOF #define GNULIB_UNISTR_U8_MBTOUC 1 _ACEOF if { test "$HAVE_LIBUNISTRING" != yes \ || { test $LIBUNISTRING_VERSION_MAJOR -lt 0 \ || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \ && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \ || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \ && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4 } } } } }; then LIBUNISTRING_COMPILE_UNISTR_U8_MBTOUC_TRUE= LIBUNISTRING_COMPILE_UNISTR_U8_MBTOUC_FALSE='#' else LIBUNISTRING_COMPILE_UNISTR_U8_MBTOUC_TRUE='#' LIBUNISTRING_COMPILE_UNISTR_U8_MBTOUC_FALSE= fi cat >>confdefs.h <<_ACEOF #define GNULIB_UNISTR_U8_MBTOUC_UNSAFE 1 _ACEOF if { test "$HAVE_LIBUNISTRING" != yes \ || { test $LIBUNISTRING_VERSION_MAJOR -lt 0 \ || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \ && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \ || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \ && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4 } } } } }; then LIBUNISTRING_COMPILE_UNISTR_U8_MBTOUC_UNSAFE_TRUE= LIBUNISTRING_COMPILE_UNISTR_U8_MBTOUC_UNSAFE_FALSE='#' else LIBUNISTRING_COMPILE_UNISTR_U8_MBTOUC_UNSAFE_TRUE='#' LIBUNISTRING_COMPILE_UNISTR_U8_MBTOUC_UNSAFE_FALSE= fi cat >>confdefs.h <<_ACEOF #define GNULIB_UNISTR_U8_MBTOUCR 1 _ACEOF if { test "$HAVE_LIBUNISTRING" != yes \ || { test $LIBUNISTRING_VERSION_MAJOR -lt 0 \ || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \ && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \ || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \ && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0 } } } } }; then LIBUNISTRING_COMPILE_UNISTR_U8_MBTOUCR_TRUE= LIBUNISTRING_COMPILE_UNISTR_U8_MBTOUCR_FALSE='#' else LIBUNISTRING_COMPILE_UNISTR_U8_MBTOUCR_TRUE='#' LIBUNISTRING_COMPILE_UNISTR_U8_MBTOUCR_FALSE= fi if { test "$HAVE_LIBUNISTRING" != yes \ || { test $LIBUNISTRING_VERSION_MAJOR -lt 0 \ || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \ && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \ || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \ && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0 } } } } }; then LIBUNISTRING_COMPILE_UNISTR_U8_PREV_TRUE= LIBUNISTRING_COMPILE_UNISTR_U8_PREV_FALSE='#' else LIBUNISTRING_COMPILE_UNISTR_U8_PREV_TRUE='#' LIBUNISTRING_COMPILE_UNISTR_U8_PREV_FALSE= fi if { test "$HAVE_LIBUNISTRING" != yes \ || { test $LIBUNISTRING_VERSION_MAJOR -lt 0 \ || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \ && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \ || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \ && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0 } } } } }; then LIBUNISTRING_COMPILE_UNISTR_U8_SET_TRUE= LIBUNISTRING_COMPILE_UNISTR_U8_SET_FALSE='#' else LIBUNISTRING_COMPILE_UNISTR_U8_SET_TRUE='#' LIBUNISTRING_COMPILE_UNISTR_U8_SET_FALSE= fi if { test "$HAVE_LIBUNISTRING" != yes \ || { test $LIBUNISTRING_VERSION_MAJOR -lt 0 \ || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \ && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \ || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \ && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0 } } } } }; then LIBUNISTRING_COMPILE_UNISTR_U8_STRLEN_TRUE= LIBUNISTRING_COMPILE_UNISTR_U8_STRLEN_FALSE='#' else LIBUNISTRING_COMPILE_UNISTR_U8_STRLEN_TRUE='#' LIBUNISTRING_COMPILE_UNISTR_U8_STRLEN_FALSE= fi if { test "$HAVE_LIBUNISTRING" != yes \ || { test $LIBUNISTRING_VERSION_MAJOR -lt 0 \ || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \ && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \ || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \ && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0 } } } } }; then LIBUNISTRING_COMPILE_UNISTR_U8_STRMBLEN_TRUE= LIBUNISTRING_COMPILE_UNISTR_U8_STRMBLEN_FALSE='#' else LIBUNISTRING_COMPILE_UNISTR_U8_STRMBLEN_TRUE='#' LIBUNISTRING_COMPILE_UNISTR_U8_STRMBLEN_FALSE= fi cat >>confdefs.h <<_ACEOF #define GNULIB_UNISTR_U8_UCTOMB 1 _ACEOF if { test "$HAVE_LIBUNISTRING" != yes \ || { test $LIBUNISTRING_VERSION_MAJOR -lt 0 \ || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \ && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \ || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \ && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0 } } } } }; then LIBUNISTRING_COMPILE_UNISTR_U8_UCTOMB_TRUE= LIBUNISTRING_COMPILE_UNISTR_U8_UCTOMB_FALSE='#' else LIBUNISTRING_COMPILE_UNISTR_U8_UCTOMB_TRUE='#' LIBUNISTRING_COMPILE_UNISTR_U8_UCTOMB_FALSE= fi if { test "$HAVE_LIBUNISTRING" != yes \ || { test $LIBUNISTRING_VERSION_MAJOR -lt 0 \ || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \ && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \ || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \ && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0 } } } } }; then LIBUNISTRING_UNITYPES_H='unitypes.h' else LIBUNISTRING_UNITYPES_H= fi { $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_next_wchar_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | sed -n "$gl_absolute_header_sed"`'"' 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 1; } 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 1; } 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_next_wctype_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | sed -n "$gl_absolute_header_sed"`'"' 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 : for ac_header in stdint.h do : ac_fn_c_check_header_mongrel "$LINENO" "stdint.h" "ac_cv_header_stdint_h" "$ac_includes_default" if test "x$ac_cv_header_stdint_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_STDINT_H 1 _ACEOF fi done # 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" # 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; } # Just in case sleep 1 echo timestamp > conftest.file # 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 ( 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 rm -f conftest.file 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 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; } { $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 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 "$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 { $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.18 # 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 # 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 # 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 # 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 # 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 # 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" { $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 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 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 const char input[] = "\342\202\254"; /* EURO SIGN */ char buf[10]; 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, (char **) &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 const char input[] = "\263"; char buf[10]; 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, (char **) &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 const char input[] = "\304"; static char buf[2] = { (char)0xDE, (char)0xAD }; const char *inptr = input; size_t inbytesleft = 1; char *outptr = buf; size_t outbytesleft = 1; size_t res = iconv (cd_88591_to_utf8, (char **) &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 const char input[] = "\304rger mit b\366sen B\374bchen ohne Augenma\337"; char buf[50]; 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, (char **) &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; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : am_cv_func_iconv_works=yes else am_cv_func_iconv_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 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" 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_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 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 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_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_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_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_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_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 if test -z "${LIBUNISTRING_COMPILE_UNICONV_U8_CONV_FROM_ENC_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICONV_U8_CONV_FROM_ENC_FALSE}"; then as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICONV_U8_CONV_FROM_ENC\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${LIBUNISTRING_COMPILE_UNISTDIO_U8_SPRINTF_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNISTDIO_U8_SPRINTF_FALSE}"; then as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNISTDIO_U8_SPRINTF\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${LIBUNISTRING_COMPILE_UNISTDIO_U8_VASNPRINTF_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNISTDIO_U8_VASNPRINTF_FALSE}"; then as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNISTDIO_U8_VASNPRINTF\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${LIBUNISTRING_COMPILE_UNISTDIO_U8_VSPRINTF_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNISTDIO_U8_VSPRINTF_FALSE}"; then as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNISTDIO_U8_VSPRINTF\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${LIBUNISTRING_COMPILE_UNISTR_U16_MBTOUCR_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNISTR_U16_MBTOUCR_FALSE}"; then as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNISTR_U16_MBTOUCR\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${LIBUNISTRING_COMPILE_UNISTR_U16_STRLEN_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNISTR_U16_STRLEN_FALSE}"; then as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNISTR_U16_STRLEN\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${LIBUNISTRING_COMPILE_UNISTR_U16_STRMBLEN_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNISTR_U16_STRMBLEN_FALSE}"; then as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNISTR_U16_STRMBLEN\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${LIBUNISTRING_COMPILE_UNISTR_U16_TO_U8_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNISTR_U16_TO_U8_FALSE}"; then as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNISTR_U16_TO_U8\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${LIBUNISTRING_COMPILE_UNISTR_U32_STRLEN_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNISTR_U32_STRLEN_FALSE}"; then as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNISTR_U32_STRLEN\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${LIBUNISTRING_COMPILE_UNISTR_U32_STRMBLEN_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNISTR_U32_STRMBLEN_FALSE}"; then as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNISTR_U32_STRMBLEN\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${LIBUNISTRING_COMPILE_UNISTR_U32_TO_U8_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNISTR_U32_TO_U8_FALSE}"; then as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNISTR_U32_TO_U8\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${LIBUNISTRING_COMPILE_UNISTR_U8_CHECK_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNISTR_U8_CHECK_FALSE}"; then as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNISTR_U8_CHECK\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${LIBUNISTRING_COMPILE_UNISTR_U8_CPY_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNISTR_U8_CPY_FALSE}"; then as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNISTR_U8_CPY\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${LIBUNISTRING_COMPILE_UNISTR_U8_MBLEN_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNISTR_U8_MBLEN_FALSE}"; then as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNISTR_U8_MBLEN\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${LIBUNISTRING_COMPILE_UNISTR_U8_MBSNLEN_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNISTR_U8_MBSNLEN_FALSE}"; then as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNISTR_U8_MBSNLEN\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${LIBUNISTRING_COMPILE_UNISTR_U8_MBTOUC_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNISTR_U8_MBTOUC_FALSE}"; then as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNISTR_U8_MBTOUC\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${LIBUNISTRING_COMPILE_UNISTR_U8_MBTOUC_UNSAFE_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNISTR_U8_MBTOUC_UNSAFE_FALSE}"; then as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNISTR_U8_MBTOUC_UNSAFE\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${LIBUNISTRING_COMPILE_UNISTR_U8_MBTOUCR_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNISTR_U8_MBTOUCR_FALSE}"; then as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNISTR_U8_MBTOUCR\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${LIBUNISTRING_COMPILE_UNISTR_U8_PREV_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNISTR_U8_PREV_FALSE}"; then as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNISTR_U8_PREV\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${LIBUNISTRING_COMPILE_UNISTR_U8_SET_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNISTR_U8_SET_FALSE}"; then as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNISTR_U8_SET\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${LIBUNISTRING_COMPILE_UNISTR_U8_STRLEN_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNISTR_U8_STRLEN_FALSE}"; then as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNISTR_U8_STRLEN\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${LIBUNISTRING_COMPILE_UNISTR_U8_STRMBLEN_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNISTR_U8_STRMBLEN_FALSE}"; then as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNISTR_U8_STRMBLEN\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${LIBUNISTRING_COMPILE_UNISTR_U8_UCTOMB_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNISTR_U8_UCTOMB_FALSE}"; then as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNISTR_U8_UCTOMB\" 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 3.6.3, 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_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 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 3.6.3 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%}" _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 "config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;; "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;; "po-directories") CONFIG_COMMANDS="$CONFIG_COMMANDS po-directories" ;; "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_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 :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 ;; :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"" || { # Autoconf 2.62 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"` # When using ansi2knr, U may be empty or an underscore; expand it U=`sed -n 's/^U = //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' -e 's/\$U/'"$U"'/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" gt_tab=`printf '\t'` cat "$ac_given_srcdir/$ac_dir/POTFILES.in" | sed -e "/^#/d" -e "/^[ ${gt_tab}]*\$/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 assignment 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 assignment 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-3.6.3/ChangeLog0000644000175000017500000000000012125364443011116 00000000000000gcal-3.6.3/THANKS0000644000175000017500000000650412125364443010276 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 Ru"ckemann Eric Backus Erick Branderhorst Francesco Potorti` Herbert Walter Jo"rg No"then Johan Linde John T. Foley Karl Berry Kaveh R. Ghazi Kjetil Torgrim Homme Marcus Daniels Max de Mendizabal Michel Robitaille Michael Kassidiaris Nicolas Loechner Oleg S. Tihonov Pavel Marek Primoz 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 Francois Pinard ! They gave me a lot of valueable hints and suggestions to 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.