--- gnats-4.1.0.orig/config.sub +++ gnats-4.1.0/config.sub @@ -1,9 +1,10 @@ #! /bin/sh # Configuration validation subroutine script. # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, -# 2000, 2001, 2002 Free Software Foundation, Inc. +# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 +# Free Software Foundation, Inc. -timestamp='2002-09-05' +timestamp='2008-01-16' # This file is (in principle) common to ALL GNU software. # The presence of a machine in this file suggests that SOME GNU software @@ -21,14 +22,15 @@ # # 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., 59 Temple Place - Suite 330, -# Boston, MA 02111-1307, USA. - +# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA +# 02110-1301, USA. +# # 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 ChangeLog entry. # @@ -70,8 +72,8 @@ version="\ GNU config.sub ($timestamp) -Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001 -Free Software Foundation, Inc. +Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, +2002, 2003, 2004, 2005, 2006, 2007, 2008 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." @@ -83,11 +85,11 @@ while test $# -gt 0 ; do case $1 in --time-stamp | --time* | -t ) - echo "$timestamp" ; exit 0 ;; + echo "$timestamp" ; exit ;; --version | -v ) - echo "$version" ; exit 0 ;; + echo "$version" ; exit ;; --help | --h* | -h ) - echo "$usage"; exit 0 ;; + echo "$usage"; exit ;; -- ) # Stop option processing shift; break ;; - ) # Use stdin as input. @@ -99,7 +101,7 @@ *local*) # First pass through any local machine types. echo $1 - exit 0;; + exit ;; * ) break ;; @@ -118,7 +120,9 @@ # 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* | freebsd*-gnu* | storm-chaos* | os2-emx* | windows32-* | rtmk-nova*) + nto-qnx* | linux-gnu* | linux-dietlibc | linux-newlib* | linux-uclibc* | \ + uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | \ + storm-chaos* | os2-emx* | rtmk-nova*) os=-$maybe_os basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` ;; @@ -144,7 +148,7 @@ -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) + -apple | -axis | -knuth | -cray) os= basic_machine=$1 ;; @@ -169,6 +173,10 @@ -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/'` @@ -185,6 +193,10 @@ # 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/'` @@ -228,14 +240,17 @@ | a29k \ | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ - | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr \ - | clipper \ + | am33_2.0 \ + | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \ + | bfin \ + | c4x | clipper \ | d10v | d30v | dlx | dsp16xx \ - | fr30 | frv \ + | fido | fr30 | frv \ | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ | i370 | i860 | i960 | ia64 \ - | ip2k \ - | m32r | m68000 | m68k | m88k | mcore \ + | ip2k | iq2000 \ + | m32c | m32r | m32rle | m68000 | m68k | m88k \ + | maxq | mb | microblaze | mcore | mep \ | mips | mipsbe | mipseb | mipsel | mipsle \ | mips16 \ | mips64 | mips64el \ @@ -244,25 +259,33 @@ | mips64vr4100 | mips64vr4100el \ | mips64vr4300 | mips64vr4300el \ | mips64vr5000 | mips64vr5000el \ + | mips64vr5900 | mips64vr5900el \ | mipsisa32 | mipsisa32el \ + | mipsisa32r2 | mipsisa32r2el \ | mipsisa64 | mipsisa64el \ + | mipsisa64r2 | mipsisa64r2el \ | mipsisa64sb1 | mipsisa64sb1el \ | mipsisa64sr71k | mipsisa64sr71kel \ | mipstx39 | mipstx39el \ | mn10200 | mn10300 \ + | mt \ + | msp430 \ + | nios | nios2 \ | ns16k | ns32k \ - | openrisc | or32 \ + | or32 \ | pdp10 | pdp11 | pj | pjl \ | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \ | pyramid \ - | sh | sh[1234] | sh3e | sh[34]eb | shbe | shle | sh[1234]le | sh3ele \ + | score \ + | sh | sh[1234] | sh[24]a | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ | sh64 | sh64le \ - | sparc | sparc64 | sparc86x | sparclet | sparclite | sparcv9 | sparcv9b \ - | strongarm \ - | tahoe | thumb | tic80 | tron \ + | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ + | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ + | spu | strongarm \ + | tahoe | thumb | tic4x | tic80 | tron \ | v850 | v850e \ | we32k \ - | x86 | xscale | xstormy16 | xtensa \ + | x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \ | z8k) basic_machine=$basic_machine-unknown ;; @@ -273,6 +296,9 @@ ;; m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) ;; + ms1) + basic_machine=mt-unknown + ;; # We use `pc' rather than `unknown' # because (1) that's what they normally are, and @@ -292,20 +318,20 @@ | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \ | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ - | avr-* \ - | bs2000-* \ - | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* \ - | clipper-* | cydra-* \ + | avr-* | avr32-* \ + | bfin-* | bs2000-* \ + | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \ + | clipper-* | craynv-* | cydra-* \ | d10v-* | d30v-* | dlx-* \ | elxsi-* \ - | f30[01]-* | f700-* | fr30-* | frv-* | fx80-* \ + | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ | h8300-* | h8500-* \ | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ | i*86-* | i860-* | i960-* | ia64-* \ - | ip2k-* \ - | m32r-* \ + | ip2k-* | iq2000-* \ + | m32c-* | m32r-* | m32rle-* \ | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ - | m88110-* | m88k-* | mcore-* \ + | m88110-* | m88k-* | maxq-* | mcore-* \ | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ | mips16-* \ | mips64-* | mips64el-* \ @@ -314,29 +340,43 @@ | mips64vr4100-* | mips64vr4100el-* \ | mips64vr4300-* | mips64vr4300el-* \ | mips64vr5000-* | mips64vr5000el-* \ + | mips64vr5900-* | mips64vr5900el-* \ | mipsisa32-* | mipsisa32el-* \ + | mipsisa32r2-* | mipsisa32r2el-* \ | mipsisa64-* | mipsisa64el-* \ + | mipsisa64r2-* | mipsisa64r2el-* \ | mipsisa64sb1-* | mipsisa64sb1el-* \ | mipsisa64sr71k-* | mipsisa64sr71kel-* \ - | mipstx39 | mipstx39el \ + | mipstx39-* | mipstx39el-* \ + | mmix-* \ + | mt-* \ + | msp430-* \ + | nios-* | nios2-* \ | none-* | np1-* | ns16k-* | ns32k-* \ | orion-* \ | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \ | pyramid-* \ | romp-* | rs6000-* \ - | sh-* | sh[1234]-* | sh3e-* | sh[34]eb-* | shbe-* \ + | sh-* | sh[1234]-* | sh[24]a-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ - | sparc-* | sparc64-* | sparc86x-* | sparclet-* | sparclite-* \ - | sparcv9-* | sparcv9b-* | strongarm-* | sv1-* | sx?-* \ - | tahoe-* | thumb-* | tic30-* | tic4x-* | tic54x-* | tic80-* | tron-* \ + | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ + | sparclite-* \ + | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \ + | tahoe-* | thumb-* \ + | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ + | tron-* \ | v850-* | v850e-* | vax-* \ | we32k-* \ - | x86-* | x86_64-* | xps100-* | xscale-* | xstormy16-* \ - | xtensa-* \ + | x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \ + | xstormy16-* | xtensa*-* \ | ymp-* \ | z8k-*) ;; + # 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) @@ -353,6 +393,9 @@ basic_machine=a29k-amd os=-udi ;; + abacus) + basic_machine=abacus-unknown + ;; adobe68k) basic_machine=m68010-adobe os=-scout @@ -367,6 +410,12 @@ 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 @@ -398,6 +447,14 @@ basic_machine=ns32k-sequent os=-dynix ;; + blackfin) + basic_machine=bfin-unknown + os=-linux + ;; + blackfin-*) + basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'` + os=-linux + ;; c90) basic_machine=c90-cray os=-unicos @@ -426,12 +483,27 @@ basic_machine=j90-cray os=-unicos ;; + craynv) + basic_machine=craynv-cray + os=-unicosmp + ;; + 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 ;; @@ -454,6 +526,10 @@ basic_machine=m88k-motorola os=-sysv3 ;; + djgpp) + basic_machine=i586-pc + os=-msdosdjgpp + ;; dpx20 | dpx20-*) basic_machine=rs6000-bull os=-bosx @@ -604,6 +680,14 @@ 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 ;; @@ -619,6 +703,10 @@ basic_machine=i386-pc os=-mingw32 ;; + mingw32ce) + basic_machine=arm-unknown + os=-mingw32ce + ;; miniframe) basic_machine=m68000-convergent ;; @@ -632,10 +720,6 @@ mips3*) basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown ;; - mmix*) - basic_machine=mmix-knuth - os=-mmixware - ;; monitor) basic_machine=m68k-rom68k os=-coff @@ -648,6 +732,9 @@ basic_machine=i386-pc os=-msdos ;; + ms1-*) + basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'` + ;; mvs) basic_machine=i370-ibm os=-mvs @@ -723,9 +810,12 @@ basic_machine=hppa1.1-oki os=-proelf ;; - or32 | or32-*) + openrisc | openrisc-*) basic_machine=or32-unknown - os=-coff + ;; + os400) + basic_machine=powerpc-ibm + os=-os400 ;; OSE68000 | ose68000) basic_machine=m68000-ericsson @@ -743,6 +833,14 @@ 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 ;; @@ -752,24 +850,36 @@ 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) + 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-*) + 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 ;; @@ -802,6 +912,10 @@ basic_machine=i586-unknown os=-pw32 ;; + rdos) + basic_machine=i386-pc + os=-rdos + ;; rom68k) basic_machine=m68k-rom68k os=-coff @@ -828,6 +942,14 @@ sb1el) basic_machine=mipsisa64sb1el-unknown ;; + sde) + basic_machine=mipsisa32-sde + os=-elf + ;; + sei) + basic_machine=mips-sei + os=-seiux + ;; sequent) basic_machine=i386-sequent ;; @@ -835,6 +957,12 @@ 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 @@ -901,10 +1029,6 @@ basic_machine=i386-sequent os=-dynix ;; - t3d) - basic_machine=alpha-cray - os=-unicos - ;; t3e) basic_machine=alphaev5-cray os=-unicos @@ -913,14 +1037,22 @@ basic_machine=t90-cray os=-unicos ;; - tic4x | c4x*) - basic_machine=tic4x-unknown - os=-coff - ;; tic54x | c54x*) basic_machine=tic54x-unknown os=-coff ;; + tic55x | c55x*) + basic_machine=tic55x-unknown + os=-coff + ;; + tic6x | c6x*) + basic_machine=tic6x-unknown + os=-coff + ;; + tile*) + basic_machine=tile-unknown + os=-linux-gnu + ;; tx39) basic_machine=mipstx39-unknown ;; @@ -934,6 +1066,10 @@ tower | tower-32) basic_machine=m68k-ncr ;; + tpf) + basic_machine=s390x-ibm + os=-tpf + ;; udi29k) basic_machine=a29k-amd os=-udi @@ -977,9 +1113,9 @@ basic_machine=hppa1.1-winbond os=-proelf ;; - windows32) - basic_machine=i386-pc - os=-windows32-msvcrt + xbox) + basic_machine=i686-pc + os=-mingw32 ;; xps | xps100) basic_machine=xps100-honeywell @@ -1011,6 +1147,9 @@ romp) basic_machine=romp-ibm ;; + mmix) + basic_machine=mmix-knuth + ;; rs6000) basic_machine=rs6000-ibm ;; @@ -1027,13 +1166,10 @@ we32k) basic_machine=we32k-att ;; - sh3 | sh4 | sh3eb | sh4eb | sh[1234]le | sh3ele) + sh[1234] | sh[24]a | sh[34]eb | sh[1234]le | sh[23]ele) basic_machine=sh-unknown ;; - sh64) - basic_machine=sh64-unknown - ;; - sparc | sparcv9 | sparcv9b) + sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v) basic_machine=sparc-sun ;; cydra) @@ -1106,18 +1242,23 @@ | -aos* \ | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ - | -hiux* | -386bsd* | -netbsd* | -openbsd* | -freebsd* | -riscix* \ - | -lynxos* | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ + | -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* \ | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ - | -mingw32* | -linux-gnu* | -uxpv* | -beos* | -mpeix* | -udk* \ - | -interix* | -uwin* | -rhapsody* | -darwin* | -opened* \ + | -mingw32* | -linux-gnu* | -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*) + | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ + | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ + | -skyos* | -haiku* | -rdos* | -toppers* | -drops*) # Remember, each alternative MUST END IN *, to match a version number. ;; -qnx*) @@ -1129,16 +1270,21 @@ ;; esac ;; + -nto-qnx*) + ;; -nto*) - os=-nto-qnx + os=`echo $os | sed -e 's|nto|nto-qnx|'` ;; -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \ - | -windows* | -osx | -abug | -netware* | -os9* | -beos* \ + | -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|'` ;; @@ -1151,6 +1297,9 @@ -opened*) os=-openedition ;; + -os400*) + os=-os400 + ;; -wince*) os=-wince ;; @@ -1172,6 +1321,9 @@ -atheos*) os=-atheos ;; + -syllable*) + os=-syllable + ;; -386bsd) os=-bsd ;; @@ -1194,6 +1346,9 @@ -sinix*) os=-sysv4 ;; + -tpf*) + os=-tpf + ;; -triton*) os=-sysv3 ;; @@ -1224,6 +1379,15 @@ -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) os=-mint ;; + -aros*) + os=-aros + ;; + -kaos*) + os=-kaos + ;; + -zvmoe) + os=-zvmoe + ;; -none) ;; *) @@ -1246,6 +1410,12 @@ # system, and we'll never get to this point. case $basic_machine in + score-*) + os=-elf + ;; + spu-*) + os=-elf + ;; *-acorn) os=-riscix1.2 ;; @@ -1255,6 +1425,9 @@ arm*-semi) os=-aout ;; + c4x-* | tic4x-*) + os=-coff + ;; # This must come before the *-dec entry. pdp10-*) os=-tops20 @@ -1280,6 +1453,9 @@ m68*-cisco) os=-aout ;; + mep-*) + os=-elf + ;; mips*-cisco) os=-elf ;; @@ -1298,9 +1474,15 @@ *-be) os=-beos ;; + *-haiku) + os=-haiku + ;; *-ibm) os=-aix ;; + *-knuth) + os=-mmixware + ;; *-wec) os=-proelf ;; @@ -1433,9 +1615,15 @@ -mvs* | -opened*) vendor=ibm ;; + -os400*) + vendor=ibm + ;; -ptx*) vendor=sequent ;; + -tpf*) + vendor=ibm + ;; -vxsim* | -vxworks* | -windiss*) vendor=wrs ;; @@ -1460,7 +1648,7 @@ esac echo $basic_machine$os -exit 0 +exit # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) --- gnats-4.1.0.orig/config.guess +++ gnats-4.1.0/config.guess @@ -1,9 +1,10 @@ #! /bin/sh # Attempt to guess a canonical system name. # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, -# 2000, 2001, 2002 Free Software Foundation, Inc. +# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 +# Free Software Foundation, Inc. -timestamp='2002-09-03' +timestamp='2008-01-23' # 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 @@ -17,13 +18,15 @@ # # 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA +# 02110-1301, USA. # # 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 to . Submit a context # diff and a properly formatted ChangeLog entry. @@ -53,8 +56,8 @@ GNU config.guess ($timestamp) Originally written by Per Bothner. -Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001 -Free Software Foundation, Inc. +Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, +2002, 2003, 2004, 2005, 2006, 2007, 2008 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." @@ -66,11 +69,11 @@ while test $# -gt 0 ; do case $1 in --time-stamp | --time* | -t ) - echo "$timestamp" ; exit 0 ;; + echo "$timestamp" ; exit ;; --version | -v ) - echo "$version" ; exit 0 ;; + echo "$version" ; exit ;; --help | --h* | -h ) - echo "$usage"; exit 0 ;; + echo "$usage"; exit ;; -- ) # Stop option processing shift; break ;; - ) # Use stdin as input. @@ -98,30 +101,32 @@ # Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still # use `HOST_CC' if defined, but it is deprecated. -# This shell variable is my proudest work .. or something. --bje +# Portable tmp directory creation inspired by the Autoconf team. -set_cc_for_build='tmpdir=${TMPDIR-/tmp}/config-guess-$$ ; -(old=`umask` && umask 077 && mkdir $tmpdir && umask $old && unset old) - || (echo "$me: cannot create $tmpdir" >&2 && exit 1) ; -dummy=$tmpdir/dummy ; -files="$dummy.c $dummy.o $dummy.rel $dummy" ; -trap '"'"'rm -f $files; rmdir $tmpdir; exit 1'"'"' 1 2 15 ; +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 $dummy.c -c -o $dummy.o) >/dev/null 2>&1 ; then + if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then CC_FOR_BUILD="$c"; break ; fi ; done ; - rm -f $files ; 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 ; -unset files' +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) @@ -156,6 +161,7 @@ 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 @@ -178,144 +184,128 @@ ;; esac # The OS release - release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` + # 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 0 ;; - amiga:OpenBSD:*:*) - echo m68k-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - arc:OpenBSD:*:*) - echo mipsel-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - hp300:OpenBSD:*:*) - echo m68k-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - mac68k:OpenBSD:*:*) - echo m68k-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - macppc:OpenBSD:*:*) - echo powerpc-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - mvme68k:OpenBSD:*:*) - echo m68k-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - mvme88k:OpenBSD:*:*) - echo m88k-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - mvmeppc:OpenBSD:*:*) - echo powerpc-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - pmax:OpenBSD:*:*) - echo mipsel-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - sgi:OpenBSD:*:*) - echo mipseb-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - sun3:OpenBSD:*:*) - echo m68k-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - wgrisc:OpenBSD:*:*) - echo mipsel-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; + exit ;; *:OpenBSD:*:*) - echo ${UNAME_MACHINE}-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; + 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:*:*) - if test $UNAME_RELEASE = "V4.0"; then + case $UNAME_RELEASE in + *4.0) UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` - fi + ;; + *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. - eval $set_cc_for_build - cat <$dummy.s - .data -\$Lformat: - .byte 37,100,45,37,120,10,0 # "%d-%x\n" - - .text - .globl main - .align 4 - .ent main -main: - .frame \$30,16,\$26,0 - ldgp \$29,0(\$27) - .prologue 1 - .long 0x47e03d80 # implver \$0 - lda \$2,-1 - .long 0x47e20c21 # amask \$2,\$1 - lda \$16,\$Lformat - mov \$0,\$17 - not \$1,\$18 - jsr \$26,printf - ldgp \$29,0(\$26) - mov 0,\$16 - jsr \$26,exit - .end main -EOF - $CC_FOR_BUILD $dummy.s -o $dummy 2>/dev/null - if test "$?" = 0 ; then - case `$dummy` in - 0-0) - UNAME_MACHINE="alpha" - ;; - 1-0) - UNAME_MACHINE="alphaev5" - ;; - 1-1) - UNAME_MACHINE="alphaev56" - ;; - 1-101) - UNAME_MACHINE="alphapca56" - ;; - 2-303) - UNAME_MACHINE="alphaev6" - ;; - 2-307) - UNAME_MACHINE="alphaev67" - ;; - 2-1307) - UNAME_MACHINE="alphaev68" - ;; - 3-1307) - UNAME_MACHINE="alphaev7" - ;; - esac - fi - rm -f $dummy.s $dummy && rmdir $tmpdir - echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[VTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` - exit 0 ;; + echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` + exit ;; 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 0 ;; + exit ;; 21064:Windows_NT:50:3) echo alpha-dec-winnt3.5 - exit 0 ;; + exit ;; Amiga*:UNIX_System_V:4.0:*) echo m68k-unknown-sysv4 - exit 0;; + exit ;; *:[Aa]miga[Oo][Ss]:*:*) echo ${UNAME_MACHINE}-unknown-amigaos - exit 0 ;; + exit ;; *:[Mm]orph[Oo][Ss]:*:*) echo ${UNAME_MACHINE}-unknown-morphos - exit 0 ;; + exit ;; *:OS/390:*:*) echo i370-ibm-openedition - exit 0 ;; + 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 0;; + 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 0;; + 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 @@ -323,29 +313,32 @@ else echo pyramid-pyramid-bsd fi - exit 0 ;; + exit ;; NILE*:*:*:dcosx) echo pyramid-pyramid-svr4 - exit 0 ;; - DRS?6000:UNIX_SV:4.2*:7*) + 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 0 ;; + sparc) echo sparc-icl-nx7; exit ;; esac ;; sun4H:SunOS:5.*:*) echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit 0 ;; + exit ;; sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit 0 ;; - i86pc:SunOS:5.*:*) + exit ;; + i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit 0 ;; + 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 0 ;; + exit ;; sun4*:SunOS:*:*) case "`/usr/bin/arch -k`" in Series*|S4*) @@ -354,10 +347,10 @@ esac # Japanese Language versions have a version number like `4.1.3-JL'. echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` - exit 0 ;; + exit ;; sun3*:SunOS:*:*) echo m68k-sun-sunos${UNAME_RELEASE} - exit 0 ;; + 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 @@ -369,10 +362,10 @@ echo sparc-sun-sunos${UNAME_RELEASE} ;; esac - exit 0 ;; + exit ;; aushp:SunOS:*:*) echo sparc-auspex-sunos${UNAME_RELEASE} - exit 0 ;; + 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 @@ -383,37 +376,40 @@ # be no problem. atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} - exit 0 ;; + exit ;; atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} - exit 0 ;; + exit ;; *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} - exit 0 ;; + exit ;; milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) echo m68k-milan-mint${UNAME_RELEASE} - exit 0 ;; + exit ;; hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) echo m68k-hades-mint${UNAME_RELEASE} - exit 0 ;; + exit ;; *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) echo m68k-unknown-mint${UNAME_RELEASE} - exit 0 ;; + exit ;; + m68k:machten:*:*) + echo m68k-apple-machten${UNAME_RELEASE} + exit ;; powerpc:machten:*:*) echo powerpc-apple-machten${UNAME_RELEASE} - exit 0 ;; + exit ;; RISC*:Mach:*:*) echo mips-dec-mach_bsd4.3 - exit 0 ;; + exit ;; RISC*:ULTRIX:*:*) echo mips-dec-ultrix${UNAME_RELEASE} - exit 0 ;; + exit ;; VAX*:ULTRIX*:*:*) echo vax-dec-ultrix${UNAME_RELEASE} - exit 0 ;; + exit ;; 2020:CLIX:*:* | 2430:CLIX:*:*) echo clipper-intergraph-clix${UNAME_RELEASE} - exit 0 ;; + exit ;; mips:*:*:UMIPS | mips:*:*:RISCos) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c @@ -437,33 +433,33 @@ exit (-1); } EOF - $CC_FOR_BUILD $dummy.c -o $dummy \ - && $dummy `echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` \ - && rm -f $dummy.c $dummy && rmdir $tmpdir && exit 0 - rm -f $dummy.c $dummy && rmdir $tmpdir + $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 0 ;; + exit ;; Motorola:PowerMAX_OS:*:*) echo powerpc-motorola-powermax - exit 0 ;; + exit ;; Motorola:*:4.3:PL8-*) echo powerpc-harris-powermax - exit 0 ;; - Night_Hawk:*:*:PowerMAX_OS) + exit ;; + Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) echo powerpc-harris-powermax - exit 0 ;; + exit ;; Night_Hawk:Power_UNIX:*:*) echo powerpc-harris-powerunix - exit 0 ;; + exit ;; m88k:CX/UX:7*:*) echo m88k-harris-cxux7 - exit 0 ;; + exit ;; m88k:*:4*:R4*) echo m88k-motorola-sysv4 - exit 0 ;; + exit ;; m88k:*:3*:R3*) echo m88k-motorola-sysv3 - exit 0 ;; + exit ;; AViiON:dgux:*:*) # DG/UX returns AViiON for all architectures UNAME_PROCESSOR=`/usr/bin/uname -p` @@ -479,29 +475,29 @@ else echo i586-dg-dgux${UNAME_RELEASE} fi - exit 0 ;; + exit ;; M88*:DolphinOS:*:*) # DolphinOS (SVR3) echo m88k-dolphin-sysv3 - exit 0 ;; + exit ;; M88*:*:R3*:*) # Delta 88k system running SVR3 echo m88k-motorola-sysv3 - exit 0 ;; + exit ;; XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) echo m88k-tektronix-sysv3 - exit 0 ;; + exit ;; Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) echo m68k-tektronix-bsd - exit 0 ;; + exit ;; *:IRIX*:*:*) echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` - exit 0 ;; + 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 0 ;; # Note that: echo "'`uname -s`'" gives '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 0 ;; + exit ;; ia64:AIX:*:*) if [ -x /usr/bin/oslevel ] ; then IBM_REV=`/usr/bin/oslevel` @@ -509,7 +505,7 @@ IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} fi echo ${UNAME_MACHINE}-ibm-aix${IBM_REV} - exit 0 ;; + exit ;; *:AIX:2:3) if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then eval $set_cc_for_build @@ -524,16 +520,19 @@ exit(0); } EOF - $CC_FOR_BUILD $dummy.c -o $dummy && $dummy && rm -f $dummy.c $dummy && rmdir $tmpdir && exit 0 - rm -f $dummy.c $dummy && rmdir $tmpdir - echo rs6000-ibm-aix3.2.5 + 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 0 ;; - *:AIX:*:[45]) + exit ;; + *:AIX:*:[456]) 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 @@ -546,28 +545,28 @@ IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} fi echo ${IBM_ARCH}-ibm-aix${IBM_REV} - exit 0 ;; + exit ;; *:AIX:*:*) echo rs6000-ibm-aix - exit 0 ;; + exit ;; ibmrt:4.4BSD:*|romp-ibm:BSD:*) echo romp-ibm-bsd4.4 - exit 0 ;; + exit ;; ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to - exit 0 ;; # report: romp-ibm BSD 4.3 + exit ;; # report: romp-ibm BSD 4.3 *:BOSX:*:*) echo rs6000-bull-bosx - exit 0 ;; + exit ;; DPX/2?00:B.O.S.:*:*) echo m68k-bull-sysv3 - exit 0 ;; + exit ;; 9000/[34]??:4.3bsd:1.*:*) echo m68k-hp-bsd - exit 0 ;; + exit ;; hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) echo m68k-hp-bsd4.4 - exit 0 ;; + exit ;; 9000/[34678]??:HP-UX:*:*) HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` case "${UNAME_MACHINE}" in @@ -623,17 +622,37 @@ exit (0); } EOF - (CCOPTS= $CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null) && HP_ARCH=`$dummy` - if test -z "$HP_ARCH"; then HP_ARCH=hppa; fi - rm -f $dummy.c $dummy && rmdir $tmpdir + (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 __LP64__ >/dev/null + then + HP_ARCH="hppa2.0w" + else + HP_ARCH="hppa64" + fi + fi echo ${HP_ARCH}-hp-hpux${HPUX_REV} - exit 0 ;; + exit ;; ia64:HP-UX:*:*) HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` echo ia64-hp-hpux${HPUX_REV} - exit 0 ;; + exit ;; 3050*:HI-UX:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c @@ -661,146 +680,192 @@ exit (0); } EOF - $CC_FOR_BUILD $dummy.c -o $dummy && $dummy && rm -f $dummy.c $dummy && rmdir $tmpdir && exit 0 - rm -f $dummy.c $dummy && rmdir $tmpdir + $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` && + { echo "$SYSTEM_NAME"; exit; } echo unknown-hitachi-hiuxwe2 - exit 0 ;; + exit ;; 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) echo hppa1.1-hp-bsd - exit 0 ;; + exit ;; 9000/8??:4.3bsd:*:*) echo hppa1.0-hp-bsd - exit 0 ;; + exit ;; *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) echo hppa1.0-hp-mpeix - exit 0 ;; + exit ;; hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) echo hppa1.1-hp-osf - exit 0 ;; + exit ;; hp8??:OSF1:*:*) echo hppa1.0-hp-osf - exit 0 ;; + exit ;; i*86:OSF1:*:*) if [ -x /usr/sbin/sysversion ] ; then echo ${UNAME_MACHINE}-unknown-osf1mk else echo ${UNAME_MACHINE}-unknown-osf1 fi - exit 0 ;; + exit ;; parisc*:Lites*:*:*) echo hppa1.1-hp-lites - exit 0 ;; + exit ;; C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) echo c1-convex-bsd - exit 0 ;; + exit ;; C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) if getsysinfo -f scalar_acc then echo c32-convex-bsd else echo c2-convex-bsd fi - exit 0 ;; + exit ;; C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) echo c34-convex-bsd - exit 0 ;; + exit ;; C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) echo c38-convex-bsd - exit 0 ;; + exit ;; C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) echo c4-convex-bsd - exit 0 ;; + exit ;; CRAY*Y-MP:*:*:*) echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' - exit 0 ;; + 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 0 ;; + exit ;; CRAY*TS:*:*:*) echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' - exit 0 ;; - CRAY*T3D:*:*:*) - echo alpha-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' - exit 0 ;; + exit ;; CRAY*T3E:*:*:*) echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' - exit 0 ;; + exit ;; CRAY*SV1:*:*:*) echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' - exit 0 ;; + 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 0 ;; + 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 0 ;; + exit ;; sparc*:BSD/OS:*:*) echo sparc-unknown-bsdi${UNAME_RELEASE} - exit 0 ;; + exit ;; *:BSD/OS:*:*) echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} - exit 0 ;; + exit ;; *:FreeBSD:*:*) - # Determine whether the default compiler uses glibc. - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #include - #if __GLIBC__ >= 2 - LIBC=gnu - #else - LIBC= - #endif -EOF - eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=` - rm -f $dummy.c && rmdir $tmpdir - echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`${LIBC:+-$LIBC} - exit 0 ;; + case ${UNAME_MACHINE} in + pc98) + echo i386-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; + amd64) + echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; + *) + echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; + esac + exit ;; i*:CYGWIN*:*) echo ${UNAME_MACHINE}-pc-cygwin - exit 0 ;; - i*:MINGW*:*) + exit ;; + *:MINGW*:*) echo ${UNAME_MACHINE}-pc-mingw32 - exit 0 ;; + exit ;; + i*:windows32*:*) + # uname -m includes "-pc" on this system. + echo ${UNAME_MACHINE}-mingw32 + exit ;; i*:PW*:*) echo ${UNAME_MACHINE}-pc-pw32 - exit 0 ;; - x86:Interix*:3*) - echo i386-pc-interix3 - exit 0 ;; + exit ;; + *:Interix*:[3456]*) + case ${UNAME_MACHINE} in + x86) + echo i586-pc-interix${UNAME_RELEASE} + exit ;; + EM64T | authenticamd) + 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 ;; 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 i386-pc-interix - exit 0 ;; + echo i586-pc-interix + exit ;; i*:UWIN*:*) echo ${UNAME_MACHINE}-pc-uwin - exit 0 ;; + exit ;; + amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) + echo x86_64-unknown-cygwin + exit ;; p*:CYGWIN*:*) echo powerpcle-unknown-cygwin - exit 0 ;; + exit ;; prep*:SunOS:5.*:*) echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit 0 ;; + exit ;; *:GNU:*:*) + # the GNU system echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` - exit 0 ;; + 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 0 ;; + 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 + echo ${UNAME_MACHINE}-unknown-linux-gnueabi + fi + exit ;; + avr32*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu - exit 0 ;; + exit ;; + cris:Linux:*:*) + echo cris-axis-linux-gnu + exit ;; + crisv32:Linux:*:*) + echo crisv32-axis-linux-gnu + exit ;; + frv:Linux:*:*) + echo frv-unknown-linux-gnu + exit ;; ia64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu - exit 0 ;; + exit ;; + m32r*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; m68*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu - exit 0 ;; + exit ;; mips:Linux:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c @@ -817,16 +882,45 @@ #endif #endif EOF - eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=` - rm -f $dummy.c && rmdir $tmpdir - test x"${CPU}" != x && echo "${CPU}-pc-linux-gnu" && exit 0 + eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' + /^CPU/{ + s: ::g + p + }'`" + test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } ;; + mips64:Linux:*:*) + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c + #undef CPU + #undef mips64 + #undef mips64el + #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) + CPU=mips64el + #else + #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) + CPU=mips64 + #else + CPU= + #endif + #endif +EOF + eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' + /^CPU/{ + s: ::g + p + }'`" + test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } + ;; + or32:Linux:*:*) + echo or32-unknown-linux-gnu + exit ;; ppc:Linux:*:*) echo powerpc-unknown-linux-gnu - exit 0 ;; + exit ;; ppc64:Linux:*:*) echo powerpc64-unknown-linux-gnu - exit 0 ;; + exit ;; alpha:Linux:*:*) case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in EV5) UNAME_MACHINE=alphaev5 ;; @@ -840,7 +934,7 @@ objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} - exit 0 ;; + exit ;; parisc:Linux:*:* | hppa:Linux:*:*) # Look for CPU level case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in @@ -848,22 +942,31 @@ PA8*) echo hppa2.0-unknown-linux-gnu ;; *) echo hppa-unknown-linux-gnu ;; esac - exit 0 ;; + exit ;; parisc64:Linux:*:* | hppa64:Linux:*:*) echo hppa64-unknown-linux-gnu - exit 0 ;; + exit ;; s390:Linux:*:* | s390x:Linux:*:*) echo ${UNAME_MACHINE}-ibm-linux - exit 0 ;; + exit ;; + sh64*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; sh*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu - exit 0 ;; + exit ;; sparc:Linux:*:* | sparc64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu - exit 0 ;; + exit ;; + vax:Linux:*:*) + echo ${UNAME_MACHINE}-dec-linux-gnu + exit ;; x86_64:Linux:*:*) echo x86_64-unknown-linux-gnu - exit 0 ;; + exit ;; + xtensa*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; i*86:Linux:*:*) # The BFD linker knows what the default object file format is, so # first see if it will tell us. cd to the root directory to prevent @@ -881,15 +984,15 @@ ;; a.out-i386-linux) echo "${UNAME_MACHINE}-pc-linux-gnuaout" - exit 0 ;; + exit ;; coff-i386) echo "${UNAME_MACHINE}-pc-linux-gnucoff" - exit 0 ;; + exit ;; "") # Either a pre-BFD a.out linker (linux-gnuoldld) or # one that does not give us useful --help. echo "${UNAME_MACHINE}-pc-linux-gnuoldld" - exit 0 ;; + exit ;; esac # Determine whether the default compiler is a.out or elf eval $set_cc_for_build @@ -906,24 +1009,33 @@ LIBC=gnulibc1 # endif #else - #ifdef __INTEL_COMPILER + #if defined(__INTEL_COMPILER) || defined(__PGI) || defined(__SUNPRO_C) || defined(__SUNPRO_CC) LIBC=gnu #else LIBC=gnuaout #endif #endif + #ifdef __dietlibc__ + LIBC=dietlibc + #endif EOF - eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=` - rm -f $dummy.c && rmdir $tmpdir - test x"${LIBC}" != x && echo "${UNAME_MACHINE}-pc-linux-${LIBC}" && exit 0 - test x"${TENTATIVE}" != x && echo "${TENTATIVE}" && exit 0 + eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' + /^LIBC/{ + s: ::g + p + }'`" + test x"${LIBC}" != x && { + echo "${UNAME_MACHINE}-pc-linux-${LIBC}" + exit + } + test x"${TENTATIVE}" != x && { echo "${TENTATIVE}"; 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 0 ;; + 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... @@ -931,7 +1043,27 @@ # I just have to hope. -- rms. # Use sysv4.2uw... so that sysv4* matches it. echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} - exit 0 ;; + 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.0*:*) + 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 @@ -939,15 +1071,16 @@ else echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL} fi - exit 0 ;; - i*86:*:5:[78]*) + 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 0 ;; + exit ;; i*86:*:3.2:*) if test -f /usr/options/cb.name; then UNAME_REL=`sed -n 's/.*Version //p' /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 0 ;; + exit ;; mini*:CTIX:SYS*5:*) # "miniframe" echo m68010-convergent-sysv - exit 0 ;; + exit ;; mc68k:UNIX:SYSTEM5:3.51m) echo m68k-convergent-sysv - exit 0 ;; - M68*:*:R3V[567]*:*) - test -r /sysV68 && echo 'm68k-motorola-sysv' && exit 0 ;; - 3[34]??:*: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) + 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 0 + && { 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 0 ;; + && { 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 0 ;; + && { echo i486-ncr-sysv4; exit; } ;; m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) echo m68k-unknown-lynxos${UNAME_RELEASE} - exit 0 ;; + exit ;; mc68030:UNIX_System_V:4.*:*) echo m68k-atari-sysv4 - exit 0 ;; - i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*) - echo i386-unknown-lynxos${UNAME_RELEASE} - exit 0 ;; + exit ;; TSUNAMI:LynxOS:2.*:*) echo sparc-unknown-lynxos${UNAME_RELEASE} - exit 0 ;; + exit ;; rs6000:LynxOS:2.*:*) echo rs6000-unknown-lynxos${UNAME_RELEASE} - exit 0 ;; + exit ;; PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*) echo powerpc-unknown-lynxos${UNAME_RELEASE} - exit 0 ;; + exit ;; SM[BE]S:UNIX_SV:*:*) echo mips-dde-sysv${UNAME_RELEASE} - exit 0 ;; + exit ;; RM*:ReliantUNIX-*:*:*) echo mips-sni-sysv4 - exit 0 ;; + exit ;; RM*:SINIX-*:*:*) echo mips-sni-sysv4 - exit 0 ;; + exit ;; *:SINIX-*:*:*) if uname -p 2>/dev/null >/dev/null ; then UNAME_MACHINE=`(uname -p) 2>/dev/null` @@ -1042,64 +1172,81 @@ else echo ns32k-sni-sysv fi - exit 0 ;; + exit ;; PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort # says echo i586-unisys-sysv4 - exit 0 ;; + exit ;; *:UNIX_System_V:4*:FTX*) # From Gerald Hewes . # How about differentiating between stratus architectures? -djm echo hppa1.1-stratus-sysv4 - exit 0 ;; + exit ;; *:*:*:FTX*) # From seanf@swdc.stratus.com. echo i860-stratus-sysv4 - exit 0 ;; + 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 0 ;; + exit ;; mc68*:A/UX:*:*) echo m68k-apple-aux${UNAME_RELEASE} - exit 0 ;; + exit ;; news*:NEWS-OS:6*:*) echo mips-sony-newsos6 - exit 0 ;; + 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 0 ;; + exit ;; BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. echo powerpc-be-beos - exit 0 ;; + exit ;; BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. echo powerpc-apple-beos - exit 0 ;; + exit ;; BePC:BeOS:*:*) # BeOS running on Intel PC compatible. echo i586-pc-beos - exit 0 ;; + exit ;; SX-4:SUPER-UX:*:*) echo sx4-nec-superux${UNAME_RELEASE} - exit 0 ;; + exit ;; SX-5:SUPER-UX:*:*) echo sx5-nec-superux${UNAME_RELEASE} - exit 0 ;; + exit ;; SX-6:SUPER-UX:*:*) echo sx6-nec-superux${UNAME_RELEASE} - exit 0 ;; + 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 0 ;; + exit ;; *:Rhapsody:*:*) echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} - exit 0 ;; + exit ;; *:Darwin:*:*) - echo `uname -p`-apple-darwin${UNAME_RELEASE} - exit 0 ;; + UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown + case $UNAME_PROCESSOR in + 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 @@ -1107,22 +1254,25 @@ UNAME_MACHINE=pc fi echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE} - exit 0 ;; + exit ;; *:QNX:*:4*) echo i386-pc-qnx - exit 0 ;; - NSR-[DGKLNPTVW]:NONSTOP_KERNEL:*:*) + exit ;; + NSE-?:NONSTOP_KERNEL:*:*) + echo nse-tandem-nsk${UNAME_RELEASE} + exit ;; + NSR-?:NONSTOP_KERNEL:*:*) echo nsr-tandem-nsk${UNAME_RELEASE} - exit 0 ;; + exit ;; *:NonStop-UX:*:*) echo mips-compaq-nonstopux - exit 0 ;; + exit ;; BS2000:POSIX*:*:*) echo bs2000-siemens-sysv - exit 0 ;; + exit ;; DS/*:UNIX_System_V:*:*) echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE} - exit 0 ;; + exit ;; *:Plan9:*:*) # "uname -m" is not consistent, so use $cputype instead. 386 # is converted to i386 for consistency with other x86 @@ -1133,36 +1283,47 @@ UNAME_MACHINE="$cputype" fi echo ${UNAME_MACHINE}-unknown-plan9 - exit 0 ;; - 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 0 ;; + exit ;; *:TOPS-10:*:*) echo pdp10-unknown-tops10 - exit 0 ;; + exit ;; *:TENEX:*:*) echo pdp10-unknown-tenex - exit 0 ;; + exit ;; KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) echo pdp10-dec-tops20 - exit 0 ;; + exit ;; XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) echo pdp10-xkl-tops20 - exit 0 ;; + exit ;; *:TOPS-20:*:*) echo pdp10-unknown-tops20 - exit 0 ;; + exit ;; *:ITS:*:*) echo pdp10-unknown-its - exit 0 ;; - i*86:XTS-300:*:STOP) - echo ${UNAME_MACHINE}-unknown-stop - exit 0 ;; - i*86:atheos:*:*) - echo ${UNAME_MACHINE}-unknown-atheos - exit 0 ;; + 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 ;; esac #echo '(No uname command or uname output not recognized.)' 1>&2 @@ -1194,7 +1355,7 @@ #endif #if defined (__arm) && defined (__acorn) && defined (__unix) - printf ("arm-acorn-riscix"); exit (0); + printf ("arm-acorn-riscix\n"); exit (0); #endif #if defined (hp300) && !defined (hpux) @@ -1283,12 +1444,12 @@ } EOF -$CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null && $dummy && rm -f $dummy.c $dummy && rmdir $tmpdir && exit 0 -rm -f $dummy.c $dummy && rmdir $tmpdir +$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 0; } +test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; } # Convex versions that predate uname can use getsysinfo(1) @@ -1297,22 +1458,22 @@ case `getsysinfo -f cpu_type` in c1*) echo c1-convex-bsd - exit 0 ;; + exit ;; c2*) if getsysinfo -f scalar_acc then echo c32-convex-bsd else echo c2-convex-bsd fi - exit 0 ;; + exit ;; c34*) echo c34-convex-bsd - exit 0 ;; + exit ;; c38*) echo c38-convex-bsd - exit 0 ;; + exit ;; c4*) echo c4-convex-bsd - exit 0 ;; + exit ;; esac fi @@ -1323,7 +1484,9 @@ the operating system you are using. It is advised that you download the most up to date version of the config scripts from - ftp://ftp.gnu.org/pub/gnu/config/ + http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD +and + http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD If the version you run ($0) is already up to date, please send the following data and any information you think might be --- gnats-4.1.0.orig/gnats/fconfig.h +++ gnats-4.1.0/gnats/fconfig.h @@ -1,8 +1,183 @@ -#ifndef BISON_FCONFIG_TAB_H -# define BISON_FCONFIG_TAB_H +/* A Bison parser, made by GNU Bison 1.875d. */ -#ifndef YYSTYPE -typedef union { +/* Skeleton parser for Yacc-like parsing with Bison, + Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc. + + This program is free software; you can 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., 59 Temple Place - Suite 330, + Boston, MA 02111-1307, USA. */ + +/* As a special exception, when this file is copied by Bison into a + Bison output file, you may use that output file without restriction. + This special exception was added by the Free Software Foundation + in version 1.24 of Bison. */ + +/* Tokens. */ +#ifndef YYTOKENTYPE +# define YYTOKENTYPE + /* Put the tokens into the symbol table, so that GDB and other debuggers + know about them. */ + enum yytokentype { + FIELD = 258, + STRINGTYPE = 259, + QDEFAULT = 260, + MATCHING = 261, + ENUM = 262, + MULTIENUMTOK = 263, + VALUES = 264, + DEFAULT = 265, + EXACT_REGEXP = 266, + INEXACT_REGEXP = 267, + ALL = 268, + FORMAT = 269, + ENUMSEPARATORSTOK = 270, + MULTITEXTTYPE = 271, + DATETYPE = 272, + ENUM_IN_FILE = 273, + MULTI_ENUM_IN_FILE = 274, + PATHTOK = 275, + FIELDSTOK = 276, + KEYTOK = 277, + QSTRING = 278, + INTVAL = 279, + TEXTSEARCH = 280, + QUERYTOK = 281, + FORMATTOK = 282, + INDEXTOK = 283, + SEPARATORTOK = 284, + RESTRICTEDTOK = 285, + NOSPACESTOK = 286, + INTEGERTOK = 287, + INPUTDEFAULTTOK = 288, + BUILTINTOK = 289, + ALLOWANYVALUETOK = 290, + REQUIRETOK = 291, + APPENDFIELDTOK = 292, + SETFIELDTOK = 293, + CHANGETOK = 294, + DESCRIPTIONTOK = 295, + INPUTTOK = 296, + DATABASEINFOTOK = 297, + DEBUGMODETOK = 298, + KEEPRECTOK = 299, + NOTIFYEXPTOK = 300, + LIBEXECDIRTOK = 301, + SUBMITTERACKTOK = 302, + BUSINESSDAYTOK = 303, + BUSINESSWEEKTOK = 304, + CREATECATEGORYDIRSTOK = 305, + FALSETOK = 306, + TRUETOK = 307, + MAILFORMATTOK = 308, + TOADDRESSESTOK = 309, + FROMADDRESSTOK = 310, + REPLYTOTOK = 311, + FIXEDTOK = 312, + BODYTOK = 313, + HEADERTOK = 314, + AUDITTRAILFMTTOK = 315, + ADDAUDITTRAILTOK = 316, + REQUIRECHANGEREASONTOK = 317, + READONLYTOK = 318, + BINARYINDEXTOK = 319, + RAWTOK = 320, + BADTOK = 321, + AUXFLAGSTOK = 322, + PRLISTTOK = 323, + MAXPRSTOK = 324, + EDITONLYTOK = 325, + VIRTUALFORMATTOK = 326, + CATPERMSTOK = 327 + }; +#endif +#define FIELD 258 +#define STRINGTYPE 259 +#define QDEFAULT 260 +#define MATCHING 261 +#define ENUM 262 +#define MULTIENUMTOK 263 +#define VALUES 264 +#define DEFAULT 265 +#define EXACT_REGEXP 266 +#define INEXACT_REGEXP 267 +#define ALL 268 +#define FORMAT 269 +#define ENUMSEPARATORSTOK 270 +#define MULTITEXTTYPE 271 +#define DATETYPE 272 +#define ENUM_IN_FILE 273 +#define MULTI_ENUM_IN_FILE 274 +#define PATHTOK 275 +#define FIELDSTOK 276 +#define KEYTOK 277 +#define QSTRING 278 +#define INTVAL 279 +#define TEXTSEARCH 280 +#define QUERYTOK 281 +#define FORMATTOK 282 +#define INDEXTOK 283 +#define SEPARATORTOK 284 +#define RESTRICTEDTOK 285 +#define NOSPACESTOK 286 +#define INTEGERTOK 287 +#define INPUTDEFAULTTOK 288 +#define BUILTINTOK 289 +#define ALLOWANYVALUETOK 290 +#define REQUIRETOK 291 +#define APPENDFIELDTOK 292 +#define SETFIELDTOK 293 +#define CHANGETOK 294 +#define DESCRIPTIONTOK 295 +#define INPUTTOK 296 +#define DATABASEINFOTOK 297 +#define DEBUGMODETOK 298 +#define KEEPRECTOK 299 +#define NOTIFYEXPTOK 300 +#define LIBEXECDIRTOK 301 +#define SUBMITTERACKTOK 302 +#define BUSINESSDAYTOK 303 +#define BUSINESSWEEKTOK 304 +#define CREATECATEGORYDIRSTOK 305 +#define FALSETOK 306 +#define TRUETOK 307 +#define MAILFORMATTOK 308 +#define TOADDRESSESTOK 309 +#define FROMADDRESSTOK 310 +#define REPLYTOTOK 311 +#define FIXEDTOK 312 +#define BODYTOK 313 +#define HEADERTOK 314 +#define AUDITTRAILFMTTOK 315 +#define ADDAUDITTRAILTOK 316 +#define REQUIRECHANGEREASONTOK 317 +#define READONLYTOK 318 +#define BINARYINDEXTOK 319 +#define RAWTOK 320 +#define BADTOK 321 +#define AUXFLAGSTOK 322 +#define PRLISTTOK 323 +#define MAXPRSTOK 324 +#define EDITONLYTOK 325 +#define VIRTUALFORMATTOK 326 +#define CATPERMSTOK 327 + + + + +#if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED) +#line 21 "./fconfig.y" +typedef union YYSTYPE { int intval; char *sval; struct qstring *qstr; @@ -12,82 +187,15 @@ InputTemplate *inputlist; MailAddress *mailaddr; MailAddressList *mailaddrlist; -} yystype; -# define YYSTYPE yystype +} YYSTYPE; +/* Line 1285 of yacc.c. */ +#line 193 "fconfig.tab.h" +# define yystype YYSTYPE /* obsolescent; will be withdrawn */ +# define YYSTYPE_IS_DECLARED 1 # define YYSTYPE_IS_TRIVIAL 1 #endif -# define FIELD 257 -# define STRINGTYPE 258 -# define QDEFAULT 259 -# define MATCHING 260 -# define ENUM 261 -# define MULTIENUMTOK 262 -# define VALUES 263 -# define DEFAULT 264 -# define EXACT_REGEXP 265 -# define INEXACT_REGEXP 266 -# define ALL 267 -# define FORMAT 268 -# define ENUMSEPARATORSTOK 269 -# define MULTITEXTTYPE 270 -# define DATETYPE 271 -# define ENUM_IN_FILE 272 -# define MULTI_ENUM_IN_FILE 273 -# define PATHTOK 274 -# define FIELDSTOK 275 -# define KEYTOK 276 -# define QSTRING 277 -# define INTVAL 278 -# define TEXTSEARCH 279 -# define QUERYTOK 280 -# define FORMATTOK 281 -# define INDEXTOK 282 -# define SEPARATORTOK 283 -# define RESTRICTEDTOK 284 -# define NOSPACESTOK 285 -# define INTEGERTOK 286 -# define INPUTDEFAULTTOK 287 -# define BUILTINTOK 288 -# define ALLOWANYVALUETOK 289 -# define REQUIRETOK 290 -# define APPENDFIELDTOK 291 -# define SETFIELDTOK 292 -# define CHANGETOK 293 -# define DESCRIPTIONTOK 294 -# define INPUTTOK 295 -# define DATABASEINFOTOK 296 -# define DEBUGMODETOK 297 -# define KEEPRECTOK 298 -# define NOTIFYEXPTOK 299 -# define LIBEXECDIRTOK 300 -# define SUBMITTERACKTOK 301 -# define BUSINESSDAYTOK 302 -# define BUSINESSWEEKTOK 303 -# define CREATECATEGORYDIRSTOK 304 -# define FALSETOK 305 -# define TRUETOK 306 -# define MAILFORMATTOK 307 -# define TOADDRESSESTOK 308 -# define FROMADDRESSTOK 309 -# define REPLYTOTOK 310 -# define FIXEDTOK 311 -# define BODYTOK 312 -# define HEADERTOK 313 -# define AUDITTRAILFMTTOK 314 -# define ADDAUDITTRAILTOK 315 -# define REQUIRECHANGEREASONTOK 316 -# define READONLYTOK 317 -# define BINARYINDEXTOK 318 -# define RAWTOK 319 -# define BADTOK 320 -# define AUXFLAGSTOK 321 -# define PRLISTTOK 322 -# define MAXPRSTOK 323 -# define EDITONLYTOK 324 -# define VIRTUALFORMATTOK 325 -# define CATPERMSTOK 326 - extern YYSTYPE fconflval; -#endif /* not BISON_FCONFIG_TAB_H */ + + --- gnats-4.1.0.orig/gnats/fconfig.c +++ gnats-4.1.0/gnats/fconfig.c @@ -1,86 +1,214 @@ -/* A Bison parser, made from ./fconfig.y - by GNU bison 1.35. */ +/* A Bison parser, made by GNU Bison 1.875d. */ -#define YYBISON 1 /* Identify Bison output. */ +/* Skeleton parser for Yacc-like parsing with Bison, + Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc. + This program is free software; you can 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., 59 Temple Place - Suite 330, + Boston, MA 02111-1307, USA. */ + +/* As a special exception, when this file is copied by Bison into a + Bison output file, you may use that output file without restriction. + This special exception was added by the Free Software Foundation + in version 1.24 of Bison. */ + +/* Written by Richard Stallman by simplifying the original so called + ``semantic'' parser. */ + +/* All symbols defined below should begin with yy or YY, to avoid + infringing on user name space. This should be done even for local + variables, as they might otherwise be expanded by user macros. + There are some unavoidable exceptions within include files to + define necessary library symbols; they are noted "INFRINGES ON + USER NAME SPACE" below. */ + +/* Identify Bison output. */ +#define YYBISON 1 + +/* Skeleton name. */ +#define YYSKELETON_NAME "yacc.c" + +/* Pure parsers. */ +#define YYPURE 0 + +/* Using locations. */ +#define YYLSP_NEEDED 0 + +/* If NAME_PREFIX is specified substitute the variables and functions + names. */ #define yyparse fconfparse -#define yylex fconflex +#define yylex fconflex #define yyerror fconferror -#define yylval fconflval -#define yychar fconfchar +#define yylval fconflval +#define yychar fconfchar #define yydebug fconfdebug #define yynerrs fconfnerrs -# define FIELD 257 -# define STRINGTYPE 258 -# define QDEFAULT 259 -# define MATCHING 260 -# define ENUM 261 -# define MULTIENUMTOK 262 -# define VALUES 263 -# define DEFAULT 264 -# define EXACT_REGEXP 265 -# define INEXACT_REGEXP 266 -# define ALL 267 -# define FORMAT 268 -# define ENUMSEPARATORSTOK 269 -# define MULTITEXTTYPE 270 -# define DATETYPE 271 -# define ENUM_IN_FILE 272 -# define MULTI_ENUM_IN_FILE 273 -# define PATHTOK 274 -# define FIELDSTOK 275 -# define KEYTOK 276 -# define QSTRING 277 -# define INTVAL 278 -# define TEXTSEARCH 279 -# define QUERYTOK 280 -# define FORMATTOK 281 -# define INDEXTOK 282 -# define SEPARATORTOK 283 -# define RESTRICTEDTOK 284 -# define NOSPACESTOK 285 -# define INTEGERTOK 286 -# define INPUTDEFAULTTOK 287 -# define BUILTINTOK 288 -# define ALLOWANYVALUETOK 289 -# define REQUIRETOK 290 -# define APPENDFIELDTOK 291 -# define SETFIELDTOK 292 -# define CHANGETOK 293 -# define DESCRIPTIONTOK 294 -# define INPUTTOK 295 -# define DATABASEINFOTOK 296 -# define DEBUGMODETOK 297 -# define KEEPRECTOK 298 -# define NOTIFYEXPTOK 299 -# define LIBEXECDIRTOK 300 -# define SUBMITTERACKTOK 301 -# define BUSINESSDAYTOK 302 -# define BUSINESSWEEKTOK 303 -# define CREATECATEGORYDIRSTOK 304 -# define FALSETOK 305 -# define TRUETOK 306 -# define MAILFORMATTOK 307 -# define TOADDRESSESTOK 308 -# define FROMADDRESSTOK 309 -# define REPLYTOTOK 310 -# define FIXEDTOK 311 -# define BODYTOK 312 -# define HEADERTOK 313 -# define AUDITTRAILFMTTOK 314 -# define ADDAUDITTRAILTOK 315 -# define REQUIRECHANGEREASONTOK 316 -# define READONLYTOK 317 -# define BINARYINDEXTOK 318 -# define RAWTOK 319 -# define BADTOK 320 -# define AUXFLAGSTOK 321 -# define PRLISTTOK 322 -# define MAXPRSTOK 323 -# define EDITONLYTOK 324 -# define VIRTUALFORMATTOK 325 -# define CATPERMSTOK 326 + +/* Tokens. */ +#ifndef YYTOKENTYPE +# define YYTOKENTYPE + /* Put the tokens into the symbol table, so that GDB and other debuggers + know about them. */ + enum yytokentype { + FIELD = 258, + STRINGTYPE = 259, + QDEFAULT = 260, + MATCHING = 261, + ENUM = 262, + MULTIENUMTOK = 263, + VALUES = 264, + DEFAULT = 265, + EXACT_REGEXP = 266, + INEXACT_REGEXP = 267, + ALL = 268, + FORMAT = 269, + ENUMSEPARATORSTOK = 270, + MULTITEXTTYPE = 271, + DATETYPE = 272, + ENUM_IN_FILE = 273, + MULTI_ENUM_IN_FILE = 274, + PATHTOK = 275, + FIELDSTOK = 276, + KEYTOK = 277, + QSTRING = 278, + INTVAL = 279, + TEXTSEARCH = 280, + QUERYTOK = 281, + FORMATTOK = 282, + INDEXTOK = 283, + SEPARATORTOK = 284, + RESTRICTEDTOK = 285, + NOSPACESTOK = 286, + INTEGERTOK = 287, + INPUTDEFAULTTOK = 288, + BUILTINTOK = 289, + ALLOWANYVALUETOK = 290, + REQUIRETOK = 291, + APPENDFIELDTOK = 292, + SETFIELDTOK = 293, + CHANGETOK = 294, + DESCRIPTIONTOK = 295, + INPUTTOK = 296, + DATABASEINFOTOK = 297, + DEBUGMODETOK = 298, + KEEPRECTOK = 299, + NOTIFYEXPTOK = 300, + LIBEXECDIRTOK = 301, + SUBMITTERACKTOK = 302, + BUSINESSDAYTOK = 303, + BUSINESSWEEKTOK = 304, + CREATECATEGORYDIRSTOK = 305, + FALSETOK = 306, + TRUETOK = 307, + MAILFORMATTOK = 308, + TOADDRESSESTOK = 309, + FROMADDRESSTOK = 310, + REPLYTOTOK = 311, + FIXEDTOK = 312, + BODYTOK = 313, + HEADERTOK = 314, + AUDITTRAILFMTTOK = 315, + ADDAUDITTRAILTOK = 316, + REQUIRECHANGEREASONTOK = 317, + READONLYTOK = 318, + BINARYINDEXTOK = 319, + RAWTOK = 320, + BADTOK = 321, + AUXFLAGSTOK = 322, + PRLISTTOK = 323, + MAXPRSTOK = 324, + EDITONLYTOK = 325, + VIRTUALFORMATTOK = 326, + CATPERMSTOK = 327 + }; +#endif +#define FIELD 258 +#define STRINGTYPE 259 +#define QDEFAULT 260 +#define MATCHING 261 +#define ENUM 262 +#define MULTIENUMTOK 263 +#define VALUES 264 +#define DEFAULT 265 +#define EXACT_REGEXP 266 +#define INEXACT_REGEXP 267 +#define ALL 268 +#define FORMAT 269 +#define ENUMSEPARATORSTOK 270 +#define MULTITEXTTYPE 271 +#define DATETYPE 272 +#define ENUM_IN_FILE 273 +#define MULTI_ENUM_IN_FILE 274 +#define PATHTOK 275 +#define FIELDSTOK 276 +#define KEYTOK 277 +#define QSTRING 278 +#define INTVAL 279 +#define TEXTSEARCH 280 +#define QUERYTOK 281 +#define FORMATTOK 282 +#define INDEXTOK 283 +#define SEPARATORTOK 284 +#define RESTRICTEDTOK 285 +#define NOSPACESTOK 286 +#define INTEGERTOK 287 +#define INPUTDEFAULTTOK 288 +#define BUILTINTOK 289 +#define ALLOWANYVALUETOK 290 +#define REQUIRETOK 291 +#define APPENDFIELDTOK 292 +#define SETFIELDTOK 293 +#define CHANGETOK 294 +#define DESCRIPTIONTOK 295 +#define INPUTTOK 296 +#define DATABASEINFOTOK 297 +#define DEBUGMODETOK 298 +#define KEEPRECTOK 299 +#define NOTIFYEXPTOK 300 +#define LIBEXECDIRTOK 301 +#define SUBMITTERACKTOK 302 +#define BUSINESSDAYTOK 303 +#define BUSINESSWEEKTOK 304 +#define CREATECATEGORYDIRSTOK 305 +#define FALSETOK 306 +#define TRUETOK 307 +#define MAILFORMATTOK 308 +#define TOADDRESSESTOK 309 +#define FROMADDRESSTOK 310 +#define REPLYTOTOK 311 +#define FIXEDTOK 312 +#define BODYTOK 313 +#define HEADERTOK 314 +#define AUDITTRAILFMTTOK 315 +#define ADDAUDITTRAILTOK 316 +#define REQUIRECHANGEREASONTOK 317 +#define READONLYTOK 318 +#define BINARYINDEXTOK 319 +#define RAWTOK 320 +#define BADTOK 321 +#define AUXFLAGSTOK 322 +#define PRLISTTOK 323 +#define MAXPRSTOK 324 +#define EDITONLYTOK 325 +#define VIRTUALFORMATTOK 326 +#define CATPERMSTOK 327 + + + + +/* Copy the first part of user declarations. */ #line 1 "./fconfig.y" #include "gnats.h" @@ -101,9 +229,23 @@ extern char *takeQString (struct qstring *str); extern char *qStrVal (struct qstring *str); + +/* Enabling traces. */ +#ifndef YYDEBUG +# define YYDEBUG 0 +#endif + +/* Enabling verbose error messages. */ +#ifdef YYERROR_VERBOSE +# undef YYERROR_VERBOSE +# define YYERROR_VERBOSE 1 +#else +# define YYERROR_VERBOSE 0 +#endif + +#if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED) #line 21 "./fconfig.y" -#ifndef YYSTYPE -typedef union { +typedef union YYSTYPE { int intval; char *sval; struct qstring *qstr; @@ -113,527 +255,43 @@ InputTemplate *inputlist; MailAddress *mailaddr; MailAddressList *mailaddrlist; -} yystype; -# define YYSTYPE yystype +} YYSTYPE; +/* Line 191 of yacc.c. */ +#line 261 "fconfig.tab.c" +# define yystype YYSTYPE /* obsolescent; will be withdrawn */ +# define YYSTYPE_IS_DECLARED 1 # define YYSTYPE_IS_TRIVIAL 1 #endif -#ifndef YYDEBUG -# define YYDEBUG 0 -#endif - - - -#define YYFINAL 348 -#define YYFLAG -32768 -#define YYNTBASE 77 -/* YYTRANSLATE(YYLEX) -- Bison token number corresponding to YYLEX. */ -#define YYTRANSLATE(x) ((unsigned)(x) <= 326 ? yytranslate[x] : 165) - -/* YYTRANSLATE[YYLEX] -- Bison token number corresponding to YYLEX. */ -static const char yytranslate[] = -{ - 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 75, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 73, 76, 74, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 1, 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, 31, 32, 33, 34, 35, - 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, - 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, - 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, - 66, 67, 68, 69, 70, 71, 72 -}; -#if YYDEBUG -static const short yyprhs[] = -{ - 0, 0, 2, 4, 13, 18, 23, 24, 26, 28, - 31, 34, 37, 40, 43, 46, 51, 56, 59, 62, - 64, 66, 68, 69, 71, 74, 79, 84, 87, 89, - 92, 94, 96, 98, 100, 103, 105, 107, 110, 112, - 115, 118, 120, 126, 132, 134, 137, 142, 147, 152, - 157, 162, 167, 168, 171, 175, 179, 183, 185, 186, - 188, 191, 196, 201, 204, 207, 209, 212, 214, 216, - 219, 221, 227, 232, 234, 236, 237, 239, 241, 244, - 245, 249, 253, 254, 258, 261, 263, 266, 268, 271, - 273, 276, 281, 286, 288, 290, 293, 295, 298, 301, - 308, 313, 315, 317, 319, 322, 324, 327, 330, 333, - 335, 338, 340, 343, 346, 348, 350, 352, 355, 357, - 360, 362, 367, 369, 371, 374, 375, 377, 379, 382, - 387, 392, 395, 398, 401, 404, 406, 409, 412, 413, - 415, 417, 420, 425, 430, 432, 435, 437, 442, 447, - 449, 451, 453, 456, 459, 464, 469, 471, 473, 476, - 479, 482, 487, 492, 495, 496, 501, 506, 508, 511, - 516, 521, 523, 526, 528, 531, 536, 541, 544, 546, - 549, 551, 553, 558, 563, 568, 571, 574, 578, 582, - 584, 586, 589, 592, 594, 596, 600, 602 -}; -static const short yyrhs[] = -{ - 78, 0, 80, 0, 79, 84, 127, 164, 151, 95, - 139, 145, 0, 42, 73, 81, 74, 0, 42, 73, - 80, 74, 0, 0, 1, 0, 82, 0, 81, 82, - 0, 43, 83, 0, 44, 83, 0, 45, 83, 0, - 46, 23, 0, 47, 83, 0, 48, 24, 75, 24, - 0, 49, 24, 75, 24, 0, 50, 83, 0, 72, - 23, 0, 51, 0, 52, 0, 85, 0, 0, 86, - 0, 85, 86, 0, 87, 73, 88, 74, 0, 87, - 73, 80, 74, 0, 3, 23, 0, 89, 0, 88, - 89, 0, 91, 0, 125, 0, 124, 0, 90, 0, - 71, 158, 0, 92, 0, 94, 0, 16, 109, 0, - 17, 0, 32, 109, 0, 68, 110, 0, 4, 0, - 4, 6, 73, 93, 74, 0, 4, 6, 73, 80, - 74, 0, 23, 0, 93, 23, 0, 7, 73, 112, - 74, 0, 18, 73, 117, 74, 0, 19, 73, 119, - 74, 0, 8, 73, 113, 74, 0, 7, 73, 80, - 74, 0, 18, 73, 80, 74, 0, 0, 95, 96, - 0, 98, 100, 74, 0, 98, 100, 74, 0, 39, - 99, 73, 0, 23, 0, 0, 101, 0, 100, 101, - 0, 36, 73, 102, 74, 0, 36, 73, 80, 74, - 0, 38, 104, 0, 37, 104, 0, 61, 0, 60, - 158, 0, 62, 0, 103, 0, 102, 103, 0, 23, - 0, 105, 73, 106, 107, 74, 0, 105, 73, 80, - 74, 0, 23, 0, 23, 0, 0, 108, 0, 23, - 0, 108, 23, 0, 0, 73, 121, 74, 0, 73, - 80, 74, 0, 0, 73, 111, 74, 0, 69, 24, - 0, 115, 0, 112, 115, 0, 114, 0, 113, 114, - 0, 115, 0, 15, 23, 0, 9, 73, 116, 74, - 0, 9, 73, 80, 74, 0, 121, 0, 23, 0, - 116, 23, 0, 118, 0, 117, 118, 0, 20, 23, - 0, 21, 73, 122, 74, 22, 23, 0, 21, 73, - 80, 74, 0, 121, 0, 35, 0, 120, 0, 117, - 120, 0, 118, 0, 15, 23, 0, 10, 23, 0, - 33, 23, 0, 123, 0, 122, 123, 0, 23, 0, - 5, 11, 0, 5, 12, 0, 25, 0, 30, 0, - 31, 0, 34, 23, 0, 97, 0, 40, 23, 0, - 63, 0, 67, 73, 126, 74, 0, 70, 0, 23, - 0, 126, 23, 0, 0, 128, 0, 129, 0, 128, - 129, 0, 130, 73, 131, 74, 0, 130, 73, 80, - 74, 0, 26, 23, 0, 132, 133, 0, 134, 132, - 0, 21, 13, 0, 136, 0, 135, 136, 0, 136, - 135, 0, 0, 134, 0, 65, 0, 27, 23, 0, - 21, 73, 137, 74, 0, 21, 73, 80, 74, 0, - 138, 0, 137, 138, 0, 23, 0, 140, 73, 141, - 74, 0, 140, 73, 80, 74, 0, 80, 0, 28, - 0, 142, 0, 141, 142, 0, 20, 23, 0, 21, - 73, 143, 74, 0, 21, 73, 80, 74, 0, 144, - 0, 138, 0, 143, 138, 0, 29, 23, 0, 64, - 83, 0, 41, 73, 146, 74, 0, 41, 73, 80, - 74, 0, 149, 147, 0, 0, 36, 73, 148, 74, - 0, 36, 73, 80, 74, 0, 138, 0, 148, 138, - 0, 21, 73, 150, 74, 0, 21, 73, 80, 74, - 0, 23, 0, 150, 23, 0, 152, 0, 151, 152, - 0, 153, 73, 154, 74, 0, 153, 73, 80, 74, - 0, 53, 23, 0, 155, 0, 154, 155, 0, 156, - 0, 157, 0, 54, 73, 160, 74, 0, 55, 73, - 161, 74, 0, 56, 73, 160, 74, 0, 58, 158, - 0, 59, 158, 0, 159, 131, 74, 0, 159, 80, - 74, 0, 73, 0, 161, 0, 160, 161, 0, 57, - 23, 0, 162, 0, 163, 0, 162, 76, 163, 0, - 23, 0, 60, 158, 0 -}; -#endif +/* Copy the second part of user declarations. */ -#if YYDEBUG -/* YYRLINE[YYN] -- source line where rule number YYN was defined. */ -static const short yyrline[] = -{ - 0, 62, 63, 66, 69, 70, 71, 76, 78, 79, - 82, 85, 88, 91, 94, 97, 100, 103, 106, 111, - 112, 115, 116, 121, 122, 125, 128, 133, 148, 149, - 152, 153, 154, 155, 158, 164, 165, 166, 170, 174, - 178, 184, 187, 190, 193, 197, 203, 207, 212, 217, - 226, 227, 230, 231, 234, 240, 251, 260, 263, 268, - 269, 272, 273, 274, 278, 283, 286, 290, 295, 296, - 299, 307, 308, 311, 322, 327, 330, 334, 339, 346, - 347, 348, 351, 352, 355, 360, 361, 364, 365, 368, - 369, 374, 375, 376, 379, 383, 389, 390, 393, 396, - 423, 424, 425, 430, 431, 434, 435, 440, 443, 448, - 453, 460, 468, 471, 476, 479, 482, 485, 495, 496, - 499, 502, 505, 510, 514, 520, 521, 524, 525, 528, - 532, 538, 548, 549, 552, 553, 554, 555, 558, 559, - 562, 567, 572, 573, 576, 579, 585, 599, 603, 607, - 610, 615, 616, 619, 622, 623, 624, 627, 630, 635, - 638, 643, 644, 647, 652, 653, 656, 662, 665, 671, - 675, 680, 702, 729, 730, 733, 737, 743, 757, 758, - 761, 765, 769, 772, 775, 780, 783, 786, 787, 793, - 803, 808, 818, 823, 830, 833, 843, 849 -}; -#endif +/* Line 214 of yacc.c. */ +#line 273 "fconfig.tab.c" -#if (YYDEBUG) || defined YYERROR_VERBOSE +#if ! defined (yyoverflow) || YYERROR_VERBOSE -/* YYTNAME[TOKEN_NUM] -- String name of the token TOKEN_NUM. */ -static const char *const yytname[] = -{ - "$", "error", "$undefined.", "FIELD", "STRINGTYPE", "QDEFAULT", - "MATCHING", "ENUM", "MULTIENUMTOK", "VALUES", "DEFAULT", "EXACT_REGEXP", - "INEXACT_REGEXP", "ALL", "FORMAT", "ENUMSEPARATORSTOK", "MULTITEXTTYPE", - "DATETYPE", "ENUM_IN_FILE", "MULTI_ENUM_IN_FILE", "PATHTOK", - "FIELDSTOK", "KEYTOK", "QSTRING", "INTVAL", "TEXTSEARCH", "QUERYTOK", - "FORMATTOK", "INDEXTOK", "SEPARATORTOK", "RESTRICTEDTOK", "NOSPACESTOK", - "INTEGERTOK", "INPUTDEFAULTTOK", "BUILTINTOK", "ALLOWANYVALUETOK", - "REQUIRETOK", "APPENDFIELDTOK", "SETFIELDTOK", "CHANGETOK", - "DESCRIPTIONTOK", "INPUTTOK", "DATABASEINFOTOK", "DEBUGMODETOK", - "KEEPRECTOK", "NOTIFYEXPTOK", "LIBEXECDIRTOK", "SUBMITTERACKTOK", - "BUSINESSDAYTOK", "BUSINESSWEEKTOK", "CREATECATEGORYDIRSTOK", - "FALSETOK", "TRUETOK", "MAILFORMATTOK", "TOADDRESSESTOK", - "FROMADDRESSTOK", "REPLYTOTOK", "FIXEDTOK", "BODYTOK", "HEADERTOK", - "AUDITTRAILFMTTOK", "ADDAUDITTRAILTOK", "REQUIRECHANGEREASONTOK", - "READONLYTOK", "BINARYINDEXTOK", "RAWTOK", "BADTOK", "AUXFLAGSTOK", - "PRLISTTOK", "MAXPRSTOK", "EDITONLYTOK", "VIRTUALFORMATTOK", - "CATPERMSTOK", "'{'", "'}'", "'-'", "'|'", "config", "configEnts", - "databaseInfo", "parseError", "databaseInfoList", "databaseInfoEnt", - "booleanVal", "fieldDecStmt", "fieldDecList", "fieldDec", - "startFieldDec", "fieldDataList", "fieldData", "virtualFieldFormat", - "fieldDataType", "stringType", "regexpList", "enumType", - "globalChangeEnts", "globalChangeEnt", "changeClause", "changeHeader", - "optChangeExpr", "changeOpts", "changeOpt", "reqFieldNameList", - "reqFieldNameEnt", "fieldEditOpts", "fieldEditName", "fieldEditFormat", - "optFieldEditFieldList", "fieldEditFieldList", "optSimple", - "prListOpts", "prListOptList", "enumcontents", "multienumcontents", - "multiEnumItem", "enumItem", "enumValueList", "enumFileContents", - "enumFileItem", "multiEnumFileContents", "multiEnumFileItem", - "defaultFieldVal", "enumFieldList", "enumFieldMember", "queryDefault", - "miscOptions", "auxFlagsList", "optQueryList", "queryList", "query", - "queryBegin", "queryFmt", "queryFieldDesc", "optQueryOpts", "queryOpts", - "queryPrintf", "queryfields", "queryFieldsList", "FieldListMember", - "indexDescription", "indexheader", "indexlist", "indexEnt", - "indexFieldList", "indexSep", "inputDescription", "inputEnt", - "requiredFields", "requiredFieldsList", "inputFields", - "inputFieldsList", "mailFormatList", "mailFormat", "mailFormatHeader", - "mailFormatBody", "mailFormatEnt", "bodyFormat", "headerFormat", - "plainFormat", "plainFormatHeader", "mailAddressList", "mailAddress", - "mailAddressTries", "MailAddressMember", "auditTrailFmt", 0 -}; -#endif - -/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ -static const short yyr1[] = -{ - 0, 77, 77, 78, 79, 79, 79, 80, 81, 81, - 82, 82, 82, 82, 82, 82, 82, 82, 82, 83, - 83, 84, 84, 85, 85, 86, 86, 87, 88, 88, - 89, 89, 89, 89, 90, 91, 91, 91, 91, 91, - 91, 92, 92, 92, 93, 93, 94, 94, 94, 94, - 94, 94, 95, 95, 96, 97, 98, 99, 99, 100, - 100, 101, 101, 101, 101, 101, 101, 101, 102, 102, - 103, 104, 104, 105, 106, 107, 107, 108, 108, 109, - 109, 109, 110, 110, 111, 112, 112, 113, 113, 114, - 114, 115, 115, 115, 116, 116, 117, 117, 118, 118, - 118, 118, 118, 119, 119, 120, 120, 121, 121, 122, - 122, 123, 124, 124, 125, 125, 125, 125, 125, 125, - 125, 125, 125, 126, 126, 127, 127, 128, 128, 129, - 129, 130, 131, 131, 132, 132, 132, 132, 133, 133, - 134, 135, 136, 136, 137, 137, 138, 139, 139, 139, - 140, 141, 141, 142, 142, 142, 142, 143, 143, 144, - 144, 145, 145, 146, 147, 147, 147, 148, 148, 149, - 149, 150, 150, 151, 151, 152, 152, 153, 154, 154, - 155, 155, 155, 155, 155, 156, 157, 158, 158, 159, - 160, 160, 161, 161, 162, 162, 163, 164 -}; - -/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ -static const short yyr2[] = -{ - 0, 1, 1, 8, 4, 4, 0, 1, 1, 2, - 2, 2, 2, 2, 2, 4, 4, 2, 2, 1, - 1, 1, 0, 1, 2, 4, 4, 2, 1, 2, - 1, 1, 1, 1, 2, 1, 1, 2, 1, 2, - 2, 1, 5, 5, 1, 2, 4, 4, 4, 4, - 4, 4, 0, 2, 3, 3, 3, 1, 0, 1, - 2, 4, 4, 2, 2, 1, 2, 1, 1, 2, - 1, 5, 4, 1, 1, 0, 1, 1, 2, 0, - 3, 3, 0, 3, 2, 1, 2, 1, 2, 1, - 2, 4, 4, 1, 1, 2, 1, 2, 2, 6, - 4, 1, 1, 1, 2, 1, 2, 2, 2, 1, - 2, 1, 2, 2, 1, 1, 1, 2, 1, 2, - 1, 4, 1, 1, 2, 0, 1, 1, 2, 4, - 4, 2, 2, 2, 2, 1, 2, 2, 0, 1, - 1, 2, 4, 4, 1, 2, 1, 4, 4, 1, - 1, 1, 2, 2, 4, 4, 1, 1, 2, 2, - 2, 4, 4, 2, 0, 4, 4, 1, 2, 4, - 4, 1, 2, 1, 2, 4, 4, 2, 1, 2, - 1, 1, 4, 4, 4, 2, 2, 3, 3, 1, - 1, 2, 2, 1, 1, 3, 1, 2 -}; - -/* YYDEFACT[S] -- default rule to reduce with in state S when YYTABLE - doesn't specify something else to do. Zero means the default is an - error. */ -static const short yydefact[] = -{ - 0, 7, 0, 1, 22, 2, 0, 0, 125, 21, - 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 8, 27, 0, 0, 126, 127, 0, - 24, 0, 19, 20, 10, 11, 12, 13, 14, 0, - 0, 17, 18, 5, 4, 9, 131, 0, 0, 128, - 0, 41, 0, 0, 0, 79, 38, 0, 0, 114, - 115, 116, 79, 0, 58, 0, 120, 0, 82, 122, - 0, 0, 0, 28, 33, 30, 35, 36, 118, 0, - 32, 31, 0, 0, 189, 197, 0, 0, 52, 173, - 0, 0, 0, 140, 0, 0, 138, 0, 0, 135, - 0, 112, 113, 0, 0, 0, 37, 0, 0, 39, - 117, 57, 0, 119, 0, 0, 40, 34, 26, 25, - 29, 0, 0, 0, 0, 65, 67, 0, 59, 15, - 16, 0, 0, 177, 0, 174, 0, 134, 0, 141, - 130, 129, 132, 139, 133, 0, 136, 137, 0, 0, - 0, 0, 0, 0, 85, 93, 0, 0, 87, 89, - 0, 0, 0, 0, 102, 0, 0, 96, 101, 0, - 0, 96, 0, 103, 56, 123, 0, 0, 0, 0, - 73, 64, 0, 63, 66, 55, 60, 188, 187, 150, - 149, 53, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 178, 180, 181, 146, 0, 0, 144, 44, - 0, 0, 0, 107, 108, 50, 46, 86, 90, 49, - 88, 81, 80, 98, 0, 51, 47, 97, 106, 97, - 104, 48, 124, 121, 84, 83, 70, 0, 0, 68, - 0, 0, 0, 3, 0, 0, 0, 0, 185, 186, - 176, 175, 179, 143, 142, 145, 43, 45, 42, 94, - 0, 0, 111, 0, 0, 109, 62, 61, 69, 74, - 0, 75, 54, 0, 0, 0, 0, 0, 0, 0, - 151, 156, 196, 0, 0, 190, 193, 194, 0, 0, - 92, 95, 91, 100, 0, 110, 72, 77, 0, 76, - 0, 0, 0, 164, 153, 0, 159, 160, 148, 147, - 152, 192, 182, 191, 0, 183, 184, 0, 71, 78, - 0, 162, 161, 0, 163, 0, 157, 0, 195, 99, - 171, 0, 0, 0, 155, 154, 158, 170, 172, 169, - 0, 167, 0, 166, 165, 168, 0, 0, 0 -}; - -static const short yydefgoto[] = -{ - 346, 3, 4, 5, 22, 23, 34, 8, 9, 10, - 11, 72, 73, 74, 75, 76, 211, 77, 134, 191, - 78, 79, 112, 127, 128, 238, 239, 181, 182, 271, - 298, 299, 106, 116, 178, 153, 157, 158, 159, 261, - 166, 167, 172, 173, 155, 264, 265, 80, 81, 176, - 26, 27, 28, 29, 95, 96, 142, 97, 98, 99, - 207, 208, 193, 194, 279, 280, 327, 281, 243, 302, - 324, 342, 303, 332, 88, 89, 90, 201, 202, 203, - 204, 85, 86, 284, 285, 286, 287, 48 -}; - -static const short yypact[] = -{ - 23,-32768, -52,-32768, 25,-32768, 7, 9, 12, 25, - -32768, -9, -15, -15, -15, 71, -15, 80, 82, -15, - 85, 36, 212,-32768,-32768, 96, 61, 12,-32768, 54, - -32768, 140,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 94, - 119,-32768,-32768,-32768,-32768,-32768,-32768, 79, 70,-32768, - 21, 154, 175, 108, 124, 127,-32768, 129, 131,-32768, - -32768,-32768, 127, 190, 213, 214,-32768, 162, 169,-32768, - 79, 171, 159,-32768,-32768,-32768,-32768,-32768,-32768, 187, - -32768,-32768, 219, 228,-32768,-32768, 21, 240, 70,-32768, - 193, 14, 245,-32768, 196, 197, 207, 2, 259, 256, - 215,-32768,-32768, 152, 186, 106,-32768, 211, 254,-32768, - -32768,-32768, 217,-32768, 262, 222,-32768,-32768,-32768,-32768, - -32768, 220, 269, 269, 79,-32768,-32768, 76,-32768,-32768, - -32768, 221, 224,-32768, 181,-32768, 34,-32768, 95,-32768, - -32768,-32768,-32768,-32768,-32768, 229,-32768,-32768, 132, 230, - 271, 273, 226, 8,-32768,-32768, 278, 0,-32768,-32768, - 231, 232, 281, 234,-32768, 235, 10,-32768,-32768, 285, - 254, 236, 237,-32768,-32768,-32768, 17, 288, 239, 182, - -32768,-32768, 242,-32768,-32768,-32768,-32768,-32768,-32768,-32768, - -32768,-32768, 187, 275, 244, 246, 247, 248, 79, 79, - 249, 223,-32768,-32768,-32768,-32768, 251, 24,-32768,-32768, - 252, 46, 191,-32768,-32768,-32768,-32768,-32768,-32768,-32768, - -32768,-32768,-32768,-32768, 227,-32768,-32768,-32768,-32768, 236, - -32768,-32768,-32768,-32768,-32768,-32768,-32768, 255, 48,-32768, - 250, 179, 257,-32768, 38, 86, 86, 86,-32768,-32768, - -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, - 258, 50,-32768, 260, 52,-32768,-32768,-32768,-32768,-32768, - 261, 295,-32768, 167, 299, 263, 301, -15, 264, 41, - -32768,-32768,-32768, 305, -11,-32768, 265,-32768, 266, 11, - -32768,-32768,-32768,-32768, 309,-32768,-32768,-32768, 268, 310, - 270, 272, 274, 303,-32768, 95,-32768,-32768,-32768,-32768, - -32768,-32768,-32768,-32768, 314,-32768,-32768, 321,-32768,-32768, - 253,-32768,-32768, 276,-32768, 277,-32768, 55,-32768,-32768, - -32768, 279, 72, 95,-32768,-32768,-32768,-32768,-32768,-32768, - 280,-32768, 77,-32768,-32768,-32768, 345, 347,-32768 -}; - -static const short yypgoto[] = -{ - -32768,-32768,-32768, -6,-32768, 328, -12,-32768,-32768, 343, - -32768,-32768, 283,-32768,-32768,-32768,-32768,-32768,-32768,-32768, - -32768, 225,-32768, 164, -124,-32768, 120, 238,-32768,-32768, - -32768,-32768, 298,-32768,-32768,-32768,-32768, 200, -87,-32768, - 267, -89,-32768, 192, -94,-32768, 99,-32768,-32768,-32768, - -32768,-32768, 337,-32768, 282, 284,-32768, 286, 287, 289, - -32768, -202,-32768,-32768,-32768, 87,-32768,-32768,-32768,-32768, - -32768,-32768,-32768,-32768,-32768, 290,-32768,-32768, 166,-32768, - -32768, -64,-32768, 118, -135,-32768, 56,-32768 -}; - - -#define YYLAST 387 - - -static const short yytable[] = -{ - 21, 35, 36, 186, 38, 255, 117, 41, 1, 149, - 150, 161, 282, 168, 168, 156, 154, 149, 150, 171, - 150, 6, 1, 91, 1, 71, -6, 137, 7, 92, - 162, 163, 24, 151, 282, 1, 32, 33, 25, 1, - 232, 151, 91, 151, 94, 164, 283, 205, 92, -6, - 12, 13, 14, 15, 16, 17, 18, 19, 274, 275, - 184, 274, 275, 312, 31, 2, 217, 276, 283, 257, - 276, 236, 168, 291, 219, 262, 168, 227, 205, 20, - 131, 229, 216, -6, 226, 316, 93, 138, 195, 196, - 197, 233, 198, 199, 37, 338, 1, 152, 254, 160, - 205, 165, 277, 326, 39, 277, 40, 1, 42, 282, - 43, 288, 121, 122, 123, 309, 150, 186, 205, 46, - 258, 47, 267, 87, 292, 336, 294, 50, 190, 335, - 200, 341, 206, 1, 248, 249, 124, 125, 126, 151, - 345, 1, 210, 283, 51, 52, 339, 53, 54, 313, - 185, 344, 84, 1, 313, 209, 55, 56, 57, 58, - 100, 149, 150, 51, 52, 59, 53, 54, 1, 82, - 60, 61, 62, 237, 63, 55, 56, 57, 58, 64, - 65, 103, 1, 1, 59, 151, 101, 102, 300, 60, - 61, 62, 1, 63, 83, 149, 150, 104, 64, 65, - 105, 156, 107, 66, 108, 236, 260, 67, 68, 189, - 69, 70, 1, 110, 259, 121, 122, 123, 263, 151, - 64, 150, 66, 121, 122, 123, 67, 68, 1, 69, - 70, 162, 163, 119, 270, 114, 111, 113, 278, 124, - 125, 126, 115, 129, 151, 118, 164, 124, 125, 126, - 262, 1, 130, 272, 1, 12, 13, 14, 15, 16, - 17, 18, 19, 133, 150, 307, 136, 301, 139, 169, - 140, 141, 93, 269, 162, 163, 330, 195, 196, 197, - 145, 198, 199, 92, 20, 175, 44, 151, 148, 164, - 174, 177, 180, 179, 213, 187, 214, 251, 188, 325, - 215, 218, 138, 212, 223, 221, 222, 224, 228, 225, - -105, 231, 234, 235, 331, 240, 242, 244, 297, 245, - 246, 247, 304, 250, 306, 253, 256, 340, 311, 266, - 273, 317, 290, 319, 293, 296, 305, 282, 308, 323, - 315, 314, 318, 320, 329, 347, 321, 348, 322, 333, - 45, 334, 30, 337, 343, 120, 241, 220, 268, 192, - 109, 183, 230, 295, 49, 289, 310, 252, 132, 0, - 328, 0, 0, 0, 0, 170, 0, 0, 135, 0, - 0, 144, 143, 0, 0, 0, 147, 146 -}; - -static const short yycheck[] = -{ - 6, 13, 14, 127, 16, 207, 70, 19, 1, 9, - 10, 105, 23, 107, 108, 15, 103, 9, 10, 108, - 10, 73, 1, 21, 1, 31, 3, 13, 3, 27, - 20, 21, 23, 33, 23, 1, 51, 52, 26, 1, - 23, 33, 21, 33, 50, 35, 57, 23, 27, 26, - 43, 44, 45, 46, 47, 48, 49, 50, 20, 21, - 124, 20, 21, 74, 73, 42, 153, 29, 57, 23, - 29, 23, 166, 23, 74, 23, 170, 166, 23, 72, - 86, 170, 74, 60, 74, 74, 65, 73, 54, 55, - 56, 74, 58, 59, 23, 23, 1, 103, 74, 105, - 23, 107, 64, 305, 24, 64, 24, 1, 23, 23, - 74, 246, 36, 37, 38, 74, 10, 241, 23, 23, - 74, 60, 74, 53, 74, 327, 74, 73, 134, 74, - 136, 333, 138, 1, 198, 199, 60, 61, 62, 33, - 342, 1, 148, 57, 4, 5, 74, 7, 8, 284, - 74, 74, 73, 1, 289, 23, 16, 17, 18, 19, - 6, 9, 10, 4, 5, 25, 7, 8, 1, 75, - 30, 31, 32, 179, 34, 16, 17, 18, 19, 39, - 40, 73, 1, 1, 25, 33, 11, 12, 21, 30, - 31, 32, 1, 34, 75, 9, 10, 73, 39, 40, - 73, 15, 73, 63, 73, 23, 212, 67, 68, 28, - 70, 71, 1, 23, 23, 36, 37, 38, 224, 33, - 39, 10, 63, 36, 37, 38, 67, 68, 1, 70, - 71, 20, 21, 74, 240, 73, 23, 23, 244, 60, - 61, 62, 73, 24, 33, 74, 35, 60, 61, 62, - 23, 1, 24, 74, 1, 43, 44, 45, 46, 47, - 48, 49, 50, 23, 10, 277, 73, 273, 23, 15, - 74, 74, 65, 23, 20, 21, 23, 54, 55, 56, - 21, 58, 59, 27, 72, 23, 74, 33, 73, 35, - 73, 69, 23, 73, 23, 74, 23, 74, 74, 305, - 74, 23, 73, 73, 23, 74, 74, 73, 23, 74, - 74, 74, 24, 74, 320, 73, 41, 73, 23, 73, - 73, 73, 23, 74, 23, 74, 74, 333, 23, 74, - 73, 22, 74, 23, 74, 74, 73, 23, 74, 36, - 74, 76, 74, 73, 23, 0, 74, 0, 74, 73, - 22, 74, 9, 74, 74, 72, 192, 157, 238, 134, - 62, 123, 170, 264, 27, 247, 279, 201, 86, -1, - 314, -1, -1, -1, -1, 108, -1, -1, 88, -1, - -1, 97, 96, -1, -1, -1, 99, 98 -}; -/* -*-C-*- Note some compilers choke on comments on `#line' lines. */ -#line 3 "/usr/share/bison/bison.simple" - -/* Skeleton output parser for bison, - - Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002 Free Software - Foundation, Inc. - - This program is free software; you can 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., 59 Temple Place - Suite 330, - Boston, MA 02111-1307, USA. */ - -/* As a special exception, when this file is copied by Bison into a - Bison output file, you may use that output file without restriction. - This special exception was added by the Free Software Foundation - in version 1.24 of Bison. */ - -/* This is the parser code that is written into each bison parser when - the %semantic_parser declaration is not specified in the grammar. - It was written by Richard Stallman by simplifying the hairy parser - used when %semantic_parser is specified. */ - -/* All symbols defined below should begin with yy or YY, to avoid - infringing on user name space. This should be done even for local - variables, as they might otherwise be expanded by user macros. - There are some unavoidable exceptions within include files to - define necessary library symbols; they are noted "INFRINGES ON - USER NAME SPACE" below. */ - -#if ! defined (yyoverflow) || defined (YYERROR_VERBOSE) +# ifndef YYFREE +# define YYFREE free +# endif +# ifndef YYMALLOC +# define YYMALLOC malloc +# endif /* The parser invokes alloca or malloc; define the necessary symbols. */ -# if YYSTACK_USE_ALLOCA -# define YYSTACK_ALLOC alloca +# ifdef YYSTACK_USE_ALLOCA +# if YYSTACK_USE_ALLOCA +# define YYSTACK_ALLOC alloca +# endif # else -# ifndef YYSTACK_USE_ALLOCA -# if defined (alloca) || defined (_ALLOCA_H) -# define YYSTACK_ALLOC alloca -# else -# ifdef __GNUC__ -# define YYSTACK_ALLOC __builtin_alloca -# endif +# if defined (alloca) || defined (_ALLOCA_H) +# define YYSTACK_ALLOC alloca +# else +# ifdef __GNUC__ +# define YYSTACK_ALLOC __builtin_alloca # endif # endif # endif @@ -646,45 +304,36 @@ # include /* INFRINGES ON USER NAME SPACE */ # define YYSIZE_T size_t # endif -# define YYSTACK_ALLOC malloc -# define YYSTACK_FREE free +# define YYSTACK_ALLOC YYMALLOC +# define YYSTACK_FREE YYFREE # endif -#endif /* ! defined (yyoverflow) || defined (YYERROR_VERBOSE) */ +#endif /* ! defined (yyoverflow) || YYERROR_VERBOSE */ #if (! defined (yyoverflow) \ && (! defined (__cplusplus) \ - || (YYLTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL))) + || (defined (YYSTYPE_IS_TRIVIAL) && YYSTYPE_IS_TRIVIAL))) /* A type that is properly aligned for any stack member. */ union yyalloc { - short yyss; + short int yyss; YYSTYPE yyvs; -# if YYLSP_NEEDED - YYLTYPE yyls; -# endif -}; + }; /* The size of the maximum gap between one aligned stack and the next. */ -# define YYSTACK_GAP_MAX (sizeof (union yyalloc) - 1) +# define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1) /* The size of an array large to enough to hold all stacks, each with N elements. */ -# if YYLSP_NEEDED -# define YYSTACK_BYTES(N) \ - ((N) * (sizeof (short) + sizeof (YYSTYPE) + sizeof (YYLTYPE)) \ - + 2 * YYSTACK_GAP_MAX) -# else -# define YYSTACK_BYTES(N) \ - ((N) * (sizeof (short) + sizeof (YYSTYPE)) \ - + YYSTACK_GAP_MAX) -# endif +# define YYSTACK_BYTES(N) \ + ((N) * (sizeof (short int) + sizeof (YYSTYPE)) \ + + YYSTACK_GAP_MAXIMUM) /* Copy COUNT objects from FROM to TO. The source and destination do not overlap. */ # ifndef YYCOPY -# if 1 < __GNUC__ +# if defined (__GNUC__) && 1 < __GNUC__ # define YYCOPY(To, From, Count) \ __builtin_memcpy (To, From, (Count) * sizeof (*(From))) # else @@ -710,13 +359,554 @@ YYSIZE_T yynewbytes; \ YYCOPY (&yyptr->Stack, Stack, yysize); \ Stack = &yyptr->Stack; \ - yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAX; \ + yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \ yyptr += yynewbytes / sizeof (*yyptr); \ } \ while (0) #endif +#if defined (__STDC__) || defined (__cplusplus) + typedef signed char yysigned_char; +#else + typedef short int yysigned_char; +#endif + +/* YYFINAL -- State number of the termination state. */ +#define YYFINAL 8 +/* YYLAST -- Last index in YYTABLE. */ +#define YYLAST 395 + +/* YYNTOKENS -- Number of terminals. */ +#define YYNTOKENS 77 +/* YYNNTS -- Number of nonterminals. */ +#define YYNNTS 89 +/* YYNRULES -- Number of rules. */ +#define YYNRULES 198 +/* YYNRULES -- Number of states. */ +#define YYNSTATES 348 + +/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ +#define YYUNDEFTOK 2 +#define YYMAXUTOK 327 + +#define YYTRANSLATE(YYX) \ + ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) + +/* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */ +static const unsigned char yytranslate[] = +{ + 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 75, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 73, 76, 74, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 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, 31, 32, 33, 34, + 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, + 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, + 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, + 65, 66, 67, 68, 69, 70, 71, 72 +}; + +#if YYDEBUG +/* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in + YYRHS. */ +static const unsigned short int yyprhs[] = +{ + 0, 0, 3, 5, 7, 16, 21, 26, 27, 29, + 31, 34, 37, 40, 43, 46, 49, 54, 59, 62, + 65, 67, 69, 71, 72, 74, 77, 82, 87, 90, + 92, 95, 97, 99, 101, 103, 106, 108, 110, 113, + 115, 118, 121, 123, 129, 135, 137, 140, 145, 150, + 155, 160, 165, 170, 171, 174, 178, 182, 186, 188, + 189, 191, 194, 199, 204, 207, 210, 212, 215, 217, + 219, 222, 224, 230, 235, 237, 239, 240, 242, 244, + 247, 248, 252, 256, 257, 261, 264, 266, 269, 271, + 274, 276, 279, 284, 289, 291, 293, 296, 298, 301, + 304, 311, 316, 318, 320, 322, 325, 327, 330, 333, + 336, 338, 341, 343, 346, 349, 351, 353, 355, 358, + 360, 363, 365, 370, 372, 374, 377, 378, 380, 382, + 385, 390, 395, 398, 401, 404, 407, 409, 412, 415, + 416, 418, 420, 423, 428, 433, 435, 438, 440, 445, + 450, 452, 454, 456, 459, 462, 467, 472, 474, 476, + 479, 482, 485, 490, 495, 498, 499, 504, 509, 511, + 514, 519, 524, 526, 529, 531, 534, 539, 544, 547, + 549, 552, 554, 556, 561, 566, 571, 574, 577, 581, + 585, 587, 589, 592, 595, 597, 599, 603, 605 +}; + +/* YYRHS -- A `-1'-separated list of the rules' RHS. */ +static const short int yyrhs[] = +{ + 78, 0, -1, 79, -1, 81, -1, 80, 85, 128, + 165, 152, 96, 140, 146, -1, 42, 73, 82, 74, + -1, 42, 73, 81, 74, -1, -1, 1, -1, 83, + -1, 82, 83, -1, 43, 84, -1, 44, 84, -1, + 45, 84, -1, 46, 23, -1, 47, 84, -1, 48, + 24, 75, 24, -1, 49, 24, 75, 24, -1, 50, + 84, -1, 72, 23, -1, 51, -1, 52, -1, 86, + -1, -1, 87, -1, 86, 87, -1, 88, 73, 89, + 74, -1, 88, 73, 81, 74, -1, 3, 23, -1, + 90, -1, 89, 90, -1, 92, -1, 126, -1, 125, + -1, 91, -1, 71, 159, -1, 93, -1, 95, -1, + 16, 110, -1, 17, -1, 32, 110, -1, 68, 111, + -1, 4, -1, 4, 6, 73, 94, 74, -1, 4, + 6, 73, 81, 74, -1, 23, -1, 94, 23, -1, + 7, 73, 113, 74, -1, 18, 73, 118, 74, -1, + 19, 73, 120, 74, -1, 8, 73, 114, 74, -1, + 7, 73, 81, 74, -1, 18, 73, 81, 74, -1, + -1, 96, 97, -1, 99, 101, 74, -1, 99, 101, + 74, -1, 39, 100, 73, -1, 23, -1, -1, 102, + -1, 101, 102, -1, 36, 73, 103, 74, -1, 36, + 73, 81, 74, -1, 38, 105, -1, 37, 105, -1, + 61, -1, 60, 159, -1, 62, -1, 104, -1, 103, + 104, -1, 23, -1, 106, 73, 107, 108, 74, -1, + 106, 73, 81, 74, -1, 23, -1, 23, -1, -1, + 109, -1, 23, -1, 109, 23, -1, -1, 73, 122, + 74, -1, 73, 81, 74, -1, -1, 73, 112, 74, + -1, 69, 24, -1, 116, -1, 113, 116, -1, 115, + -1, 114, 115, -1, 116, -1, 15, 23, -1, 9, + 73, 117, 74, -1, 9, 73, 81, 74, -1, 122, + -1, 23, -1, 117, 23, -1, 119, -1, 118, 119, + -1, 20, 23, -1, 21, 73, 123, 74, 22, 23, + -1, 21, 73, 81, 74, -1, 122, -1, 35, -1, + 121, -1, 118, 121, -1, 119, -1, 15, 23, -1, + 10, 23, -1, 33, 23, -1, 124, -1, 123, 124, + -1, 23, -1, 5, 11, -1, 5, 12, -1, 25, + -1, 30, -1, 31, -1, 34, 23, -1, 98, -1, + 40, 23, -1, 63, -1, 67, 73, 127, 74, -1, + 70, -1, 23, -1, 127, 23, -1, -1, 129, -1, + 130, -1, 129, 130, -1, 131, 73, 132, 74, -1, + 131, 73, 81, 74, -1, 26, 23, -1, 133, 134, + -1, 135, 133, -1, 21, 13, -1, 137, -1, 136, + 137, -1, 137, 136, -1, -1, 135, -1, 65, -1, + 27, 23, -1, 21, 73, 138, 74, -1, 21, 73, + 81, 74, -1, 139, -1, 138, 139, -1, 23, -1, + 141, 73, 142, 74, -1, 141, 73, 81, 74, -1, + 81, -1, 28, -1, 143, -1, 142, 143, -1, 20, + 23, -1, 21, 73, 144, 74, -1, 21, 73, 81, + 74, -1, 145, -1, 139, -1, 144, 139, -1, 29, + 23, -1, 64, 84, -1, 41, 73, 147, 74, -1, + 41, 73, 81, 74, -1, 150, 148, -1, -1, 36, + 73, 149, 74, -1, 36, 73, 81, 74, -1, 139, + -1, 149, 139, -1, 21, 73, 151, 74, -1, 21, + 73, 81, 74, -1, 23, -1, 151, 23, -1, 153, + -1, 152, 153, -1, 154, 73, 155, 74, -1, 154, + 73, 81, 74, -1, 53, 23, -1, 156, -1, 155, + 156, -1, 157, -1, 158, -1, 54, 73, 161, 74, + -1, 55, 73, 162, 74, -1, 56, 73, 161, 74, + -1, 58, 159, -1, 59, 159, -1, 160, 132, 74, + -1, 160, 81, 74, -1, 73, -1, 162, -1, 161, + 162, -1, 57, 23, -1, 163, -1, 164, -1, 163, + 76, 164, -1, 23, -1, 60, 159, -1 +}; + +/* YYRLINE[YYN] -- source line where rule number YYN was defined. */ +static const unsigned short int yyrline[] = +{ + 0, 62, 62, 63, 66, 69, 70, 71, 76, 78, + 79, 82, 85, 88, 91, 94, 97, 100, 103, 106, + 111, 112, 115, 116, 121, 122, 125, 128, 133, 148, + 149, 152, 153, 154, 155, 158, 164, 165, 166, 170, + 174, 178, 184, 187, 190, 193, 197, 203, 207, 212, + 217, 226, 227, 230, 231, 234, 240, 251, 260, 263, + 268, 269, 272, 273, 274, 278, 283, 286, 290, 295, + 296, 299, 307, 308, 311, 322, 327, 330, 334, 339, + 346, 347, 348, 351, 352, 355, 360, 361, 364, 365, + 368, 369, 374, 375, 376, 379, 383, 389, 390, 393, + 396, 423, 424, 425, 430, 431, 434, 435, 440, 443, + 448, 453, 460, 468, 471, 476, 479, 482, 485, 495, + 496, 499, 502, 505, 510, 514, 520, 521, 524, 525, + 528, 532, 538, 548, 549, 552, 553, 554, 555, 558, + 559, 562, 567, 572, 573, 576, 579, 585, 599, 603, + 607, 610, 615, 616, 619, 622, 623, 624, 627, 630, + 635, 638, 643, 644, 647, 652, 653, 656, 662, 665, + 671, 675, 680, 702, 729, 730, 733, 737, 743, 757, + 758, 761, 765, 769, 772, 775, 780, 783, 786, 787, + 793, 803, 808, 818, 823, 830, 833, 843, 849 +}; +#endif + +#if YYDEBUG || YYERROR_VERBOSE +/* YYTNME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM. + First, the terminals, then, starting at YYNTOKENS, nonterminals. */ +static const char *const yytname[] = +{ + "$end", "error", "$undefined", "FIELD", "STRINGTYPE", "QDEFAULT", + "MATCHING", "ENUM", "MULTIENUMTOK", "VALUES", "DEFAULT", "EXACT_REGEXP", + "INEXACT_REGEXP", "ALL", "FORMAT", "ENUMSEPARATORSTOK", "MULTITEXTTYPE", + "DATETYPE", "ENUM_IN_FILE", "MULTI_ENUM_IN_FILE", "PATHTOK", "FIELDSTOK", + "KEYTOK", "QSTRING", "INTVAL", "TEXTSEARCH", "QUERYTOK", "FORMATTOK", + "INDEXTOK", "SEPARATORTOK", "RESTRICTEDTOK", "NOSPACESTOK", "INTEGERTOK", + "INPUTDEFAULTTOK", "BUILTINTOK", "ALLOWANYVALUETOK", "REQUIRETOK", + "APPENDFIELDTOK", "SETFIELDTOK", "CHANGETOK", "DESCRIPTIONTOK", + "INPUTTOK", "DATABASEINFOTOK", "DEBUGMODETOK", "KEEPRECTOK", + "NOTIFYEXPTOK", "LIBEXECDIRTOK", "SUBMITTERACKTOK", "BUSINESSDAYTOK", + "BUSINESSWEEKTOK", "CREATECATEGORYDIRSTOK", "FALSETOK", "TRUETOK", + "MAILFORMATTOK", "TOADDRESSESTOK", "FROMADDRESSTOK", "REPLYTOTOK", + "FIXEDTOK", "BODYTOK", "HEADERTOK", "AUDITTRAILFMTTOK", + "ADDAUDITTRAILTOK", "REQUIRECHANGEREASONTOK", "READONLYTOK", + "BINARYINDEXTOK", "RAWTOK", "BADTOK", "AUXFLAGSTOK", "PRLISTTOK", + "MAXPRSTOK", "EDITONLYTOK", "VIRTUALFORMATTOK", "CATPERMSTOK", "'{'", + "'}'", "'-'", "'|'", "$accept", "config", "configEnts", "databaseInfo", + "parseError", "databaseInfoList", "databaseInfoEnt", "booleanVal", + "fieldDecStmt", "fieldDecList", "fieldDec", "startFieldDec", + "fieldDataList", "fieldData", "virtualFieldFormat", "fieldDataType", + "stringType", "regexpList", "enumType", "globalChangeEnts", + "globalChangeEnt", "changeClause", "changeHeader", "optChangeExpr", + "changeOpts", "changeOpt", "reqFieldNameList", "reqFieldNameEnt", + "fieldEditOpts", "fieldEditName", "fieldEditFormat", + "optFieldEditFieldList", "fieldEditFieldList", "optSimple", "prListOpts", + "prListOptList", "enumcontents", "multienumcontents", "multiEnumItem", + "enumItem", "enumValueList", "enumFileContents", "enumFileItem", + "multiEnumFileContents", "multiEnumFileItem", "defaultFieldVal", + "enumFieldList", "enumFieldMember", "queryDefault", "miscOptions", + "auxFlagsList", "optQueryList", "queryList", "query", "queryBegin", + "queryFmt", "queryFieldDesc", "optQueryOpts", "queryOpts", "queryPrintf", + "queryfields", "queryFieldsList", "FieldListMember", "indexDescription", + "indexheader", "indexlist", "indexEnt", "indexFieldList", "indexSep", + "inputDescription", "inputEnt", "requiredFields", "requiredFieldsList", + "inputFields", "inputFieldsList", "mailFormatList", "mailFormat", + "mailFormatHeader", "mailFormatBody", "mailFormatEnt", "bodyFormat", + "headerFormat", "plainFormat", "plainFormatHeader", "mailAddressList", + "mailAddress", "mailAddressTries", "MailAddressMember", "auditTrailFmt", 0 +}; +#endif + +# ifdef YYPRINT +/* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to + token YYLEX-NUM. */ +static const unsigned short int yytoknum[] = +{ + 0, 256, 257, 258, 259, 260, 261, 262, 263, 264, + 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, + 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, + 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, + 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, + 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, + 325, 326, 327, 123, 125, 45, 124 +}; +# endif + +/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ +static const unsigned char yyr1[] = +{ + 0, 77, 78, 78, 79, 80, 80, 80, 81, 82, + 82, 83, 83, 83, 83, 83, 83, 83, 83, 83, + 84, 84, 85, 85, 86, 86, 87, 87, 88, 89, + 89, 90, 90, 90, 90, 91, 92, 92, 92, 92, + 92, 92, 93, 93, 93, 94, 94, 95, 95, 95, + 95, 95, 95, 96, 96, 97, 98, 99, 100, 100, + 101, 101, 102, 102, 102, 102, 102, 102, 102, 103, + 103, 104, 105, 105, 106, 107, 108, 108, 109, 109, + 110, 110, 110, 111, 111, 112, 113, 113, 114, 114, + 115, 115, 116, 116, 116, 117, 117, 118, 118, 119, + 119, 119, 119, 119, 120, 120, 121, 121, 122, 122, + 123, 123, 124, 125, 125, 126, 126, 126, 126, 126, + 126, 126, 126, 126, 127, 127, 128, 128, 129, 129, + 130, 130, 131, 132, 132, 133, 133, 133, 133, 134, + 134, 135, 136, 137, 137, 138, 138, 139, 140, 140, + 140, 141, 142, 142, 143, 143, 143, 143, 144, 144, + 145, 145, 146, 146, 147, 148, 148, 148, 149, 149, + 150, 150, 151, 151, 152, 152, 153, 153, 154, 155, + 155, 156, 156, 156, 156, 156, 157, 158, 159, 159, + 160, 161, 161, 162, 162, 163, 163, 164, 165 +}; + +/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ +static const unsigned char yyr2[] = +{ + 0, 2, 1, 1, 8, 4, 4, 0, 1, 1, + 2, 2, 2, 2, 2, 2, 4, 4, 2, 2, + 1, 1, 1, 0, 1, 2, 4, 4, 2, 1, + 2, 1, 1, 1, 1, 2, 1, 1, 2, 1, + 2, 2, 1, 5, 5, 1, 2, 4, 4, 4, + 4, 4, 4, 0, 2, 3, 3, 3, 1, 0, + 1, 2, 4, 4, 2, 2, 1, 2, 1, 1, + 2, 1, 5, 4, 1, 1, 0, 1, 1, 2, + 0, 3, 3, 0, 3, 2, 1, 2, 1, 2, + 1, 2, 4, 4, 1, 1, 2, 1, 2, 2, + 6, 4, 1, 1, 1, 2, 1, 2, 2, 2, + 1, 2, 1, 2, 2, 1, 1, 1, 2, 1, + 2, 1, 4, 1, 1, 2, 0, 1, 1, 2, + 4, 4, 2, 2, 2, 2, 1, 2, 2, 0, + 1, 1, 2, 4, 4, 1, 2, 1, 4, 4, + 1, 1, 1, 2, 2, 4, 4, 1, 1, 2, + 2, 2, 4, 4, 2, 0, 4, 4, 1, 2, + 4, 4, 1, 2, 1, 2, 4, 4, 2, 1, + 2, 1, 1, 4, 4, 4, 2, 2, 3, 3, + 1, 1, 2, 2, 1, 1, 3, 1, 2 +}; + +/* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state + STATE-NUM when YYTABLE doesn't specify something else to do. Zero + means the default is an error. */ +static const unsigned char yydefact[] = +{ + 0, 8, 0, 0, 2, 23, 3, 0, 1, 0, + 126, 22, 24, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 9, 28, 0, 0, 127, + 128, 0, 25, 0, 20, 21, 11, 12, 13, 14, + 15, 0, 0, 18, 19, 6, 5, 10, 132, 0, + 0, 129, 0, 42, 0, 0, 0, 80, 39, 0, + 0, 115, 116, 117, 80, 0, 59, 0, 121, 0, + 83, 123, 0, 0, 0, 29, 34, 31, 36, 37, + 119, 0, 33, 32, 0, 0, 190, 198, 0, 0, + 53, 174, 0, 0, 0, 141, 0, 0, 139, 0, + 0, 136, 0, 113, 114, 0, 0, 0, 38, 0, + 0, 40, 118, 58, 0, 120, 0, 0, 41, 35, + 27, 26, 30, 0, 0, 0, 0, 66, 68, 0, + 60, 16, 17, 0, 0, 178, 0, 175, 0, 135, + 0, 142, 131, 130, 133, 140, 134, 0, 137, 138, + 0, 0, 0, 0, 0, 0, 86, 94, 0, 0, + 88, 90, 0, 0, 0, 0, 103, 0, 0, 97, + 102, 0, 0, 97, 0, 104, 57, 124, 0, 0, + 0, 0, 74, 65, 0, 64, 67, 56, 61, 189, + 188, 151, 150, 54, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 179, 181, 182, 147, 0, 0, + 145, 45, 0, 0, 0, 108, 109, 51, 47, 87, + 91, 50, 89, 82, 81, 99, 0, 52, 48, 98, + 107, 98, 105, 49, 125, 122, 85, 84, 71, 0, + 0, 69, 0, 0, 0, 4, 0, 0, 0, 0, + 186, 187, 177, 176, 180, 144, 143, 146, 44, 46, + 43, 95, 0, 0, 112, 0, 0, 110, 63, 62, + 70, 75, 0, 76, 55, 0, 0, 0, 0, 0, + 0, 0, 152, 157, 197, 0, 0, 191, 194, 195, + 0, 0, 93, 96, 92, 101, 0, 111, 73, 78, + 0, 77, 0, 0, 0, 165, 154, 0, 160, 161, + 149, 148, 153, 193, 183, 192, 0, 184, 185, 0, + 72, 79, 0, 163, 162, 0, 164, 0, 158, 0, + 196, 100, 172, 0, 0, 0, 156, 155, 159, 171, + 173, 170, 0, 168, 0, 167, 166, 169 +}; + +/* YYDEFGOTO[NTERM-NUM]. */ +static const short int yydefgoto[] = +{ + -1, 3, 4, 5, 6, 24, 25, 36, 10, 11, + 12, 13, 74, 75, 76, 77, 78, 213, 79, 136, + 193, 80, 81, 114, 129, 130, 240, 241, 183, 184, + 273, 300, 301, 108, 118, 180, 155, 159, 160, 161, + 263, 168, 169, 174, 175, 157, 266, 267, 82, 83, + 178, 28, 29, 30, 31, 97, 98, 144, 99, 100, + 101, 209, 210, 195, 196, 281, 282, 329, 283, 245, + 304, 326, 344, 305, 334, 90, 91, 92, 203, 204, + 205, 206, 87, 88, 286, 287, 288, 289, 50 +}; + +/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing + STATE-NUM. */ +#define YYPACT_NINF -204 +static const short int yypact[] = +{ + 65, -204, -52, 27, -204, 20, -204, 4, -204, 9, + 14, 20, -204, -43, 206, 206, 206, 11, 206, 18, + 70, 206, 21, 22, 197, -204, -204, 138, 52, 14, + -204, 46, -204, 141, -204, -204, -204, -204, -204, -204, + -204, 101, 124, -204, -204, -204, -204, -204, -204, 92, + 110, -204, 38, 187, 158, 130, 145, 150, -204, 159, + 186, -204, -204, -204, 150, 247, 250, 251, -204, 202, + 203, -204, 92, 204, 53, -204, -204, -204, -204, -204, + -204, 192, -204, -204, 253, 256, -204, -204, 38, 258, + 110, -204, 210, 7, 261, -204, 211, 212, 222, -2, + 267, 262, 217, -204, -204, 215, 246, 200, -204, 167, + 216, -204, -204, -204, 218, -204, 269, 224, -204, -204, + -204, -204, -204, 221, 272, 272, 92, -204, -204, 153, + -204, -204, -204, 223, 225, -204, 166, -204, 96, -204, + 23, -204, -204, -204, -204, -204, -204, 228, -204, -204, + 107, 229, 273, 275, 230, 3, -204, -204, 280, 0, + -204, -204, 231, 232, 284, 235, -204, 236, 8, -204, + -204, 286, 216, 238, 239, -204, -204, -204, 12, 287, + 240, 121, -204, -204, 243, -204, -204, -204, -204, -204, + -204, -204, -204, -204, 192, 276, 245, 248, 252, 254, + 92, 92, 255, 208, -204, -204, -204, -204, 257, 40, + -204, -204, 259, 41, 183, -204, -204, -204, -204, -204, + -204, -204, -204, -204, -204, -204, 194, -204, -204, -204, + -204, 238, -204, -204, -204, -204, -204, -204, -204, 260, + 82, -204, 237, 160, 263, -204, 89, 44, 44, 44, + -204, -204, -204, -204, -204, -204, -204, -204, -204, -204, + -204, -204, 264, 88, -204, 265, 90, -204, -204, -204, + -204, -204, 266, 296, -204, 10, 297, 268, 299, 206, + 270, 118, -204, -204, -204, 300, -1, -204, 271, -204, + 274, 32, -204, -204, -204, -204, 302, -204, -204, -204, + 277, 303, 279, 281, 282, 294, -204, 23, -204, -204, + -204, -204, -204, -204, -204, -204, 309, -204, -204, 312, + -204, -204, 249, -204, -204, 285, -204, 283, -204, 105, + -204, -204, -204, 288, 111, 23, -204, -204, -204, -204, + -204, -204, 289, -204, 112, -204, -204, -204 +}; + +/* YYPGOTO[NTERM-NUM]. */ +static const short int yypgoto[] = +{ + -204, -204, -204, -204, -7, -204, 313, -14, -204, -204, + 331, -204, -204, 290, -204, -204, -204, -204, -204, -204, + -204, -204, 207, -204, 151, -126, -204, 106, 234, -204, + -204, -204, -204, 301, -204, -204, -204, -204, 190, -67, + -204, 244, -73, -204, 178, -93, -204, 87, -204, -204, + -204, -204, -204, 332, -204, 278, 291, -204, 293, 292, + 295, -204, -203, -204, -204, -204, 79, -204, -204, -204, + -204, -204, -204, -204, -204, -204, 298, -204, -204, 164, + -204, -204, -64, -204, 119, -108, -204, 54, -204 +}; + +/* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If + positive, shift that token. If negative, reduce the rule which + number is the opposite. If zero, do what YYDEFACT says. + If YYTABLE_NINF, syntax error. */ +#define YYTABLE_NINF -107 +static const short int yytable[] = +{ + 23, 37, 38, 188, 40, 1, 257, 43, 119, 151, + 152, 1, 151, 152, 163, 158, 170, 170, 152, 93, + 139, 7, 284, 9, 1, 94, 73, 8, 164, 165, + 33, 302, 26, 153, 39, 234, 153, 173, 156, 1, + 27, 153, 41, 166, 44, 96, 207, 14, 15, 16, + 17, 18, 19, 20, 21, 284, 285, 53, 54, 93, + 55, 56, 186, 207, 259, 94, 1, 284, -7, 57, + 58, 59, 60, 314, 221, 170, 22, 218, 61, 170, + 140, 133, 228, 62, 63, 64, 235, 65, 219, 285, + 1, -7, 66, 67, 42, 229, 45, 1, 154, 231, + 162, 285, 167, 95, 328, 238, 318, 2, 1, 276, + 277, 293, 49, 264, 256, 260, 68, 188, 278, 52, + 69, 70, 1, 71, 72, -7, 338, 121, 207, 192, + 211, 202, 343, 208, 340, 207, 250, 251, 276, 277, + 290, 347, 1, 212, 238, 53, 54, 278, 55, 56, + 197, 198, 199, 279, 200, 201, 269, 57, 58, 59, + 60, 48, 294, 89, 296, 86, 61, 1, 1, 103, + 104, 62, 63, 64, 239, 65, 84, 152, 315, 337, + 66, 67, 279, 315, 1, 341, 346, 164, 165, 123, + 124, 125, 311, 102, 191, 1, 123, 124, 125, 85, + 153, 1, 166, 105, 68, 66, 261, 262, 69, 70, + 152, 71, 72, 126, 127, 128, 1, 264, 106, 265, + 126, 127, 128, 107, 151, 152, 152, 187, 123, 124, + 125, 171, 109, 153, 274, 272, 164, 165, 1, 280, + 14, 15, 16, 17, 18, 19, 20, 21, 153, 153, + 1, 166, 126, 127, 128, 151, 152, 34, 35, 110, + 271, 158, 197, 198, 199, 309, 200, 201, 303, 22, + 112, 46, 332, 113, 115, 116, 117, 131, 120, 153, + 132, 135, 253, 138, 141, 142, 143, 95, 147, 94, + 150, 176, 177, 179, 181, 182, 215, 189, 216, 190, + 327, 140, 214, 220, 217, 223, 224, 225, 226, 230, + 227, 236, -106, 233, 237, 333, 242, 244, 246, 299, + 306, 247, 308, 313, 319, 248, 321, 249, 342, 252, + 325, 255, 284, 258, 268, 331, 275, 47, 292, 295, + 298, 307, 32, 194, 310, 243, 270, 316, 317, 222, + 232, 320, 322, 297, 172, 323, 324, 336, 335, 185, + 312, 51, 339, 345, 122, 111, 134, 254, 291, 0, + 330, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 137, 0, + 146, 145, 0, 149, 0, 148 +}; + +static const short int yycheck[] = +{ + 7, 15, 16, 129, 18, 1, 209, 21, 72, 9, + 10, 1, 9, 10, 107, 15, 109, 110, 10, 21, + 13, 73, 23, 3, 1, 27, 33, 0, 20, 21, + 73, 21, 23, 33, 23, 23, 33, 110, 105, 1, + 26, 33, 24, 35, 23, 52, 23, 43, 44, 45, + 46, 47, 48, 49, 50, 23, 57, 4, 5, 21, + 7, 8, 126, 23, 23, 27, 1, 23, 3, 16, + 17, 18, 19, 74, 74, 168, 72, 74, 25, 172, + 73, 88, 74, 30, 31, 32, 74, 34, 155, 57, + 1, 26, 39, 40, 24, 168, 74, 1, 105, 172, + 107, 57, 109, 65, 307, 23, 74, 42, 1, 20, + 21, 23, 60, 23, 74, 74, 63, 243, 29, 73, + 67, 68, 1, 70, 71, 60, 329, 74, 23, 136, + 23, 138, 335, 140, 23, 23, 200, 201, 20, 21, + 248, 344, 1, 150, 23, 4, 5, 29, 7, 8, + 54, 55, 56, 64, 58, 59, 74, 16, 17, 18, + 19, 23, 74, 53, 74, 73, 25, 1, 1, 11, + 12, 30, 31, 32, 181, 34, 75, 10, 286, 74, + 39, 40, 64, 291, 1, 74, 74, 20, 21, 36, + 37, 38, 74, 6, 28, 1, 36, 37, 38, 75, + 33, 1, 35, 73, 63, 39, 23, 214, 67, 68, + 10, 70, 71, 60, 61, 62, 1, 23, 73, 226, + 60, 61, 62, 73, 9, 10, 10, 74, 36, 37, + 38, 15, 73, 33, 74, 242, 20, 21, 1, 246, + 43, 44, 45, 46, 47, 48, 49, 50, 33, 33, + 1, 35, 60, 61, 62, 9, 10, 51, 52, 73, + 23, 15, 54, 55, 56, 279, 58, 59, 275, 72, + 23, 74, 23, 23, 23, 73, 73, 24, 74, 33, + 24, 23, 74, 73, 23, 74, 74, 65, 21, 27, + 73, 73, 23, 69, 73, 23, 23, 74, 23, 74, + 307, 73, 73, 23, 74, 74, 74, 23, 73, 23, + 74, 24, 74, 74, 74, 322, 73, 41, 73, 23, + 23, 73, 23, 23, 22, 73, 23, 73, 335, 74, + 36, 74, 23, 74, 74, 23, 73, 24, 74, 74, + 74, 73, 11, 136, 74, 194, 240, 76, 74, 159, + 172, 74, 73, 266, 110, 74, 74, 74, 73, 125, + 281, 29, 74, 74, 74, 64, 88, 203, 249, -1, + 316, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 90, -1, + 99, 98, -1, 101, -1, 100 +}; + +/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing + symbol of state STATE-NUM. */ +static const unsigned char yystos[] = +{ + 0, 1, 42, 78, 79, 80, 81, 73, 0, 3, + 85, 86, 87, 88, 43, 44, 45, 46, 47, 48, + 49, 50, 72, 81, 82, 83, 23, 26, 128, 129, + 130, 131, 87, 73, 51, 52, 84, 84, 84, 23, + 84, 24, 24, 84, 23, 74, 74, 83, 23, 60, + 165, 130, 73, 4, 5, 7, 8, 16, 17, 18, + 19, 25, 30, 31, 32, 34, 39, 40, 63, 67, + 68, 70, 71, 81, 89, 90, 91, 92, 93, 95, + 98, 99, 125, 126, 75, 75, 73, 159, 160, 53, + 152, 153, 154, 21, 27, 65, 81, 132, 133, 135, + 136, 137, 6, 11, 12, 73, 73, 73, 110, 73, + 73, 110, 23, 23, 100, 23, 73, 73, 111, 159, + 74, 74, 90, 36, 37, 38, 60, 61, 62, 101, + 102, 24, 24, 81, 132, 23, 96, 153, 73, 13, + 73, 23, 74, 74, 134, 135, 133, 21, 137, 136, + 73, 9, 10, 33, 81, 113, 116, 122, 15, 114, + 115, 116, 81, 122, 20, 21, 35, 81, 118, 119, + 122, 15, 118, 119, 120, 121, 73, 23, 127, 69, + 112, 73, 23, 105, 106, 105, 159, 74, 102, 74, + 74, 28, 81, 97, 99, 140, 141, 54, 55, 56, + 58, 59, 81, 155, 156, 157, 158, 23, 81, 138, + 139, 23, 81, 94, 73, 23, 23, 74, 74, 116, + 23, 74, 115, 74, 74, 23, 73, 74, 74, 119, + 23, 119, 121, 74, 23, 74, 24, 74, 23, 81, + 103, 104, 73, 101, 41, 146, 73, 73, 73, 73, + 159, 159, 74, 74, 156, 74, 74, 139, 74, 23, + 74, 23, 81, 117, 23, 81, 123, 124, 74, 74, + 104, 23, 81, 107, 74, 73, 20, 21, 29, 64, + 81, 142, 143, 145, 23, 57, 161, 162, 163, 164, + 162, 161, 74, 23, 74, 74, 74, 124, 74, 23, + 108, 109, 21, 81, 147, 150, 23, 73, 23, 84, + 74, 74, 143, 23, 74, 162, 76, 74, 74, 22, + 74, 23, 73, 74, 74, 36, 148, 81, 139, 144, + 164, 23, 23, 81, 151, 73, 74, 74, 139, 74, + 23, 74, 81, 139, 149, 74, 74, 139 +}; #if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__) # define YYSIZE_T __SIZE_TYPE__ @@ -736,29 +926,35 @@ #define yyerrok (yyerrstatus = 0) #define yyclearin (yychar = YYEMPTY) -#define YYEMPTY -2 +#define YYEMPTY (-2) #define YYEOF 0 + #define YYACCEPT goto yyacceptlab -#define YYABORT goto yyabortlab -#define YYERROR goto yyerrlab1 +#define YYABORT goto yyabortlab +#define YYERROR goto yyerrorlab + + /* Like YYERROR except do call yyerror. This remains here temporarily to ease the transition to the new meaning of YYERROR, for GCC. Once GCC version 2 has supplanted version 1, this can go. */ + #define YYFAIL goto yyerrlab + #define YYRECOVERING() (!!yyerrstatus) + #define YYBACKUP(Token, Value) \ do \ if (yychar == YYEMPTY && yylen == 1) \ { \ yychar = (Token); \ yylval = (Value); \ - yychar1 = YYTRANSLATE (yychar); \ + yytoken = YYTRANSLATE (yychar); \ YYPOPSTACK; \ goto yybackup; \ } \ else \ { \ - yyerror ("syntax error: cannot back up"); \ + yyerror ("syntax error: cannot back up");\ YYERROR; \ } \ while (0) @@ -766,41 +962,24 @@ #define YYTERROR 1 #define YYERRCODE 256 - /* YYLLOC_DEFAULT -- Compute the default location (before the actions - are run). - - When YYLLOC_DEFAULT is run, CURRENT is set the location of the - first token. By default, to implement support for ranges, extend - its range to the last symbol. */ + are run). */ #ifndef YYLLOC_DEFAULT -# define YYLLOC_DEFAULT(Current, Rhs, N) \ - Current.last_line = Rhs[N].last_line; \ - Current.last_column = Rhs[N].last_column; +# define YYLLOC_DEFAULT(Current, Rhs, N) \ + ((Current).first_line = (Rhs)[1].first_line, \ + (Current).first_column = (Rhs)[1].first_column, \ + (Current).last_line = (Rhs)[N].last_line, \ + (Current).last_column = (Rhs)[N].last_column) #endif - /* YYLEX -- calling `yylex' with the right arguments. */ -#if YYPURE -# if YYLSP_NEEDED -# ifdef YYLEX_PARAM -# define YYLEX yylex (&yylval, &yylloc, YYLEX_PARAM) -# else -# define YYLEX yylex (&yylval, &yylloc) -# endif -# else /* !YYLSP_NEEDED */ -# ifdef YYLEX_PARAM -# define YYLEX yylex (&yylval, YYLEX_PARAM) -# else -# define YYLEX yylex (&yylval) -# endif -# endif /* !YYLSP_NEEDED */ -#else /* !YYPURE */ -# define YYLEX yylex () -#endif /* !YYPURE */ - +#ifdef YYLEX_PARAM +# define YYLEX yylex (YYLEX_PARAM) +#else +# define YYLEX yylex () +#endif /* Enable debugging if requested. */ #if YYDEBUG @@ -815,13 +994,93 @@ if (yydebug) \ YYFPRINTF Args; \ } while (0) + +# define YYDSYMPRINT(Args) \ +do { \ + if (yydebug) \ + yysymprint Args; \ +} while (0) + +# define YYDSYMPRINTF(Title, Token, Value, Location) \ +do { \ + if (yydebug) \ + { \ + YYFPRINTF (stderr, "%s ", Title); \ + yysymprint (stderr, \ + Token, Value); \ + YYFPRINTF (stderr, "\n"); \ + } \ +} while (0) + +/*------------------------------------------------------------------. +| yy_stack_print -- Print the state stack from its BOTTOM up to its | +| TOP (included). | +`------------------------------------------------------------------*/ + +#if defined (__STDC__) || defined (__cplusplus) +static void +yy_stack_print (short int *bottom, short int *top) +#else +static void +yy_stack_print (bottom, top) + short int *bottom; + short int *top; +#endif +{ + YYFPRINTF (stderr, "Stack now"); + for (/* Nothing. */; bottom <= top; ++bottom) + YYFPRINTF (stderr, " %d", *bottom); + YYFPRINTF (stderr, "\n"); +} + +# define YY_STACK_PRINT(Bottom, Top) \ +do { \ + if (yydebug) \ + yy_stack_print ((Bottom), (Top)); \ +} while (0) + + +/*------------------------------------------------. +| Report that the YYRULE is going to be reduced. | +`------------------------------------------------*/ + +#if defined (__STDC__) || defined (__cplusplus) +static void +yy_reduce_print (int yyrule) +#else +static void +yy_reduce_print (yyrule) + int yyrule; +#endif +{ + int yyi; + unsigned int yylno = yyrline[yyrule]; + YYFPRINTF (stderr, "Reducing stack by rule %d (line %u), ", + yyrule - 1, yylno); + /* Print the symbols being reduced, and their result. */ + for (yyi = yyprhs[yyrule]; 0 <= yyrhs[yyi]; yyi++) + YYFPRINTF (stderr, "%s ", yytname [yyrhs[yyi]]); + YYFPRINTF (stderr, "-> %s\n", yytname [yyr1[yyrule]]); +} + +# define YY_REDUCE_PRINT(Rule) \ +do { \ + if (yydebug) \ + yy_reduce_print (Rule); \ +} while (0) + /* Nonzero means print parse trace. It is left uninitialized so that multiple parsers can coexist. */ int yydebug; #else /* !YYDEBUG */ # define YYDPRINTF(Args) +# define YYDSYMPRINT(Args) +# define YYDSYMPRINTF(Title, Token, Value, Location) +# define YY_STACK_PRINT(Bottom, Top) +# define YY_REDUCE_PRINT(Rule) #endif /* !YYDEBUG */ + /* YYINITDEPTH -- initial size of the parser's stacks. */ #ifndef YYINITDEPTH # define YYINITDEPTH 200 @@ -834,15 +1093,17 @@ SIZE_MAX < YYSTACK_BYTES (YYMAXDEPTH) evaluated with infinite-precision integer arithmetic. */ -#if YYMAXDEPTH == 0 +#if defined (YYMAXDEPTH) && YYMAXDEPTH == 0 # undef YYMAXDEPTH #endif #ifndef YYMAXDEPTH # define YYMAXDEPTH 10000 #endif + -#ifdef YYERROR_VERBOSE + +#if YYERROR_VERBOSE # ifndef yystrlen # if defined (__GLIBC__) && defined (_STRING_H) @@ -869,7 +1130,6 @@ # ifndef yystpcpy # if defined (__GLIBC__) && defined (_STRING_H) && defined (_GNU_SOURCE) -# include # define yystpcpy stpcpy # else /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in @@ -893,86 +1153,134 @@ } # endif # endif -#endif + +#endif /* !YYERROR_VERBOSE */ + -#line 316 "/usr/share/bison/bison.simple" +#if YYDEBUG +/*--------------------------------. +| Print this symbol on YYOUTPUT. | +`--------------------------------*/ + +#if defined (__STDC__) || defined (__cplusplus) +static void +yysymprint (FILE *yyoutput, int yytype, YYSTYPE *yyvaluep) +#else +static void +yysymprint (yyoutput, yytype, yyvaluep) + FILE *yyoutput; + int yytype; + YYSTYPE *yyvaluep; +#endif +{ + /* Pacify ``unused variable'' warnings. */ + (void) yyvaluep; + + if (yytype < YYNTOKENS) + { + YYFPRINTF (yyoutput, "token %s (", yytname[yytype]); +# ifdef YYPRINT + YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep); +# endif + } + else + YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]); + + switch (yytype) + { + default: + break; + } + YYFPRINTF (yyoutput, ")"); +} + +#endif /* ! YYDEBUG */ +/*-----------------------------------------------. +| Release the memory associated to this symbol. | +`-----------------------------------------------*/ + +#if defined (__STDC__) || defined (__cplusplus) +static void +yydestruct (int yytype, YYSTYPE *yyvaluep) +#else +static void +yydestruct (yytype, yyvaluep) + int yytype; + YYSTYPE *yyvaluep; +#endif +{ + /* Pacify ``unused variable'' warnings. */ + (void) yyvaluep; + + switch (yytype) + { + + default: + break; + } +} + -/* The user can define YYPARSE_PARAM as the name of an argument to be passed - into yyparse. The argument should have type void *. - It should actually point to an object. - Grammar actions can access the variable by casting it - to the proper pointer type. */ +/* Prevent warnings from -Wmissing-prototypes. */ #ifdef YYPARSE_PARAM # if defined (__STDC__) || defined (__cplusplus) -# define YYPARSE_PARAM_ARG void *YYPARSE_PARAM -# define YYPARSE_PARAM_DECL +int yyparse (void *YYPARSE_PARAM); # else -# define YYPARSE_PARAM_ARG YYPARSE_PARAM -# define YYPARSE_PARAM_DECL void *YYPARSE_PARAM; +int yyparse (); # endif -#else /* !YYPARSE_PARAM */ -# define YYPARSE_PARAM_ARG -# define YYPARSE_PARAM_DECL -#endif /* !YYPARSE_PARAM */ - -/* Prevent warning if -Wstrict-prototypes. */ -#ifdef __GNUC__ -# ifdef YYPARSE_PARAM -int yyparse (void *); -# else +#else /* ! YYPARSE_PARAM */ +#if defined (__STDC__) || defined (__cplusplus) int yyparse (void); -# endif +#else +int yyparse (); #endif +#endif /* ! YYPARSE_PARAM */ -/* YY_DECL_VARIABLES -- depending whether we use a pure parser, - variables are global, or local to YYPARSE. */ -#define YY_DECL_NON_LSP_VARIABLES \ -/* The lookahead symbol. */ \ -int yychar; \ - \ -/* The semantic value of the lookahead symbol. */ \ -YYSTYPE yylval; \ - \ -/* Number of parse errors so far. */ \ -int yynerrs; -#if YYLSP_NEEDED -# define YY_DECL_VARIABLES \ -YY_DECL_NON_LSP_VARIABLES \ - \ -/* Location data for the lookahead symbol. */ \ -YYLTYPE yylloc; -#else -# define YY_DECL_VARIABLES \ -YY_DECL_NON_LSP_VARIABLES -#endif +/* The lookahead symbol. */ +int yychar; + +/* The semantic value of the lookahead symbol. */ +YYSTYPE yylval; +/* Number of syntax errors so far. */ +int yynerrs; -/* If nonreentrant, generate the variables here. */ -#if !YYPURE -YY_DECL_VARIABLES -#endif /* !YYPURE */ +/*----------. +| yyparse. | +`----------*/ + +#ifdef YYPARSE_PARAM +# if defined (__STDC__) || defined (__cplusplus) +int yyparse (void *YYPARSE_PARAM) +# else +int yyparse (YYPARSE_PARAM) + void *YYPARSE_PARAM; +# endif +#else /* ! YYPARSE_PARAM */ +#if defined (__STDC__) || defined (__cplusplus) int -yyparse (YYPARSE_PARAM_ARG) - YYPARSE_PARAM_DECL -{ - /* If reentrant, generate the variables here. */ -#if YYPURE - YY_DECL_VARIABLES -#endif /* !YYPURE */ +yyparse (void) +#else +int +yyparse () +#endif +#endif +{ + register int yystate; register int yyn; int yyresult; /* Number of tokens to shift before error messages enabled. */ int yyerrstatus; /* Lookahead token as an internal (translated) token number. */ - int yychar1 = 0; + int yytoken = 0; /* Three stacks and their tools: `yyss': related to states, @@ -982,41 +1290,29 @@ Refer to the stacks thru separate pointers, to allow yyoverflow to reallocate them elsewhere. */ - /* The state stack. */ - short yyssa[YYINITDEPTH]; - short *yyss = yyssa; - register short *yyssp; + /* The state stack. */ + short int yyssa[YYINITDEPTH]; + short int *yyss = yyssa; + register short int *yyssp; /* The semantic value stack. */ YYSTYPE yyvsa[YYINITDEPTH]; YYSTYPE *yyvs = yyvsa; register YYSTYPE *yyvsp; -#if YYLSP_NEEDED - /* The location stack. */ - YYLTYPE yylsa[YYINITDEPTH]; - YYLTYPE *yyls = yylsa; - YYLTYPE *yylsp; -#endif -#if YYLSP_NEEDED -# define YYPOPSTACK (yyvsp--, yyssp--, yylsp--) -#else -# define YYPOPSTACK (yyvsp--, yyssp--) -#endif - YYSIZE_T yystacksize = YYINITDEPTH; +#define YYPOPSTACK (yyvsp--, yyssp--) + YYSIZE_T yystacksize = YYINITDEPTH; /* The variables used to return semantic value and location from the action routines. */ YYSTYPE yyval; -#if YYLSP_NEEDED - YYLTYPE yyloc; -#endif + /* When reducing, the number of symbols on the RHS of the reduced - rule. */ + rule. */ int yylen; YYDPRINTF ((stderr, "Starting parse\n")); @@ -1033,9 +1329,8 @@ yyssp = yyss; yyvsp = yyvs; -#if YYLSP_NEEDED - yylsp = yyls; -#endif + + goto yysetstate; /*------------------------------------------------------------. @@ -1050,7 +1345,7 @@ yysetstate: *yyssp = yystate; - if (yyssp >= yyss + yystacksize - 1) + if (yyss + yystacksize - 1 <= yyssp) { /* Get the current used size of the three stacks, in elements. */ YYSIZE_T yysize = yyssp - yyss + 1; @@ -1061,26 +1356,19 @@ these so that the &'s don't force the real ones into memory. */ YYSTYPE *yyvs1 = yyvs; - short *yyss1 = yyss; + short int *yyss1 = yyss; + /* Each stack pointer address is followed by the size of the - data in use in that stack, in bytes. */ -# if YYLSP_NEEDED - YYLTYPE *yyls1 = yyls; - /* This used to be a conditional around just the two extra args, - but that might be undefined if yyoverflow is a macro. */ - yyoverflow ("parser stack overflow", - &yyss1, yysize * sizeof (*yyssp), - &yyvs1, yysize * sizeof (*yyvsp), - &yyls1, yysize * sizeof (*yylsp), - &yystacksize); - yyls = yyls1; -# else + data in use in that stack, in bytes. This used to be a + conditional around just the two extra args, but that might + be undefined if yyoverflow is a macro. */ yyoverflow ("parser stack overflow", &yyss1, yysize * sizeof (*yyssp), &yyvs1, yysize * sizeof (*yyvsp), + &yystacksize); -# endif + yyss = yyss1; yyvs = yyvs1; } @@ -1089,24 +1377,22 @@ goto yyoverflowlab; # else /* Extend the stack our own way. */ - if (yystacksize >= YYMAXDEPTH) + if (YYMAXDEPTH <= yystacksize) goto yyoverflowlab; yystacksize *= 2; - if (yystacksize > YYMAXDEPTH) + if (YYMAXDEPTH < yystacksize) yystacksize = YYMAXDEPTH; { - short *yyss1 = yyss; + short int *yyss1 = yyss; union yyalloc *yyptr = (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize)); if (! yyptr) goto yyoverflowlab; YYSTACK_RELOCATE (yyss); YYSTACK_RELOCATE (yyvs); -# if YYLSP_NEEDED - YYSTACK_RELOCATE (yyls); -# endif -# undef YYSTACK_RELOCATE + +# undef YYSTACK_RELOCATE if (yyss1 != yyssa) YYSTACK_FREE (yyss1); } @@ -1115,14 +1401,12 @@ yyssp = yyss + yysize - 1; yyvsp = yyvs + yysize - 1; -#if YYLSP_NEEDED - yylsp = yyls + yysize - 1; -#endif + YYDPRINTF ((stderr, "Stack size increased to %lu\n", (unsigned long int) yystacksize)); - if (yyssp >= yyss + yystacksize - 1) + if (yyss + yystacksize - 1 <= yyssp) YYABORT; } @@ -1130,7 +1414,6 @@ goto yybackup; - /*-----------. | yybackup. | `-----------*/ @@ -1143,88 +1426,55 @@ /* First try to decide what to do without reference to lookahead token. */ yyn = yypact[yystate]; - if (yyn == YYFLAG) + if (yyn == YYPACT_NINF) goto yydefault; /* Not known => get a lookahead token if don't already have one. */ - /* yychar is either YYEMPTY or YYEOF - or a valid token in external form. */ - + /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol. */ if (yychar == YYEMPTY) { YYDPRINTF ((stderr, "Reading a token: ")); yychar = YYLEX; } - /* Convert token to internal form (in yychar1) for indexing tables with */ - - if (yychar <= 0) /* This means end of input. */ + if (yychar <= YYEOF) { - yychar1 = 0; - yychar = YYEOF; /* Don't call YYLEX any more */ - + yychar = yytoken = YYEOF; YYDPRINTF ((stderr, "Now at end of input.\n")); } else { - yychar1 = YYTRANSLATE (yychar); - -#if YYDEBUG - /* We have to keep this `#if YYDEBUG', since we use variables - which are defined only if `YYDEBUG' is set. */ - if (yydebug) - { - YYFPRINTF (stderr, "Next token is %d (%s", - yychar, yytname[yychar1]); - /* Give the individual parser a way to print the precise - meaning of a token, for further debugging info. */ -# ifdef YYPRINT - YYPRINT (stderr, yychar, yylval); -# endif - YYFPRINTF (stderr, ")\n"); - } -#endif + yytoken = YYTRANSLATE (yychar); + YYDSYMPRINTF ("Next token is", yytoken, &yylval, &yylloc); } - yyn += yychar1; - if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1) - goto yydefault; - - yyn = yytable[yyn]; - - /* yyn is what to do for this token type in this state. - Negative => reduce, -yyn is rule number. - Positive => shift, yyn is new state. - New state is final state => don't bother to shift, - just return success. - 0, or most negative number => error. */ - - if (yyn < 0) + /* If the proper action on seeing token YYTOKEN is to reduce or to + detect an error, take that action. */ + yyn += yytoken; + if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken) + goto yydefault; + yyn = yytable[yyn]; + if (yyn <= 0) { - if (yyn == YYFLAG) + if (yyn == 0 || yyn == YYTABLE_NINF) goto yyerrlab; yyn = -yyn; goto yyreduce; } - else if (yyn == 0) - goto yyerrlab; if (yyn == YYFINAL) YYACCEPT; /* Shift the lookahead token. */ - YYDPRINTF ((stderr, "Shifting token %d (%s), ", - yychar, yytname[yychar1])); + YYDPRINTF ((stderr, "Shifting token %s, ", yytname[yytoken])); /* Discard the token being shifted unless it is eof. */ if (yychar != YYEOF) yychar = YYEMPTY; *++yyvsp = yylval; -#if YYLSP_NEEDED - *++yylsp = yylloc; -#endif + /* Count tokens shifted since error; after three, turn off error status. */ @@ -1255,132 +1505,126 @@ /* If YYLEN is nonzero, implement the default value of the action: `$$ = $1'. - Otherwise, the following line sets YYVAL to the semantic value of - the lookahead token. This behavior is undocumented and Bison + Otherwise, the following line sets YYVAL to garbage. + This behavior is undocumented and Bison users should not rely upon it. Assigning to YYVAL unconditionally makes the parser a bit smaller, and it avoids a GCC warning that YYVAL may be used uninitialized. */ yyval = yyvsp[1-yylen]; -#if YYLSP_NEEDED - /* Similarly for the default location. Let the user run additional - commands if for instance locations are ranges. */ - yyloc = yylsp[1-yylen]; - YYLLOC_DEFAULT (yyloc, (yylsp - yylen), yylen); -#endif - -#if YYDEBUG - /* We have to keep this `#if YYDEBUG', since we use variables which - are defined only if `YYDEBUG' is set. */ - if (yydebug) - { - int yyi; - - YYFPRINTF (stderr, "Reducing via rule %d (line %d), ", - yyn, yyrline[yyn]); - - /* Print the symbols being reduced, and their result. */ - for (yyi = yyprhs[yyn]; yyrhs[yyi] > 0; yyi++) - YYFPRINTF (stderr, "%s ", yytname[yyrhs[yyi]]); - YYFPRINTF (stderr, " -> %s\n", yytname[yyr1[yyn]]); - } -#endif - - switch (yyn) { -case 6: + YY_REDUCE_PRINT (yyn); + switch (yyn) + { + case 7: #line 71 "./fconfig.y" -{ + { fconferror ("Missing/bad database info section"); - ; - break;} -case 7: + } + break; + + case 8: #line 76 "./fconfig.y" -{ badFile = 1; ; - break;} -case 10: + { badFile = 1; } + break; + + case 11: #line 82 "./fconfig.y" -{ + { setDebugMode (databaseBeingDefined, yyvsp[0].intval); - ; - break;} -case 11: + } + break; + + case 12: #line 85 "./fconfig.y" -{ + { setKeepReceivedHeaders (databaseBeingDefined, yyvsp[0].intval); - ; - break;} -case 12: + } + break; + + case 13: #line 88 "./fconfig.y" -{ + { setNotifyExpire (databaseBeingDefined, yyvsp[0].intval); - ; - break;} -case 13: + } + break; + + case 14: #line 91 "./fconfig.y" -{ + { setBinDir (databaseBeingDefined, qStrVal (yyvsp[0].qstr)); - ; - break;} -case 14: + } + break; + + case 15: #line 94 "./fconfig.y" -{ + { setSubmitterAck (databaseBeingDefined, yyvsp[0].intval); - ; - break;} -case 15: + } + break; + + case 16: #line 97 "./fconfig.y" -{ + { setBusinessDay (databaseBeingDefined, yyvsp[-2].intval, yyvsp[0].intval); - ; - break;} -case 16: + } + break; + + case 17: #line 100 "./fconfig.y" -{ + { setBusinessWeek(databaseBeingDefined,yyvsp[-2].intval, yyvsp[0].intval); - ; - break;} -case 17: + } + break; + + case 18: #line 103 "./fconfig.y" -{ + { setCreateCategoryDirs (databaseBeingDefined, yyvsp[0].intval); - ; - break;} -case 18: + } + break; + + case 19: #line 106 "./fconfig.y" -{ + { setCategoryDirPerms (databaseBeingDefined, qStrVal (yyvsp[0].qstr)); - ; - break;} -case 19: + } + break; + + case 20: #line 111 "./fconfig.y" -{ yyval.intval = 0; ; - break;} -case 20: + { yyval.intval = 0; } + break; + + case 21: #line 112 "./fconfig.y" -{ yyval.intval = 1; ; - break;} -case 22: + { yyval.intval = 1; } + break; + + case 23: #line 116 "./fconfig.y" -{ + { fconferror ("Missing/bad field declarations"); - ; - break;} -case 25: + } + break; + + case 26: #line 125 "./fconfig.y" -{ + { currField = NULL; - ; - break;} -case 26: + } + break; + + case 27: #line 128 "./fconfig.y" -{ + { currField = NULL; - ; - break;} -case 27: + } + break; + + case 28: #line 133 "./fconfig.y" -{ + { char *fname = takeQString (yyvsp[0].qstr); currField = newFieldDef (databaseBeingDefined, fname); if (currField == NULL) @@ -1392,95 +1636,108 @@ free (msg); } currField->default_value = NULL; - ; - break;} -case 34: + } + break; + + case 35: #line 158 "./fconfig.y" -{ + { currField->virtualFormat = qformat; qformat = NULL; - ; - break;} -case 37: + } + break; + + case 38: #line 166 "./fconfig.y" -{ + { currField->datatype = MultiText; currField->defaultSearchType = NilSearch; - ; - break;} -case 38: + } + break; + + case 39: #line 170 "./fconfig.y" -{ + { currField->datatype = Date; currField->defaultSearchType = LessThan; - ; - break;} -case 39: + } + break; + + case 40: #line 174 "./fconfig.y" -{ + { currField->datatype = Integer; currField->defaultSearchType = NilSearch; - ; - break;} -case 40: + } + break; + + case 41: #line 178 "./fconfig.y" -{ + { currField->datatype = PRListType; currField->defaultSearchType = RegCmp; - ; - break;} -case 41: + } + break; + + case 42: #line 184 "./fconfig.y" -{ + { currField->datatype = Text; - ; - break;} -case 42: + } + break; + + case 43: #line 187 "./fconfig.y" -{ + { currField->datatype = TextWithRegex; - ; - break;} -case 44: + } + break; + + case 45: #line 193 "./fconfig.y" -{ + { yyval.stringlist = new_string_list_ent (takeQString (yyvsp[0].qstr), NULL); currField->regex = yyval.stringlist; - ; - break;} -case 45: + } + break; + + case 46: #line 197 "./fconfig.y" -{ + { yyvsp[-1].stringlist->next = new_string_list_ent (takeQString (yyvsp[0].qstr), NULL); yyval.stringlist = yyvsp[-1].stringlist->next; - ; - break;} -case 46: + } + break; + + case 47: #line 203 "./fconfig.y" -{ + { currField->datatype = Enum; currField->defaultSearchType = RegCmp; - ; - break;} -case 47: + } + break; + + case 48: #line 207 "./fconfig.y" -{ + { currField->datatype = Enum; currField->defaultSearchType = RegCmp; initAdmField (currField); - ; - break;} -case 48: + } + break; + + case 49: #line 212 "./fconfig.y" -{ + { currField->datatype = MultiEnum; currField->defaultSearchType = RegCmp; initAdmField (currField); - ; - break;} -case 49: + } + break; + + case 50: #line 217 "./fconfig.y" -{ + { currField->datatype = MultiEnum; currField->defaultSearchType = RegCmp; if (currField->multiEnumSeparator == NULL) @@ -1488,18 +1745,20 @@ currField->multiEnumSeparator = xstrdup (DEFAULT_MULTIENUM_SEPARATOR); } - ; - break;} -case 54: + } + break; + + case 55: #line 234 "./fconfig.y" -{ + { addGlobalChangeActions (databaseBeingDefined, currChange); currChange = NULL; - ; - break;} -case 55: + } + break; + + case 56: #line 240 "./fconfig.y" -{ + { ChangeActions *p = &(currField->changeActions); while (*p != NULL) { @@ -1507,76 +1766,86 @@ } *p = currChange; currChange = NULL; - ; - break;} -case 56: + } + break; + + case 57: #line 251 "./fconfig.y" -{ + { currChange = newChangeAction (databaseBeingDefined, yyvsp[-1].sval); if (yyvsp[-1].sval != NULL) { free (yyvsp[-1].sval); } - ; - break;} -case 57: + } + break; + + case 58: #line 260 "./fconfig.y" -{ + { yyval.sval = takeQString (yyvsp[0].qstr); - ; - break;} -case 58: + } + break; + + case 59: #line 263 "./fconfig.y" -{ + { yyval.sval = NULL; - ; - break;} -case 63: + } + break; + + case 64: #line 274 "./fconfig.y" -{ + { currChange->edits = currEdit; currEdit = NULL; - ; - break;} -case 64: + } + break; + + case 65: #line 278 "./fconfig.y" -{ + { currEdit->append = 1; currChange->edits = currEdit; currEdit = NULL; - ; - break;} -case 65: + } + break; + + case 66: #line 283 "./fconfig.y" -{ + { currChange->addAuditTrail = 1; - ; - break;} -case 66: + } + break; + + case 67: #line 286 "./fconfig.y" -{ + { currChange->auditTrailFormat = qformat; qformat = NULL; - ; - break;} -case 67: + } + break; + + case 68: #line 290 "./fconfig.y" -{ + { currChange->requireChangeReason = 1; - ; - break;} -case 70: + } + break; + + case 71: #line 299 "./fconfig.y" -{ + { FieldList foo = newFieldListEnt (databaseBeingDefined, qStrVal (yyvsp[0].qstr), currChange->requiredFields); currChange->requiredFields = foo; - ; - break;} -case 73: + } + break; + + case 74: #line 311 "./fconfig.y" -{ + { currEdit = (FieldEdit *) xmalloc (sizeof (FieldEdit)); currEdit->expr = NULL; currEdit->fieldToEditName = takeQString (yyvsp[0].qstr); @@ -1584,76 +1853,87 @@ currEdit->textFormat = NULL; currEdit->fieldsForFormat = NULL; currEdit->next = NULL; - ; - break;} -case 74: + } + break; + + case 75: #line 322 "./fconfig.y" -{ + { currEdit->textFormat = takeQString (yyvsp[0].qstr); - ; - break;} -case 75: + } + break; + + case 76: #line 327 "./fconfig.y" -{ + { currEdit->fieldsForFormat = NULL; - ; - break;} -case 76: + } + break; + + case 77: #line 330 "./fconfig.y" -{ - ; - break;} -case 77: + { + } + break; + + case 78: #line 334 "./fconfig.y" -{ + { yyval.flist = newFieldListEnt (databaseBeingDefined, qStrVal (yyvsp[0].qstr), NULL); currEdit->fieldsForFormat = yyval.flist; - ; - break;} -case 78: + } + break; + + case 79: #line 339 "./fconfig.y" -{ + { yyval.flist = newFieldListEnt (databaseBeingDefined, qStrVal (yyvsp[0].qstr), NULL); yyvsp[-1].flist->next = yyval.flist; - ; - break;} -case 84: + } + break; + + case 85: #line 355 "./fconfig.y" -{ + { currField->maxPrsPerLine = yyvsp[0].intval; - ; - break;} -case 90: + } + break; + + case 91: #line 369 "./fconfig.y" -{ + { currField->multiEnumSeparator = takeQString (yyvsp[0].qstr); - ; - break;} -case 94: + } + break; + + case 95: #line 379 "./fconfig.y" -{ + { yyval.stringlist = new_string_list_ent (takeQString (yyvsp[0].qstr), NULL); currField->enumValues = yyval.stringlist; - ; - break;} -case 95: + } + break; + + case 96: #line 383 "./fconfig.y" -{ + { yyvsp[-1].stringlist->next = new_string_list_ent (takeQString (yyvsp[0].qstr), NULL); yyval.stringlist = yyvsp[-1].stringlist->next; - ; - break;} -case 98: + } + break; + + case 99: #line 393 "./fconfig.y" -{ + { currField->adm_db_name = takeQString (yyvsp[0].qstr); - ; - break;} -case 99: + } + break; + + case 100: #line 396 "./fconfig.y" -{ + { AdmFieldDesc *p; int which = 0; @@ -1679,90 +1959,103 @@ fconferror (msg); free (msg); } - ; - break;} -case 102: + } + break; + + case 103: #line 425 "./fconfig.y" -{ + { currField->allow_any_value = 1; - ; - break;} -case 106: + } + break; + + case 107: #line 435 "./fconfig.y" -{ + { currField->multiEnumSeparator = takeQString (yyvsp[0].qstr); - ; - break;} -case 107: + } + break; + + case 108: #line 440 "./fconfig.y" -{ + { currField->default_value = takeQString (yyvsp[0].qstr); - ; - break;} -case 108: + } + break; + + case 109: #line 443 "./fconfig.y" -{ + { currField->input_default_value = takeQString (yyvsp[0].qstr); - ; - break;} -case 109: + } + break; + + case 110: #line 448 "./fconfig.y" -{ + { currField->adm_db_fields = 1; currField->adm_field_des = yyvsp[0].adm_field_des; yyval.adm_field_des = yyvsp[0].adm_field_des; - ; - break;} -case 110: + } + break; + + case 111: #line 453 "./fconfig.y" -{ + { yyvsp[-1].adm_field_des->next = yyvsp[0].adm_field_des; yyval.adm_field_des = yyvsp[0].adm_field_des; currField->adm_db_fields++; - ; - break;} -case 111: + } + break; + + case 112: #line 460 "./fconfig.y" -{ + { yyval.adm_field_des = (AdmFieldDesc *) xmalloc (sizeof (AdmFieldDesc)); yyval.adm_field_des->name = takeQString (yyvsp[0].qstr); yyval.adm_field_des->next = NULL; - ; - break;} -case 112: + } + break; + + case 113: #line 468 "./fconfig.y" -{ + { currField->defaultSearchType = RegCmp; - ; - break;} -case 113: + } + break; + + case 114: #line 471 "./fconfig.y" -{ + { currField->defaultSearchType = RegFind; - ; - break;} -case 114: + } + break; + + case 115: #line 476 "./fconfig.y" -{ + { currField->textsearch = 1; - ; - break;} -case 115: + } + break; + + case 116: #line 479 "./fconfig.y" -{ + { currField->restricted = 1; - ; - break;} -case 116: + } + break; + + case 117: #line 482 "./fconfig.y" -{ + { currField->nospaces = 1; - ; - break;} -case 117: + } + break; + + case 118: #line 485 "./fconfig.y" -{ + { if (setBuiltinField (currField, qStrVal (yyvsp[0].qstr)) != 0) { char *msg; @@ -1771,99 +2064,113 @@ fconferror (msg); free (msg); } - ; - break;} -case 119: + } + break; + + case 120: #line 496 "./fconfig.y" -{ + { currField->description = takeQString (yyvsp[0].qstr); - ; - break;} -case 120: + } + break; + + case 121: #line 499 "./fconfig.y" -{ + { currField->readonly = 1; - ; - break;} -case 121: + } + break; + + case 122: #line 502 "./fconfig.y" -{ + { currField->auxFlags = yyvsp[-1].stringlist; - ; - break;} -case 122: + } + break; + + case 123: #line 505 "./fconfig.y" -{ + { currField->editonly = 1; - ; - break;} -case 123: + } + break; + + case 124: #line 510 "./fconfig.y" -{ + { yyval.stringlist = new_string_list_ent (takeQString (yyvsp[0].qstr), NULL); currField->auxFlags = yyval.stringlist; - ; - break;} -case 124: + } + break; + + case 125: #line 514 "./fconfig.y" -{ + { yyvsp[-1].stringlist->next = new_string_list_ent (takeQString (yyvsp[0].qstr), NULL); yyval.stringlist = yyvsp[-1].stringlist->next; - ; - break;} -case 129: + } + break; + + case 130: #line 528 "./fconfig.y" -{ + { addQueryFormat (databaseBeingDefined, qformat); qformat = NULL; - ; - break;} -case 130: + } + break; + + case 131: #line 532 "./fconfig.y" -{ + { freeQueryFormat (qformat); qformat = NULL; - ; - break;} -case 131: + } + break; + + case 132: #line 538 "./fconfig.y" -{ + { qformat = (QueryFormat *) xmalloc (sizeof (QueryFormat)); qformat->name = takeQString (yyvsp[0].qstr); qformat->printf = NULL; qformat->separator = NULL; qformat->fields = NULL; qformat->next = NULL; - ; - break;} -case 140: + } + break; + + case 141: #line 562 "./fconfig.y" -{ + { qformat->rawQuery = 1; - ; - break;} -case 141: + } + break; + + case 142: #line 567 "./fconfig.y" -{ + { qformat->printf = takeQString (yyvsp[0].qstr); - ; - break;} -case 144: + } + break; + + case 145: #line 576 "./fconfig.y" -{ + { qformat->fields = yyvsp[0].flist; - ; - break;} -case 145: + } + break; + + case 146: #line 579 "./fconfig.y" -{ + { yyvsp[-1].flist->next = yyvsp[0].flist; yyval.flist = yyvsp[0].flist; - ; - break;} -case 146: + } + break; + + case 147: #line 585 "./fconfig.y" -{ + { yyval.flist = newFieldListEnt (databaseBeingDefined, qStrVal (yyvsp[0].qstr), NULL); if (parseComplexFieldIndex (yyval.flist->ent) != 0) @@ -1874,106 +2181,122 @@ fconferror (msg); free (msg); } - ; - break;} -case 147: + } + break; + + case 148: #line 599 "./fconfig.y" -{ + { setIndexDesc (databaseBeingDefined, indexEntry); indexEntry = NULL; - ; - break;} -case 148: + } + break; + + case 149: #line 603 "./fconfig.y" -{ + { freeIndexDesc (indexEntry); indexEntry = NULL; - ; - break;} -case 150: + } + break; + + case 151: #line 610 "./fconfig.y" -{ + { indexEntry = newIndexDesc (databaseBeingDefined); - ; - break;} -case 153: + } + break; + + case 154: #line 619 "./fconfig.y" -{ + { setIndexDescPath (indexEntry, qStrVal (yyvsp[0].qstr)); - ; - break;} -case 157: + } + break; + + case 158: #line 627 "./fconfig.y" -{ + { addFieldToIndex (indexEntry, yyvsp[0].flist); - ; - break;} -case 158: + } + break; + + case 159: #line 630 "./fconfig.y" -{ + { addFieldToIndex (indexEntry, yyvsp[0].flist); - ; - break;} -case 159: + } + break; + + case 160: #line 635 "./fconfig.y" -{ + { setIndexDescSeparator (indexEntry, takeQString (yyvsp[0].qstr)); - ; - break;} -case 160: + } + break; + + case 161: #line 638 "./fconfig.y" -{ + { setIndexDescBinary (indexEntry, yyvsp[0].intval); - ; - break;} -case 163: + } + break; + + case 164: #line 647 "./fconfig.y" -{ + { setInputTemplate (databaseBeingDefined, yyvsp[-1].inputlist); - ; - break;} -case 165: + } + break; + + case 166: #line 653 "./fconfig.y" -{ + { setRequiredInputFields (databaseBeingDefined, requiredFlds); - ; - break;} -case 166: + } + break; + + case 167: #line 656 "./fconfig.y" -{ + { freeFieldList (requiredFlds); requiredFlds = NULL; - ; - break;} -case 167: + } + break; + + case 168: #line 662 "./fconfig.y" -{ + { requiredFlds = yyvsp[0].flist; - ; - break;} -case 168: + } + break; + + case 169: #line 665 "./fconfig.y" -{ + { yyvsp[-1].flist->next = yyvsp[0].flist; yyval.flist = yyvsp[0].flist; - ; - break;} -case 169: + } + break; + + case 170: #line 671 "./fconfig.y" -{ + { yyval.inputlist = inputTemplate; inputTemplate = NULL; - ; - break;} -case 170: + } + break; + + case 171: #line 675 "./fconfig.y" -{ + { yyval.inputlist = NULL; - ; - break;} -case 171: + } + break; + + case 172: #line 680 "./fconfig.y" -{ + { yyval.inputlist = (InputTemplate *) xmalloc (sizeof (InputTemplate)); yyval.inputlist->index = find_field_index (databaseBeingDefined, @@ -1994,11 +2317,12 @@ inputTemplate = yyval.inputlist; yyval.inputlist->next = NULL; } - ; - break;} -case 172: + } + break; + + case 173: #line 702 "./fconfig.y" -{ + { yyval.inputlist = (InputTemplate *) xmalloc (sizeof (InputTemplate)); yyval.inputlist->index = find_field_index (databaseBeingDefined, @@ -2022,25 +2346,28 @@ inputTemplate = yyval.inputlist; } } - ; - break;} -case 175: + } + break; + + case 176: #line 733 "./fconfig.y" -{ + { addMessageFormat (databaseBeingDefined, mailFormat); mailFormat = NULL; - ; - break;} -case 176: + } + break; + + case 177: #line 737 "./fconfig.y" -{ + { freeMessageFormat (mailFormat); mailFormat = NULL; - ; - break;} -case 177: + } + break; + + case 178: #line 743 "./fconfig.y" -{ + { mailFormat = (MailMessageFormat) xmalloc (sizeof (struct mail_message_format)); @@ -2051,149 +2378,153 @@ mailFormat->body = NULL; mailFormat->header = NULL; mailFormat->next = NULL; - ; - break;} -case 180: + } + break; + + case 181: #line 761 "./fconfig.y" -{ + { mailFormat->body = qformat; qformat = NULL; - ; - break;} -case 181: + } + break; + + case 182: #line 765 "./fconfig.y" -{ + { mailFormat->header = qformat; qformat = NULL; - ; - break;} -case 182: + } + break; + + case 183: #line 769 "./fconfig.y" -{ + { mailFormat->toAddresses = yyvsp[-1].mailaddrlist; - ; - break;} -case 183: + } + break; + + case 184: #line 772 "./fconfig.y" -{ + { mailFormat->fromAddress = yyvsp[-1].mailaddr; - ; - break;} -case 184: + } + break; + + case 185: #line 775 "./fconfig.y" -{ + { mailFormat->replyTo = yyvsp[-1].mailaddrlist; - ; - break;} -case 188: + } + break; + + case 189: #line 787 "./fconfig.y" -{ + { freeQueryFormat (qformat); qformat = NULL; - ; - break;} -case 189: + } + break; + + case 190: #line 793 "./fconfig.y" -{ + { qformat = (QueryFormat *) xmalloc (sizeof (QueryFormat)); qformat->name = NULL; qformat->printf = NULL; qformat->separator = NULL; qformat->fields = NULL; qformat->next = NULL; - ; - break;} -case 190: + } + break; + + case 191: #line 803 "./fconfig.y" -{ + { yyval.mailaddrlist = (MailAddressList *) xmalloc (sizeof (MailAddressList)); yyval.mailaddrlist->address = yyvsp[0].mailaddr; yyval.mailaddrlist->next = NULL; - ; - break;} -case 191: + } + break; + + case 192: #line 808 "./fconfig.y" -{ + { MailAddressList *lp = yyval.mailaddrlist; while (lp->next != NULL) { lp = lp->next; } lp->next = (MailAddressList *) xmalloc (sizeof (MailAddressList)); lp->next->address = yyvsp[0].mailaddr; lp->next->next = NULL; - ; - break;} -case 192: + } + break; + + case 193: #line 818 "./fconfig.y" -{ + { yyval.mailaddr = (MailAddress *) xmalloc (sizeof (MailAddress)); yyval.mailaddr->fixedAddress = takeQString (yyvsp[0].qstr); yyval.mailaddr->addresses = NULL; - ; - break;} -case 193: + } + break; + + case 194: #line 823 "./fconfig.y" -{ + { yyval.mailaddr = (MailAddress *) xmalloc (sizeof (MailAddress)); yyval.mailaddr->fixedAddress = NULL; yyval.mailaddr->addresses = yyvsp[0].flist; - ; - break;} -case 194: + } + break; + + case 195: #line 830 "./fconfig.y" -{ + { yyval.flist = yyvsp[0].flist; - ; - break;} -case 195: + } + break; + + case 196: #line 833 "./fconfig.y" -{ + { FieldList p = yyval.flist; while (p->next != NULL) { p = p->next; } p->next = yyvsp[0].flist; - ; - break;} -case 196: + } + break; + + case 197: #line 843 "./fconfig.y" -{ + { yyval.flist = newFieldListEnt (databaseBeingDefined, qStrVal (yyvsp[0].qstr), NULL); - ; - break;} -case 197: + } + break; + + case 198: #line 849 "./fconfig.y" -{ + { setAuditTrailFormat (databaseBeingDefined, qformat); - ; - break;} -} + } + break; + -#line 706 "/usr/share/bison/bison.simple" + } +/* Line 1010 of yacc.c. */ +#line 2519 "fconfig.tab.c" yyvsp -= yylen; yyssp -= yylen; -#if YYLSP_NEEDED - yylsp -= yylen; -#endif -#if YYDEBUG - if (yydebug) - { - short *yyssp1 = yyss - 1; - YYFPRINTF (stderr, "state stack now"); - while (yyssp1 != yyssp) - YYFPRINTF (stderr, " %d", *++yyssp1); - YYFPRINTF (stderr, "\n"); - } -#endif + + YY_STACK_PRINT (yyss, yyssp); *++yyvsp = yyval; -#if YYLSP_NEEDED - *++yylsp = yyloc; -#endif + /* Now `shift' the result of the reduction. Determine what state that goes to, based on the state we popped back to and the rule @@ -2201,11 +2532,11 @@ yyn = yyr1[yyn]; - yystate = yypgoto[yyn - YYNTBASE] + *yyssp; - if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp) + yystate = yypgoto[yyn - YYNTOKENS] + *yyssp; + if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp) yystate = yytable[yystate]; else - yystate = yydefgoto[yyn - YYNTBASE]; + yystate = yydefgoto[yyn - YYNTOKENS]; goto yynewstate; @@ -2218,145 +2549,151 @@ if (!yyerrstatus) { ++yynerrs; - -#ifdef YYERROR_VERBOSE +#if YYERROR_VERBOSE yyn = yypact[yystate]; - if (yyn > YYFLAG && yyn < YYLAST) + if (YYPACT_NINF < yyn && yyn < YYLAST) { YYSIZE_T yysize = 0; + int yytype = YYTRANSLATE (yychar); + const char* yyprefix; char *yymsg; - int yyx, yycount; + int yyx; - yycount = 0; /* Start YYX at -YYN if negative to avoid negative indexes in YYCHECK. */ - for (yyx = yyn < 0 ? -yyn : 0; - yyx < (int) (sizeof (yytname) / sizeof (char *)); yyx++) - if (yycheck[yyx + yyn] == yyx) - yysize += yystrlen (yytname[yyx]) + 15, yycount++; - yysize += yystrlen ("parse error, unexpected ") + 1; - yysize += yystrlen (yytname[YYTRANSLATE (yychar)]); + int yyxbegin = yyn < 0 ? -yyn : 0; + + /* Stay within bounds of both yycheck and yytname. */ + int yychecklim = YYLAST - yyn; + int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS; + int yycount = 0; + + yyprefix = ", expecting "; + for (yyx = yyxbegin; yyx < yyxend; ++yyx) + if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR) + { + yysize += yystrlen (yyprefix) + yystrlen (yytname [yyx]); + yycount += 1; + if (yycount == 5) + { + yysize = 0; + break; + } + } + yysize += (sizeof ("syntax error, unexpected ") + + yystrlen (yytname[yytype])); yymsg = (char *) YYSTACK_ALLOC (yysize); if (yymsg != 0) { - char *yyp = yystpcpy (yymsg, "parse error, unexpected "); - yyp = yystpcpy (yyp, yytname[YYTRANSLATE (yychar)]); + char *yyp = yystpcpy (yymsg, "syntax error, unexpected "); + yyp = yystpcpy (yyp, yytname[yytype]); if (yycount < 5) { - yycount = 0; - for (yyx = yyn < 0 ? -yyn : 0; - yyx < (int) (sizeof (yytname) / sizeof (char *)); - yyx++) - if (yycheck[yyx + yyn] == yyx) + yyprefix = ", expecting "; + for (yyx = yyxbegin; yyx < yyxend; ++yyx) + if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR) { - const char *yyq = ! yycount ? ", expecting " : " or "; - yyp = yystpcpy (yyp, yyq); + yyp = yystpcpy (yyp, yyprefix); yyp = yystpcpy (yyp, yytname[yyx]); - yycount++; + yyprefix = " or "; } } yyerror (yymsg); YYSTACK_FREE (yymsg); } else - yyerror ("parse error; also virtual memory exhausted"); + yyerror ("syntax error; also virtual memory exhausted"); } else -#endif /* defined (YYERROR_VERBOSE) */ - yyerror ("parse error"); +#endif /* YYERROR_VERBOSE */ + yyerror ("syntax error"); } - goto yyerrlab1; -/*--------------------------------------------------. -| yyerrlab1 -- error raised explicitly by an action | -`--------------------------------------------------*/ -yyerrlab1: + if (yyerrstatus == 3) { /* If just tried and failed to reuse lookahead token after an error, discard it. */ - /* return failure if at end of input */ - if (yychar == YYEOF) - YYABORT; - YYDPRINTF ((stderr, "Discarding token %d (%s).\n", - yychar, yytname[yychar1])); - yychar = YYEMPTY; + if (yychar <= YYEOF) + { + /* If at end of input, pop the error token, + then the rest of the stack, then return failure. */ + if (yychar == YYEOF) + for (;;) + { + YYPOPSTACK; + if (yyssp == yyss) + YYABORT; + YYDSYMPRINTF ("Error: popping", yystos[*yyssp], yyvsp, yylsp); + yydestruct (yystos[*yyssp], yyvsp); + } + } + else + { + YYDSYMPRINTF ("Error: discarding", yytoken, &yylval, &yylloc); + yydestruct (yytoken, &yylval); + yychar = YYEMPTY; + + } } /* Else will try to reuse lookahead token after shifting the error token. */ - - yyerrstatus = 3; /* Each real token shifted decrements this */ - - goto yyerrhandle; + goto yyerrlab1; -/*-------------------------------------------------------------------. -| yyerrdefault -- current state does not do anything special for the | -| error token. | -`-------------------------------------------------------------------*/ -yyerrdefault: -#if 0 - /* This is wrong; only states that explicitly want error tokens - should shift them. */ +/*---------------------------------------------------. +| yyerrorlab -- error raised explicitly by YYERROR. | +`---------------------------------------------------*/ +yyerrorlab: - /* If its default is to accept any token, ok. Otherwise pop it. */ - yyn = yydefact[yystate]; - if (yyn) - goto yydefault; +#ifdef __GNUC__ + /* Pacify GCC when the user code never invokes YYERROR and the label + yyerrorlab therefore never appears in user code. */ + if (0) + goto yyerrorlab; #endif + yyvsp -= yylen; + yyssp -= yylen; + yystate = *yyssp; + goto yyerrlab1; -/*---------------------------------------------------------------. -| yyerrpop -- pop the current state because it cannot handle the | -| error token | -`---------------------------------------------------------------*/ -yyerrpop: - if (yyssp == yyss) - YYABORT; - yyvsp--; - yystate = *--yyssp; -#if YYLSP_NEEDED - yylsp--; -#endif -#if YYDEBUG - if (yydebug) - { - short *yyssp1 = yyss - 1; - YYFPRINTF (stderr, "Error: state stack now"); - while (yyssp1 != yyssp) - YYFPRINTF (stderr, " %d", *++yyssp1); - YYFPRINTF (stderr, "\n"); - } -#endif +/*-------------------------------------------------------------. +| yyerrlab1 -- common code for both syntax error and YYERROR. | +`-------------------------------------------------------------*/ +yyerrlab1: + yyerrstatus = 3; /* Each real token shifted decrements this. */ -/*--------------. -| yyerrhandle. | -`--------------*/ -yyerrhandle: - yyn = yypact[yystate]; - if (yyn == YYFLAG) - goto yyerrdefault; + for (;;) + { + yyn = yypact[yystate]; + if (yyn != YYPACT_NINF) + { + yyn += YYTERROR; + if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR) + { + yyn = yytable[yyn]; + if (0 < yyn) + break; + } + } - yyn += YYTERROR; - if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != YYTERROR) - goto yyerrdefault; + /* Pop the current state because it cannot handle the error token. */ + if (yyssp == yyss) + YYABORT; - yyn = yytable[yyn]; - if (yyn < 0) - { - if (yyn == YYFLAG) - goto yyerrpop; - yyn = -yyn; - goto yyreduce; + YYDSYMPRINTF ("Error: popping", yystos[*yyssp], yyvsp, yylsp); + yydestruct (yystos[yystate], yyvsp); + YYPOPSTACK; + yystate = *yyssp; + YY_STACK_PRINT (yyss, yyssp); } - else if (yyn == 0) - goto yyerrpop; if (yyn == YYFINAL) YYACCEPT; @@ -2364,9 +2701,7 @@ YYDPRINTF ((stderr, "Shifting error token, ")); *++yyvsp = yylval; -#if YYLSP_NEEDED - *++yylsp = yylloc; -#endif + yystate = yyn; goto yynewstate; @@ -2386,13 +2721,15 @@ yyresult = 1; goto yyreturn; -/*---------------------------------------------. -| yyoverflowab -- parser overflow comes here. | -`---------------------------------------------*/ +#ifndef yyoverflow +/*----------------------------------------------. +| yyoverflowlab -- parser overflow comes here. | +`----------------------------------------------*/ yyoverflowlab: yyerror ("parser stack overflow"); yyresult = 2; /* Fall through. */ +#endif yyreturn: #ifndef yyoverflow @@ -2401,4 +2738,6 @@ #endif return yyresult; } -#line 853 "./fconfig.y" + + + --- gnats-4.1.0.orig/gnats/getdate.y +++ gnats-4.1.0/gnats/getdate.y @@ -378,19 +378,19 @@ | tSNUMBER tDAY_UNIT { PC.rel_day += $1.value * $2; } | tDAY_UNIT - { PC.rel_day += $1 } + { PC.rel_day += $1; } | tUNUMBER tHOUR_UNIT { PC.rel_hour += $1.value * $2; } | tSNUMBER tHOUR_UNIT { PC.rel_hour += $1.value * $2; } | tHOUR_UNIT - { PC.rel_hour += $1 } + { PC.rel_hour += $1; } | tUNUMBER tMINUTE_UNIT { PC.rel_minutes += $1.value * $2; } | tSNUMBER tMINUTE_UNIT { PC.rel_minutes += $1.value * $2; } | tMINUTE_UNIT - { PC.rel_minutes += $1 } + { PC.rel_minutes += $1; } | tUNUMBER tSEC_UNIT { PC.rel_seconds += $1.value * $2; } | tSNUMBER tSEC_UNIT --- gnats-4.1.0.orig/gnats/getdate.c +++ gnats-4.1.0/gnats/getdate.c @@ -1,25 +1,111 @@ -/* A Bison parser, made from ./getdate.y - by GNU bison 1.35. */ +/* A Bison parser, made by GNU Bison 2.3. */ -#define YYBISON 1 /* Identify Bison output. */ +/* Skeleton implementation for Bison's Yacc-like parsers in C -# define tAGO 257 -# define tDST 258 -# define tDAY 259 -# define tDAY_UNIT 260 -# define tDAYZONE 261 -# define tHOUR_UNIT 262 -# define tLOCAL_ZONE 263 -# define tMERIDIAN 264 -# define tMINUTE_UNIT 265 -# define tMONTH 266 -# define tMONTH_UNIT 267 -# define tSEC_UNIT 268 -# define tYEAR_UNIT 269 -# define tZONE 270 -# define tSNUMBER 271 -# define tUNUMBER 272 + Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006 + Free Software Foundation, Inc. + This program is free software; you can 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., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. */ + +/* As a special exception, you may create a larger work that contains + part or all of the Bison parser skeleton and distribute that work + under terms of your choice, so long as that work isn't itself a + parser generator using the skeleton or a modified version thereof + as a parser skeleton. Alternatively, if you modify or redistribute + the parser skeleton itself, you may (at your option) remove this + special exception, which will cause the skeleton and the resulting + Bison output files to be licensed under the GNU General Public + License without this special exception. + + This special exception was added by the Free Software Foundation in + version 2.2 of Bison. */ + +/* C LALR(1) parser skeleton written by Richard Stallman, by + simplifying the original so-called "semantic" parser. */ + +/* All symbols defined below should begin with yy or YY, to avoid + infringing on user name space. This should be done even for local + variables, as they might otherwise be expanded by user macros. + There are some unavoidable exceptions within include files to + define necessary library symbols; they are noted "INFRINGES ON + USER NAME SPACE" below. */ + +/* Identify Bison output. */ +#define YYBISON 1 + +/* Bison version. */ +#define YYBISON_VERSION "2.3" + +/* Skeleton name. */ +#define YYSKELETON_NAME "yacc.c" + +/* Pure parsers. */ +#define YYPURE 1 + +/* Using locations. */ +#define YYLSP_NEEDED 0 + + + +/* Tokens. */ +#ifndef YYTOKENTYPE +# define YYTOKENTYPE + /* Put the tokens into the symbol table, so that GDB and other debuggers + know about them. */ + enum yytokentype { + tAGO = 258, + tDST = 259, + tDAY = 260, + tDAY_UNIT = 261, + tDAYZONE = 262, + tHOUR_UNIT = 263, + tLOCAL_ZONE = 264, + tMERIDIAN = 265, + tMINUTE_UNIT = 266, + tMONTH = 267, + tMONTH_UNIT = 268, + tSEC_UNIT = 269, + tYEAR_UNIT = 270, + tZONE = 271, + tSNUMBER = 272, + tUNUMBER = 273 + }; +#endif +/* Tokens. */ +#define tAGO 258 +#define tDST 259 +#define tDAY 260 +#define tDAY_UNIT 261 +#define tDAYZONE 262 +#define tHOUR_UNIT 263 +#define tLOCAL_ZONE 264 +#define tMERIDIAN 265 +#define tMINUTE_UNIT 266 +#define tMONTH 267 +#define tMONTH_UNIT 268 +#define tSEC_UNIT 269 +#define tYEAR_UNIT 270 +#define tZONE 271 +#define tSNUMBER 272 +#define tUNUMBER 273 + + + + +/* Copy the first part of user declarations. */ #line 1 "./getdate.y" /* Parse a string into an internal time stamp. @@ -185,321 +271,237 @@ static int yylex (); -#line 172 "./getdate.y" -#ifndef YYSTYPE -typedef union -{ - int intval; - textint textintval; -} yystype; -# define YYSTYPE yystype -# define YYSTYPE_IS_TRIVIAL 1 -#endif + +/* Enabling traces. */ #ifndef YYDEBUG # define YYDEBUG 0 #endif - - -#define YYFINAL 64 -#define YYFLAG -32768 -#define YYNTBASE 22 - -/* YYTRANSLATE(YYLEX) -- Bison token number corresponding to YYLEX. */ -#define YYTRANSLATE(x) ((unsigned)(x) <= 272 ? yytranslate[x] : 33) - -/* YYTRANSLATE[YYLEX] -- Bison token number corresponding to YYLEX. */ -static const char yytranslate[] = -{ - 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 20, 2, 2, 21, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 19, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 1, 3, 4, 5, - 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, - 16, 17, 18 -}; - -#if YYDEBUG -static const short yyprhs[] = -{ - 0, 0, 1, 4, 6, 8, 10, 12, 14, 16, - 18, 21, 26, 31, 38, 45, 47, 50, 52, 54, - 57, 59, 62, 65, 69, 75, 79, 83, 86, 91, - 94, 98, 101, 103, 106, 109, 111, 114, 117, 119, - 122, 125, 127, 130, 133, 135, 138, 141, 143, 146, - 149, 151, 153, 154 -}; -static const short yyrhs[] = -{ - -1, 22, 23, 0, 24, 0, 25, 0, 26, 0, - 28, 0, 27, 0, 29, 0, 31, 0, 18, 10, - 0, 18, 19, 18, 32, 0, 18, 19, 18, 17, - 0, 18, 19, 18, 19, 18, 32, 0, 18, 19, - 18, 19, 18, 17, 0, 9, 0, 9, 4, 0, - 16, 0, 7, 0, 16, 4, 0, 5, 0, 5, - 20, 0, 18, 5, 0, 18, 21, 18, 0, 18, - 21, 18, 21, 18, 0, 18, 17, 17, 0, 18, - 12, 17, 0, 12, 18, 0, 12, 18, 20, 18, - 0, 18, 12, 0, 18, 12, 18, 0, 30, 3, - 0, 30, 0, 18, 15, 0, 17, 15, 0, 15, - 0, 18, 13, 0, 17, 13, 0, 13, 0, 18, - 6, 0, 17, 6, 0, 6, 0, 18, 8, 0, - 17, 8, 0, 8, 0, 18, 11, 0, 17, 11, - 0, 11, 0, 18, 14, 0, 17, 14, 0, 14, - 0, 18, 0, 0, 10, 0 -}; - +/* Enabling verbose error messages. */ +#ifdef YYERROR_VERBOSE +# undef YYERROR_VERBOSE +# define YYERROR_VERBOSE 1 +#else +# define YYERROR_VERBOSE 0 #endif -#if YYDEBUG -/* YYRLINE[YYN] -- source line where rule number YYN was defined. */ -static const short yyrline[] = -{ - 0, 189, 191, 194, 197, 199, 201, 203, 205, 207, - 210, 218, 225, 233, 240, 251, 254, 258, 261, 263, - 267, 273, 278, 285, 291, 311, 318, 326, 331, 337, - 342, 350, 360, 363, 366, 368, 370, 372, 374, 376, - 378, 380, 382, 384, 386, 388, 390, 392, 394, 396, - 398, 402, 438, 441 -}; +/* Enabling the token table. */ +#ifndef YYTOKEN_TABLE +# define YYTOKEN_TABLE 0 #endif - -#if (YYDEBUG) || defined YYERROR_VERBOSE - -/* YYTNAME[TOKEN_NUM] -- String name of the token TOKEN_NUM. */ -static const char *const yytname[] = +#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED +typedef union YYSTYPE +#line 173 "./getdate.y" { - "$", "error", "$undefined.", "tAGO", "tDST", "tDAY", "tDAY_UNIT", - "tDAYZONE", "tHOUR_UNIT", "tLOCAL_ZONE", "tMERIDIAN", "tMINUTE_UNIT", - "tMONTH", "tMONTH_UNIT", "tSEC_UNIT", "tYEAR_UNIT", "tZONE", "tSNUMBER", - "tUNUMBER", "':'", "','", "'/'", "spec", "item", "time", "local_zone", - "zone", "day", "date", "rel", "relunit", "number", "o_merid", 0 -}; + int intval; + textint textintval; +} +/* Line 187 of yacc.c. */ +#line 302 "getdate.c" + YYSTYPE; +# define yystype YYSTYPE /* obsolescent; will be withdrawn */ +# define YYSTYPE_IS_DECLARED 1 +# define YYSTYPE_IS_TRIVIAL 1 #endif -/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ -static const short yyr1[] = -{ - 0, 22, 22, 23, 23, 23, 23, 23, 23, 23, - 24, 24, 24, 24, 24, 25, 25, 26, 26, 26, - 27, 27, 27, 28, 28, 28, 28, 28, 28, 28, - 28, 29, 29, 30, 30, 30, 30, 30, 30, 30, - 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, - 30, 31, 32, 32 -}; -/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ -static const short yyr2[] = -{ - 0, 0, 2, 1, 1, 1, 1, 1, 1, 1, - 2, 4, 4, 6, 6, 1, 2, 1, 1, 2, - 1, 2, 2, 3, 5, 3, 3, 2, 4, 2, - 3, 2, 1, 2, 2, 1, 2, 2, 1, 2, - 2, 1, 2, 2, 1, 2, 2, 1, 2, 2, - 1, 1, 0, 1 -}; -/* YYDEFACT[S] -- default rule to reduce with in state S when YYTABLE - doesn't specify something else to do. Zero means the default is an - error. */ -static const short yydefact[] = -{ - 1, 0, 20, 41, 18, 44, 15, 47, 0, 38, - 50, 35, 17, 0, 51, 2, 3, 4, 5, 7, - 6, 8, 32, 9, 21, 16, 27, 19, 40, 43, - 46, 37, 49, 34, 22, 39, 42, 10, 45, 29, - 36, 48, 33, 0, 0, 0, 31, 0, 26, 30, - 25, 52, 23, 28, 53, 12, 0, 11, 0, 52, - 24, 14, 13, 0, 0 -}; +/* Copy the second part of user declarations. */ -static const short yydefgoto[] = -{ - 1, 15, 16, 17, 18, 19, 20, 21, 22, 23, - 57 -}; - -static const short yypact[] = -{ - -32768, 0, 1,-32768,-32768,-32768, 19,-32768, -14,-32768, - -32768,-32768, 32, 26, 14,-32768,-32768,-32768,-32768,-32768, - -32768,-32768, 27,-32768,-32768,-32768, 22,-32768,-32768,-32768, - -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, -16, - -32768,-32768,-32768, 29, 25, 30,-32768, 31,-32768,-32768, - -32768, 28, 23,-32768,-32768,-32768, 33,-32768, 34, -7, - -32768,-32768,-32768, 50,-32768 -}; - -static const short yypgoto[] = -{ - -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, - -6 -}; - - -#define YYLAST 53 +/* Line 216 of yacc.c. */ +#line 315 "getdate.c" -static const short yytable[] = -{ - 63, 48, 49, 54, 26, 2, 3, 4, 5, 6, - 61, 7, 8, 9, 10, 11, 12, 13, 14, 34, - 35, 24, 36, 25, 37, 38, 39, 40, 41, 42, - 46, 43, 28, 44, 29, 45, 27, 30, 54, 31, - 32, 33, 47, 51, 58, 55, 50, 56, 52, 53, - 64, 59, 60, 62 -}; +#ifdef short +# undef short +#endif -static const short yycheck[] = -{ - 0, 17, 18, 10, 18, 5, 6, 7, 8, 9, - 17, 11, 12, 13, 14, 15, 16, 17, 18, 5, - 6, 20, 8, 4, 10, 11, 12, 13, 14, 15, - 3, 17, 6, 19, 8, 21, 4, 11, 10, 13, - 14, 15, 20, 18, 21, 17, 17, 19, 18, 18, - 0, 18, 18, 59 -}; -#define YYPURE 1 +#ifdef YYTYPE_UINT8 +typedef YYTYPE_UINT8 yytype_uint8; +#else +typedef unsigned char yytype_uint8; +#endif -/* -*-C-*- Note some compilers choke on comments on `#line' lines. */ -#line 3 "/usr/share/bison/bison.simple" +#ifdef YYTYPE_INT8 +typedef YYTYPE_INT8 yytype_int8; +#elif (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) +typedef signed char yytype_int8; +#else +typedef short int yytype_int8; +#endif -/* Skeleton output parser for bison, +#ifdef YYTYPE_UINT16 +typedef YYTYPE_UINT16 yytype_uint16; +#else +typedef unsigned short int yytype_uint16; +#endif - Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002 Free Software - Foundation, Inc. +#ifdef YYTYPE_INT16 +typedef YYTYPE_INT16 yytype_int16; +#else +typedef short int yytype_int16; +#endif - This program is free software; you can 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. +#ifndef YYSIZE_T +# ifdef __SIZE_TYPE__ +# define YYSIZE_T __SIZE_TYPE__ +# elif defined size_t +# define YYSIZE_T size_t +# elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) +# include /* INFRINGES ON USER NAME SPACE */ +# define YYSIZE_T size_t +# else +# define YYSIZE_T unsigned int +# endif +#endif - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. +#define YYSIZE_MAXIMUM ((YYSIZE_T) -1) - 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., 59 Temple Place - Suite 330, - Boston, MA 02111-1307, USA. */ +#ifndef YY_ +# if YYENABLE_NLS +# if ENABLE_NLS +# include /* INFRINGES ON USER NAME SPACE */ +# define YY_(msgid) dgettext ("bison-runtime", msgid) +# endif +# endif +# ifndef YY_ +# define YY_(msgid) msgid +# endif +#endif -/* As a special exception, when this file is copied by Bison into a - Bison output file, you may use that output file without restriction. - This special exception was added by the Free Software Foundation - in version 1.24 of Bison. */ - -/* This is the parser code that is written into each bison parser when - the %semantic_parser declaration is not specified in the grammar. - It was written by Richard Stallman by simplifying the hairy parser - used when %semantic_parser is specified. */ +/* Suppress unused-variable warnings by "using" E. */ +#if ! defined lint || defined __GNUC__ +# define YYUSE(e) ((void) (e)) +#else +# define YYUSE(e) /* empty */ +#endif -/* All symbols defined below should begin with yy or YY, to avoid - infringing on user name space. This should be done even for local - variables, as they might otherwise be expanded by user macros. - There are some unavoidable exceptions within include files to - define necessary library symbols; they are noted "INFRINGES ON - USER NAME SPACE" below. */ +/* Identity function, used to suppress warnings about constant conditions. */ +#ifndef lint +# define YYID(n) (n) +#else +#if (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) +static int +YYID (int i) +#else +static int +YYID (i) + int i; +#endif +{ + return i; +} +#endif -#if ! defined (yyoverflow) || defined (YYERROR_VERBOSE) +#if ! defined yyoverflow || YYERROR_VERBOSE /* The parser invokes alloca or malloc; define the necessary symbols. */ -# if YYSTACK_USE_ALLOCA -# define YYSTACK_ALLOC alloca -# else -# ifndef YYSTACK_USE_ALLOCA -# if defined (alloca) || defined (_ALLOCA_H) -# define YYSTACK_ALLOC alloca +# ifdef YYSTACK_USE_ALLOCA +# if YYSTACK_USE_ALLOCA +# ifdef __GNUC__ +# define YYSTACK_ALLOC __builtin_alloca +# elif defined __BUILTIN_VA_ARG_INCR +# include /* INFRINGES ON USER NAME SPACE */ +# elif defined _AIX +# define YYSTACK_ALLOC __alloca +# elif defined _MSC_VER +# include /* INFRINGES ON USER NAME SPACE */ +# define alloca _alloca # else -# ifdef __GNUC__ -# define YYSTACK_ALLOC __builtin_alloca +# define YYSTACK_ALLOC alloca +# if ! defined _ALLOCA_H && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) +# include /* INFRINGES ON USER NAME SPACE */ +# ifndef _STDLIB_H +# define _STDLIB_H 1 +# endif # endif # endif # endif # endif # ifdef YYSTACK_ALLOC - /* Pacify GCC's `empty if-body' warning. */ -# define YYSTACK_FREE(Ptr) do { /* empty */; } while (0) + /* Pacify GCC's `empty if-body' warning. */ +# define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0)) +# ifndef YYSTACK_ALLOC_MAXIMUM + /* The OS might guarantee 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 + invoke alloca (N) if N exceeds 4096. Use a slightly smaller number + to allow for a few compiler-allocated temporary stack slots. */ +# define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */ +# endif # else -# if defined (__STDC__) || defined (__cplusplus) +# define YYSTACK_ALLOC YYMALLOC +# define YYSTACK_FREE YYFREE +# ifndef YYSTACK_ALLOC_MAXIMUM +# define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM +# endif +# if (defined __cplusplus && ! defined _STDLIB_H \ + && ! ((defined YYMALLOC || defined malloc) \ + && (defined YYFREE || defined free))) # include /* INFRINGES ON USER NAME SPACE */ -# define YYSIZE_T size_t +# ifndef _STDLIB_H +# define _STDLIB_H 1 +# endif +# endif +# ifndef YYMALLOC +# define YYMALLOC malloc +# if ! defined malloc && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) +void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */ +# endif +# endif +# ifndef YYFREE +# define YYFREE free +# if ! defined free && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) +void free (void *); /* INFRINGES ON USER NAME SPACE */ +# endif # endif -# define YYSTACK_ALLOC malloc -# define YYSTACK_FREE free # endif -#endif /* ! defined (yyoverflow) || defined (YYERROR_VERBOSE) */ +#endif /* ! defined yyoverflow || YYERROR_VERBOSE */ -#if (! defined (yyoverflow) \ - && (! defined (__cplusplus) \ - || (YYLTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL))) +#if (! defined yyoverflow \ + && (! defined __cplusplus \ + || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL))) /* A type that is properly aligned for any stack member. */ union yyalloc { - short yyss; + yytype_int16 yyss; YYSTYPE yyvs; -# if YYLSP_NEEDED - YYLTYPE yyls; -# endif -}; + }; /* The size of the maximum gap between one aligned stack and the next. */ -# define YYSTACK_GAP_MAX (sizeof (union yyalloc) - 1) +# define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1) /* The size of an array large to enough to hold all stacks, each with N elements. */ -# if YYLSP_NEEDED -# define YYSTACK_BYTES(N) \ - ((N) * (sizeof (short) + sizeof (YYSTYPE) + sizeof (YYLTYPE)) \ - + 2 * YYSTACK_GAP_MAX) -# else -# define YYSTACK_BYTES(N) \ - ((N) * (sizeof (short) + sizeof (YYSTYPE)) \ - + YYSTACK_GAP_MAX) -# endif +# define YYSTACK_BYTES(N) \ + ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \ + + YYSTACK_GAP_MAXIMUM) /* Copy COUNT objects from FROM to TO. The source and destination do not overlap. */ # ifndef YYCOPY -# if 1 < __GNUC__ +# if defined __GNUC__ && 1 < __GNUC__ # define YYCOPY(To, From, Count) \ __builtin_memcpy (To, From, (Count) * sizeof (*(From))) # else # define YYCOPY(To, From, Count) \ do \ { \ - register YYSIZE_T yyi; \ + YYSIZE_T yyi; \ for (yyi = 0; yyi < (Count); yyi++) \ (To)[yyi] = (From)[yyi]; \ } \ - while (0) + while (YYID (0)) # endif # endif @@ -514,97 +516,329 @@ YYSIZE_T yynewbytes; \ YYCOPY (&yyptr->Stack, Stack, yysize); \ Stack = &yyptr->Stack; \ - yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAX; \ + yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \ yyptr += yynewbytes / sizeof (*yyptr); \ } \ - while (0) + while (YYID (0)) #endif +/* YYFINAL -- State number of the termination state. */ +#define YYFINAL 2 +/* YYLAST -- Last index in YYTABLE. */ +#define YYLAST 52 + +/* YYNTOKENS -- Number of terminals. */ +#define YYNTOKENS 22 +/* YYNNTS -- Number of nonterminals. */ +#define YYNNTS 12 +/* YYNRULES -- Number of rules. */ +#define YYNRULES 54 +/* YYNRULES -- Number of states. */ +#define YYNSTATES 64 + +/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ +#define YYUNDEFTOK 2 +#define YYMAXUTOK 273 + +#define YYTRANSLATE(YYX) \ + ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) + +/* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */ +static const yytype_uint8 yytranslate[] = +{ + 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 20, 2, 2, 21, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 19, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 1, 2, 3, 4, + 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, + 15, 16, 17, 18 +}; -#if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__) -# define YYSIZE_T __SIZE_TYPE__ +#if YYDEBUG +/* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in + YYRHS. */ +static const yytype_uint8 yyprhs[] = +{ + 0, 0, 3, 4, 7, 9, 11, 13, 15, 17, + 19, 21, 24, 29, 34, 41, 48, 50, 53, 55, + 57, 60, 62, 65, 68, 72, 78, 82, 86, 89, + 94, 97, 101, 104, 106, 109, 112, 114, 117, 120, + 122, 125, 128, 130, 133, 136, 138, 141, 144, 146, + 149, 152, 154, 156, 157 +}; + +/* YYRHS -- A `-1'-separated list of the rules' RHS. */ +static const yytype_int8 yyrhs[] = +{ + 23, 0, -1, -1, 23, 24, -1, 25, -1, 26, + -1, 27, -1, 29, -1, 28, -1, 30, -1, 32, + -1, 18, 10, -1, 18, 19, 18, 33, -1, 18, + 19, 18, 17, -1, 18, 19, 18, 19, 18, 33, + -1, 18, 19, 18, 19, 18, 17, -1, 9, -1, + 9, 4, -1, 16, -1, 7, -1, 16, 4, -1, + 5, -1, 5, 20, -1, 18, 5, -1, 18, 21, + 18, -1, 18, 21, 18, 21, 18, -1, 18, 17, + 17, -1, 18, 12, 17, -1, 12, 18, -1, 12, + 18, 20, 18, -1, 18, 12, -1, 18, 12, 18, + -1, 31, 3, -1, 31, -1, 18, 15, -1, 17, + 15, -1, 15, -1, 18, 13, -1, 17, 13, -1, + 13, -1, 18, 6, -1, 17, 6, -1, 6, -1, + 18, 8, -1, 17, 8, -1, 8, -1, 18, 11, + -1, 17, 11, -1, 11, -1, 18, 14, -1, 17, + 14, -1, 14, -1, 18, -1, -1, 10, -1 +}; + +/* YYRLINE[YYN] -- source line where rule number YYN was defined. */ +static const yytype_uint16 yyrline[] = +{ + 0, 189, 189, 191, 195, 197, 199, 201, 203, 205, + 207, 211, 218, 225, 233, 240, 252, 254, 259, 261, + 263, 268, 273, 278, 286, 291, 311, 318, 326, 331, + 337, 342, 351, 360, 364, 366, 368, 370, 372, 374, + 376, 378, 380, 382, 384, 386, 388, 390, 392, 394, + 396, 398, 403, 440, 441 +}; #endif -#if ! defined (YYSIZE_T) && defined (size_t) -# define YYSIZE_T size_t + +#if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE +/* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM. + First, the terminals, then, starting at YYNTOKENS, nonterminals. */ +static const char *const yytname[] = +{ + "$end", "error", "$undefined", "tAGO", "tDST", "tDAY", "tDAY_UNIT", + "tDAYZONE", "tHOUR_UNIT", "tLOCAL_ZONE", "tMERIDIAN", "tMINUTE_UNIT", + "tMONTH", "tMONTH_UNIT", "tSEC_UNIT", "tYEAR_UNIT", "tZONE", "tSNUMBER", + "tUNUMBER", "':'", "','", "'/'", "$accept", "spec", "item", "time", + "local_zone", "zone", "day", "date", "rel", "relunit", "number", + "o_merid", 0 +}; #endif -#if ! defined (YYSIZE_T) -# if defined (__STDC__) || defined (__cplusplus) -# include /* INFRINGES ON USER NAME SPACE */ -# define YYSIZE_T size_t + +# ifdef YYPRINT +/* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to + token YYLEX-NUM. */ +static const yytype_uint16 yytoknum[] = +{ + 0, 256, 257, 258, 259, 260, 261, 262, 263, 264, + 265, 266, 267, 268, 269, 270, 271, 272, 273, 58, + 44, 47 +}; # endif -#endif -#if ! defined (YYSIZE_T) -# define YYSIZE_T unsigned int -#endif + +/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ +static const yytype_uint8 yyr1[] = +{ + 0, 22, 23, 23, 24, 24, 24, 24, 24, 24, + 24, 25, 25, 25, 25, 25, 26, 26, 27, 27, + 27, 28, 28, 28, 29, 29, 29, 29, 29, 29, + 29, 29, 30, 30, 31, 31, 31, 31, 31, 31, + 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, + 31, 31, 32, 33, 33 +}; + +/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ +static const yytype_uint8 yyr2[] = +{ + 0, 2, 0, 2, 1, 1, 1, 1, 1, 1, + 1, 2, 4, 4, 6, 6, 1, 2, 1, 1, + 2, 1, 2, 2, 3, 5, 3, 3, 2, 4, + 2, 3, 2, 1, 2, 2, 1, 2, 2, 1, + 2, 2, 1, 2, 2, 1, 2, 2, 1, 2, + 2, 1, 1, 0, 1 +}; + +/* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state + STATE-NUM when YYTABLE doesn't specify something else to do. Zero + means the default is an error. */ +static const yytype_uint8 yydefact[] = +{ + 2, 0, 1, 21, 42, 19, 45, 16, 48, 0, + 39, 51, 36, 18, 0, 52, 3, 4, 5, 6, + 8, 7, 9, 33, 10, 22, 17, 28, 20, 41, + 44, 47, 38, 50, 35, 23, 40, 43, 11, 46, + 30, 37, 49, 34, 0, 0, 0, 32, 0, 27, + 31, 26, 53, 24, 29, 54, 13, 0, 12, 0, + 53, 25, 15, 14 +}; + +/* YYDEFGOTO[NTERM-NUM]. */ +static const yytype_int8 yydefgoto[] = +{ + -1, 1, 16, 17, 18, 19, 20, 21, 22, 23, + 24, 58 +}; + +/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing + STATE-NUM. */ +#define YYPACT_NINF -17 +static const yytype_int8 yypact[] = +{ + -17, 0, -17, 1, -17, -17, -17, 19, -17, -14, + -17, -17, -17, 32, 26, 14, -17, -17, -17, -17, + -17, -17, -17, 27, -17, -17, -17, 22, -17, -17, + -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, + -16, -17, -17, -17, 29, 25, 30, -17, 31, -17, + -17, -17, 28, 23, -17, -17, -17, 33, -17, 34, + -7, -17, -17, -17 +}; + +/* YYPGOTO[NTERM-NUM]. */ +static const yytype_int8 yypgoto[] = +{ + -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, + -17, -10 +}; + +/* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If + positive, shift that token. If negative, reduce the rule which + number is the opposite. If zero, do what YYDEFACT says. + If YYTABLE_NINF, syntax error. */ +#define YYTABLE_NINF -1 +static const yytype_uint8 yytable[] = +{ + 2, 49, 50, 55, 27, 3, 4, 5, 6, 7, + 62, 8, 9, 10, 11, 12, 13, 14, 15, 35, + 36, 25, 37, 26, 38, 39, 40, 41, 42, 43, + 47, 44, 29, 45, 30, 46, 28, 31, 55, 32, + 33, 34, 48, 52, 59, 56, 51, 57, 53, 54, + 63, 60, 61 +}; + +static const yytype_uint8 yycheck[] = +{ + 0, 17, 18, 10, 18, 5, 6, 7, 8, 9, + 17, 11, 12, 13, 14, 15, 16, 17, 18, 5, + 6, 20, 8, 4, 10, 11, 12, 13, 14, 15, + 3, 17, 6, 19, 8, 21, 4, 11, 10, 13, + 14, 15, 20, 18, 21, 17, 17, 19, 18, 18, + 60, 18, 18 +}; + +/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing + symbol of state STATE-NUM. */ +static const yytype_uint8 yystos[] = +{ + 0, 23, 0, 5, 6, 7, 8, 9, 11, 12, + 13, 14, 15, 16, 17, 18, 24, 25, 26, 27, + 28, 29, 30, 31, 32, 20, 4, 18, 4, 6, + 8, 11, 13, 14, 15, 5, 6, 8, 10, 11, + 12, 13, 14, 15, 17, 19, 21, 3, 20, 17, + 18, 17, 18, 18, 18, 10, 17, 19, 33, 21, + 18, 18, 17, 33 +}; #define yyerrok (yyerrstatus = 0) #define yyclearin (yychar = YYEMPTY) -#define YYEMPTY -2 +#define YYEMPTY (-2) #define YYEOF 0 + #define YYACCEPT goto yyacceptlab -#define YYABORT goto yyabortlab -#define YYERROR goto yyerrlab1 +#define YYABORT goto yyabortlab +#define YYERROR goto yyerrorlab + + /* Like YYERROR except do call yyerror. This remains here temporarily to ease the transition to the new meaning of YYERROR, for GCC. Once GCC version 2 has supplanted version 1, this can go. */ + #define YYFAIL goto yyerrlab + #define YYRECOVERING() (!!yyerrstatus) + #define YYBACKUP(Token, Value) \ do \ if (yychar == YYEMPTY && yylen == 1) \ { \ yychar = (Token); \ yylval = (Value); \ - yychar1 = YYTRANSLATE (yychar); \ - YYPOPSTACK; \ + yytoken = YYTRANSLATE (yychar); \ + YYPOPSTACK (1); \ goto yybackup; \ } \ else \ - { \ - yyerror ("syntax error: cannot back up"); \ + { \ + yyerror (YY_("syntax error: cannot back up")); \ YYERROR; \ } \ -while (0) +while (YYID (0)) + #define YYTERROR 1 #define YYERRCODE 256 -/* YYLLOC_DEFAULT -- Compute the default location (before the actions - are run). - - When YYLLOC_DEFAULT is run, CURRENT is set the location of the - first token. By default, to implement support for ranges, extend - its range to the last symbol. */ +/* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N]. + If N is 0, then set CURRENT to the empty location which ends + the previous symbol: RHS[0] (always defined). */ +#define YYRHSLOC(Rhs, K) ((Rhs)[K]) #ifndef YYLLOC_DEFAULT -# define YYLLOC_DEFAULT(Current, Rhs, N) \ - Current.last_line = Rhs[N].last_line; \ - Current.last_column = Rhs[N].last_column; +# define YYLLOC_DEFAULT(Current, Rhs, N) \ + do \ + if (YYID (N)) \ + { \ + (Current).first_line = YYRHSLOC (Rhs, 1).first_line; \ + (Current).first_column = YYRHSLOC (Rhs, 1).first_column; \ + (Current).last_line = YYRHSLOC (Rhs, N).last_line; \ + (Current).last_column = YYRHSLOC (Rhs, N).last_column; \ + } \ + else \ + { \ + (Current).first_line = (Current).last_line = \ + YYRHSLOC (Rhs, 0).last_line; \ + (Current).first_column = (Current).last_column = \ + YYRHSLOC (Rhs, 0).last_column; \ + } \ + while (YYID (0)) #endif -/* YYLEX -- calling `yylex' with the right arguments. */ +/* YY_LOCATION_PRINT -- Print the location on the stream. + This macro was not mandated originally: define only if we know + we won't break user code: when these are the locations we know. */ + +#ifndef YY_LOCATION_PRINT +# if YYLTYPE_IS_TRIVIAL +# define YY_LOCATION_PRINT(File, Loc) \ + fprintf (File, "%d.%d-%d.%d", \ + (Loc).first_line, (Loc).first_column, \ + (Loc).last_line, (Loc).last_column) +# else +# define YY_LOCATION_PRINT(File, Loc) ((void) 0) +# endif +#endif -#if YYPURE -# if YYLSP_NEEDED -# ifdef YYLEX_PARAM -# define YYLEX yylex (&yylval, &yylloc, YYLEX_PARAM) -# else -# define YYLEX yylex (&yylval, &yylloc) -# endif -# else /* !YYLSP_NEEDED */ -# ifdef YYLEX_PARAM -# define YYLEX yylex (&yylval, YYLEX_PARAM) -# else -# define YYLEX yylex (&yylval) -# endif -# endif /* !YYLSP_NEEDED */ -#else /* !YYPURE */ -# define YYLEX yylex () -#endif /* !YYPURE */ +/* YYLEX -- calling `yylex' with the right arguments. */ + +#ifdef YYLEX_PARAM +# define YYLEX yylex (&yylval, YYLEX_PARAM) +#else +# define YYLEX yylex (&yylval) +#endif /* Enable debugging if requested. */ #if YYDEBUG @@ -618,14 +852,155 @@ do { \ if (yydebug) \ YYFPRINTF Args; \ -} while (0) +} while (YYID (0)) + +# define YY_SYMBOL_PRINT(Title, Type, Value, Location) \ +do { \ + if (yydebug) \ + { \ + YYFPRINTF (stderr, "%s ", Title); \ + yy_symbol_print (stderr, \ + Type, Value); \ + YYFPRINTF (stderr, "\n"); \ + } \ +} while (YYID (0)) + + +/*--------------------------------. +| Print this symbol on YYOUTPUT. | +`--------------------------------*/ + +/*ARGSUSED*/ +#if (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) +static void +yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep) +#else +static void +yy_symbol_value_print (yyoutput, yytype, yyvaluep) + FILE *yyoutput; + int yytype; + YYSTYPE const * const yyvaluep; +#endif +{ + if (!yyvaluep) + return; +# ifdef YYPRINT + if (yytype < YYNTOKENS) + YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep); +# else + YYUSE (yyoutput); +# endif + switch (yytype) + { + default: + break; + } +} + + +/*--------------------------------. +| Print this symbol on YYOUTPUT. | +`--------------------------------*/ + +#if (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) +static void +yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep) +#else +static void +yy_symbol_print (yyoutput, yytype, yyvaluep) + FILE *yyoutput; + int yytype; + YYSTYPE const * const yyvaluep; +#endif +{ + if (yytype < YYNTOKENS) + YYFPRINTF (yyoutput, "token %s (", yytname[yytype]); + else + YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]); + + yy_symbol_value_print (yyoutput, yytype, yyvaluep); + YYFPRINTF (yyoutput, ")"); +} + +/*------------------------------------------------------------------. +| yy_stack_print -- Print the state stack from its BOTTOM up to its | +| TOP (included). | +`------------------------------------------------------------------*/ + +#if (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) +static void +yy_stack_print (yytype_int16 *bottom, yytype_int16 *top) +#else +static void +yy_stack_print (bottom, top) + yytype_int16 *bottom; + yytype_int16 *top; +#endif +{ + YYFPRINTF (stderr, "Stack now"); + for (; bottom <= top; ++bottom) + YYFPRINTF (stderr, " %d", *bottom); + YYFPRINTF (stderr, "\n"); +} + +# define YY_STACK_PRINT(Bottom, Top) \ +do { \ + if (yydebug) \ + yy_stack_print ((Bottom), (Top)); \ +} while (YYID (0)) + + +/*------------------------------------------------. +| Report that the YYRULE is going to be reduced. | +`------------------------------------------------*/ + +#if (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) +static void +yy_reduce_print (YYSTYPE *yyvsp, int yyrule) +#else +static void +yy_reduce_print (yyvsp, yyrule) + YYSTYPE *yyvsp; + int yyrule; +#endif +{ + int yynrhs = yyr2[yyrule]; + int yyi; + unsigned long int yylno = yyrline[yyrule]; + YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n", + yyrule - 1, yylno); + /* The symbols being reduced. */ + for (yyi = 0; yyi < yynrhs; yyi++) + { + fprintf (stderr, " $%d = ", yyi + 1); + yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi], + &(yyvsp[(yyi + 1) - (yynrhs)]) + ); + fprintf (stderr, "\n"); + } +} + +# define YY_REDUCE_PRINT(Rule) \ +do { \ + if (yydebug) \ + yy_reduce_print (yyvsp, Rule); \ +} while (YYID (0)) + /* Nonzero means print parse trace. It is left uninitialized so that multiple parsers can coexist. */ int yydebug; #else /* !YYDEBUG */ # define YYDPRINTF(Args) +# define YY_SYMBOL_PRINT(Title, Type, Value, Location) +# define YY_STACK_PRINT(Bottom, Top) +# define YY_REDUCE_PRINT(Rule) #endif /* !YYDEBUG */ + /* YYINITDEPTH -- initial size of the parser's stacks. */ #ifndef YYINITDEPTH # define YYINITDEPTH 200 @@ -635,60 +1010,59 @@ if the built-in stack extension method is used). Do not make this value too large; the results are undefined if - SIZE_MAX < YYSTACK_BYTES (YYMAXDEPTH) + YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH) evaluated with infinite-precision integer arithmetic. */ -#if YYMAXDEPTH == 0 -# undef YYMAXDEPTH -#endif - #ifndef YYMAXDEPTH # define YYMAXDEPTH 10000 #endif + -#ifdef YYERROR_VERBOSE + +#if YYERROR_VERBOSE # ifndef yystrlen -# if defined (__GLIBC__) && defined (_STRING_H) +# if defined __GLIBC__ && defined _STRING_H # define yystrlen strlen # else /* Return the length of YYSTR. */ +#if (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) static YYSIZE_T -# if defined (__STDC__) || defined (__cplusplus) yystrlen (const char *yystr) -# else +#else +static YYSIZE_T yystrlen (yystr) - const char *yystr; -# endif + const char *yystr; +#endif { - register const char *yys = yystr; - - while (*yys++ != '\0') + YYSIZE_T yylen; + for (yylen = 0; yystr[yylen]; yylen++) continue; - - return yys - yystr - 1; + return yylen; } # endif # endif # ifndef yystpcpy -# if defined (__GLIBC__) && defined (_STRING_H) && defined (_GNU_SOURCE) -# include +# if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE # define yystpcpy stpcpy # else /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in YYDEST. */ +#if (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) static char * -# if defined (__STDC__) || defined (__cplusplus) yystpcpy (char *yydest, const char *yysrc) -# else +#else +static char * yystpcpy (yydest, yysrc) - char *yydest; - const char *yysrc; -# endif + char *yydest; + const char *yysrc; +#endif { - register char *yyd = yydest; - register const char *yys = yysrc; + char *yyd = yydest; + const char *yys = yysrc; while ((*yyd++ = *yys++) != '\0') continue; @@ -697,86 +1071,266 @@ } # endif # endif -#endif + +# ifndef yytnamerr +/* Copy to YYRES the contents of YYSTR after stripping away unnecessary + quotes and backslashes, so that it's suitable for yyerror. The + heuristic is that double-quoting is unnecessary unless the string + contains an apostrophe, a comma, or backslash (other than + backslash-backslash). YYSTR is taken from yytname. If YYRES is + null, do not copy; instead, return the length of what the result + would have been. */ +static YYSIZE_T +yytnamerr (char *yyres, const char *yystr) +{ + if (*yystr == '"') + { + YYSIZE_T yyn = 0; + char const *yyp = yystr; + + for (;;) + switch (*++yyp) + { + case '\'': + case ',': + goto do_not_strip_quotes; + + case '\\': + if (*++yyp != '\\') + goto do_not_strip_quotes; + /* Fall through. */ + default: + if (yyres) + yyres[yyn] = *yyp; + yyn++; + break; + + case '"': + if (yyres) + yyres[yyn] = '\0'; + return yyn; + } + do_not_strip_quotes: ; + } + + if (! yyres) + return yystrlen (yystr); + + return yystpcpy (yyres, yystr) - yyres; +} +# endif + +/* Copy into YYRESULT an error message about the unexpected token + YYCHAR while in state YYSTATE. Return the number of bytes copied, + including the terminating null byte. If YYRESULT is null, do not + copy anything; just return the number of bytes that would be + copied. As a special case, return 0 if an ordinary "syntax error" + message will do. Return YYSIZE_MAXIMUM if overflow occurs during + size calculation. */ +static YYSIZE_T +yysyntax_error (char *yyresult, int yystate, int yychar) +{ + int yyn = yypact[yystate]; + + if (! (YYPACT_NINF < yyn && yyn <= YYLAST)) + return 0; + else + { + int yytype = YYTRANSLATE (yychar); + YYSIZE_T yysize0 = yytnamerr (0, yytname[yytype]); + YYSIZE_T yysize = yysize0; + YYSIZE_T yysize1; + int yysize_overflow = 0; + enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 }; + char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM]; + int yyx; + +# if 0 + /* This is so xgettext sees the translatable formats that are + constructed on the fly. */ + YY_("syntax error, unexpected %s"); + YY_("syntax error, unexpected %s, expecting %s"); + YY_("syntax error, unexpected %s, expecting %s or %s"); + YY_("syntax error, unexpected %s, expecting %s or %s or %s"); + YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s"); +# endif + char *yyfmt; + char const *yyf; + static char const yyunexpected[] = "syntax error, unexpected %s"; + static char const yyexpecting[] = ", expecting %s"; + static char const yyor[] = " or %s"; + char yyformat[sizeof yyunexpected + + sizeof yyexpecting - 1 + + ((YYERROR_VERBOSE_ARGS_MAXIMUM - 2) + * (sizeof yyor - 1))]; + char const *yyprefix = yyexpecting; + + /* Start YYX at -YYN if negative to avoid negative indexes in + YYCHECK. */ + int yyxbegin = yyn < 0 ? -yyn : 0; + + /* Stay within bounds of both yycheck and yytname. */ + int yychecklim = YYLAST - yyn + 1; + int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS; + int yycount = 1; + + yyarg[0] = yytname[yytype]; + yyfmt = yystpcpy (yyformat, yyunexpected); + + for (yyx = yyxbegin; yyx < yyxend; ++yyx) + if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR) + { + if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM) + { + yycount = 1; + yysize = yysize0; + yyformat[sizeof yyunexpected - 1] = '\0'; + break; + } + yyarg[yycount++] = yytname[yyx]; + yysize1 = yysize + yytnamerr (0, yytname[yyx]); + yysize_overflow |= (yysize1 < yysize); + yysize = yysize1; + yyfmt = yystpcpy (yyfmt, yyprefix); + yyprefix = yyor; + } + + yyf = YY_(yyformat); + yysize1 = yysize + yystrlen (yyf); + yysize_overflow |= (yysize1 < yysize); + yysize = yysize1; + + if (yysize_overflow) + return YYSIZE_MAXIMUM; + + if (yyresult) + { + /* Avoid sprintf, as that infringes on the user's name space. + Don't have undefined behavior even if the translation + produced a string with the wrong number of "%s"s. */ + char *yyp = yyresult; + int yyi = 0; + while ((*yyp = *yyf) != '\0') + { + if (*yyp == '%' && yyf[1] == 's' && yyi < yycount) + { + yyp += yytnamerr (yyp, yyarg[yyi++]); + yyf += 2; + } + else + { + yyp++; + yyf++; + } + } + } + return yysize; + } +} +#endif /* YYERROR_VERBOSE */ -#line 316 "/usr/share/bison/bison.simple" +/*-----------------------------------------------. +| Release the memory associated to this symbol. | +`-----------------------------------------------*/ + +/*ARGSUSED*/ +#if (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) +static void +yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep) +#else +static void +yydestruct (yymsg, yytype, yyvaluep) + const char *yymsg; + int yytype; + YYSTYPE *yyvaluep; +#endif +{ + YYUSE (yyvaluep); + + if (!yymsg) + yymsg = "Deleting"; + YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp); + + switch (yytype) + { + + default: + break; + } +} + -/* The user can define YYPARSE_PARAM as the name of an argument to be passed - into yyparse. The argument should have type void *. - It should actually point to an object. - Grammar actions can access the variable by casting it - to the proper pointer type. */ +/* Prevent warnings from -Wmissing-prototypes. */ #ifdef YYPARSE_PARAM -# if defined (__STDC__) || defined (__cplusplus) -# define YYPARSE_PARAM_ARG void *YYPARSE_PARAM -# define YYPARSE_PARAM_DECL -# else -# define YYPARSE_PARAM_ARG YYPARSE_PARAM -# define YYPARSE_PARAM_DECL void *YYPARSE_PARAM; -# endif -#else /* !YYPARSE_PARAM */ -# define YYPARSE_PARAM_ARG -# define YYPARSE_PARAM_DECL -#endif /* !YYPARSE_PARAM */ - -/* Prevent warning if -Wstrict-prototypes. */ -#ifdef __GNUC__ -# ifdef YYPARSE_PARAM -int yyparse (void *); -# else +#if defined __STDC__ || defined __cplusplus +int yyparse (void *YYPARSE_PARAM); +#else +int yyparse (); +#endif +#else /* ! YYPARSE_PARAM */ +#if defined __STDC__ || defined __cplusplus int yyparse (void); -# endif +#else +int yyparse (); #endif +#endif /* ! YYPARSE_PARAM */ + + -/* YY_DECL_VARIABLES -- depending whether we use a pure parser, - variables are global, or local to YYPARSE. */ -#define YY_DECL_NON_LSP_VARIABLES \ -/* The lookahead symbol. */ \ -int yychar; \ - \ -/* The semantic value of the lookahead symbol. */ \ -YYSTYPE yylval; \ - \ -/* Number of parse errors so far. */ \ -int yynerrs; -#if YYLSP_NEEDED -# define YY_DECL_VARIABLES \ -YY_DECL_NON_LSP_VARIABLES \ - \ -/* Location data for the lookahead symbol. */ \ -YYLTYPE yylloc; + +/*----------. +| yyparse. | +`----------*/ + +#ifdef YYPARSE_PARAM +#if (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) +int +yyparse (void *YYPARSE_PARAM) #else -# define YY_DECL_VARIABLES \ -YY_DECL_NON_LSP_VARIABLES +int +yyparse (YYPARSE_PARAM) + void *YYPARSE_PARAM; #endif +#else /* ! YYPARSE_PARAM */ +#if (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) +int +yyparse (void) +#else +int +yyparse () +#endif +#endif +{ + /* The look-ahead symbol. */ +int yychar; -/* If nonreentrant, generate the variables here. */ - -#if !YYPURE -YY_DECL_VARIABLES -#endif /* !YYPURE */ +/* The semantic value of the look-ahead symbol. */ +YYSTYPE yylval; -int -yyparse (YYPARSE_PARAM_ARG) - YYPARSE_PARAM_DECL -{ - /* If reentrant, generate the variables here. */ -#if YYPURE - YY_DECL_VARIABLES -#endif /* !YYPURE */ +/* Number of syntax errors so far. */ +int yynerrs; - register int yystate; - register int yyn; + int yystate; + int yyn; int yyresult; /* Number of tokens to shift before error messages enabled. */ int yyerrstatus; - /* Lookahead token as an internal (translated) token number. */ - int yychar1 = 0; + /* Look-ahead token as an internal (translated) token number. */ + int yytoken = 0; +#if YYERROR_VERBOSE + /* Buffer for error messages, and its allocated size. */ + char yymsgbuf[128]; + char *yymsg = yymsgbuf; + YYSIZE_T yymsg_alloc = sizeof yymsgbuf; +#endif /* Three stacks and their tools: `yyss': related to states, @@ -786,42 +1340,30 @@ Refer to the stacks thru separate pointers, to allow yyoverflow to reallocate them elsewhere. */ - /* The state stack. */ - short yyssa[YYINITDEPTH]; - short *yyss = yyssa; - register short *yyssp; + /* The state stack. */ + yytype_int16 yyssa[YYINITDEPTH]; + yytype_int16 *yyss = yyssa; + yytype_int16 *yyssp; /* The semantic value stack. */ YYSTYPE yyvsa[YYINITDEPTH]; YYSTYPE *yyvs = yyvsa; - register YYSTYPE *yyvsp; + YYSTYPE *yyvsp; -#if YYLSP_NEEDED - /* The location stack. */ - YYLTYPE yylsa[YYINITDEPTH]; - YYLTYPE *yyls = yylsa; - YYLTYPE *yylsp; -#endif -#if YYLSP_NEEDED -# define YYPOPSTACK (yyvsp--, yyssp--, yylsp--) -#else -# define YYPOPSTACK (yyvsp--, yyssp--) -#endif - YYSIZE_T yystacksize = YYINITDEPTH; +#define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N)) + YYSIZE_T yystacksize = YYINITDEPTH; /* The variables used to return semantic value and location from the action routines. */ YYSTYPE yyval; -#if YYLSP_NEEDED - YYLTYPE yyloc; -#endif - /* When reducing, the number of symbols on the RHS of the reduced - rule. */ - int yylen; + + /* The number of symbols on the RHS of the reduced rule. + Keep to zero when no symbol should be popped. */ + int yylen = 0; YYDPRINTF ((stderr, "Starting parse\n")); @@ -837,9 +1379,7 @@ yyssp = yyss; yyvsp = yyvs; -#if YYLSP_NEEDED - yylsp = yyls; -#endif + goto yysetstate; /*------------------------------------------------------------. @@ -847,70 +1387,60 @@ `------------------------------------------------------------*/ yynewstate: /* In all cases, when you get here, the value and location stacks - have just been pushed. so pushing a state here evens the stacks. - */ + have just been pushed. So pushing a state here evens the stacks. */ yyssp++; yysetstate: *yyssp = yystate; - if (yyssp >= yyss + yystacksize - 1) + if (yyss + yystacksize - 1 <= yyssp) { /* Get the current used size of the three stacks, in elements. */ YYSIZE_T yysize = yyssp - yyss + 1; #ifdef yyoverflow { - /* Give user a chance to reallocate the stack. Use copies of + /* Give user a chance to reallocate the stack. Use copies of these so that the &'s don't force the real ones into memory. */ YYSTYPE *yyvs1 = yyvs; - short *yyss1 = yyss; + yytype_int16 *yyss1 = yyss; + /* Each stack pointer address is followed by the size of the - data in use in that stack, in bytes. */ -# if YYLSP_NEEDED - YYLTYPE *yyls1 = yyls; - /* This used to be a conditional around just the two extra args, - but that might be undefined if yyoverflow is a macro. */ - yyoverflow ("parser stack overflow", - &yyss1, yysize * sizeof (*yyssp), - &yyvs1, yysize * sizeof (*yyvsp), - &yyls1, yysize * sizeof (*yylsp), - &yystacksize); - yyls = yyls1; -# else - yyoverflow ("parser stack overflow", + data in use in that stack, in bytes. This used to be a + conditional around just the two extra args, but that might + be undefined if yyoverflow is a macro. */ + yyoverflow (YY_("memory exhausted"), &yyss1, yysize * sizeof (*yyssp), &yyvs1, yysize * sizeof (*yyvsp), + &yystacksize); -# endif + yyss = yyss1; yyvs = yyvs1; } #else /* no yyoverflow */ # ifndef YYSTACK_RELOCATE - goto yyoverflowlab; + goto yyexhaustedlab; # else /* Extend the stack our own way. */ - if (yystacksize >= YYMAXDEPTH) - goto yyoverflowlab; + if (YYMAXDEPTH <= yystacksize) + goto yyexhaustedlab; yystacksize *= 2; - if (yystacksize > YYMAXDEPTH) + if (YYMAXDEPTH < yystacksize) yystacksize = YYMAXDEPTH; { - short *yyss1 = yyss; + yytype_int16 *yyss1 = yyss; union yyalloc *yyptr = (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize)); if (! yyptr) - goto yyoverflowlab; + goto yyexhaustedlab; YYSTACK_RELOCATE (yyss); YYSTACK_RELOCATE (yyvs); -# if YYLSP_NEEDED - YYSTACK_RELOCATE (yyls); -# endif -# undef YYSTACK_RELOCATE + +# undef YYSTACK_RELOCATE if (yyss1 != yyssa) YYSTACK_FREE (yyss1); } @@ -919,14 +1449,12 @@ yyssp = yyss + yysize - 1; yyvsp = yyvs + yysize - 1; -#if YYLSP_NEEDED - yylsp = yyls + yysize - 1; -#endif + YYDPRINTF ((stderr, "Stack size increased to %lu\n", (unsigned long int) yystacksize)); - if (yyssp >= yyss + yystacksize - 1) + if (yyss + yystacksize - 1 <= yyssp) YYABORT; } @@ -934,108 +1462,71 @@ goto yybackup; - /*-----------. | yybackup. | `-----------*/ yybackup: -/* Do appropriate processing given the current state. */ -/* Read a lookahead token if we need one and don't already have one. */ -/* yyresume: */ - - /* First try to decide what to do without reference to lookahead token. */ + /* Do appropriate processing given the current state. Read a + look-ahead token if we need one and don't already have one. */ + /* First try to decide what to do without reference to look-ahead token. */ yyn = yypact[yystate]; - if (yyn == YYFLAG) + if (yyn == YYPACT_NINF) goto yydefault; - /* Not known => get a lookahead token if don't already have one. */ - - /* yychar is either YYEMPTY or YYEOF - or a valid token in external form. */ + /* Not known => get a look-ahead token if don't already have one. */ + /* YYCHAR is either YYEMPTY or YYEOF or a valid look-ahead symbol. */ if (yychar == YYEMPTY) { YYDPRINTF ((stderr, "Reading a token: ")); yychar = YYLEX; } - /* Convert token to internal form (in yychar1) for indexing tables with */ - - if (yychar <= 0) /* This means end of input. */ + if (yychar <= YYEOF) { - yychar1 = 0; - yychar = YYEOF; /* Don't call YYLEX any more */ - + yychar = yytoken = YYEOF; YYDPRINTF ((stderr, "Now at end of input.\n")); } else { - yychar1 = YYTRANSLATE (yychar); - -#if YYDEBUG - /* We have to keep this `#if YYDEBUG', since we use variables - which are defined only if `YYDEBUG' is set. */ - if (yydebug) - { - YYFPRINTF (stderr, "Next token is %d (%s", - yychar, yytname[yychar1]); - /* Give the individual parser a way to print the precise - meaning of a token, for further debugging info. */ -# ifdef YYPRINT - YYPRINT (stderr, yychar, yylval); -# endif - YYFPRINTF (stderr, ")\n"); - } -#endif + yytoken = YYTRANSLATE (yychar); + YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc); } - yyn += yychar1; - if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1) + /* If the proper action on seeing token YYTOKEN is to reduce or to + detect an error, take that action. */ + yyn += yytoken; + if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken) goto yydefault; - yyn = yytable[yyn]; - - /* yyn is what to do for this token type in this state. - Negative => reduce, -yyn is rule number. - Positive => shift, yyn is new state. - New state is final state => don't bother to shift, - just return success. - 0, or most negative number => error. */ - - if (yyn < 0) + if (yyn <= 0) { - if (yyn == YYFLAG) + if (yyn == 0 || yyn == YYTABLE_NINF) goto yyerrlab; yyn = -yyn; goto yyreduce; } - else if (yyn == 0) - goto yyerrlab; if (yyn == YYFINAL) YYACCEPT; - /* Shift the lookahead token. */ - YYDPRINTF ((stderr, "Shifting token %d (%s), ", - yychar, yytname[yychar1])); - - /* Discard the token being shifted unless it is eof. */ - if (yychar != YYEOF) - yychar = YYEMPTY; - - *++yyvsp = yylval; -#if YYLSP_NEEDED - *++yylsp = yylloc; -#endif - /* Count tokens shifted since error; after three, turn off error status. */ if (yyerrstatus) yyerrstatus--; + /* Shift the look-ahead token. */ + YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc); + + /* Discard the shifted token unless it is eof. */ + if (yychar != YYEOF) + yychar = YYEMPTY; + yystate = yyn; + *++yyvsp = yylval; + goto yynewstate; @@ -1059,382 +1550,396 @@ /* If YYLEN is nonzero, implement the default value of the action: `$$ = $1'. - Otherwise, the following line sets YYVAL to the semantic value of - the lookahead token. This behavior is undocumented and Bison + Otherwise, the following line sets YYVAL to garbage. + This behavior is undocumented and Bison users should not rely upon it. Assigning to YYVAL unconditionally makes the parser a bit smaller, and it avoids a GCC warning that YYVAL may be used uninitialized. */ yyval = yyvsp[1-yylen]; -#if YYLSP_NEEDED - /* Similarly for the default location. Let the user run additional - commands if for instance locations are ranges. */ - yyloc = yylsp[1-yylen]; - YYLLOC_DEFAULT (yyloc, (yylsp - yylen), yylen); -#endif -#if YYDEBUG - /* We have to keep this `#if YYDEBUG', since we use variables which - are defined only if `YYDEBUG' is set. */ - if (yydebug) + YY_REDUCE_PRINT (yyn); + switch (yyn) { - int yyi; - - YYFPRINTF (stderr, "Reducing via rule %d (line %d), ", - yyn, yyrline[yyn]); - - /* Print the symbols being reduced, and their result. */ - for (yyi = yyprhs[yyn]; yyrhs[yyi] > 0; yyi++) - YYFPRINTF (stderr, "%s ", yytname[yyrhs[yyi]]); - YYFPRINTF (stderr, " -> %s\n", yytname[yyr1[yyn]]); - } -#endif - - switch (yyn) { - -case 3: + case 4: #line 196 "./getdate.y" -{ PC.times_seen++; ; - break;} -case 4: + { PC.times_seen++; } + break; + + case 5: #line 198 "./getdate.y" -{ PC.local_zones_seen++; ; - break;} -case 5: + { PC.local_zones_seen++; } + break; + + case 6: #line 200 "./getdate.y" -{ PC.zones_seen++; ; - break;} -case 6: + { PC.zones_seen++; } + break; + + case 7: #line 202 "./getdate.y" -{ PC.dates_seen++; ; - break;} -case 7: + { PC.dates_seen++; } + break; + + case 8: #line 204 "./getdate.y" -{ PC.days_seen++; ; - break;} -case 8: + { PC.days_seen++; } + break; + + case 9: #line 206 "./getdate.y" -{ PC.rels_seen++; ; - break;} -case 10: + { PC.rels_seen++; } + break; + + case 11: #line 212 "./getdate.y" -{ - PC.hour = yyvsp[-1].textintval.value; + { + PC.hour = (yyvsp[(1) - (2)].textintval).value; PC.minutes = 0; PC.seconds = 0; - PC.meridian = yyvsp[0].intval; - ; - break;} -case 11: + PC.meridian = (yyvsp[(2) - (2)].intval); + } + break; + + case 12: #line 219 "./getdate.y" -{ - PC.hour = yyvsp[-3].textintval.value; - PC.minutes = yyvsp[-1].textintval.value; + { + PC.hour = (yyvsp[(1) - (4)].textintval).value; + PC.minutes = (yyvsp[(3) - (4)].textintval).value; PC.seconds = 0; - PC.meridian = yyvsp[0].intval; - ; - break;} -case 12: + PC.meridian = (yyvsp[(4) - (4)].intval); + } + break; + + case 13: #line 226 "./getdate.y" -{ - PC.hour = yyvsp[-3].textintval.value; - PC.minutes = yyvsp[-1].textintval.value; + { + PC.hour = (yyvsp[(1) - (4)].textintval).value; + PC.minutes = (yyvsp[(3) - (4)].textintval).value; PC.meridian = MER24; PC.zones_seen++; - PC.time_zone = yyvsp[0].textintval.value % 100 + (yyvsp[0].textintval.value / 100) * 60; - ; - break;} -case 13: + PC.time_zone = (yyvsp[(4) - (4)].textintval).value % 100 + ((yyvsp[(4) - (4)].textintval).value / 100) * 60; + } + break; + + case 14: #line 234 "./getdate.y" -{ - PC.hour = yyvsp[-5].textintval.value; - PC.minutes = yyvsp[-3].textintval.value; - PC.seconds = yyvsp[-1].textintval.value; - PC.meridian = yyvsp[0].intval; - ; - break;} -case 14: + { + PC.hour = (yyvsp[(1) - (6)].textintval).value; + PC.minutes = (yyvsp[(3) - (6)].textintval).value; + PC.seconds = (yyvsp[(5) - (6)].textintval).value; + PC.meridian = (yyvsp[(6) - (6)].intval); + } + break; + + case 15: #line 241 "./getdate.y" -{ - PC.hour = yyvsp[-5].textintval.value; - PC.minutes = yyvsp[-3].textintval.value; - PC.seconds = yyvsp[-1].textintval.value; + { + PC.hour = (yyvsp[(1) - (6)].textintval).value; + PC.minutes = (yyvsp[(3) - (6)].textintval).value; + PC.seconds = (yyvsp[(5) - (6)].textintval).value; PC.meridian = MER24; PC.zones_seen++; - PC.time_zone = yyvsp[0].textintval.value % 100 + (yyvsp[0].textintval.value / 100) * 60; - ; - break;} -case 15: + PC.time_zone = (yyvsp[(6) - (6)].textintval).value % 100 + ((yyvsp[(6) - (6)].textintval).value / 100) * 60; + } + break; + + case 16: #line 253 "./getdate.y" -{ PC.local_isdst = yyvsp[0].intval; ; - break;} -case 16: + { PC.local_isdst = (yyvsp[(1) - (1)].intval); } + break; + + case 17: #line 255 "./getdate.y" -{ PC.local_isdst = yyvsp[-1].intval < 0 ? 1 : yyvsp[-1].intval + 1; ; - break;} -case 17: + { PC.local_isdst = (yyvsp[(1) - (2)].intval) < 0 ? 1 : (yyvsp[(1) - (2)].intval) + 1; } + break; + + case 18: #line 260 "./getdate.y" -{ PC.time_zone = yyvsp[0].intval; ; - break;} -case 18: + { PC.time_zone = (yyvsp[(1) - (1)].intval); } + break; + + case 19: #line 262 "./getdate.y" -{ PC.time_zone = yyvsp[0].intval + 60; ; - break;} -case 19: + { PC.time_zone = (yyvsp[(1) - (1)].intval) + 60; } + break; + + case 20: #line 264 "./getdate.y" -{ PC.time_zone = yyvsp[-1].intval + 60; ; - break;} -case 20: + { PC.time_zone = (yyvsp[(1) - (2)].intval) + 60; } + break; + + case 21: #line 269 "./getdate.y" -{ + { PC.day_ordinal = 1; - PC.day_number = yyvsp[0].intval; - ; - break;} -case 21: + PC.day_number = (yyvsp[(1) - (1)].intval); + } + break; + + case 22: #line 274 "./getdate.y" -{ + { PC.day_ordinal = 1; - PC.day_number = yyvsp[-1].intval; - ; - break;} -case 22: + PC.day_number = (yyvsp[(1) - (2)].intval); + } + break; + + case 23: #line 279 "./getdate.y" -{ - PC.day_ordinal = yyvsp[-1].textintval.value; - PC.day_number = yyvsp[0].intval; - ; - break;} -case 23: + { + PC.day_ordinal = (yyvsp[(1) - (2)].textintval).value; + PC.day_number = (yyvsp[(2) - (2)].intval); + } + break; + + case 24: #line 287 "./getdate.y" -{ - PC.month = yyvsp[-2].textintval.value; - PC.day = yyvsp[0].textintval.value; - ; - break;} -case 24: + { + PC.month = (yyvsp[(1) - (3)].textintval).value; + PC.day = (yyvsp[(3) - (3)].textintval).value; + } + break; + + case 25: #line 292 "./getdate.y" -{ + { /* Interpret as YYYY/MM/DD if the first value has 4 or more digits, otherwise as MM/DD/YY. The goal in recognizing YYYY/MM/DD is solely to support legacy machine-generated dates like those in an RCS log listing. If you want portability, use the ISO 8601 format. */ - if (4 <= yyvsp[-4].textintval.digits) + if (4 <= (yyvsp[(1) - (5)].textintval).digits) { - PC.year = yyvsp[-4].textintval; - PC.month = yyvsp[-2].textintval.value; - PC.day = yyvsp[0].textintval.value; + PC.year = (yyvsp[(1) - (5)].textintval); + PC.month = (yyvsp[(3) - (5)].textintval).value; + PC.day = (yyvsp[(5) - (5)].textintval).value; } else { - PC.month = yyvsp[-4].textintval.value; - PC.day = yyvsp[-2].textintval.value; - PC.year = yyvsp[0].textintval; + PC.month = (yyvsp[(1) - (5)].textintval).value; + PC.day = (yyvsp[(3) - (5)].textintval).value; + PC.year = (yyvsp[(5) - (5)].textintval); } - ; - break;} -case 25: + } + break; + + case 26: #line 312 "./getdate.y" -{ + { /* ISO 8601 format. YYYY-MM-DD. */ - PC.year = yyvsp[-2].textintval; - PC.month = -yyvsp[-1].textintval.value; - PC.day = -yyvsp[0].textintval.value; - ; - break;} -case 26: + PC.year = (yyvsp[(1) - (3)].textintval); + PC.month = -(yyvsp[(2) - (3)].textintval).value; + PC.day = -(yyvsp[(3) - (3)].textintval).value; + } + break; + + case 27: #line 319 "./getdate.y" -{ + { /* e.g. 17-JUN-1992. */ - PC.day = yyvsp[-2].textintval.value; - PC.month = yyvsp[-1].intval; - PC.year.value = -yyvsp[0].textintval.value; - PC.year.digits = yyvsp[0].textintval.digits; - ; - break;} -case 27: + PC.day = (yyvsp[(1) - (3)].textintval).value; + PC.month = (yyvsp[(2) - (3)].intval); + PC.year.value = -(yyvsp[(3) - (3)].textintval).value; + PC.year.digits = (yyvsp[(3) - (3)].textintval).digits; + } + break; + + case 28: #line 327 "./getdate.y" -{ - PC.month = yyvsp[-1].intval; - PC.day = yyvsp[0].textintval.value; - ; - break;} -case 28: + { + PC.month = (yyvsp[(1) - (2)].intval); + PC.day = (yyvsp[(2) - (2)].textintval).value; + } + break; + + case 29: #line 332 "./getdate.y" -{ - PC.month = yyvsp[-3].intval; - PC.day = yyvsp[-2].textintval.value; - PC.year = yyvsp[0].textintval; - ; - break;} -case 29: + { + PC.month = (yyvsp[(1) - (4)].intval); + PC.day = (yyvsp[(2) - (4)].textintval).value; + PC.year = (yyvsp[(4) - (4)].textintval); + } + break; + + case 30: #line 338 "./getdate.y" -{ - PC.day = yyvsp[-1].textintval.value; - PC.month = yyvsp[0].intval; - ; - break;} -case 30: + { + PC.day = (yyvsp[(1) - (2)].textintval).value; + PC.month = (yyvsp[(2) - (2)].intval); + } + break; + + case 31: #line 343 "./getdate.y" -{ - PC.day = yyvsp[-2].textintval.value; - PC.month = yyvsp[-1].intval; - PC.year = yyvsp[0].textintval; - ; - break;} -case 31: + { + PC.day = (yyvsp[(1) - (3)].textintval).value; + PC.month = (yyvsp[(2) - (3)].intval); + PC.year = (yyvsp[(3) - (3)].textintval); + } + break; + + case 32: #line 352 "./getdate.y" -{ + { PC.rel_seconds = -PC.rel_seconds; PC.rel_minutes = -PC.rel_minutes; PC.rel_hour = -PC.rel_hour; PC.rel_day = -PC.rel_day; PC.rel_month = -PC.rel_month; PC.rel_year = -PC.rel_year; - ; - break;} -case 33: + } + break; + + case 34: #line 365 "./getdate.y" -{ PC.rel_year += yyvsp[-1].textintval.value * yyvsp[0].intval; ; - break;} -case 34: + { PC.rel_year += (yyvsp[(1) - (2)].textintval).value * (yyvsp[(2) - (2)].intval); } + break; + + case 35: #line 367 "./getdate.y" -{ PC.rel_year += yyvsp[-1].textintval.value * yyvsp[0].intval; ; - break;} -case 35: + { PC.rel_year += (yyvsp[(1) - (2)].textintval).value * (yyvsp[(2) - (2)].intval); } + break; + + case 36: #line 369 "./getdate.y" -{ PC.rel_year += yyvsp[0].intval; ; - break;} -case 36: + { PC.rel_year += (yyvsp[(1) - (1)].intval); } + break; + + case 37: #line 371 "./getdate.y" -{ PC.rel_month += yyvsp[-1].textintval.value * yyvsp[0].intval; ; - break;} -case 37: + { PC.rel_month += (yyvsp[(1) - (2)].textintval).value * (yyvsp[(2) - (2)].intval); } + break; + + case 38: #line 373 "./getdate.y" -{ PC.rel_month += yyvsp[-1].textintval.value * yyvsp[0].intval; ; - break;} -case 38: + { PC.rel_month += (yyvsp[(1) - (2)].textintval).value * (yyvsp[(2) - (2)].intval); } + break; + + case 39: #line 375 "./getdate.y" -{ PC.rel_month += yyvsp[0].intval; ; - break;} -case 39: + { PC.rel_month += (yyvsp[(1) - (1)].intval); } + break; + + case 40: #line 377 "./getdate.y" -{ PC.rel_day += yyvsp[-1].textintval.value * yyvsp[0].intval; ; - break;} -case 40: + { PC.rel_day += (yyvsp[(1) - (2)].textintval).value * (yyvsp[(2) - (2)].intval); } + break; + + case 41: #line 379 "./getdate.y" -{ PC.rel_day += yyvsp[-1].textintval.value * yyvsp[0].intval; ; - break;} -case 41: + { PC.rel_day += (yyvsp[(1) - (2)].textintval).value * (yyvsp[(2) - (2)].intval); } + break; + + case 42: #line 381 "./getdate.y" -{ PC.rel_day += yyvsp[0].intval ; - break;} -case 42: + { PC.rel_day += (yyvsp[(1) - (1)].intval); } + break; + + case 43: #line 383 "./getdate.y" -{ PC.rel_hour += yyvsp[-1].textintval.value * yyvsp[0].intval; ; - break;} -case 43: + { PC.rel_hour += (yyvsp[(1) - (2)].textintval).value * (yyvsp[(2) - (2)].intval); } + break; + + case 44: #line 385 "./getdate.y" -{ PC.rel_hour += yyvsp[-1].textintval.value * yyvsp[0].intval; ; - break;} -case 44: + { PC.rel_hour += (yyvsp[(1) - (2)].textintval).value * (yyvsp[(2) - (2)].intval); } + break; + + case 45: #line 387 "./getdate.y" -{ PC.rel_hour += yyvsp[0].intval ; - break;} -case 45: + { PC.rel_hour += (yyvsp[(1) - (1)].intval); } + break; + + case 46: #line 389 "./getdate.y" -{ PC.rel_minutes += yyvsp[-1].textintval.value * yyvsp[0].intval; ; - break;} -case 46: + { PC.rel_minutes += (yyvsp[(1) - (2)].textintval).value * (yyvsp[(2) - (2)].intval); } + break; + + case 47: #line 391 "./getdate.y" -{ PC.rel_minutes += yyvsp[-1].textintval.value * yyvsp[0].intval; ; - break;} -case 47: + { PC.rel_minutes += (yyvsp[(1) - (2)].textintval).value * (yyvsp[(2) - (2)].intval); } + break; + + case 48: #line 393 "./getdate.y" -{ PC.rel_minutes += yyvsp[0].intval ; - break;} -case 48: + { PC.rel_minutes += (yyvsp[(1) - (1)].intval); } + break; + + case 49: #line 395 "./getdate.y" -{ PC.rel_seconds += yyvsp[-1].textintval.value * yyvsp[0].intval; ; - break;} -case 49: + { PC.rel_seconds += (yyvsp[(1) - (2)].textintval).value * (yyvsp[(2) - (2)].intval); } + break; + + case 50: #line 397 "./getdate.y" -{ PC.rel_seconds += yyvsp[-1].textintval.value * yyvsp[0].intval; ; - break;} -case 50: + { PC.rel_seconds += (yyvsp[(1) - (2)].textintval).value * (yyvsp[(2) - (2)].intval); } + break; + + case 51: #line 399 "./getdate.y" -{ PC.rel_seconds += yyvsp[0].intval; ; - break;} -case 51: + { PC.rel_seconds += (yyvsp[(1) - (1)].intval); } + break; + + case 52: #line 404 "./getdate.y" -{ + { if (PC.dates_seen - && ! PC.rels_seen && (PC.times_seen || 2 < yyvsp[0].textintval.digits)) - PC.year = yyvsp[0].textintval; + && ! PC.rels_seen && (PC.times_seen || 2 < (yyvsp[(1) - (1)].textintval).digits)) + PC.year = (yyvsp[(1) - (1)].textintval); else { - if (4 < yyvsp[0].textintval.digits) + if (4 < (yyvsp[(1) - (1)].textintval).digits) { PC.dates_seen++; - PC.day = yyvsp[0].textintval.value % 100; - PC.month = (yyvsp[0].textintval.value / 100) % 100; - PC.year.value = yyvsp[0].textintval.value / 10000; - PC.year.digits = yyvsp[0].textintval.digits - 4; + PC.day = (yyvsp[(1) - (1)].textintval).value % 100; + PC.month = ((yyvsp[(1) - (1)].textintval).value / 100) % 100; + PC.year.value = (yyvsp[(1) - (1)].textintval).value / 10000; + PC.year.digits = (yyvsp[(1) - (1)].textintval).digits - 4; } else { PC.times_seen++; - if (yyvsp[0].textintval.digits <= 2) + if ((yyvsp[(1) - (1)].textintval).digits <= 2) { - PC.hour = yyvsp[0].textintval.value; + PC.hour = (yyvsp[(1) - (1)].textintval).value; PC.minutes = 0; } else { - PC.hour = yyvsp[0].textintval.value / 100; - PC.minutes = yyvsp[0].textintval.value % 100; + PC.hour = (yyvsp[(1) - (1)].textintval).value / 100; + PC.minutes = (yyvsp[(1) - (1)].textintval).value % 100; } PC.seconds = 0; PC.meridian = MER24; } } - ; - break;} -case 52: + } + break; + + case 53: #line 440 "./getdate.y" -{ yyval.intval = MER24; ; - break;} -case 53: -#line 442 "./getdate.y" -{ yyval.intval = yyvsp[0].intval; ; - break;} -} + { (yyval.intval) = MER24; } + break; -#line 706 "/usr/share/bison/bison.simple" + case 54: +#line 442 "./getdate.y" + { (yyval.intval) = (yyvsp[(1) - (1)].intval); } + break; - - yyvsp -= yylen; - yyssp -= yylen; -#if YYLSP_NEEDED - yylsp -= yylen; -#endif -#if YYDEBUG - if (yydebug) - { - short *yyssp1 = yyss - 1; - YYFPRINTF (stderr, "state stack now"); - while (yyssp1 != yyssp) - YYFPRINTF (stderr, " %d", *++yyssp1); - YYFPRINTF (stderr, "\n"); +/* Line 1267 of yacc.c. */ +#line 1933 "getdate.c" + default: break; } -#endif + YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc); + + YYPOPSTACK (yylen); + yylen = 0; + YY_STACK_PRINT (yyss, yyssp); *++yyvsp = yyval; -#if YYLSP_NEEDED - *++yylsp = yyloc; -#endif + /* Now `shift' the result of the reduction. Determine what state that goes to, based on the state we popped back to and the rule @@ -1442,11 +1947,11 @@ yyn = yyr1[yyn]; - yystate = yypgoto[yyn - YYNTBASE] + *yyssp; - if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp) + yystate = yypgoto[yyn - YYNTOKENS] + *yyssp; + if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp) yystate = yytable[yystate]; else - yystate = yydefgoto[yyn - YYNTBASE]; + yystate = yydefgoto[yyn - YYNTOKENS]; goto yynewstate; @@ -1459,155 +1964,129 @@ if (!yyerrstatus) { ++yynerrs; - -#ifdef YYERROR_VERBOSE - yyn = yypact[yystate]; - - if (yyn > YYFLAG && yyn < YYLAST) - { - YYSIZE_T yysize = 0; - char *yymsg; - int yyx, yycount; - - yycount = 0; - /* Start YYX at -YYN if negative to avoid negative indexes in - YYCHECK. */ - for (yyx = yyn < 0 ? -yyn : 0; - yyx < (int) (sizeof (yytname) / sizeof (char *)); yyx++) - if (yycheck[yyx + yyn] == yyx) - yysize += yystrlen (yytname[yyx]) + 15, yycount++; - yysize += yystrlen ("parse error, unexpected ") + 1; - yysize += yystrlen (yytname[YYTRANSLATE (yychar)]); - yymsg = (char *) YYSTACK_ALLOC (yysize); - if (yymsg != 0) - { - char *yyp = yystpcpy (yymsg, "parse error, unexpected "); - yyp = yystpcpy (yyp, yytname[YYTRANSLATE (yychar)]); - - if (yycount < 5) - { - yycount = 0; - for (yyx = yyn < 0 ? -yyn : 0; - yyx < (int) (sizeof (yytname) / sizeof (char *)); - yyx++) - if (yycheck[yyx + yyn] == yyx) - { - const char *yyq = ! yycount ? ", expecting " : " or "; - yyp = yystpcpy (yyp, yyq); - yyp = yystpcpy (yyp, yytname[yyx]); - yycount++; - } - } - yyerror (yymsg); +#if ! YYERROR_VERBOSE + yyerror (YY_("syntax error")); +#else + { + YYSIZE_T yysize = yysyntax_error (0, yystate, yychar); + if (yymsg_alloc < yysize && yymsg_alloc < YYSTACK_ALLOC_MAXIMUM) + { + YYSIZE_T yyalloc = 2 * yysize; + if (! (yysize <= yyalloc && yyalloc <= YYSTACK_ALLOC_MAXIMUM)) + yyalloc = YYSTACK_ALLOC_MAXIMUM; + if (yymsg != yymsgbuf) YYSTACK_FREE (yymsg); - } - else - yyerror ("parse error; also virtual memory exhausted"); - } - else -#endif /* defined (YYERROR_VERBOSE) */ - yyerror ("parse error"); + yymsg = (char *) YYSTACK_ALLOC (yyalloc); + if (yymsg) + yymsg_alloc = yyalloc; + else + { + yymsg = yymsgbuf; + yymsg_alloc = sizeof yymsgbuf; + } + } + + if (0 < yysize && yysize <= yymsg_alloc) + { + (void) yysyntax_error (yymsg, yystate, yychar); + yyerror (yymsg); + } + else + { + yyerror (YY_("syntax error")); + if (yysize != 0) + goto yyexhaustedlab; + } + } +#endif } - goto yyerrlab1; -/*--------------------------------------------------. -| yyerrlab1 -- error raised explicitly by an action | -`--------------------------------------------------*/ -yyerrlab1: + if (yyerrstatus == 3) { - /* If just tried and failed to reuse lookahead token after an + /* If just tried and failed to reuse look-ahead token after an error, discard it. */ - /* return failure if at end of input */ - if (yychar == YYEOF) - YYABORT; - YYDPRINTF ((stderr, "Discarding token %d (%s).\n", - yychar, yytname[yychar1])); - yychar = YYEMPTY; + if (yychar <= YYEOF) + { + /* Return failure if at end of input. */ + if (yychar == YYEOF) + YYABORT; + } + else + { + yydestruct ("Error: discarding", + yytoken, &yylval); + yychar = YYEMPTY; + } } - /* Else will try to reuse lookahead token after shifting the error + /* Else will try to reuse look-ahead token after shifting the error token. */ + goto yyerrlab1; - yyerrstatus = 3; /* Each real token shifted decrements this */ - - goto yyerrhandle; - - -/*-------------------------------------------------------------------. -| yyerrdefault -- current state does not do anything special for the | -| error token. | -`-------------------------------------------------------------------*/ -yyerrdefault: -#if 0 - /* This is wrong; only states that explicitly want error tokens - should shift them. */ - /* If its default is to accept any token, ok. Otherwise pop it. */ - yyn = yydefact[yystate]; - if (yyn) - goto yydefault; -#endif +/*---------------------------------------------------. +| yyerrorlab -- error raised explicitly by YYERROR. | +`---------------------------------------------------*/ +yyerrorlab: + + /* Pacify compilers like GCC when the user code never invokes + YYERROR and the label yyerrorlab therefore never appears in user + code. */ + if (/*CONSTCOND*/ 0) + goto yyerrorlab; + + /* Do not reclaim the symbols of the rule which action triggered + this YYERROR. */ + YYPOPSTACK (yylen); + yylen = 0; + YY_STACK_PRINT (yyss, yyssp); + yystate = *yyssp; + goto yyerrlab1; -/*---------------------------------------------------------------. -| yyerrpop -- pop the current state because it cannot handle the | -| error token | -`---------------------------------------------------------------*/ -yyerrpop: - if (yyssp == yyss) - YYABORT; - yyvsp--; - yystate = *--yyssp; -#if YYLSP_NEEDED - yylsp--; -#endif +/*-------------------------------------------------------------. +| yyerrlab1 -- common code for both syntax error and YYERROR. | +`-------------------------------------------------------------*/ +yyerrlab1: + yyerrstatus = 3; /* Each real token shifted decrements this. */ -#if YYDEBUG - if (yydebug) + for (;;) { - short *yyssp1 = yyss - 1; - YYFPRINTF (stderr, "Error: state stack now"); - while (yyssp1 != yyssp) - YYFPRINTF (stderr, " %d", *++yyssp1); - YYFPRINTF (stderr, "\n"); - } -#endif + yyn = yypact[yystate]; + if (yyn != YYPACT_NINF) + { + yyn += YYTERROR; + if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR) + { + yyn = yytable[yyn]; + if (0 < yyn) + break; + } + } -/*--------------. -| yyerrhandle. | -`--------------*/ -yyerrhandle: - yyn = yypact[yystate]; - if (yyn == YYFLAG) - goto yyerrdefault; + /* Pop the current state because it cannot handle the error token. */ + if (yyssp == yyss) + YYABORT; - yyn += YYTERROR; - if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != YYTERROR) - goto yyerrdefault; - yyn = yytable[yyn]; - if (yyn < 0) - { - if (yyn == YYFLAG) - goto yyerrpop; - yyn = -yyn; - goto yyreduce; + yydestruct ("Error: popping", + yystos[yystate], yyvsp); + YYPOPSTACK (1); + yystate = *yyssp; + YY_STACK_PRINT (yyss, yyssp); } - else if (yyn == 0) - goto yyerrpop; if (yyn == YYFINAL) YYACCEPT; - YYDPRINTF ((stderr, "Shifting error token, ")); - *++yyvsp = yylval; -#if YYLSP_NEEDED - *++yylsp = yylloc; -#endif + + + /* Shift the error token. */ + YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp); yystate = yyn; goto yynewstate; @@ -1627,21 +2106,43 @@ yyresult = 1; goto yyreturn; -/*---------------------------------------------. -| yyoverflowab -- parser overflow comes here. | -`---------------------------------------------*/ -yyoverflowlab: - yyerror ("parser stack overflow"); +#ifndef yyoverflow +/*-------------------------------------------------. +| yyexhaustedlab -- memory exhaustion comes here. | +`-------------------------------------------------*/ +yyexhaustedlab: + yyerror (YY_("memory exhausted")); yyresult = 2; /* Fall through. */ +#endif yyreturn: + if (yychar != YYEOF && yychar != YYEMPTY) + yydestruct ("Cleanup: discarding lookahead", + yytoken, &yylval); + /* Do not reclaim the symbols of the rule which action triggered + this YYABORT or YYACCEPT. */ + YYPOPSTACK (yylen); + YY_STACK_PRINT (yyss, yyssp); + while (yyssp != yyss) + { + yydestruct ("Cleanup: popping", + yystos[*yyssp], yyvsp); + YYPOPSTACK (1); + } #ifndef yyoverflow if (yyss != yyssa) YYSTACK_FREE (yyss); #endif - return yyresult; +#if YYERROR_VERBOSE + if (yymsg != yymsgbuf) + YYSTACK_FREE (yymsg); +#endif + /* Make sure YYID is used. */ + return YYID (yyresult); } + + #line 445 "./getdate.y" @@ -2312,3 +2813,4 @@ return 0; } #endif /* defined TEST */ + --- gnats-4.1.0.orig/gnats/edit-pr.sh +++ gnats-4.1.0/gnats/edit-pr.sh @@ -169,7 +169,7 @@ type="`$QUERY_PR --field-type $field`" case $type in [Ee][Nn][Uu][Mm]) - values=`$QUERY_PR --valid-values $field | tr '\n' ' ' | sed 's/ *$//g; s/ / | /g;s/^/[ /;s/$/ ]/;` + values=`$QUERY_PR --valid-values $field | tr '\n' ' ' | sed 's/ *$//g; s/ / | /g;s/^/[ /;s/$/ ]/;'` valslen=`echo "$values" | wc -c` if [ "$valslen" -gt 160 ] then --- gnats-4.1.0.orig/debian/gnats-user.install +++ gnats-4.1.0/debian/gnats-user.install @@ -0,0 +1,19 @@ +debian/tmp/etc/gnats/defaults/dbconfig +debian/tmp/etc/gnats/defaults/responsible +debian/tmp/etc/gnats/defaults/addresses +debian/tmp/etc/gnats/defaults/states +debian/tmp/etc/gnats/defaults/gnatsd.user_access +debian/tmp/etc/gnats/defaults/submitters +debian/tmp/etc/gnats/defaults/classes +debian/tmp/etc/gnats/defaults/categories +debian/tmp/usr/bin/edit-pr +debian/tmp/usr/bin/send-pr +debian/tmp/usr/bin/getclose +debian/tmp/usr/bin/query-pr +debian/tmp/usr/lib/gnats/mail-agent +debian/tmp/usr/lib/gnats/diff-prs +debian/tmp/usr/lib/gnats/file-pr +debian/tmp/usr/lib/gnats/pr-age +debian/tmp/usr/lib/gnats/pr-edit +debian/tmp/etc/gnats/databases +debian/tmp/usr/share/emacs/site-lisp/gnats/gnats.el --- gnats-4.1.0.orig/debian/gnats-user.emacsen-install +++ gnats-4.1.0/debian/gnats-user.emacsen-install @@ -0,0 +1,45 @@ +#! /bin/sh -e +# /usr/lib/emacsen-common/packages/install/gnats-user + +# Written by Jim Van Zandt , borrowing heavily +# from the install scripts for gettext by Santiago Vila +# and octave by Dirk Eddelbuettel . + +FLAVOR=$1 +PACKAGE=gnats + +if [ ${FLAVOR} = emacs ]; then exit 0; fi + +echo install/${PACKAGE}: Handling install for emacsen flavor ${FLAVOR} + +#FLAVORTEST=`echo $FLAVOR | cut -c-6` +#if [ ${FLAVORTEST} = xemacs ] ; then +# SITEFLAG="-no-site-file" +#else +# SITEFLAG="--no-site-file" +#fi +FLAGS="${SITEFLAG} -q -batch -l path.el -f batch-byte-compile" + +ELDIR=/usr/share/emacs/site-lisp/${PACKAGE} +ELCDIR=/usr/share/${FLAVOR}/site-lisp/${PACKAGE} + +# Install-info-altdir does not actually exist. +# Maybe somebody will write it. +if test -x /usr/sbin/install-info-altdir; then + echo install/${PACKAGE}: install Info links for ${FLAVOR} + install-info-altdir --quiet --section "" "" --dirname=${FLAVOR} /usr/info/${PACKAGE}.info.gz +fi + +install -m 755 -d ${ELCDIR} +cd ${ELDIR} +FILES=`echo *.el` +cp ${FILES} ${ELCDIR} +cd ${ELCDIR} + +cat << EOF > path.el +(setq load-path (cons "." load-path) byte-compile-warnings nil) +EOF +${FLAVOR} ${FLAGS} ${FILES} +rm -f *.el path.el + +exit 0 --- gnats-4.1.0.orig/debian/overrides.gnats-user +++ gnats-4.1.0/debian/overrides.gnats-user @@ -0,0 +1,5 @@ +# These binaries are setuid gnats to allow modification of GNATS databases by +# ordinary users. +gnats-user: setuid-binary usr/lib/gnats/queue-pr 4755 gnats/root +gnats-user: setuid-binary usr/lib/gnats/gen-index 4755 gnats/root +gnats-user: setuid-binary usr/lib/gnats/pr-edit 4755 gnats/root --- gnats-4.1.0.orig/debian/overrides.gnats +++ gnats-4.1.0/debian/overrides.gnats @@ -0,0 +1,11 @@ +# These binaries are setuid gnats to allow modification of GNATS databases by +# ordinary users. +gnats: setuid-binary usr/lib/gnats/queue-pr 4755 gnats/root +gnats: setuid-binary usr/lib/gnats/gen-index 4755 gnats/root +gnats: setuid-binary usr/lib/gnats/pr-edit 4755 gnats/root +# `gnats' group should be propagated accross /var/lib/gnats +gnats: non-standard-dir-perm var/lib/gnats/ 2755 != 0755 +# These files can contain security sensitive information and should not be +# world readable. +gnats: non-standard-file-perm etc/gnats/gnatsd.host_access 0600 != 0644 +gnats: non-standard-file-perm etc/gnats/defaults/gnatsd.user_access 0600 != 0644 --- gnats-4.1.0.orig/debian/gnats.prerm.in +++ gnats-4.1.0/debian/gnats.prerm.in @@ -0,0 +1,66 @@ +#!/bin/sh +# +# Gnats installation script -- written by Brian White +# (This was my very first attempt at learning perl... please forgive me!) +# +# Forgiving -- rewritten to bash :-) by Milan Zamazal . +# ...and streamlined with SED by Chad Walstrom + +set -e + +############################################################################### +# +# Utility functions +# + +# Call arguments and never return error +protect () { "$@" || true; } + +############################################################################### +# +# Common initialization for install scripts +# + +. /usr/share/debconf/confmodule + +protect db_get gnats/site +SITE=${RET:-@DEFSITE@} + +############################################################################### +# +# Purge operations +# + +if [ "$1" = "remove" ] ; then + + # + # Remove the 'gnats' system from mail + # + if [ -f @MAILFILE@ ] ; then + TEMPFILE=$(tempfile) + OLDMAILFILE=@MAILFILE@.dpkg-old + + sed 's/^[ \t]*\(gnats-admin\|bugs\|query-pr\|$SITE-gnats\)\>\(.*\)$/#\1\2/' \ + @MAILFILE@ >$TEMPFILE + cp @MAILFILE@ $OLDMAILFILE + chmod 644 $TEMPFILE + mv $TEMPFILE @MAILFILE@ + fi + + # + # Remove symlinks to databases + # + protect rm -f @DB_CONFIG_DIR@/* + + # + # Remove symlink to gnatsd.user_access + # + protect rm -f @CONFIGDIR@/gnatsd.user_access + +fi + +############################################################################### +# +# Automatically added debhelper stuff +# +#DEBHELPER# --- gnats-4.1.0.orig/debian/gnats-user.postrm.in +++ gnats-4.1.0/debian/gnats-user.postrm.in @@ -0,0 +1,31 @@ +#!/bin/bash +# +# Gnats installation script -- written by Brian White +# (This was my very first attempt at learning perl... please forgive me!) +# +# Forgiving -- rewritten to bash :-) by Milan Zamazal . +# ...and streamlined with SED by Chad Walstrom + +set -e + +############################################################################### +# +# Utility functions +# + +# Call arguments and never return error +function protect () { "$@" || true; } + +############################################################################### +# +# Remove the 'gnats' system configuration when purging +# + +if [ "$1" = "purge" ] && [ -d "@GNATSDBDIR@" ]; then + rmdir "@GNATSDBDIR@" +fi +############################################################################### +# +# Automatically added debhelper stuff +# +#DEBHELPER# --- gnats-4.1.0.orig/debian/dhelp +++ gnats-4.1.0/debian/dhelp @@ -0,0 +1,6 @@ + +devel +The GNATS Bug Tracking System +GNATS +html/index.html + --- gnats-4.1.0.orig/debian/control +++ gnats-4.1.0/debian/control @@ -0,0 +1,49 @@ +Source: gnats +Section: devel +Priority: extra +Maintainer: Chad Walstrom +Build-Depends: debhelper (>= 4.1.16), cdbs(>= 0.4.21), m4, texinfo, bison, flex +Standards-Version: 3.8.0 +Homepage: http://www.gnu.org/software/gnats + +Package: gnats-user +Architecture: any +Depends: exim4 | mail-transport-agent, debianutils (>= 1.6), ${misc:Depends}, ${shlibs:Depends}, adduser +Suggests: gnatsweb +Description: The GNU problem report management system (client tools) + GNATS is a bug-tracking tool designed for use at a central "Support + Site". Users who experience problems use electronic mail to + communicate these problems to "maintainers" at that Support Site. + . + GNATS offers many of the same features offered by more generalized + databases, including editing, querying, and basic reporting. You can + access the submitting, editing, and querying functions of GNATS + through provided utilities or from within GNU Emacs. + . + The "gnats-user" package has just the user tools for client machines. + For the full installation and the central database server use the + "gnats" package. + . + If you prefer not to use either an nfs-mounted database or the client/server + model, it is possible to make a distribution that works entirely over e-mail. + For more information, see gnats-info and type 'g' (for goto) followed by + 'mkdist'. This package is not necessary for email-only setups. + +Package: gnats +Architecture: any +Depends: gnats-user (>=4.0-4), exim4 | mail-transport-agent, debianutils (>= 1.6), ${shlibs:Depends}, adduser, update-inetd +Pre-Depends: debconf, ${misc:Depends} +Suggests: gnatsweb +Description: The GNU problem report management system (central database) + GNATS is a bug-tracking tool designed for use at a central "Support + Site". Users who experience problems use electronic mail to + communicate these problems to "maintainers" at that Support Site. + . + GNATS offers many of the same features offered by more generalized + databases, including editing, querying, and basic reporting. You can + access the submitting, editing, and querying functions of GNATS + through provided utilities or from within GNU Emacs. + . + The "gnats" package has the full installation for the central database + server. For client systems, use the "gnats-user" package which has just + the user tools. --- gnats-4.1.0.orig/debian/README.Debian +++ gnats-4.1.0/debian/README.Debian @@ -0,0 +1,10 @@ +Using GNU GNATS via e-mail requires that the processing programs run under the +`gnats' user. Ensuring this is strongly MTA and site-configuration dependent, +so the installation program doesn't try to configure it for you. Please refer +to your MTA documentation how to enable do it. As for Exim, the default Debian +MTA, you can add the line + + user = gnats + +into the `system_aliases' section of your /etc/exim/exim.conf to make the GNATS +e-mail processing via the commands defined in /etc/aliases working. --- gnats-4.1.0.orig/debian/gnats-user.manpages +++ gnats-4.1.0/debian/gnats-user.manpages @@ -0,0 +1,9 @@ +debian/tmp/usr/share/man/man1/edit-pr.1 +debian/tmp/usr/share/man/man1/query-pr.1 +debian/tmp/usr/share/man/man1/send-pr.1 +debian/tmp/usr/share/man/man5/databases.5 +debian/tmp/usr/share/man/man7/gnats.7 +debian/tmp/usr/share/man/man8/delete-pr.8 +debian/tmp/usr/share/man/man8/file-pr.8 +debian/tmp/usr/share/man/man8/getclose.8 +debian/tmp/usr/share/man/man8/pr-edit.8 --- gnats-4.1.0.orig/debian/rules +++ gnats-4.1.0/debian/rules @@ -0,0 +1,128 @@ +#!/usr/bin/make -f +# NAME +# debian/rules -- Debian build rules for GNATS +# +# DESCRIPTION +# This Makefile uses the CDBS makefiles to wrap the common package building +# steps necessary to make the gnats binary packages. +# +# COPYRIGHT +# Copyright (c) 2004 Chad Walstrom +# +# LICENSE +# This program is free software; you can 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., 59 +# Temple Place, Suite 330, Boston, MA 02111-1307 USA. +# +################################################################################ +#DH_VERBOSE=1 + +# Previous versions of gnats had problems with gcc optimized +#DEB_BUILD_OPTIONS = noopt + +################################################################################ +# CDBS Includes +################################################################################ +include /usr/share/cdbs/1/rules/debhelper.mk +include /usr/share/cdbs/1/class/autotools.mk + +# Bison override +YACC = bison +INSTALL = install +INSTALL_INFO = /bin/true + +# VARIABLES +DATADIR := $(DEB_CONFIGURE_LOCALSTATEDIR)/lib/gnats +HOMEDIR := $(DATADIR) +DBDIR := $(DATADIR)/gnats-db +LISPDIR := /usr/share/emacs/site-lisp/gnats +CONFDIR := $(DEB_CONFIGURE_SYSCONFDIR)/gnats +USER_ACCESS_FILE := $(CONFDIR)/gnatsd.user_access +HOST_ACCESS_FILE := $(CONFDIR)/gnatsd.host_access +GNATS_DATABASES := $(CONFDIR)/databases + +DEB_MAKE_ENVVARS += DEFAULT_SITE=unknown-site \ + GNATS_SITE=unknown-site \ + GNATS_ADMIN=gnats-admin \ + GNATS_ADDR=unknown-addr \ + DEFAULT_ORGANIZATION=unknown-org \ + SUBMITTER=unknown-org \ + GNATS_USER=gnats \ + CHECK_CFG=no + +DEB_CONFIGURE_SCRIPT_ENV += SENDMAIL=/usr/sbin/sendmail + +# Gnats already installs libexec binaries in a "gnats" subdirectory +DEB_CONFIGURE_LIBEXECDIR = "\$${prefix}/lib" +DEB_CONFIGURE_EXTRA_FLAGS = \ + --with-gnats-root='$(DBDIR)' \ + --with-gnats-service=gnats \ + --with-gnats-default-db=$(DBDIR) \ + --with-gnatsd-user-access-file=$(USER_ACCESS_FILE) \ + --with-gnatsd-host-access-file=$(HOST_ACCESS_FILE) \ + --with-gnats-dblist-file=$(GNATS_DATABASES) \ + --with-lispdir=$(LISPDIR) + +DEB_INSTALL_DIRS_ALL = usr/bin usr/sbin usr/lib/gnats etc/gnats/defaults \ + usr/share/man/man1 usr/share/man/man5 usr/share/man/man7 \ + usr/share/man/man8 usr/share/lintian/overrides + +DEB_INSTALL_DIRS_gnats_user = usr/share/emacs/site-lisp/gnats +DEB_INSTALL_DIRS_gnats = var/lib/gnats var/lib/gnats/gnats-db \ + usr/share/doc/gnats/gnats etc/gnats/db-config etc/xinetd.d +DEB_INSTALL_EXAMPLES_gnats = -X.arch-ids -X.cvsignore + +# Don't edit the {post,pre}{inst,rm} scripts +DEB_INSTALL_INFO_gnats = -n + + +debscripts_tmpl := $(wildcard debian/*.in) +debscripts := $(patsubst %.in,%,$(debscripts_tmpl)) +common-configure-arch:: $(debscripts) +$(debscripts): + @echo "Build debian script $@" + sed -f debian/common.sed < $@.in > $@ + +common-install-prehook-arch:: + @echo "dh_installdirs doesn't install in the staging area" + -for d in $(DEB_INSTALL_DIRS_ALL) ; do \ + mkdir -p debian/tmp/$$d ; \ + done + @echo "Building HTML documentation" + -cd doc ; \ + for i in gnats.texi gnats-faq.texi ; do \ + $(MAKEINFO) --number-sections --html $$i ; \ + done + +install/gnats:: + $(INSTALL) -m644 debian/user/profile debian/gnats/var/lib/gnats/.profile + $(INSTALL) -m444 debian/overrides.gnats debian/gnats/usr/share/lintian/overrides/gnats + $(INSTALL) -m 644 debian/dhelp \ + debian/gnats/usr/share/doc/gnats/gnats/.dhelp + $(INSTALL) -m 444 debian/gnats.xinetd debian/gnats/etc/xinetd.d/gnats + rmdir debian/gnats/usr/share/man/man1/ debian/gnats/usr/share/man/man7/ debian/gnats/usr/bin/ debian/gnats/usr/sbin/ + +binary-predeb/gnats:: + rm debian/gnats/usr/share/doc/gnats/examples/tkgnats/COPYING.gz + chmod 0644 debian/gnats/usr/share/doc/gnats/examples/juniper-web-reports/index.html + dh_strip + +install/gnats-user:: + $(INSTALL) -m644 debian/misc/send-pr.conf debian/gnats-user/etc/gnats + $(INSTALL) -m444 debian/overrides.gnats-user \ + debian/gnats-user/usr/share/lintian/overrides/gnats-user + rmdir debian/gnats-user/usr/sbin/ + +clean:: + -rm -f $(debscripts) + -rm -rf doc/gnats doc/gnats-faq doc/*.info --- gnats-4.1.0.orig/debian/gnats.info +++ gnats-4.1.0/debian/gnats.info @@ -0,0 +1,2 @@ +debian/tmp/usr/share/info/gnats.info +debian/tmp/usr/share/info/gnats-faq.info --- gnats-4.1.0.orig/debian/gnats.docs +++ gnats-4.1.0/debian/gnats.docs @@ -0,0 +1,2 @@ +doc/gnats +doc/gnats-faq --- gnats-4.1.0.orig/debian/gnats-user.emacsen-remove +++ gnats-4.1.0/debian/gnats-user.emacsen-remove @@ -0,0 +1,15 @@ +#!/bin/sh -e +# /usr/lib/emacsen-common/packages/remove/gnats-user + +FLAVOR=$1 +PACKAGE=gnats + +if [ ${FLAVOR} != emacs ]; then + if test -x /usr/sbin/install-info-altdir; then + echo remove/${PACKAGE}: removing Info links for ${FLAVOR} + install-info-altdir --quiet --remove --dirname=${FLAVOR} /usr/info/${PACKAGE}.info.gz + fi + + echo remove/${PACKAGE}: purging byte-compiled files for ${FLAVOR} + rm -rf /usr/share/${FLAVOR}/site-lisp/${PACKAGE} +fi --- gnats-4.1.0.orig/debian/gnats-user.prerm.in +++ gnats-4.1.0/debian/gnats-user.prerm.in @@ -0,0 +1,20 @@ +#!/bin/bash +# +# Gnats installation script -- written by Brian White +# (This was my very first attempt at learning perl... please forgive me!) +# +# Forgiving -- rewritten to bash :-) by Milan Zamazal . +# ...and streamlined with SED by Chad Walstrom + +set -e + +############################################################################### +# +# Utility functions +# + +# Call arguments and never return error +function protect () { "$@" || true; } + +# Automatically added debhelper stuff +#DEBHELPER# --- gnats-4.1.0.orig/debian/compat +++ gnats-4.1.0/debian/compat @@ -0,0 +1 @@ +4 --- gnats-4.1.0.orig/debian/gnats.cron.d +++ gnats-4.1.0/debian/gnats.cron.d @@ -0,0 +1,3 @@ +# Cron job for processing GNATS incoming queue. + +5,15,25,35,45,55 * * * * gnats test -x /usr/lib/gnats/queue-pr && /usr/lib/gnats/queue-pr --run ; exit 0 --- gnats-4.1.0.orig/debian/gnats.preinst.in +++ gnats-4.1.0/debian/gnats.preinst.in @@ -0,0 +1,59 @@ +#!/bin/sh -e +# +# Gnats installation script -- written by Brian White +# (This was my very first attempt at learning perl... please forgive me!) +# +# Forgiving -- rewritten to bash :-) by Milan Zamazal . +# ...and streamlined with SED by Chad Walstrom + +############################################################################### +# +# Utility functions +# + +# Call arguments and never return error +protect () { "$@" || true; } + +############################################################################### +# +# Common initialization for install scripts +# + +. /usr/share/debconf/confmodule + +############################################################################### +# +# Fix mistakes from previous versions +# + +if [ "$1" = configure ]; then + + for BADDIR in "@GNATSDIR@/gnats-db" "/var/gnats-db"; do + + if [ -d $BADDIR ]; then + db_subst gnats/baddir_moved GNATSDBDIR @GNATSDBDIR@ + db_subst gnats/baddir_moved BADDIR ${BADDIR} + protect mkdir -p @GNATSDBPAR@ 2>/dev/null + chown @GNATSID@:@GNATSGID@ @GNATSDBPAR@ + protect mv $BADDIR @GNATSDBDIR@ 2>/dev/null + if [ $? -eq 0 ]; then + db_subst gnats/baddir_moved GNATSDBDIR @GNATSDBDIR@ + db_subst gnats/baddir_moved BADDIR ${BADDIR} + protect db_input high gnats/baddir_moved + else + db_subst gnats/baddir_to_move GNATSDBDIR @GNATSDBDIR@ + db_subst gnats/baddir_to_move BADDIR ${BADDIR} + protect db_input high gnats/baddir_to_move + fi + db_go + fi + + done + +fi + +############################################################################### +# +# Automatically added debhelper stuff +# +#DEBHELPER# --- gnats-4.1.0.orig/debian/TODO +++ gnats-4.1.0/debian/TODO @@ -0,0 +1,68 @@ + Debian GNATS TODO List +- 1.REWRITE debian/rules! + Added: Sat Apr 3 11:12:22 2004 Completed: completed on Wed Jul 14 00:59:44 2004 + Duration: 14w 3d 12h 47m elapsed Priority: veryhigh + + (Finished in the wee hours of the morning. Added SED templating of + package.{post,pre}{inst,rm} scripts.) +- 2.Update debhelper compatibility + Added: Wed Feb 4 14:29:39 2004 Completed: completed on Wed Jul 14 01:00:28 2004 + Duration: 22w 6d 9h 30m elapsed Priority: high + + (Done) +- 3.Reorganize debian/rules + Added: Wed Feb 4 14:29:15 2004 Completed: completed on Wed Jul 14 01:00:33 2004 + Duration: 22w 6d 9h 31m elapsed Priority: medium + + (Done) +- 4.W: gnats source: not-using-po-debconf + Added: Wed Jul 14 01:12:36 2004 Completed: completed on Wed Jul 14 17:42:57 2004 + Duration: 16h 30m elapsed Priority: medium + + (Just added.) +- 5.W: gnats: extra-license-file usr/share/doc/gnats/examples/tkgnats/.arch-ids/COPYING.id + Added: Wed Jul 14 01:13:15 2004 Completed: completed on Wed Jul 14 01:25:17 2004 + Duration: 12m elapsed Priority: medium + + (I wasn't excluding .arch-ids directories in the examples) + 6.Determine whether or not gnats-user should add the gnats user account + Added: Wed Jul 14 01:01:09 2004 Completed: incomplete + Duration: incomplete Priority: veryhigh + + 7.Determine if gnats-user requires database config files + Added: Wed Jul 14 01:07:27 2004 Completed: incomplete + Duration: incomplete Priority: veryhigh + + 8.Add a gnats-common package for docs, basic configs, etc.? + Added: Wed Jul 14 16:19:38 2004 Completed: incomplete + Duration: incomplete Priority: veryhigh + + 9.Finish debconf configuration + Added: Wed Feb 4 14:28:57 2004 Completed: incomplete + Duration: incomplete Priority: high + + 10.W: gnats source: cvsignore-file-in-source debian/.cvsignore + Added: Wed Jul 14 01:12:45 2004 Completed: incomplete + Duration: incomplete Priority: medium + + 11.W: gnats-user: no-manpage-in-correct-directory usr/bin/getclose (8) + Added: Wed Jul 14 01:12:56 2004 Completed: incomplete + Duration: incomplete Priority: medium + + 12.W: gnats-user: postinst-uses-db-input + Added: Wed Jul 14 01:13:06 2004 Completed: incomplete + Duration: incomplete Priority: medium + + 13.W: gnats: extra-license-file usr/share/doc/gnats/examples/tkgnats/COPYING.gz + Added: Wed Jul 14 01:13:30 2004 Completed: incomplete + Duration: incomplete Priority: medium + + 14.W: gnats: executable-not-elf-or-script + ./usr/share/doc/gnats/examples/juniper-web-reports/index.html + Added: Wed Jul 14 01:13:39 2004 Completed: incomplete + Duration: incomplete Priority: medium + + 15.W: gnats: install-info-not-called-with-section-option + Added: Wed Jul 14 01:13:51 2004 Completed: incomplete + Duration: incomplete Priority: medium + --- gnats-4.1.0.orig/debian/gnats-user.dirs +++ gnats-4.1.0/debian/gnats-user.dirs @@ -0,0 +1,9 @@ +etc/emacs/site-start.d +etc/gnats/defaults +var/lib/gnats +usr/bin +usr/lib/gnats +usr/lib/emacsen-common/packages/remove +usr/lib/emacsen-common/packages/install +usr/share/emacs/site-lisp/gnats +usr/share/lintian/overrides --- gnats-4.1.0.orig/debian/gnats.examples +++ gnats-4.1.0/debian/gnats.examples @@ -0,0 +1,6 @@ +contrib/juniper-web-reports +contrib/scripts +contrib/sql +contrib/tkgnats +contrib/www-gnats-admin +contrib/prmon --- gnats-4.1.0.orig/debian/changelog +++ gnats-4.1.0/debian/changelog @@ -0,0 +1,794 @@ +gnats (4.1.0-0.5) unstable; urgency=low + + * Non-maintainer upload. + * Changed build dependency from bison-1.35 to bison. Closes: #486813 + * Added some missing ";" to getdate.y. Also added regenerated getdate.c file + so bison is not needed for this file during build process as usual. + * Pre-depend on debconf which is used in preinst. + * Moved purging action in gnats-user to postrm. + * Check for option "remove" in prerm, not for "purge". + * Remove gnatsd.user_access link on package removal. + * Remove gnats database on package purge. All in all this closes: #454940 + * Removed empty directories from packages. + * Bumped Standards-Version to 3.8.0, no additional changes needed. + + -- Michael Meskes Mon, 07 Jul 2008 18:33:53 +0200 + +gnats (4.1.0-0.4) unstable; urgency=low + + * Non-maintainer upload to fix pending l10n issues. + * Debconf translations + - Spanish. Closes: #423686 + - Dutch. Closes: #436868 + - Finnish. Closes: #480549 + - Basque. Closes: #481324 + - Galician. Closes: #481532 + * [Lintian] Use Homepage field in debian/control + * [Lintian] gnats Pre-Depends on debconf as it uses it in its preinst + script + * [Lintian] Use more up-to-date config.{guess|sub} files (from + autotools-dev. This should be done more cleanly than just copying the + files over those provided by upstream but requires too + many build changes. + + -- Christian Perrier Sun, 04 May 2008 10:03:31 +0200 + +gnats (4.1.0-0.3) unstable; urgency=medium + + * Non-maintainer upload + * Fix unconditional use of update-inetd in gnats.postrm script, + because update-inetd is not essential (Closes: #431526) + * Change dependency from netbase to update-inetd, because + update-inetd was moved into a seperate package (Closes: #43532) + + -- Steffen Joeris Sat, 04 Aug 2007 19:24:09 +1000 + +gnats (4.1.0-0.2) unstable; urgency=high + + * Non-maintainer upload during BSP + * Fix unconditional use of debconf in postrm scripts (Closes: #416754) + - Add a check in gnats.postrm.in + - Remove the manual debconf calls from gnats-user.postrm.in as they + are added by debhelper automatically + + -- Steffen Joeris Fri, 18 May 2007 22:35:36 +1000 + +gnats (4.1.0-0.1) unstable; urgency=low + + * Non-maintainer upload to fix longstanding l10n and debconf issues + * Depend on debconf | debconf-2.0. Closes: #331840 + * Fix incorrect hard-formatting in one template. Correct incorrect use + of an article in that template. Closes: #311807 + * Mark a few strings as non translatable in templates + * Debconf translations: + - Vietnamese added. Closes: #311806 + - Japanese added. Closes: #283273 + - Czech added. Closes: #319931 + - Brazilian Portuguese added. Sent during the call for updates of the + NMU campaign + - Swedish added. Sent during the call for updates of the NMU campaign + - Russian added. Sent during the call for updates of the NMU campaign + - Portuguese added. Sent during the call for updates of the NMU campaign + - German added. Sent during the call for updates of the NMU campaign + * Fix bashisms in maintainer scripts and don't make these bash scripts + Closes: #305632 + * Lintian fixes: + - Correct chown usage in maintainer scripts + - /var/lib/gnats/.profile cannot be a conffile + - make the gnats-user package depend on netbase and adduser, as it + uses update-inetd and adduser + - ditto for gnats that should depend on adduser + - Fix a missing quote error in gnats/edit-pr + + -- Christian Perrier Thu, 16 Nov 2006 07:40:36 +0100 + +gnats (4.1.0-0) unstable; urgency=low + + * New upstream version + * debian/rules: now uses '--with-lispdir' option instead of environment + variable overloading. Re-enabled optimization. + + -- Chad Walstrom Mon, 7 Mar 2005 17:56:31 -0600 + +gnats (4.0-7) unstable; urgency=high + + * debian/gnats.info: Added info docs + * debian/rules: Fix gnatsd segfaulting due to gcc optimization. Added + DEB_BUILD_OPTIONS=noopt. Thanks, Frank Lichtenheld for helping track this + one down. + + -- Chad Walstrom Fri, 5 Nov 2004 09:25:48 -0600 + +gnats (4.0-6.1) unstable; urgency=high + + * Non-maintainer upload as requested by maintainer. + * CAN-2004-0623: Fix format string vulnerability in misc.c + (Closes: #278577) Report and patch by Joey Hess + * Include French translation of debconf templates by + Michel Grentzinger (Closes: #267572) + + -- Frank Lichtenheld Sat, 30 Oct 2004 00:33:09 +0200 + +gnats (4.0-6) unstable; urgency=low + + * debian/gnats-user.install, debian/rules: Builds were failing because the + @lispdir@ variable was not being overriden or specified. Fixed. + * .../Makefile.in: Patched in 4.0-4 solve the issue with incorrect default + path names for configuration and database files and manpages. + - Closes: #241416: package install doesn't finish + - Closes: #222830: Unexistant directories in manpages + * debian/control: Changed exim dependency to exim4 + - Closes: #228564: Please update Dependencies to exim4 + - Closes: #255343: please depend on exim4 instead of exim + * debian/templates: Fixed in 4.0-4, noted here. + - Closes: #240861: Please switch to gettext-based debconf templates + + -- Chad Walstrom Wed, 4 Aug 2004 11:40:40 -0500 + +gnats (4.0-5) unstable; urgency=low + + * Migrating to unstable. No real show-stoppers or new bugs filed. + + -- Chad Walstrom Mon, 2 Aug 2004 10:00:30 -0500 + +gnats (4.0-4) experimental; urgency=low + + * The "Open up and say, 'Ah'" Release + * debian/: Major rewrite + - debian/rules: Using CDBS to drive package creation + - debian/compat, debian/gnats-user.dirs, debian/gnats-user.install, + debian/gnats.conffiles, debian/gnats.docs, debian/gnats.examples, + debian/gnats.info, debian/gnats.install, debian/gnats.manpages, + debian/gnats-user.manpages: Use debhelper configuration files + extensively, simplifying the debian/rules file in the process. Moved + some existing support files to package-specific names. + - debian/scripts [removed], debian/common.sed, + debian/gnats-user.postinst.in, debian/gnats-user.postrm.in, + debian/gnats-user.prerm.in, debian/gnats.postinst.in, + debian/gnats.postrm.in, debian/gnats.preinst.in, debian/gnats.prerm.in: + Use a sed script to replace the functionality of the debian/scripts + directory. Replace @KEYWORDS@ in *.in files to coordinate path names + and and identifiers. + * debian/control: Reorganized package file distribution and dependencies + - gnats-user contains all of the common files and documentation + - gnats depends upon gnats-user + * Patched Makfile.in files to include DESTDIR variable for file installation + * debian/scripts: Removed. Replaced with template + PACKAGE.{pre,post}{inst,rm} files. + * debian/misc/send-pr.conf: Small edit, allowing SUBMITTER variable + * doc/man/getclose.man: Added an actual manpage for getclose(8) + * debian/gnats.xinetd.in: Added an xinetd service file. + + -- Chad Walstrom Thu, 15 Jul 2004 15:55:49 -0500 + +gnats (4.0-3) unstable; urgency=low + + * Adopted. Closes: #215366 + * debian/copyright: Updated to reflect current project site locations and + authors. + * debian/rules: Very basic cleanups. Added logical stamp files. Changed + call to gnatsclean target to "maintainer-clean". This removed *.info + files for dpkg-source resulting in a significantly smaller *.diff.gz. + * Cleaned out GNU arch control files and directories (./.arch-ids). They + don't belong in a *.diff.gz, just like CVS directories. + + -- Chad Walstrom Wed, 4 Feb 2004 17:36:13 -0600 + +gnats (4.0-2) unstable; urgency=low + + * Orphaned. + + -- Milan Zamazal Sun, 12 Oct 2003 14:02:27 +0200 + +gnats (4.0-1) unstable; urgency=low + + * New upstream release; closes: #206273. + * Quote shell expression in debian/scripts/addmail; closes: #102713. + * Use makeinfo instead of texi2html. + + -- Milan Zamazal Fri, 29 Aug 2003 16:24:38 +0200 + +gnats (3.999.beta2+cvs20030310-1) unstable; urgency=low + + * New CVS snapshot. + * Install the `gnats' group if not present; closes: #180223. + * Error in the `gnats/exim_user_add' template fixed; closes: #181750. + * __restrict_arr definition bug fixed in gnats/regex.h; closes: #182262. + * Lintian overrides updated. + * Don't install the /usr/doc link anymore. + + -- Milan Zamazal Sat, 8 Mar 2003 18:49:21 +0100 + +gnats (3.999.beta2-2) unstable; urgency=low + + * config.guess and config.sub updated; closes: #176233. + + -- Milan Zamazal Mon, 13 Jan 2003 09:15:43 +0100 + +gnats (3.999.beta2-1) unstable; urgency=low + + * New upstream version. + * The gnats/exim_user_uncomment template fixed; closes: #161491. + * Emacs load-path in gnats-user fixed; closes: #164702. + + -- Milan Zamazal Fri, 3 Jan 2003 13:50:15 +0100 + +gnats (3.999.beta1+cvs20020804-1) unstable; urgency=low + + * New CVS snapshot. + * Set DEFAULT_ORGANIZATION instead of ORGANIZATION in send-pr.conf. + * Don't install upstream ChangeLog. + * Autoload gnats-change-database in gnats.el. + + -- Milan Zamazal Sun, 4 Aug 2002 18:35:30 +0200 + +gnats (3.999.beta1+cvs20020519-1) unstable; urgency=low + + * New CVS snapshot; closes: #138290. + * Don't remove the emacs21 site-lisp directory in postrm; + closes: #143204. + * README.Debian explains now, that the e-mail utilities must run under + the `gnats' user; closes: #132961. + + -- Milan Zamazal Sun, 19 May 2002 21:35:58 +0200 + +gnats (3.999.beta1+cvs20020303-1) unstable; urgency=low + + * New CVS snapshot; closes: #133268, #136176. + * gnats: Uninstall Emacs files in prerm, not postrm. + * Remove the *.elc directory in emacsen-remove; closes: #132535. + * exim.conf location updated. + + -- Milan Zamazal Sat, 2 Mar 2002 21:59:14 +0100 + +gnats (3.999.beta1-1) unstable; urgency=low + + * New upstream version (wow!). + + -- Milan Zamazal Sat, 5 Jan 2002 22:08:58 +0100 + +gnats (3.999.20011223-2) unstable; urgency=low + + * Restore gnats-queue if it gets deleted during the upgrade. + + -- Milan Zamazal Sun, 23 Dec 2001 21:56:52 +0100 + +gnats (3.999.20011223-1) unstable; urgency=low + + * New CVS snapshot; closes: #123205. + * README.Gnatsweb and Gnatsweb related build targets removed. + * Don't suggest gnats2w, which is almost orphaned now. + * Add the `gnats -> root' mail alias; closes: #118237. + * Home directory changed to /var/lib/gnats. + * Most /etc/passwd issues are handled automatically now. + * "Unimportant" debconf messages removed. + * gnats-dbconfig-mode added to the Emacs startup file. + * Don't install the /var/lib/gnats/gnats-db directory. + * Create `default' instead of `standard' link in /etc/gnats/db-config. + * Create the `default' database if needed. + * Call dh_installdocs in binary-server and binary-user. + * Call dh_installdeb in binary-user. + * Use dh_builddeb. + * Let all the files in /etc/ are conffiles. + * DH_COMPAT set to 3. + * No lintian 1.20.17 errors. + + -- Milan Zamazal Sun, 23 Dec 2001 20:42:14 +0100 + +gnats (3.999.20011112-1) unstable; urgency=low + + * New CVS snapshot; closes: #116652. + * Don't build-depend on emacs. + + -- Milan Zamazal Mon, 12 Nov 2001 18:40:54 +0100 + +gnats (3.999.20010906-1) unstable; urgency=low + + * New CVS snapshot; closes: #111162. + * One missing sendmail option added; really closes: #111037. + * sendmail's location changed to /usr/sbin. + * Don't use the no longer present --with-full-gnats configure option; + use *-tools targets for gnats-user. + + -- Milan Zamazal Thu, 6 Sep 2001 20:34:32 +0200 + +gnats (3.999.20010904-1) unstable; urgency=low + + * New CVS snapshot. + * Set sendmail's location unconditionally so that the package doesn't + build-depend on a mail-transport-agent; closes: #111037. + * Don't invoke configure for subdirectories, it's no longer needed. + + -- Milan Zamazal Tue, 4 Sep 2001 16:51:36 +0200 + +gnats (3.999.20010829-1) unstable; urgency=low + + * New CVS snapshot; closes: #110068. + * Standards 3.5.6 (no change). + * The obsolete code in `rules' using /tmp commented out; closes: #109440. + * Build on Alpha again (if the porters have got their Alphas running, I + might find out what's wrong with the compilation there). + * No lintian 1.20.14 errors. + + -- Milan Zamazal Wed, 29 Aug 2001 21:37:12 +0200 + +gnats (3.999.20010729-1) unstable; urgency=low + + * New CVS snapshot. + * Use `ln -sf' in installation scripts to rewrite dangling symlinks; + closes: #99632. + * Update documentation handling caused by the source tree + reorganization. + * Call check-db in cron with `--all-databases'. + * Site name guessing improved and asks the user now; closes: #78181. + * Standards 3.5.5. + * No lintian 1.20.13 errors. + * Don't build with -Werror on alpha; closes: #99283. + (I'm very annoyed by doing this, it "fixes" a bug just by ignoring it, + but I don't have a reliable access to any Alpha machine and I don't + know a better way how to push the package to testing in a reasonable + way.) + * Since the previous "fix" won't work until the top-level GNATS + configure stuff is reworked, don't build on alpha at all (due to + deficiences in the Architecture field syntax, this prevents building + on newly introduced architectures as well). + * Home page location in description changed. + * Typo in the item type of a debconf template fixed; closes: #106322. + * Create `locks' subdirectory in the default database; closes: #104195. + + -- Milan Zamazal Sun, 29 Jul 2001 14:14:03 +0200 + +gnats (3.999.20010617-1) unstable; urgency=low + + * New CVS snapshot; closes: #98833. + * Add configuration files to the standard database if necessary; + closes: #99644. + * The site name configuration code removed. + + -- Milan Zamazal Sun, 17 Jun 2001 21:06:32 +0200 + +gnats (3.999.20010527-1) unstable; urgency=low + + * New CVS snapshot. + * Emacs local variables removed from this file. + * The DEFAULTSDIR hack removed. + * Ensure cron jobs exit with the code 0. + * The Debian files explicitly put in public domain. + + -- Milan Zamazal Sun, 27 May 2001 14:21:40 +0200 + +gnats (3.999.20010225-2) unstable; urgency=low + + * Man page linking moved after dh_compress; closes: #90004, #90007. + * Lintian override file added. + + -- Milan Zamazal Mon, 19 Mar 2001 18:21:57 +0100 + +gnats (3.999.20010225-1) unstable; urgency=low + + * Priority changed to `extra'. + * Moved to standards 3.5.0. + * The `-g' compilation flag made optional, w.r.t. DEB_BUILD_OPTIONS. + * gnats-user: Links to undocumented man pages removed. + * Permissions of control files fixed. + * `exim' prepended to the dependencies on `mail-transport-agent'. + * Link unavailable man pages to gnats.7. + * gnatsweb entry removed from `control'; closes: #89044. + * No lintian 1.20.6 errors. + + -- Milan Zamazal Fri, 16 Mar 2001 12:17:39 +0100 + +gnats (3.999.20010121-2) unstable; urgency=low + + * gnats/check-db.sh: Missing `fi's added. + * pr-edit segfault fixed; closes: #83418. + + -- Milan Zamazal Wed, 24 Jan 2001 22:22:11 +0100 + +gnats (3.999.20010121-1) unstable; urgency=low + + * New CVS snapshot (wow!). + * contrib programs removed, because of (temporary?) problems with them; + that means gnatsweb and tkgnats aren't built. + * debian/copyright: Updated. + * debian/gnats.el: Updated. + * emacs19 removed from build dependencies; closes: #82677. + * Home page URLs in descriptions updated. + + -- Milan Zamazal Sun, 21 Jan 2001 20:37:59 +0100 + +gnats (3.999.20000924-3) unstable; urgency=low + + * mkdb related fixes; closes: #76681. + * Create `dbconfig' in /var/lib/gnats/gnats-db/gnats-adm if needed + (thanks to Hugo Gayosso for providing a necessary hint); closes: #71587. + * Note this is still ALPHA quality software and there is almost no + upstream development last few months. Use this version at your own + risk. + + -- Milan Zamazal Sun, 12 Nov 2000 15:54:19 +0100 + +gnats (3.999.20000924-2) unstable; urgency=low + + * Build dependencies on flex and bison added (thanks to Roman Hodek, who + patiently reports all the build dependency bugs); closes: #72470. + * Don't build gnats-tk (it hasn't been ported for GNATS 4 yet). + + -- Milan Zamazal Sat, 30 Sep 2000 17:13:54 +0200 + +gnats (3.999.20000924-1) unstable; urgency=low + + * New CVS version. + * Typo in Build-Depends fixed; closes: #72002. + + -- Milan Zamazal Sun, 24 Sep 2000 13:52:07 +0200 + +gnats (3.999.20000820-2) unstable; urgency=low + + * Build-depend on texi2html instead of tetex-bin; closes: #68454, #71424. + + -- Milan Zamazal Tue, 12 Sep 2000 20:10:15 +0200 + +gnats (3.999.20000820-1) unstable; urgency=low + + * New upstream version (beta version of GNATS 4 from CVS); + closes: #53212, #61960. + * DO NOT USE THIS ON A PRODUCTION SERVER! There are incompatibilities + between GNATS 3 and GNATS 4 and the package hasn't been tested much + yet. The package seems to do something, but has definitely many + bugs. Bug reports on any bugs are welcome! + * Printed dates include numeric time zone, not a time zone abbreviation + (idea of Konstantin Kivi); closes: #64883. + * gnatsweb: Konstantin Kivi's example of emitting a KOI-8 HTTP header + added. + + -- Milan Zamazal Sun, 10 Sep 2000 15:43:44 +0200 + +gnats (3.113-15) unstable; urgency=low + + * Other files from /var/lib/gnats/gnats-db/gnats-adm/ made conffiles; + closes: #68026. + + -- Milan Zamazal Mon, 31 Jul 2000 22:04:31 +0200 + +gnats (3.113-14) unstable; urgency=low + + * WARNING: Unless some important bug is found, this is the last + packaging of the 3.113 version. I plan to package pre-release GNATS 4 + (which is a bit incompatible with the older version) in few weeks. + * Give advice about exim configuration; closes: #64882. + * Maximum line size in gnatsd.c enlarged to 10000 B; closes: #67425. + * All quotes and backquotes in template replaced by double-quotes; + hopefully closes: #66831. + + -- Milan Zamazal Mon, 24 Jul 2000 20:05:14 +0200 + +gnats (3.113-13) frozen unstable; urgency=low + + * Call `db_purge' in postrm; closes: #65443. + * `gnatsd.access' shouldn't be world readable; partially fixes #65470. + * This upload goes to frozen because the fixed bugs were reported with + the severity `important'. + + -- Milan Zamazal Sun, 11 Jun 2000 09:39:21 +0200 + +gnats (3.113-12) frozen unstable; urgency=low + + * gnatsweb must depend on libmime-base64-perl; closes: #63173. + + -- Milan Zamazal Sat, 29 Apr 2000 18:30:58 +0200 + +gnats (3.113-11) frozen unstable; urgency=low + + * Reply-To bug in send-pr fixed; closes: #62137. + + -- Milan Zamazal Mon, 10 Apr 2000 20:26:51 +0200 + +gnats (3.113-10) frozen unstable; urgency=low + + * Installation of debconf template for gnats-user fixed; closes: #61823. + * Do not byte compile Emacs files for the `xemacs21' flavor, avoiding + thus installation crash on machines with XEmacs 21 installed. + + -- Milan Zamazal Sun, 9 Apr 2000 10:13:50 +0200 + +gnats (3.113-9) frozen unstable; urgency=low + + * Bug in `mkdist' fixed, it works now; closes: #61397. + (I'm not sure it justifies update in frozen because mkdist is not so + much used utility, but the bug is marked as important, so ...). + * `config.*' files replaced by those from current automake, to avoid + compilation problems on ARM; closes: #60959. + + -- Milan Zamazal Fri, 31 Mar 2000 20:52:32 +0200 + +gnats (3.113-8) frozen unstable; urgency=low + + * gnats-user: Emacs files installation fixed; closes: #58607. + * Do not print a welcome message in .profile, since it causes cron to + generate mails to admin. + * ~gnats/.profile is now conffile. + + -- Milan Zamazal Wed, 23 Feb 2000 19:09:16 +0100 + +gnats (3.113-7) frozen unstable; urgency=low + + * Add user field into the /etc/cron.d script, the script didn't work! + + -- Milan Zamazal Thu, 20 Jan 2000 20:26:32 +0100 + +gnats (3.113-6) frozen unstable; urgency=low + + * Fix gnatsweb dependencies; closes: #54658. + + -- Milan Zamazal Sat, 15 Jan 2000 10:45:53 +0100 + +gnats (3.113-5) unstable; urgency=low + + * Protect all db_inputs with `|| true'. + + -- Milan Zamazal Sat, 8 Jan 2000 21:25:58 +0100 + +gnats (3.113-4) unstable; urgency=low + + * Build dependencies fixed; closes: #52778. + + -- Milan Zamazal Wed, 15 Dec 1999 18:55:40 +0100 + +gnats (3.113-3) unstable; urgency=low + + * Install debconf files! + + -- Milan Zamazal Tue, 14 Dec 1999 09:28:28 +0100 + +gnats (3.113-2) unstable; urgency=low + + * Build-depend on tetex-base. + * Define GNATS_USER during compilation (gnats-tk should work again). + + -- Milan Zamazal Wed, 24 Nov 1999 23:07:59 +0100 + +gnats (3.113-1) unstable; urgency=low + + * New upstream version. + * Standards 3.1.1. + * Homepage URL added to control. + * Use `xargs -r' in rules. + * Use debconf. + * Less verbose configuration. + * The waitcr subscript removed. + * Remove `support', not `gnats' from inetd.conf on purge. + * Call newaliases, if available, after changing /etc/aliases. + * Menu entry for gnats-tk defined. + * Build dependencies introduced. + * Reference to GPL location on Debian updated. + * One forgotten /usr/doc occurence moved to /usr/share/doc. + + -- Milan Zamazal Thu, 18 Nov 1999 22:21:41 +0100 + +gnats (3.112.1-2) unstable; urgency=low + + * gnatsd.access is a conffile now; closes: #48638. + * Notify addresses concatenation fixed, thanks to Eric Valette for + providing appropriate information. + * No lintian 1.10 errors. + + -- Milan Zamazal Sun, 31 Oct 1999 19:31:50 +0100 + +gnats (3.112.1-1) unstable; urgency=low + + * New upstream version; closes: #45761. + * Apply dh_clean, so that the debhelper generated files were not + included in *.diff.gz. + * gnatsweb package created on a user's request; but don't expect much of + it now. + + -- Milan Zamazal Mon, 27 Sep 1999 22:09:52 +0200 + +gnats (3.111-3) unstable; urgency=low + + * Moved to FHS. + * Compiled with egcs/glibc 2.1. + * The new upstream version didn't fix the glibc 2.1 compilation + problems, so the fixes are back again. + * One more such a fix (for gnatsd). + * Handle non-existent /etc/aliases properly; closes: #44873. + * The shell for cross-check changed from ksh to bash. + * Standards 3.0.1. + * No lintian 1.8.2 errors. + + -- Milan Zamazal Mon, 13 Sep 1999 22:13:53 +0200 + +gnats (3.111-2) unstable; urgency=low + + * check-db.sh: Improve "cron" message. + * check-db.sh: Unlock if exiting when index not found. + + -- Milan Zamazal Tue, 7 Sep 1999 21:00:50 +0200 + +gnats (3.111-1) unstable; urgency=low + + * New upstream version. + * inetd entry changed from `gnats' to `support'; closes: #43612. + * index.html in HTML docs is a symlink now, not renamed table of + contents; closes: #43617. + + -- Milan Zamazal Sat, 28 Aug 1999 10:47:07 +0200 + +gnats (3.110-7) unstable; urgency=low + + * tkgnats doc & example files installed; closes: #33479. + * Better messages about /etc/passwd in postinst; closes: #37824. + * LIBEXECDIR for gnats-tk fixed. + + -- Milan Zamazal Tue, 17 Aug 1999 22:23:58 +0200 + +gnats (3.110-6) unstable; urgency=low + + * gnats suggests gnats2w. + * The `software.free.com' entry in gnatsd.conf commented out; + closes: #42746. + * The default value of GNATS_ROOT in ~gnats/.profile fixed; + closes: #42748. + * gnats-db.conf is a conffile now. + + -- Milan Zamazal Fri, 13 Aug 1999 19:58:33 +0200 + +gnats (3.110-5) unstable; urgency=low + + * Bug in change in `check-db' fixed. + * Yet another "outfile" fix. + + -- Milan Zamazal Mon, 2 Aug 1999 23:24:20 +0200 + +gnats (3.110-4) unstable; urgency=low + + * DANGER! -- installation scripts rewritten, be careful or brave. + Anyway, any problem reports are welcome! + * qmail support; closes: #24131. + * Emacs compilation support. + * `gnats-user' dependency on `emacs' changed to `emacsen'. + * `gnats-user' no longer installs files into /usr/libexec/. + * Yet another "outfile" fix. + * reset-gnats: Print error when not run from the `gnats' account; + closes: #40914. + * /etc/aliases handling improved; closes: #40858. + * Installation scripts rewritten from Perl to bash to be more simple and + robust and many fixes done in them. + * More error trapping in rules. + * HTML documentation provided. + * crontabs installed into /etc/cron*. + * Using `tempfile', so dependency on debianutils added. + * Install /etc/gnats/gnats-db.conf. + * Symlink made in /etc/gnats/ to standard database; closes: #40906. + * GNATS_ROOT added to ~gnats/.profile. + * Configuration reading bug in send-pr.el fixed; closes: #26352. + * No lintian 1.5 errors. + + -- Milan Zamazal Mon, 26 Jul 1999 21:20:42 +0200 + +gnats (3.110-3) unstable; urgency=low + + * Password setting advice in postinst fixed; closes: #39619. + * LIBEXECDIR fixed for /usr/lib/gnats/* scripts. + * GNATS_ADMIN fixed. + * Sample categories commented out in configuration; closes: #32904, #34240. + * Configuration suggested in /usr/lib/check-db if index doesn't exist. + * Still untested package, serious bugs possible. + + -- Milan Zamazal Thu, 17 Jun 1999 00:11:43 +0200 + +gnats (3.110-2) unstable; urgency=low + + * Tkgnats configuration fixed. + * Applied patch by Kaz Sasayama to avoid file-pr segfaults; closes: #37229. + * Applied patch by Konstantinos Margaritis to avoid stdout initialization + problems on powerpc potato systems; closes: #38166, #38272. + + -- Milan Zamazal Mon, 14 Jun 1999 20:57:04 +0200 + +gnats (3.110-1) unstable; urgency=low + + * New upstream version. + * New maintainer. + * UNTESTED PACKAGE VERSION, USE AT YOUR OWN RISK ONLY! + * No longer native Debian package. + * Standards 2.5.0. + * Compiled with `-O2 -g'. + * `copyright' updated. + * `copyright' not compressed. + * debian/rules changes. + * Using debhelper now. + * MD5 sums added. + * CYGNUS installed into /usr/doc/. + * Executing shell of `reset-gnats' changed to bash to not generate + annoying dependency on pdksh. + * Docs of `gnats-user' installed to `/usr/doc/gnats-user'. + * No lintian 1.3 errors. + * No fixes of reported bugs yet, wait for the next version, please. + + -- Milan Zamazal Sun, 6 Jun 1999 19:57:24 +0200 + + +gnats (3.104-6) unstable; urgency=low + + * Suggest "emacsen" instead of "emacs" (Bug#24614) + * Don't see "gnats-user" alias as a gnats alias (Bug#26296) + + -- Brian White Tue, 13 Oct 1998 12:38:13 -0400 + + +gnats (3.104-5) frozen unstable; urgency=low + + * Include /usr/lib/gnats in path instead of GNATS_ROOT/gnats-bin (Bug#21636) + * Now depend on 'wish' instead of tk42 (Bug#21490) + * Move tkgnats man page from /usr/share to /usr (Bug#21029) + * Corrected gnats user setting (Bug#21030) + + -- Brian White Mon, 11 May 1998 19:42:06 -0400 + + +gnats (3.104-4) frozen unstable; urgency=low + + * Fixed GNATS_ROOT problem with contributed scripts (Bug#19554, #19555, #19899) + * Changed check-categories to abort in case of error (Bug#19898) + * Fixed tkgnats search path to /usr/share/tkgnats (Bug#19968) + * Fixed incorrect install of copyright file (Bug#20377) + + -- Brian White Sat, 11 Apr 1998 14:11:02 -0400 + + +gnats (3.104-3) unstable; urgency=low + + * Fixed (hopefully) problem with delete-pr (Bug#18832) + * Fixed spelling mistake in description (Bug#18915) + * Fixed copyright files in gnats-tk (Bug#19317) + * Added missing manpages (Bug#19317) + + -- Brian White Wed, 11 Mar 1998 13:25:17 -0500 + + +gnats (3.104-2) unstable; urgency=low + + * Fixed problem link to uncompressed.7 (Bug#16163) + * Fixed incorrect variable in check-db (Bug#16369) + + -- Brian White Thu, 19 Feb 1998 13:08:41 -0500 + + +gnats (3.104-1) unstable; urgency=low + + * New upstream source + * Have postinst call "adduser" if user password entry doesn't exist (Bug#8446) + * Fixed problem with unset GNATS_ADDR (Bug#11348) + + -- Brian White Wed, 23 Jul 1997 14:01:51 -0400 + + +gnats (3.101-2) frozen unstable; urgency=low + + * Added patch to fix problems calling new "at" (Bug#8801) + * Added patch to fix nis dependancy (Bug#8799) + * Changed debian/rules to determine PWD itself (Bug#8800) + + -- Brian White Fri, 25 Apr 1997 13:27:20 -0400 + + +gnats (3.101-1) unstable; urgency=low + + * New upstream source + * New packaging format + * Changed gnats uid/gid to #41 + * Fixed permisions of gnats.conffiles (Bug#4661) + * Fixed install of send-pr info file (Bug#3053) + + -- Brian White Mon, 27 Jan 1997 21:23:55 -0500 + + +gnats (3.2-1) unstable; urgency=low + + * Added Debian GNU/Linux package maintenance system files + * Fixes required a couple C prototypes + * and a mod to the Makefile (.in) to properly find the install.sh program + + -- Brian White Mon, 18 Nov 1995 23:44:17 -0500 --- gnats-4.1.0.orig/debian/gnats.postrm.in +++ gnats-4.1.0/debian/gnats.postrm.in @@ -0,0 +1,50 @@ +#!/bin/sh +# +# Gnats installation script -- written by Brian White +# (This was my very first attempt at learning perl... please forgive me!) +# +# Forgiving -- rewritten to bash :-) by Milan Zamazal . +# ...and streamlined with SED by Chad Walstrom + +set -e + +############################################################################### +# +# Utility functions +# + +# Call arguments and never return error +protect () { "$@" || true; } + +############################################################################### +# +# Common initialization for install scripts +# +if [ -f /usr/share/debconf/confmodule ]; then + . /usr/share/debconf/confmodule +fi + +############################################################################### +# +# Purging actions +# + +if [ "$1" = purge ]; then + # Purge gnats database + protect rm -rf @GNATSDBDIR@ @GNATSDBDIR@.old + + # Remove the inetd setting when purging this package. + if [ -e "/usr/sbin/update-inetd" ] ; then + update-inetd --remove "#?support.*" + fi + + # Remove debconf templates and data + db_purge || true +fi + +############################################################################### +# +# Automatically added debhelper stuff +# +#DEBHELPER# + --- gnats-4.1.0.orig/debian/common.sed +++ gnats-4.1.0/debian/common.sed @@ -0,0 +1,26 @@ +############################################################################### +# +# Common Substitutions for sed +# +s,@GNATSENTRY@,@GNATSUSER@:x:@GNATSID@:@GNATSGID@:Gnats Bug-Reporting System:@GNATSHOME@:/bin/sh,g +s,@GNATSID@,41,g +s,@GNATSGID@,41,g +s,@GNATSUSER@,gnats,g +s,@GNATSGROUP@,gnats,g +s,@MAILFILE@,/etc/aliases,g +s,@PASSWDFILE@,/etc/passwd,g +s,@GROUPFILE@,/etc/group,g +s,@GNATSDIR@,/usr/lib/gnats,g +s,@GNATSDBPAR@,/var/lib/gnats,g +s,@GNATSDBDIR@,/var/lib/gnats/gnats-db,g +s,@GNATSADMDIR@,/var/lib/gnats/gnats-db/gnats-adm,g +s,@GNATSHOME@,/var/lib/gnats,g +s,@GNATSOLDHOME@,/usr/lib/gnats/gnats-db,g +s,@CONFIGFILE@,/var/lib/gnats/gnats-db/gnats-adm/config,g +s,@CONFIGDIR@,/etc/gnats,g +s,@DEFAULTSDIR@,/etc/gnats/defaults,g +s,@DB_CONFIG_DIR@,/etc/gnats/db-config,g +s,@DB_CONFIG_DEFAULT_DIR@,/etc/gnats/db-config/default,g +s,@INFODIR@,/usr/share/info,g +s,@DOCDIR@,/usr/share/doc,g +s,@DEFSITE@,default,g --- gnats-4.1.0.orig/debian/.todo +++ gnats-4.1.0/debian/.todo @@ -0,0 +1,66 @@ + + + + Debian GNATS TODO List + + + REWRITE debian/rules! + + Finished in the wee hours of the morning. Added SED templating of package.{post,pre}{inst,rm} scripts. + + + + Update debhelper compatibility + + Done + + + + Reorganize debian/rules + + Done + + + + W: gnats: extra-license-file usr/share/doc/gnats/examples/tkgnats/.arch-ids/COPYING.id + + I wasn't excluding .arch-ids directories in the examples + + + + Determine whether or not gnats-user should add the gnats user account + + + Determine if gnats-user requires database config files + + + Add a gnats-common package for docs, basic configs, etc.? + + + Finish debconf configuration + + + W: gnats source: not-using-po-debconf + + Just added. + + + + W: gnats source: cvsignore-file-in-source debian/.cvsignore + + + W: gnats-user: no-manpage-in-correct-directory usr/bin/getclose (8) + + + W: gnats-user: postinst-uses-db-input + + + W: gnats: extra-license-file usr/share/doc/gnats/examples/tkgnats/COPYING.gz + + + W: gnats: executable-not-elf-or-script ./usr/share/doc/gnats/examples/juniper-web-reports/index.html + + + W: gnats: install-info-not-called-with-section-option + + --- gnats-4.1.0.orig/debian/gnats.xinetd.in +++ gnats-4.1.0/debian/gnats.xinetd.in @@ -0,0 +1,11 @@ +# default: off +# description: Gnats Help Queue System +service support +{ + disable = yes + socket_type = stream + protocol = tcp + wait = no + user = @GNATSUSER@ + server = @GNATSDIR@/gnatsd +} --- gnats-4.1.0.orig/debian/gnats-user.postinst.in +++ gnats-4.1.0/debian/gnats-user.postinst.in @@ -0,0 +1,72 @@ +#!/bin/bash +# +# Gnats installation script -- written by Brian White +# (This was my very first attempt at learning perl... please forgive me!) +# +# Forgiving -- rewritten to bash :-) by Milan Zamazal . +# ...and streamlined with SED by Chad Walstrom + +set -e + +############################################################################### +# +# Utility functions +# + +# Call arguments and never return error +function protect () { "$@" || true; } + +############################################################################### +# +# Common initialization for install scripts +# + +. /usr/share/debconf/confmodule + +############################################################################### +# +# Check the 'gnats' userid in the password file +# + +if [ "$1" = configure ]; then + + if [ $(protect grep -c "^@GNATSGROUP@:" @GROUPFILE@) -eq 0 ]; then + adduser --group --gid @GNATSGID@ @GNATSGROUP@ + fi + + PWFOUND=$(protect grep -c "^@GNATSUSER@:" @PASSWDFILE@) + + if [ $PWFOUND -gt 1 ]; then + db_subst gnats/user_multiple PASSWDFILE "@PASSWDFILE@" + protect db_input high gnats/user_multiple + protect db_go + fi + + if [ $PWFOUND -gt 0 ]; then + if [ $(protect grep -c "^@GNATSUSER@:.*:@GNATSOLDHOME@:" @PASSWDFILE@) -gt 0 ] + then + if [ -e @GNATSOLDHOME@/.profile ]; then + mv @GNATSOLDHOME@/.profile @GNATSHOME@/ + fi + usermod -d @GNATSHOME@ @GNATSUSER@ + fi + if [ $(protect grep -c "^@GNATSUSER@:[^:]*:@GNATSID@:@GNATSGID@:" \ + @PASSWDFILE@) \ + -eq 0 ] + then + usermod -u @GNATSID@ -G @GNATSGID@ @GNATSUSER@ + fi + else + adduser --quiet --system --home @GNATSHOME@ --no-create-home \ + --gid @GNATSGID@ --shell /bin/sh --disabled-login \ + --gecos 'GNU GNATS Bug-Reporting System' @GNATSUSER@ + fi + +fi + + +############################################################################### +# +# Automatically added debhelper stuff +# +#DEBHELPER# --- gnats-4.1.0.orig/debian/copyright +++ gnats-4.1.0/debian/copyright @@ -0,0 +1,37 @@ +This is the Debian package of the GNATS bug monitoring system. + +GNATS was originally packaged for Debian by Brian White . +It had been maintained by Milan Zamazal , but it is now +maintained by Chad Walstrom . + +The GNATS project home page is hosted at +http://savannah.gnu.org/projects/gnats. The software can normally be obtained +via ftp://ftp.gnu.org/gnu/gnats/ or through the CVS repository at +http://savannah.gnu.org/cvs/?group=gnats. + +Because of the 2003 crack of ftp.gnu.org, the current version was fetched from: +http://www.yngve.com/gnats/gnats-4.0.tar.gz + +It's unclear who are the copyright holders of GNATS. + +License: + + GNU GNATS is free software; you can 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. + + GNU GNATS is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + +The full text of GNU General Public License can be found under +/usr/share/common-licenses/GPL on Debian systems. + +The Debian control files in the `debian' directory of the source package were +mostly written by Brian White, Milan Zamazal, and Chad Walstrom. They are +placed in public domain unless a particular file contains another copyright +notice. You may use, modify and distribute their unmodified and/or modified +versions. All the files are provided WITHOUT ANY WARRANTY; without even the +implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. --- gnats-4.1.0.orig/debian/NEWS +++ gnats-4.1.0/debian/NEWS @@ -0,0 +1,26 @@ +gnats (4.0-4) experimental; urgency=low + + The Debian packaging for GNATS has undergone a huge booster shot, with an + almost complete rewrite of the ./debian directory. The package now brings + to bear useful tools such as debhelper and cdbs for construction. Patches + were made to the Makefile.in files in the GNATS source itself in order to + resolve the "incorrect paths" problems that has been plaguing the 4.0 series + of packages. + + There are still many bugs that need to be ironed out with respect to file + placement in packages and what to do about default configuration files for + user-tools installations. + + One noticeable change is the dependence of that gnats-user package by the + gnats package. Previously, these two packages conflicted with each other. + I am attempting to remove redundancy and simplify the build process by tying + them together. You may yet see a third package, gnats-common, in the near + future. + + Also added was the Localization support for the debconf templates. + Translators, please submit your *.po files for inclusion. Thanks! + + Please report any problems you have with this package to the Debian Bug + Tracking System. + + -- Chad Walstrom Wed, 14 Jul 2004 11:53:37 -0500 --- gnats-4.1.0.orig/debian/gnats-user.emacsen-startup +++ gnats-4.1.0/debian/gnats-user.emacsen-startup @@ -0,0 +1,27 @@ +;; +;; GNATS (bug reporting system) set-up for emacs +;; + +(setq load-path + (cons + (concat "/usr/share/" (symbol-name debian-emacs-flavor) + "/site-lisp/gnats") + load-path)) + +(autoload 'edit-pr "gnats" + "Command to edit a problem report." t) +(autoload 'query-pr "gnats" + "Command to query information about problem reports." t) +(autoload 'send-pr "gnats" + "Command to create and send a problem report." t) +(autoload 'view-pr "gnats" + "Command to view a problem report." t) +(autoload 'unlock-pr "gnats" + "Unlock a problem report." t) +(autoload 'unlock-database "gnats" + "Unlock the whole database." t) +(autoload 'gnats-change-database "gnats" + "Set new database parameters." t) +(autoload 'gnats-dbconfig-mode "gnats" + "Major mode for editing the `dbconfig' GNATS configuration file." t) +(add-to-list 'auto-mode-alist '("\\ +# (This was my very first attempt at learning perl... please forgive me!) +# +# Forgiving -- rewritten to bash :-) by Milan Zamazal . +# ...and streamlined with SED by Chad Walstrom + +set -e + +############################################################################### +# +# Utility functions +# + +# Call arguments and never return error +protect () { "$@" || true; } + +############################################################################### +# +# Common initialization for install scripts +# + +. /usr/share/debconf/confmodule + +protect db_get gnats/site +SITE=${RET:-@DEFSITE@} +GNATSSITE="@GNATSDBDIR@/$SITE" +GNATSDBDIR="@GNATSDBDIR@" +PASSWDFILE="@PASSWDFILE@" + +############################################################################### +# +# Check the 'gnats' userid in the password file +# + +if [ "$1" = configure ]; then + + if [ $(protect grep -c "^@GNATSGROUP@:" @GROUPFILE@) -eq 0 ]; then + adduser --group --gid @GNATSGID@ @GNATSGROUP@ + fi + + PWFOUND=$(protect grep -c "^@GNATSUSER@:" @PASSWDFILE@) + + if [ $PWFOUND -gt 1 ]; then + db_subst gnats/user_multiple PASSWDFILE "@PASSWDFILE@" + db_input high gnats/user_multiple || true + db_go + fi + + if [ $PWFOUND -gt 0 ]; then + if [ $(protect grep -c "^@GNATSUSER@:.*:@GNATSOLDHOME@:" @PASSWDFILE@) -gt 0 ] + then + if [ -e @GNATSOLDHOME@/.profile ]; then + mv @GNATSOLDHOME@/.profile @GNATSHOME@/ + fi + usermod -d @GNATSHOME@ @GNATSUSER@ + fi + if [ $(protect grep -c "^@GNATSUSER@:[^:]*:@GNATSID@:@GNATSGID@:" \ + @PASSWDFILE@) \ + -eq 0 ] + then + usermod -u @GNATSID@ -G @GNATSGID@ @GNATSUSER@ + fi + else + adduser --quiet --system --home @GNATSHOME@ --no-create-home \ + --gid @GNATSGID@ --shell /bin/sh --disabled-login \ + --gecos 'GNU GNATS Bug-Reporting System' @GNATSUSER@ + fi + +fi + +############################################################################### +# +# Add the 'gnats' system into the mail aliases +# + +if [ "$1" = configure ]; then + + # + # Special mailers + # + + EXIM=$(dpkg -l exim | protect grep -c '^.i') + for F in /etc/exim/exim.conf /etc/exim.conf; do + if [ -f $F ]; then + EXIMCONF=$F + break + fi + done + + if [ $EXIM -gt 0 ] && [ -n "$EXIMCONF" ]; then + if [ $(grep -c '^[ \t]*user[ \t]*=' $EXIMCONF) -eq 0 ]; then + LINES="$(grep '^[ \t]*#[ \t]*user[ \t]*=' $EXIMCONF)" + if [ -n "$LINES" ]; then + db_subst gnats/exim_user_uncomment LINES "$LINES" + db_subst gnats/exim_user_uncomment EXIMCONF "$EXIMCONF" + db_input high gnats/exim_user_uncomment || true + db_go + else + db_subst gnats/exim_user_uncomment EXIMCONF "$EXIMCONF" + db_input high gnats/exim_user_add || true + db_go + fi + fi + fi + + QMAIL=$(dpkg -l qmail | protect grep -c '^.i') + + if [ $QMAIL -gt 0 ]; then + + # Generate dot files +# echo "qmail found, installing qmail dot files..." + for I in "qmail root" \ + "qmail-bugs | @GNATSDIR@/queue-pr -q" \ + "qmail-query | @GNATSDIR@/mail-query"; do + KEY=${I%% *} + FILE="@GNATSHOME@/.$KEY" + if [ ! -f $FILE ]; then + TEMPFILE=$(tempfile) + echo "${I#$KEY }" >$TEMPFILE + chmod 0644 $TEMPFILE + chown @GNATSUSER@:@GNATSGROUP@ $TEMPFILE + mv $TEMPFILE $FILE + fi + done +# echo "Done." + + # Generate aliases + ASSIGN='/var/qmail/users/assign' + if [ ! -f $ASSIGN ] || \ + [ $(protect grep -c '^.gnats-admin' $ASSIGN) -eq 0 ]; then + db_subst gnats/qmail SITE "${SITE}" + db_input high gnats/qmail || true + db_go + fi + + elif [ ! -f @MAILFILE@ ]; then + + db_subst gnats/unknown_mailer SITE "${SITE}" + db_input high gnats/unknown_mailer || true + db_go + + else + + # + # Common mailers + # + + if [ $(protect \ + egrep -c "^[ \t]*(gnats-admin|bugs|query-pr|$SITE-gnats)\>" \ + @MAILFILE@) -lt 4 ]; then + + TEMPFILE=$(tempfile) + sed "s/^#\([ \t]*\(gnats-admin\|bugs\|query-pr\|$SITE-gnats\)\>.*$\)/\1/" \ + @MAILFILE@ >$TEMPFILE + + if [ $(protect \ + egrep -c "^[ \t]*(gnats-admin|bugs|query-pr|$SITE-gnats)\>" \ + $TEMPFILE) -lt 4 ]; then + egrep -v "^[ \t]*(gnats-admin|bugs|query-pr|$SITE-gnats)\>" \ + @MAILFILE@ >$TEMPFILE + cat - >>$TEMPFILE <\n" +"Language-Team: Swedish \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#. Type: string +#. Description +#: ../templates:1001 +msgid "What is the name of the GNATS site?" +msgstr "Vad är namnet på GNATS-systemet?" + +#. Type: string +#. Description +#: ../templates:1001 +msgid "This name should be a single word, it is used as a part of the e-mail alias for delivering problem reports." +msgstr "Det här namnet ska vara ett enstaka ord, det används som en del av det e-postalias som används för att levereras problemrapporter." + +#. Type: note +#. Description +#: ../templates:2001 +msgid "Database moved to ${GNATSDBDIR}." +msgstr "Databasen flyttad till ${GNATSDBDIR}." + +#. Type: note +#. Description +#: ../templates:2001 +msgid "A previous package version put the GNATS database under ${BADDIR}. It has now been moved to the right location." +msgstr "En tidigare paketversion placerade GNATS-databasen under ${BADDIR}. Den har nu flyttats till den korrekta platsen." + +#. Type: note +#. Description +#: ../templates:3001 +msgid "You must move the database to ${GNATSDBDIR}." +msgstr "Du måste flytta databasen till ${GNATSDBDIR}." + +#. Type: note +#. Description +#: ../templates:3001 +msgid "A previous package version put the GNATS database under ${BADDIR}. I could not move it to the right location, so you have to do so manually." +msgstr "En tidigare paketversion placerade GNATS-databasen under ${BADDIR}. Jag kunde inte flytta den till den korrekta platsen, så du måste göra det här manuellt." + +#. Type: note +#. Description +#. Type: note +#. Description +#: ../templates:4001 +#: ../templates:5001 +msgid "You should enable scripts in the Exim configuration." +msgstr "Du bör aktivera skript i Exim-konfigurationen." + +#. Type: note +#. Description +#: ../templates:4001 +msgid "It seems you have installed Exim, with script handling disabled in its configuration. If this is so, GNATS will not be able to receive bug reports via e-mail. I would suggest you to uncomment one of the lines" +msgstr "Det verkar som du har Exim installerat, med skripthantering inaktiverat i dess konfiguration. Om det stämmer, kommer GNATS inte att kunna ta emot felrapporter via e-post. Jag föreslår att du avkommenterar en av raderna " + +#. Type: note +#. Description +#: ../templates:4001 +msgid "in your file ${EXIMCONF}, in the section \"system_aliases\"." +msgstr "i din fil ${EXIMCONF}, i sektionen \"system_aliases\"." + +#. Type: note +#. Description +#: ../templates:5001 +msgid "It seems you have installed Exim, with no script handling enabled in its configuration. If this is so, GNATS will not be able to receive bug reports via e-mail. I would suggest you to add the line" +msgstr "Det verkar som du har installerat Exim, utan skripthantering aktiverat i dess konfiguration. Om detta stämmer, kommer GNATS inte att kunna ta emot felrapporter via e-mail. Jag föreslår att du lägger till raden" + +#. Type: note +#. Description +#: ../templates:5001 +msgid "to your file ${EXIMCONF}, in the section \"system_aliases\"." +msgstr "till din fil ${EXIMCONF}, i sektionen \"system_aliases\"." + +#. Type: note +#. Description +#: ../templates:6001 +msgid "You should set up qmail aliases for GNATS." +msgstr "Du bör konfigurera qmail-alias för GNATS." + +#. Type: note +#. Description +#: ../templates:6001 +msgid "It seems you use qmail as your mail transfer program. It is recommended to add the following lines into your qmail users/assign file:" +msgstr "Det verkar som om du använder qmail som ditt posttransporteringsprogram. Det rekommenderas att du lägger till följande rader i din qmail-fil, users/assign:" + +#. Type: note +#. Description +#: ../templates:7001 +msgid "You should set up GNATS mail aliases." +msgstr "Du bör konfigurera GNATS e-postalias." + +#. Type: note +#. Description +#: ../templates:7001 +msgid "GNATS can be set to receive bug reports and database queries through mail. However, it seems you are using a mailer I am not able to setup myself, so you must do it by hand. The following addresses on localhost and appropriate actions for them should be set up:" +msgstr "GNATs kan ställas in att ta emot felrapporter och databasfrågor genom e-post. Dock verkar det som du använder ett e-postprogram som jag inte kan konfigurera själv, så du måste göra det för hand. Följande adresser på localhost och lämpliga åtgärder för dem måste konfigureras:" + +#. Type: note +#. Description +#: ../templates:7001 +msgid "gnats: redirect this to GNATS administrator\"s address gnats-admin: alias for \"gnats\" bugs: pipe it to the command \"| /usr/lib/gnats/queue-pr -q\" query-pr: pipe it to the command \"| /usr/lib/gnats/mail-query\" ${SITE}-gnats: alias for \"bugs\"" +msgstr "gnats: omdirigera det här till GNATS-administratörens adress gnats-admin: alias för \"gnats\"-fel: kör det genom ett rör till kommandot \"| /usr/lib/gnats/queue-pr -q\" query-pr: kör det genom ett rör till kommandot \"| /usr/lib/gnats/mail-query\" ${SITE}-gnats: alias för \"bugs\"" + +#. Type: note +#. Description +#: ../templates:8001 +msgid "Multiple listings of the \"gnats\" userid were found in ${PASSWDFILE}." +msgstr "Flera listningar av användar-id:t \"gnats\" hittades i ${PASSWDFILE}." + +#. Type: note +#. Description +#: ../templates:8001 +msgid "You should have only one \"gnats\" userid in your password file." +msgstr "Du bör endast ha ett användar-id som heter \"gnats\" i din lösenordsfil." + +#. Type: note +#. Description +#: ../templates:9001 +msgid "GNATS configuration needs change." +msgstr "Konfigurationen av GNATS behöver ändras." + +#. Type: note +#. Description +#: ../templates:9001 +msgid "Please note that some GNATS configuration files have changed in version 4. You can find examples of the new configuration files in the directory \"/etc/gnats/defaults\"." +msgstr "Observera att vissa konfigurationsfiler för GNATS har ändrats i version 4. Du kan hitta exempel på de nya konfigurationsfilerna i katalogen \"/etc/gnats/defaults\"." + --- gnats-4.1.0.orig/debian/po/de.po +++ gnats-4.1.0/debian/po/de.po @@ -0,0 +1,206 @@ +# +# Translators, if you are not familiar with the PO format, gettext +# documentation is worth reading, especially sections dedicated to +# this format, e.g. by running: +# info -n '(gettext)PO Files' +# info -n '(gettext)Header Entry' +# +# Some information specific to po-debconf are available at +# /usr/share/doc/po-debconf/README-trans +# or http://www.debian.org/intl/l10n/po-debconf/README-trans +# +# Developers do not need to manually edit POT or PO files. +# +# Holger Wansing , 2006. +# +msgid "" +msgstr "" +"Project-Id-Version: gnats 4.1.0-0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2006-11-01 20:11+0100\n" +"PO-Revision-Date: 2006-11-10 16:27+0100\n" +"Last-Translator: Holger Wansing \n" +"Language-Team: German \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#. Type: string +#. Description +#: ../templates:1001 +msgid "What is the name of the GNATS site?" +msgstr "Wie lautet der Name der GNATS-Site?" + +#. Type: string +#. Description +#: ../templates:1001 +msgid "" +"This name should be a single word, it is used as a part of the e-mail alias " +"for delivering problem reports." +msgstr "" +"Dieser Name sollte ein einzelnes Wort sein; er wird als Teil vom E-Mail-" +"Alias genutzt, an den Fehlerberichte eingesandt werden." + +#. Type: note +#. Description +#: ../templates:2001 +msgid "Database moved to ${GNATSDBDIR}." +msgstr "Datenbank nach ${GNATSDBDIR} verschoben" + +#. Type: note +#. Description +#: ../templates:2001 +msgid "" +"A previous package version put the GNATS database under ${BADDIR}. It has " +"now been moved to the right location." +msgstr "" +"Eine ältere Paketversion hat die GNATS-Datenbank unter ${BADDIR} abgelegt. " +"Diese wurde nun an den richtigen Ort verschoben." + +#. Type: note +#. Description +#: ../templates:3001 +msgid "You must move the database to ${GNATSDBDIR}." +msgstr "Sie müssen die Datenbank nach ${GNATSDBDIR} verschieben." + +#. Type: note +#. Description +#: ../templates:3001 +msgid "" +"A previous package version put the GNATS database under ${BADDIR}. I could " +"not move it to the right location, so you have to do so manually." +msgstr "" +"Eine ältere Paketversion hat die GNATS-Datenbank unter ${BADDIR} abgelegt. " +"Diese konnte nicht an den richtigen Ort verschoben werden, deshalb muss das " +"von Ihnen manuell erledigt werden." + +#. Type: note +#. Description +#. Type: note +#. Description +#: ../templates:4001 ../templates:5001 +msgid "You should enable scripts in the Exim configuration." +msgstr "Sie sollten Skripte in der Exim-Konfiguration aktivieren." + +#. Type: note +#. Description +#: ../templates:4001 +msgid "" +"It seems you have installed Exim, with script handling disabled in its " +"configuration. If this is so, GNATS will not be able to receive bug reports " +"via e-mail. I would suggest you to uncomment one of the lines" +msgstr "" +"Scheinbar ist Exim installiert und die Verarbeitung von Skripten in der " +"Konfiguration ist deaktiviert. Wenn das so ist, wird es GNATS nicht möglich " +"sein, Fehlerberichte per E-Mail zu empfangen. Es wird empfohlen, dass Sie " +"bei einer dieser Zeilen" + +#. Type: note +#. Description +#: ../templates:4001 +msgid "in your file ${EXIMCONF}, in the section \"system_aliases\"." +msgstr "" +"in Ihrer Datei ${EXIMCONF} (Abschnitt »system_aliases«) das Kommentarzeichen " +"entfernen." + +#. Type: note +#. Description +#: ../templates:5001 +msgid "" +"It seems you have installed Exim, with no script handling enabled in its " +"configuration. If this is so, GNATS will not be able to receive bug reports " +"via e-mail. I would suggest you to add the line" +msgstr "" +"Scheinbar ist Exim installiert und die Verarbeitung von Skripten in der " +"Konfiguration ist nicht aktiviert. Wenn das so ist, wird es GNATS nicht " +"möglich sein, Fehlerberichte per E-Mail zu empfangen. Es wird empfohlen, " +"dass Sie die Zeile" + +#. Type: note +#. Description +#: ../templates:5001 +msgid "to your file ${EXIMCONF}, in the section \"system_aliases\"." +msgstr "zu Ihrer Datei ${EXIMCONF} (Abschnitt »system_aliases«) hinzufügen." + +#. Type: note +#. Description +#: ../templates:6001 +msgid "You should set up qmail aliases for GNATS." +msgstr "Sie sollten in qmail Aliase für GNATS einrichten." + +#. Type: note +#. Description +#: ../templates:6001 +msgid "" +"It seems you use qmail as your mail transfer program. It is recommended to " +"add the following lines into your qmail users/assign file:" +msgstr "" +"Scheinbar wird qmail als Mail-Transfer-Programm verwendet. Es wird " +"empfohlen, dass Sie die folgenden Zeilen zu Ihrer users/assign-Datei für " +"qmail hinzuzufügen:" + +#. Type: note +#. Description +#: ../templates:7001 +msgid "You should set up GNATS mail aliases." +msgstr "Sie sollten Mail-Aliase für GNATS einrichten." + +#. Type: note +#. Description +#: ../templates:7001 +msgid "" +"GNATS can be set to receive bug reports and database queries through mail. " +"However, it seems you are using a mailer I am not able to setup myself, so " +"you must do it by hand. The following addresses on localhost and appropriate " +"actions for them should be set up:" +msgstr "" +"GNATS kann so eingerichtet werden, dass es Fehlerberichte und " +"Datenbankanfragen per E-Mail empfangen kann. Allerdings verwenden Sie " +"scheinbar ein Mail-Programm, das nicht automatisch passend eingerichtet " +"werden kann, so dass Sie dies manuell erledigen müssen. Die folgenden " +"Adressen auf localhost sowie entsprechende Aktionen für diese Adressen " +"sollten eingerichtet werden:" + +#. Type: note +#. Description +#: ../templates:7001 +msgid "" +"gnats: redirect this to GNATS administrator\"s address gnats-admin: alias " +"for \"gnats\" bugs: pipe it to the command \"| /usr/lib/gnats/queue-pr -q\" " +"query-pr: pipe it to the command \"| /usr/lib/gnats/mail-query\" ${SITE}-" +"gnats: alias for \"bugs\"" +msgstr "" +"gnats: an die Adresse des GNATS-Administrators weiterleiten. gnats-admin: " +"Alias für »gnats«. bugs: Weiterleitung (pipe) an das Kommando »| /usr/lib/" +"gnats/queue-pr -q«. query-pr: Weiterleitung (pipe) an das Kommando »| /usr/" +"lib/gnats/mail-query«. ${SITE}-gnats: Alias für »bugs«." + +#. Type: note +#. Description +#: ../templates:8001 +msgid "Multiple listings of the \"gnats\" userid were found in ${PASSWDFILE}." +msgstr "Mehrere Vorkommen der »gnats«-User-ID in ${PASSWDFILE} gefunden" + +#. Type: note +#. Description +#: ../templates:8001 +msgid "You should have only one \"gnats\" userid in your password file." +msgstr "Die »gnats«-User-ID sollte in ${PASSWDFILE} nur einmal vorkommen." + +#. Type: note +#. Description +#: ../templates:9001 +msgid "GNATS configuration needs change." +msgstr "GNATS-Konfiguration muss geändert werden." + +#. Type: note +#. Description +#: ../templates:9001 +msgid "" +"Please note that some GNATS configuration files have changed in version 4. " +"You can find examples of the new configuration files in the directory \"/etc/" +"gnats/defaults\"." +msgstr "" +"Bitte beachten Sie, dass sich einige GNATS-Konfigurationsdateien in Version " +"4 geändert haben. Sie finden Beispiele der neuen Konfigurationsdateien im " +"Verzeichnis »/etc/gnats/defaults«." --- gnats-4.1.0.orig/debian/po/templates.pot +++ gnats-4.1.0/debian/po/templates.pot @@ -0,0 +1,172 @@ +# +# Translators, if you are not familiar with the PO format, gettext +# documentation is worth reading, especially sections dedicated to +# this format, e.g. by running: +# info -n '(gettext)PO Files' +# info -n '(gettext)Header Entry' +# +# Some information specific to po-debconf are available at +# /usr/share/doc/po-debconf/README-trans +# or http://www.debian.org/intl/l10n/po-debconf/README-trans +# +# Developers do not need to manually edit POT or PO files. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2006-11-01 20:11+0100\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=CHARSET\n" +"Content-Transfer-Encoding: 8bit\n" + +#. Type: string +#. Description +#: ../templates:1001 +msgid "What is the name of the GNATS site?" +msgstr "" + +#. Type: string +#. Description +#: ../templates:1001 +msgid "" +"This name should be a single word, it is used as a part of the e-mail alias " +"for delivering problem reports." +msgstr "" + +#. Type: note +#. Description +#: ../templates:2001 +msgid "Database moved to ${GNATSDBDIR}." +msgstr "" + +#. Type: note +#. Description +#: ../templates:2001 +msgid "" +"A previous package version put the GNATS database under ${BADDIR}. It has " +"now been moved to the right location." +msgstr "" + +#. Type: note +#. Description +#: ../templates:3001 +msgid "You must move the database to ${GNATSDBDIR}." +msgstr "" + +#. Type: note +#. Description +#: ../templates:3001 +msgid "" +"A previous package version put the GNATS database under ${BADDIR}. I could " +"not move it to the right location, so you have to do so manually." +msgstr "" + +#. Type: note +#. Description +#. Type: note +#. Description +#: ../templates:4001 ../templates:5001 +msgid "You should enable scripts in the Exim configuration." +msgstr "" + +#. Type: note +#. Description +#: ../templates:4001 +msgid "" +"It seems you have installed Exim, with script handling disabled in its " +"configuration. If this is so, GNATS will not be able to receive bug reports " +"via e-mail. I would suggest you to uncomment one of the lines" +msgstr "" + +#. Type: note +#. Description +#: ../templates:4001 +msgid "in your file ${EXIMCONF}, in the section \"system_aliases\"." +msgstr "" + +#. Type: note +#. Description +#: ../templates:5001 +msgid "" +"It seems you have installed Exim, with no script handling enabled in its " +"configuration. If this is so, GNATS will not be able to receive bug reports " +"via e-mail. I would suggest you to add the line" +msgstr "" + +#. Type: note +#. Description +#: ../templates:5001 +msgid "to your file ${EXIMCONF}, in the section \"system_aliases\"." +msgstr "" + +#. Type: note +#. Description +#: ../templates:6001 +msgid "You should set up qmail aliases for GNATS." +msgstr "" + +#. Type: note +#. Description +#: ../templates:6001 +msgid "" +"It seems you use qmail as your mail transfer program. It is recommended to " +"add the following lines into your qmail users/assign file:" +msgstr "" + +#. Type: note +#. Description +#: ../templates:7001 +msgid "You should set up GNATS mail aliases." +msgstr "" + +#. Type: note +#. Description +#: ../templates:7001 +msgid "" +"GNATS can be set to receive bug reports and database queries through mail. " +"However, it seems you are using a mailer I am not able to setup myself, so " +"you must do it by hand. The following addresses on localhost and appropriate " +"actions for them should be set up:" +msgstr "" + +#. Type: note +#. Description +#: ../templates:7001 +msgid "" +"gnats: redirect this to GNATS administrator\"s address gnats-admin: alias " +"for \"gnats\" bugs: pipe it to the command \"| /usr/lib/gnats/queue-pr -q\" " +"query-pr: pipe it to the command \"| /usr/lib/gnats/mail-query\" ${SITE}-" +"gnats: alias for \"bugs\"" +msgstr "" + +#. Type: note +#. Description +#: ../templates:8001 +msgid "Multiple listings of the \"gnats\" userid were found in ${PASSWDFILE}." +msgstr "" + +#. Type: note +#. Description +#: ../templates:8001 +msgid "You should have only one \"gnats\" userid in your password file." +msgstr "" + +#. Type: note +#. Description +#: ../templates:9001 +msgid "GNATS configuration needs change." +msgstr "" + +#. Type: note +#. Description +#: ../templates:9001 +msgid "" +"Please note that some GNATS configuration files have changed in version 4. " +"You can find examples of the new configuration files in the directory \"/etc/" +"gnats/defaults\"." +msgstr "" --- gnats-4.1.0.orig/debian/po/gl.po +++ gnats-4.1.0/debian/po/gl.po @@ -0,0 +1,190 @@ +# Galician translation of gnats's debconf templates +# This file is distributed under the same license as the gnats package. +# Jacobo Tarrio , 2008. +# +msgid "" +msgstr "" +"Project-Id-Version: gnats\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2006-11-01 20:11+0100\n" +"PO-Revision-Date: 2008-05-16 19:58+0100\n" +"Last-Translator: Jacobo Tarrio \n" +"Language-Team: Galician \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#. Type: string +#. Description +#: ../templates:1001 +msgid "What is the name of the GNATS site?" +msgstr "¿Cal é o nome do sitio GNATS?" + +#. Type: string +#. Description +#: ../templates:1001 +msgid "" +"This name should be a single word, it is used as a part of the e-mail alias " +"for delivering problem reports." +msgstr "" +"Este nome debería ser unha soa palabra. Emprégase no enderezo de email para " +"enviar informes de problemas." + +#. Type: note +#. Description +#: ../templates:2001 +msgid "Database moved to ${GNATSDBDIR}." +msgstr "Trasladouse a base de datos a ${GNATSDBDIR}." + +#. Type: note +#. Description +#: ../templates:2001 +msgid "" +"A previous package version put the GNATS database under ${BADDIR}. It has " +"now been moved to the right location." +msgstr "" +"Unha versión anterior do paquete poñía a base de datos de GNATS en " +"${BADDIR}. Trasladouse agora á ubicación correcta." + +#. Type: note +#. Description +#: ../templates:3001 +msgid "You must move the database to ${GNATSDBDIR}." +msgstr "Debe trasladar a base de datos a ${GNATSDBDIR}." + +#. Type: note +#. Description +#: ../templates:3001 +msgid "" +"A previous package version put the GNATS database under ${BADDIR}. I could " +"not move it to the right location, so you have to do so manually." +msgstr "" +"Unha versión anterior do paquete poñía a base de datos de GNATS en " +"${BADDIR}. Non se puido trasladar á ubicación correcta, así que ha ter que " +"facelo manualmente." + +#. Type: note +#. Description +#. Type: note +#. Description +#: ../templates:4001 ../templates:5001 +msgid "You should enable scripts in the Exim configuration." +msgstr "Debería activar os scripts na configuración de Exim." + +#. Type: note +#. Description +#: ../templates:4001 +msgid "" +"It seems you have installed Exim, with script handling disabled in its " +"configuration. If this is so, GNATS will not be able to receive bug reports " +"via e-mail. I would suggest you to uncomment one of the lines" +msgstr "" +"Semella que ten instalado Exim coa xestión de scripts desactivada na " +"configuración. Se é así, GNATS non ha poder recibir informes de erro por " +"email. Suxírese descomentar unha das liñas" + +#. Type: note +#. Description +#: ../templates:4001 +msgid "in your file ${EXIMCONF}, in the section \"system_aliases\"." +msgstr "no ficheiro ${EXIMCONF}, na sección \"system_aliases\"." + +#. Type: note +#. Description +#: ../templates:5001 +msgid "" +"It seems you have installed Exim, with no script handling enabled in its " +"configuration. If this is so, GNATS will not be able to receive bug reports " +"via e-mail. I would suggest you to add the line" +msgstr "" +"Semella que ten instalado Exim coa xestión de scripts desactivada na " +"configuración. Se é así, GNATS non ha poder recibir informes de erro por " +"email. Suxírese engadir a liña" + +#. Type: note +#. Description +#: ../templates:5001 +msgid "to your file ${EXIMCONF}, in the section \"system_aliases\"." +msgstr "ao ficheiro ${EXIMCONF}, na sección \"system_aliases\"." + +#. Type: note +#. Description +#: ../templates:6001 +msgid "You should set up qmail aliases for GNATS." +msgstr "Debería configurar os alias de qmail para GNATS." + +#. Type: note +#. Description +#: ../templates:6001 +msgid "" +"It seems you use qmail as your mail transfer program. It is recommended to " +"add the following lines into your qmail users/assign file:" +msgstr "" +"Semella que emprega qmail coma programa de transferencia de correo. " +"Recoméndase engadir as seguintes liñas ao ficheiro users/assign de qmail:" + +#. Type: note +#. Description +#: ../templates:7001 +msgid "You should set up GNATS mail aliases." +msgstr "Debería configurar os alias de correo de GNATS." + +#. Type: note +#. Description +#: ../templates:7001 +msgid "" +"GNATS can be set to receive bug reports and database queries through mail. " +"However, it seems you are using a mailer I am not able to setup myself, so " +"you must do it by hand. The following addresses on localhost and appropriate " +"actions for them should be set up:" +msgstr "" +"Pódese configurar GNATS para recibir informes de erro e consultas á base de " +"datos por email. Nembargantes, semella que está a empregar un sistema de " +"correo que non se puido configurar automaticamente, así que ha ter que " +"facelo manualmente. Deberíanse configurar os seguintes enderezos no servidor " +"local e as accións axeitadas para eles:" + +#. Type: note +#. Description +#: ../templates:7001 +msgid "" +"gnats: redirect this to GNATS administrator\"s address gnats-admin: alias " +"for \"gnats\" bugs: pipe it to the command \"| /usr/lib/gnats/queue-pr -q\" " +"query-pr: pipe it to the command \"| /usr/lib/gnats/mail-query\" ${SITE}-" +"gnats: alias for \"bugs\"" +msgstr "" +"gnats: rediríxao ao enderezo do administrador de GNATS\n" +"gnats-admin: alias para \"gnats\"\n" +"bugs: páseo á orde \"| /usr/lib/gnats/queue-pr -q\"\n" +"query-pr: páseo á orde \"| /usr/lib/gnats/mail-query\"\n" +"${SITE}-gnats: alias de \"bugs\"" + +#. Type: note +#. Description +#: ../templates:8001 +msgid "Multiple listings of the \"gnats\" userid were found in ${PASSWDFILE}." +msgstr "Atopáronse varias aparicións do usuario \"gnats\" en ${PASSWDFILE}." + +#. Type: note +#. Description +#: ../templates:8001 +msgid "You should have only one \"gnats\" userid in your password file." +msgstr "Só debería ter un usuario \"gnats\" no ficheiro de contrasinais." + +#. Type: note +#. Description +#: ../templates:9001 +msgid "GNATS configuration needs change." +msgstr "A configuración de GNATS precisa de cambios." + +#. Type: note +#. Description +#: ../templates:9001 +msgid "" +"Please note that some GNATS configuration files have changed in version 4. " +"You can find examples of the new configuration files in the directory \"/etc/" +"gnats/defaults\"." +msgstr "" +"Teña en conta que algúns ficheiros de configuración de GNATS cambiaron na " +"versión 4. Pode atopar exemplos dos novos ficheiros de configuración no " +"directorio \"/etc/gnats/defaults\"." --- gnats-4.1.0.orig/debian/po/vi.po +++ gnats-4.1.0/debian/po/vi.po @@ -0,0 +1,178 @@ +# Vietnamese Translation for gnats. +# Copyright © 2006 Free Software Foundation, Inc. +# Clytie Siddall , 2005-2006. +# +msgid "" +"" +msgstr "Project-Id-Version: gnats 4.1.0-0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2006-11-01 20:11+0100\n" +"PO-Revision-Date: 2006-11-09 23:00+1030\n" +"Last-Translator: Clytie Siddall \n" +"Language-Team: Vietnamese +# +# - Revision +# Rudy Godoy Guillé , 2007 +# +# Traductores, si no conoce el formato PO, merece la pena leer la +# documentación de gettext, especialmente las secciones dedicadas a este +# formato, por ejemplo ejecutando: +# info -n '(gettext)PO Files' +# info -n '(gettext)Header Entry' +# Equipo de traducción al español, por favor, lean antes de traducir +# los siguientes documentos: +# +# - El proyecto de traducción de Debian al español +# http://www.debian.org/intl/spanish/ +# especialmente las notas de traducción en +# http://www.debian.org/intl/spanish/notas +# +# - La guía de traducción de po's de debconf: +# /usr/share/doc/po-debconf/README-trans +# o http://www.debian.org/intl/l10n/po-debconf/README-trans +# +msgid "" +msgstr "" +"Project-Id-Version: gnats 4.1.0-0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2006-11-01 20:11+0100\n" +"PO-Revision-Date: 2007-05-13 16:49-0500\n" +"Last-Translator: César Gómez Martín \n" +"Language-Team: Debian l10n spanish \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Poedit-Language: Spanish\n" +"X-Poedit-Country: SPAIN\n" +"X-Poedit-SourceCharset: utf-8\n" + +#. Type: string +#. Description +#: ../templates:1001 +msgid "What is the name of the GNATS site?" +msgstr "¿Cuál es el nombre del sitio GNATS?" + +#. Type: string +#. Description +#: ../templates:1001 +msgid "" +"This name should be a single word, it is used as a part of the e-mail alias " +"for delivering problem reports." +msgstr "" +"Este nombre debe ser una sola palabra, se usa como parte del alias del " +"correo electrónico para enviar informes de problemas." + +#. Type: note +#. Description +#: ../templates:2001 +msgid "Database moved to ${GNATSDBDIR}." +msgstr "Se ha movido la base de datos a ${GNATSDBDIR}." + +#. Type: note +#. Description +#: ../templates:2001 +msgid "" +"A previous package version put the GNATS database under ${BADDIR}. It has " +"now been moved to the right location." +msgstr "" +"Una versión anterior del paquete ha instalado la base de datos de GNATS bajo " +"${BADDIR}. Ahora se ha movido a la ubicación correcta." + +#. Type: note +#. Description +#: ../templates:3001 +msgid "You must move the database to ${GNATSDBDIR}." +msgstr "Debe mover la base de datos a ${GNATSDBDIR}." + +#. Type: note +#. Description +#: ../templates:3001 +msgid "" +"A previous package version put the GNATS database under ${BADDIR}. I could " +"not move it to the right location, so you have to do so manually." +msgstr "" +"Una versión anterior del paquete ha instalado la base de datos GNATS bajo " +"${BADDIR}. No pude moverla hacia la ubicación correcta, por lo que debe " +"hacerlo manualmente." + +#. Type: note +#. Description +#. Type: note +#. Description +#: ../templates:4001 ../templates:5001 +msgid "You should enable scripts in the Exim configuration." +msgstr "Debería habilitar los scripts en la configuración de Exim." + +#. Type: note +#. Description +#: ../templates:4001 +msgid "" +"It seems you have installed Exim, with script handling disabled in its " +"configuration. If this is so, GNATS will not be able to receive bug reports " +"via e-mail. I would suggest you to uncomment one of the lines" +msgstr "" +"Parece que tiene instalado Exim con el manejo de scripts deshabilitado en su " +"configuración. Si esto es así, GNATS no podrá recibir informes de fallos a " +"través de correo electrónico. Se aconseja que descomente una de las líneas" + +#. Type: note +#. Description +#: ../templates:4001 +msgid "in your file ${EXIMCONF}, in the section \"system_aliases\"." +msgstr "en su fichero ${EXIMCONF}, en la sección «system_aliases»." + +#. Type: note +#. Description +#: ../templates:5001 +msgid "" +"It seems you have installed Exim, with no script handling enabled in its " +"configuration. If this is so, GNATS will not be able to receive bug reports " +"via e-mail. I would suggest you to add the line" +msgstr "" +"Parece que tiene instalado Exim sin manejo de scripts habilitado en su " +"configuración. Si esto es así, GNATS no podrá recibir informes de fallos a " +"través de correo electrónico. Se aconseja que añada la línea" + +#. Type: note +#. Description +#: ../templates:5001 +msgid "to your file ${EXIMCONF}, in the section \"system_aliases\"." +msgstr "a su fichero ${EXIMCONF}, en la sección «system_aliases»." + +#. Type: note +#. Description +#: ../templates:6001 +msgid "You should set up qmail aliases for GNATS." +msgstr "Debería configurar los alias qmail para GNATS." + +#. Type: note +#. Description +#: ../templates:6001 +msgid "" +"It seems you use qmail as your mail transfer program. It is recommended to " +"add the following lines into your qmail users/assign file:" +msgstr "" +"Parece que usa qmail como programa de transferencia de correo. Se recomienda " +"añadir las siguientes líneas en el fichero de usuarios/asignación de qmail:" + +#. Type: note +#. Description +#: ../templates:7001 +msgid "You should set up GNATS mail aliases." +msgstr "Debería configurar los alias de correo de GNATS." + +#. Type: note +#. Description +#: ../templates:7001 +msgid "" +"GNATS can be set to receive bug reports and database queries through mail. " +"However, it seems you are using a mailer I am not able to setup myself, so " +"you must do it by hand. The following addresses on localhost and appropriate " +"actions for them should be set up:" +msgstr "" +"GNATS puede configurarse para recibir informes de fallos y consultas a bases " +"de datos mediante correo electrónico. Sin embargo, parece que está usando un " +"agente de correo que no se puede autoconfigurar, por lo que deberá hacerlo " +"manualmente. Se deben configurar las siguientes direcciones en localhost y " +"realizar las acciones apropiadas:" + +#. Type: note +#. Description +#: ../templates:7001 +msgid "" +"gnats: redirect this to GNATS administrator\"s address gnats-admin: alias " +"for \"gnats\" bugs: pipe it to the command \"| /usr/lib/gnats/queue-pr -q\" " +"query-pr: pipe it to the command \"| /usr/lib/gnats/mail-query\" ${SITE}-" +"gnats: alias for \"bugs\"" +msgstr "" +"gnats: redireccione esto a la dirección del administrador de GNATS gnats-" +"admin: alias para «gnats» bugs: lo dirige a la orden «| /usr/lib/gnats/queue-" +"pr -q» query-pr: lo dirige a la orden «| /usr/lib/gnats/mail-query» ${SITE}-" +"gnats: alias para «bugs»" + +#. Type: note +#. Description +#: ../templates:8001 +msgid "Multiple listings of the \"gnats\" userid were found in ${PASSWDFILE}." +msgstr "" +"Se han encontrado listados múltiples del identificador de usuario «gnats» en " +"${PASSWDFILE}." + +#. Type: note +#. Description +#: ../templates:8001 +msgid "You should have only one \"gnats\" userid in your password file." +msgstr "" +"Sólo debe tener un identificador de usuario «gnats» en su fichero de " +"contraseña." + +#. Type: note +#. Description +#: ../templates:9001 +msgid "GNATS configuration needs change." +msgstr "Se necesita cambiar la configuración de GNATS." + +#. Type: note +#. Description +#: ../templates:9001 +msgid "" +"Please note that some GNATS configuration files have changed in version 4. " +"You can find examples of the new configuration files in the directory \"/etc/" +"gnats/defaults\"." +msgstr "" +"Por favor, tenga en cuenta de que algunos ficheros de configuración de " +"GNATS han" +" cambiado en la version 4. Puede encontrar ejemplos de los nuevos ficheros " +"de" +" configuración en el directorio «/etc/gnats/defaults»." + +#~ msgid "${LINES}" +#~ msgstr "${LINES}" + +#~ msgid "user = gnats" +#~ msgstr "user = gnats" + +#~ msgid "" +#~ "=gnats:gnats:41:41:/var/lib/gnats/gnats-adm::: =gnats-admin:gnats:41:41:/" +#~ "var/lib/gnats/gnats-adm::: =bugs:gnats:41:41:/var/lib/gnats/gnats-adm:-:" +#~ "bugs: =query-pr:gnats:41:41:/var/lib/gnats/gnats-adm:-:query: =${SITE}-" +#~ "gnats:gnats:41:41:/var/lib/gnats/gnats-adm:-:bugs:" +#~ msgstr "" +#~ "=gnats:gnats:41:41:/var/lib/gnats/gnats-adm::: =gnats-admin:gnats:41:41:/" +#~ "var/lib/gnats/gnats-adm::: =bugs:gnats:41:41:/var/lib/gnats/gnats-adm:-:" +#~ "bugs: =query-pr:gnats:41:41:/var/lib/gnats/gnats-adm:-:query: =${SITE}-" +#~ "gnats:gnats:41:41:/var/lib/gnats/gnats-adm:-:bugs:" --- gnats-4.1.0.orig/debian/po/nl.po +++ gnats-4.1.0/debian/po/nl.po @@ -0,0 +1,204 @@ +# +# Translators, if you are not familiar with the PO format, gettext +# documentation is worth reading, especially sections dedicated to +# this format, e.g. by running: +# info -n '(gettext)PO Files' +# info -n '(gettext)Header Entry' +# +# Some information specific to po-debconf are available at +# /usr/share/doc/po-debconf/README-trans +# or http://www.debian.org/intl/l10n/po-debconf/README-trans +# +# Developers do not need to manually edit POT or PO files. +# +msgid "" +msgstr "" +"Project-Id-Version: gnats\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2006-11-01 20:11+0100\n" +"PO-Revision-Date: 2007-05-18 15:36+0100\n" +"Last-Translator: Bart Cornelis \n" +"Language-Team: debian-l10n-dutch \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Poedit-Language: Dutch\n" + +#. Type: string +#. Description +#: ../templates:1001 +msgid "What is the name of the GNATS site?" +msgstr "Wat is de naam van de GNATS-site?" + +#. Type: string +#. Description +#: ../templates:1001 +msgid "" +"This name should be a single word, it is used as a part of the e-mail alias " +"for delivering problem reports." +msgstr "" +"Deze naam dient te bestaan uit een enkel woord en wordt gebruikt als een " +"deel van het e-mail-alias bij het afleveren van probleemrapporten." + +#. Type: note +#. Description +#: ../templates:2001 +msgid "Database moved to ${GNATSDBDIR}." +msgstr "De database is verplaatst naar ${GNATSDBDIR}." + +#. Type: note +#. Description +#: ../templates:2001 +msgid "" +"A previous package version put the GNATS database under ${BADDIR}. It has " +"now been moved to the right location." +msgstr "" +"Een eerder versie van dit pakket plaatste de GNATS-database in ${BADDIR}. " +"Deze is nu verplaatst naar de juiste locatie." + +#. Type: note +#. Description +#: ../templates:3001 +msgid "You must move the database to ${GNATSDBDIR}." +msgstr "De database dient verplaatst te worden naar ${GNATSDBDIR}." + +#. Type: note +#. Description +#: ../templates:3001 +msgid "" +"A previous package version put the GNATS database under ${BADDIR}. I could " +"not move it to the right location, so you have to do so manually." +msgstr "" +"Een eerder versie van dit pakket plaatste de GNATS-database in ${BADDIR}. " +"Automatisch verplaatsen van de database is mislukt, u zult dit dus handmatig " +"moeten doen." + +#. Type: note +#. Description +#. Type: note +#. Description +#: ../templates:4001 ../templates:5001 +msgid "You should enable scripts in the Exim configuration." +msgstr "In de Exim-configuratie dienen scripts geactiveerd te worden." + +#. Type: note +#. Description +#: ../templates:4001 +msgid "" +"It seems you have installed Exim, with script handling disabled in its " +"configuration. If this is so, GNATS will not be able to receive bug reports " +"via e-mail. I would suggest you to uncomment one of the lines" +msgstr "" +"Het lijkt erop dat u Exim geïnstalleerd heeft met script-afhandeling " +"uitgeschakeld. Als dit zo is zal GNATS geen bugrapporten kunnen ontvangen " +"via e-mail. Het is aan te raden om van één van de volgende regels niet-" +"commentaar te maken" + +#. Type: note +#. Description +#: ../templates:4001 +msgid "in your file ${EXIMCONF}, in the section \"system_aliases\"." +msgstr "In het bestand ${EXIMCONF}, in de sectie 'system_aliases'." + +#. Type: note +#. Description +#: ../templates:5001 +msgid "" +"It seems you have installed Exim, with no script handling enabled in its " +"configuration. If this is so, GNATS will not be able to receive bug reports " +"via e-mail. I would suggest you to add the line" +msgstr "" +"Het lijkt erop dat u Exim geïnstalleerd heeft met script-afhandeling " +"uitgeschakeld. Als dit zo is zal GNATS geen bugrapporten kunnen ontvangen " +"via e-mail. Het is aan te raden om de volgende regel toe te voegen" + +#. Type: note +#. Description +#: ../templates:5001 +msgid "to your file ${EXIMCONF}, in the section \"system_aliases\"." +msgstr "in het bestand ${EXIMCONF}, in de sectie 'system_aliases'." + +#. Type: note +#. Description +#: ../templates:6001 +msgid "You should set up qmail aliases for GNATS." +msgstr "U kunt best qmail-aliases aanmaken voor GNATS." + +#. Type: note +#. Description +#: ../templates:6001 +msgid "" +"It seems you use qmail as your mail transfer program. It is recommended to " +"add the following lines into your qmail users/assign file:" +msgstr "" +"U lijkt qmail te gebruiken als e-mail-verstuurder. Het is aangeraden om de " +"volgende regels toe te voegen in uw users/assign bestand van qmail:" + +#. Type: note +#. Description +#: ../templates:7001 +msgid "You should set up GNATS mail aliases." +msgstr "Het is aan te raden om de GNATS-e-mail-aliassen in te stellen." + +#. Type: note +#. Description +#: ../templates:7001 +msgid "" +"GNATS can be set to receive bug reports and database queries through mail. " +"However, it seems you are using a mailer I am not able to setup myself, so " +"you must do it by hand. The following addresses on localhost and appropriate " +"actions for them should be set up:" +msgstr "" +"GNATS kan ingesteld worden om bugrapporten en database-bevragingen te " +"ontvangen via e-mail. U lijkt echter een e-mailprogramma te gebruiken dat " +"dit script niet automatisch kan instellen, u zult dit dus handmatig moeten " +"doen. De volgende adressen en overeenkomstige acties ervoor dienen op " +"localhost ingesteld te worden:" + +#. Type: note +#. Description +#: ../templates:7001 +msgid "" +"gnats: redirect this to GNATS administrator\"s address gnats-admin: alias " +"for \"gnats\" bugs: pipe it to the command \"| /usr/lib/gnats/queue-pr -q\" " +"query-pr: pipe it to the command \"| /usr/lib/gnats/mail-query\" ${SITE}-" +"gnats: alias for \"bugs\"" +msgstr "" +"gnats: dit dient omgeleid te worden naar het adres van de GNATS-beheerder\n" +" gnats-admin: alias for 'gnats'\n" +"bugs: moet door het commando '| /usr/lib/gnats/queue-pr -q' gesluisd " +"worden.\n" +"query-pr: moet door het commando '| /usr/lib/gnats/mail-query' gesluisd " +"worden.\n" +"${SITE}-gnats: alias voor \"bugs\"" + +#. Type: note +#. Description +#: ../templates:8001 +msgid "Multiple listings of the \"gnats\" userid were found in ${PASSWDFILE}." +msgstr "De gebruikers-id 'gnats' kom meerdere keren voor in ${PASSWDFILE}." + +#. Type: note +#. Description +#: ../templates:8001 +msgid "You should have only one \"gnats\" userid in your password file." +msgstr "" +"Er mag maar één 'gnats'-gebruikers-ID voorkomen in uw 'password'-bestand." + +#. Type: note +#. Description +#: ../templates:9001 +msgid "GNATS configuration needs change." +msgstr "De GNATS-configuratie dient aangepast te worden." + +#. Type: note +#. Description +#: ../templates:9001 +msgid "" +"Please note that some GNATS configuration files have changed in version 4. " +"You can find examples of the new configuration files in the directory \"/etc/" +"gnats/defaults\"." +msgstr "" +"Opgelet: sommige van de GNATS-configuratiebestanden zijn veranderd in versie " +"4. Voorbeelden van de nieuwe configuratiebestanden vindt u in de map '/etc/" +"gnats/defaults'." --- gnats-4.1.0.orig/debian/po/ru.po +++ gnats-4.1.0/debian/po/ru.po @@ -0,0 +1,206 @@ +# translation of gnats_debconf_ru.po to Russian +# +# Translators, if you are not familiar with the PO format, gettext +# documentation is worth reading, especially sections dedicated to +# this format, e.g. by running: +# info -n '(gettext)PO Files' +# info -n '(gettext)Header Entry' +# Some information specific to po-debconf are available at +# /usr/share/doc/po-debconf/README-trans +# or http://www.debian.org/intl/l10n/po-debconf/README-trans# +# Developers do not need to manually edit POT or PO files. +# +# Yuri Kozlov , 2006. +msgid "" +msgstr "" +"Project-Id-Version: 4.1.0-0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2006-11-01 20:11+0100\n" +"PO-Revision-Date: 2006-11-09 21:51+0300\n" +"Last-Translator: Yuri Kozlov \n" +"Language-Team: Russian \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: KBabel 1.11.2\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" + +#. Type: string +#. Description +#: ../templates:1001 +msgid "What is the name of the GNATS site?" +msgstr "Имя сайта GNATS?" + +#. Type: string +#. Description +#: ../templates:1001 +msgid "" +"This name should be a single word, it is used as a part of the e-mail alias " +"for delivering problem reports." +msgstr "" +"Это имя состоит из одного слова, оно используется как часть почтового " +"псевдонима для доставки сообщений о проблемах." + +#. Type: note +#. Description +#: ../templates:2001 +msgid "Database moved to ${GNATSDBDIR}." +msgstr "База данных перемещена в каталог ${GNATSDBDIR}." + +#. Type: note +#. Description +#: ../templates:2001 +msgid "" +"A previous package version put the GNATS database under ${BADDIR}. It has " +"now been moved to the right location." +msgstr "" +"В предыдущей версии пакета база данных GNATS хранилась в каталоге ${BADDIR}. " +"Теперь она перемещена в правильное место." + +#. Type: note +#. Description +#: ../templates:3001 +msgid "You must move the database to ${GNATSDBDIR}." +msgstr "Вы должны перенести базу данных в каталог ${GNATSDBDIR}." + +#. Type: note +#. Description +#: ../templates:3001 +msgid "" +"A previous package version put the GNATS database under ${BADDIR}. I could " +"not move it to the right location, so you have to do so manually." +msgstr "" +"В предыдущей версии пакета база данных GNATS хранилась в каталоге ${BADDIR}. " +"Невозможно переместить её в правильное место, сделайте это самостоятельно." + +#. Type: note +#. Description +#. Type: note +#. Description +#: ../templates:4001 ../templates:5001 +msgid "You should enable scripts in the Exim configuration." +msgstr "Вам нужно разрешить выполнение сценариев в конфигурации Exim." + +#. Type: note +#. Description +#: ../templates:4001 +msgid "" +"It seems you have installed Exim, with script handling disabled in its " +"configuration. If this is so, GNATS will not be able to receive bug reports " +"via e-mail. I would suggest you to uncomment one of the lines" +msgstr "" +"У вас установлен Exim, но выполнение сценариев в его конфигурации " +"выключено. При такой настройке GNATS не может получать сообщения об " +"ошибках по почте. Вам нужно раскомментировать одну из строк" + +#. Type: note +#. Description +#: ../templates:4001 +msgid "in your file ${EXIMCONF}, in the section \"system_aliases\"." +msgstr "в файле ${EXIMCONF} в секции \"system_aliases\"." + +#. Type: note +#. Description +#: ../templates:5001 +msgid "" +"It seems you have installed Exim, with no script handling enabled in its " +"configuration. If this is so, GNATS will not be able to receive bug reports " +"via e-mail. I would suggest you to add the line" +msgstr "" +"У вас установлен Exim, но выполнение сценариев в его конфигурации " +"выключено. При такой настройке GNATS не может получать сообщения об " +"ошибках по почте. Вам нужно добавить строку" + +#. Type: note +#. Description +#: ../templates:5001 +msgid "to your file ${EXIMCONF}, in the section \"system_aliases\"." +msgstr "в файл ${EXIMCONF} в секцию \"system_aliases\"." + +#. Type: note +#. Description +#: ../templates:6001 +msgid "You should set up qmail aliases for GNATS." +msgstr "Нужно настроить псевдонимы в qmail для GNATS." + +#. Type: note +#. Description +#: ../templates:6001 +msgid "" +"It seems you use qmail as your mail transfer program. It is recommended to " +"add the following lines into your qmail users/assign file:" +msgstr "" +"В качестве программы пересылки почты у вас используется qmail. " +"Рекомендуется добавить следующие строки в файл users/assign для qmail:" + +#. Type: note +#. Description +#: ../templates:7001 +msgid "You should set up GNATS mail aliases." +msgstr "Нужно настроить псевдонимы для GNATS." + +#. Type: note +#. Description +#: ../templates:7001 +msgid "" +"GNATS can be set to receive bug reports and database queries through mail. " +"However, it seems you are using a mailer I am not able to setup myself, so " +"you must do it by hand. The following addresses on localhost and appropriate " +"actions for them should be set up:" +msgstr "" +"GNATS можно настроить для получения сообщений об ошибках и запросах к " +"базе данных по почте. Однако, в системе установлена программа пересылки " +"почты, для которой нет готовых настроек, поэтому вы должны сделать их " +"самостоятельно. Нужно настроить следующие адреса на localhost и " +"соответствующие действия к ним:" + +#. Type: note +#. Description +#: ../templates:7001 +msgid "" +"gnats: redirect this to GNATS administrator\"s address gnats-admin: alias " +"for \"gnats\" bugs: pipe it to the command \"| /usr/lib/gnats/queue-pr -q\" " +"query-pr: pipe it to the command \"| /usr/lib/gnats/mail-query\" ${SITE}-" +"gnats: alias for \"bugs\"" +msgstr "" +" * gnats: переслать на адреса администратора GNATS\n" +" * gnats-admin: псевдоним для \"gnats\"\n" +" * bugs: обработать командой \"| /usr/lib/gnats/queue-pr -q\"\n" +" * query-pr: обработать командой \"| /usr/lib/gnats/mail-query\"\n" +" * ${SITE}-gnats: псевдоним для \"bugs\"" + +#. Type: note +#. Description +#: ../templates:8001 +msgid "Multiple listings of the \"gnats\" userid were found in ${PASSWDFILE}." +msgstr "" +"В файле ${PASSWDFILE} найдено несколько идентификаторов " +"пользователя \"gnats\"." + +#. Type: note +#. Description +#: ../templates:8001 +msgid "You should have only one \"gnats\" userid in your password file." +msgstr "" +"Должен быть только один идентификатор пользователя \"gnats\" в файле " +"паролей." + +#. Type: note +#. Description +#: ../templates:9001 +msgid "GNATS configuration needs change." +msgstr "Требуется изменить конфигурацию GNATS." + +#. Type: note +#. Description +#: ../templates:9001 +msgid "" +"Please note that some GNATS configuration files have changed in version 4. " +"You can find examples of the new configuration files in the directory \"/etc/" +"gnats/defaults\"." +msgstr "" +"Обратите внимание, что некоторые конфигурационные файлы GNATS " +"в версии 4 были изменены. " +"Примеры новых конфигурационных файлов можно найти в каталоге \"/etc/" +"gnats/defaults\"." + --- gnats-4.1.0.orig/debian/po/eu.po +++ gnats-4.1.0/debian/po/eu.po @@ -0,0 +1,204 @@ +# translation of gnats-eu.po to Euskara +# +# Translators, if you are not familiar with the PO format, gettext +# documentation is worth reading, especially sections dedicated to +# this format, e.g. by running: +# info -n '(gettext)PO Files' +# info -n '(gettext)Header Entry' +# Some information specific to po-debconf are available at +# /usr/share/doc/po-debconf/README-trans +# or http://www.debian.org/intl/l10n/po-debconf/README-trans# +# Developers do not need to manually edit POT or PO files. +# +# Piarres Beobide , 2008. +msgid "" +msgstr "" +"Project-Id-Version: gnats-eu\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2006-11-01 20:11+0100\n" +"PO-Revision-Date: 2008-05-15 11:31+0200\n" +"Last-Translator: Piarres Beobide \n" +"Language-Team: Euskara \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" + +#. Type: string +#. Description +#: ../templates:1001 +msgid "What is the name of the GNATS site?" +msgstr "Zein da GNATS gunearen izena?" + +#. Type: string +#. Description +#: ../templates:1001 +msgid "" +"This name should be a single word, it is used as a part of the e-mail alias " +"for delivering problem reports." +msgstr "" +"Izen hau hitz bakarrekoa izan behar da, arazoei buruzko txostenak bidaltzeko " +"eposta ezinezenaren zati bezala erabiliko da." + +#. Type: note +#. Description +#: ../templates:2001 +msgid "Database moved to ${GNATSDBDIR}." +msgstr "Datu-basea ${GNATSDBDIR}-ra mugitu da." + +#. Type: note +#. Description +#: ../templates:2001 +msgid "" +"A previous package version put the GNATS database under ${BADDIR}. It has " +"now been moved to the right location." +msgstr "" +"Aurreko paketearen bertsio batek GNATS datu-basea ${BADDIR} barnean ipini " +"zuen. Kokaleku zuzenera mugitua izan da." + +#. Type: note +#. Description +#: ../templates:3001 +msgid "You must move the database to ${GNATSDBDIR}." +msgstr "Datu-basea ${GNATSDBDIR}-ra mugitu behar duzu." + +#. Type: note +#. Description +#: ../templates:3001 +msgid "" +"A previous package version put the GNATS database under ${BADDIR}. I could " +"not move it to the right location, so you have to do so manually." +msgstr "" +"Aurreko paketearen bertsio batek GNATS datu-basea ${BADDIR} barnean ipini " +"zuen. Ezin da automatikoki kokaleku zuzenean ipini, beraz zure kabuz egin " +"beharko duzu." + +#. Type: note +#. Description +#. Type: note +#. Description +#: ../templates:4001 ../templates:5001 +msgid "You should enable scripts in the Exim configuration." +msgstr "Exim konfigurazioan script-ak gaitu beharko zenituzke." + +#. Type: note +#. Description +#: ../templates:4001 +msgid "" +"It seems you have installed Exim, with script handling disabled in its " +"configuration. If this is so, GNATS will not be able to receive bug reports " +"via e-mail. I would suggest you to uncomment one of the lines" +msgstr "" +"Dirudienez Exim bere konfigurazioan script kudeaketa desgaiturik duela " +"instalaturik duzu. Hau honela bada GNATS ez da programa-erroreak eposta " +"bidez jasotzeko gai izango. Hauetako lerro bat deskomentatzea gomendatzen " +"dizugu" + +#. Type: note +#. Description +#: ../templates:4001 +msgid "in your file ${EXIMCONF}, in the section \"system_aliases\"." +msgstr "zure ${EXIMCONF} fitxategiko, \"system_aliases\" atalean." + +#. Type: note +#. Description +#: ../templates:5001 +msgid "" +"It seems you have installed Exim, with no script handling enabled in its " +"configuration. If this is so, GNATS will not be able to receive bug reports " +"via e-mail. I would suggest you to add the line" +msgstr "" +"Dirudienez Exim bere konfigurazioan script kudeaketa desgaiturik duela " +"instalaturik duzu. Hau honela bada GNATS ez da programa-erroreak eposta " +"bidez jasotzeko gai izango. Lerro hau gehitzea gomendatzen dugu:" + +#. Type: note +#. Description +#: ../templates:5001 +msgid "to your file ${EXIMCONF}, in the section \"system_aliases\"." +msgstr "zure ${EXIMCONF} fitxategiko, \"system_aliases\" atalean." + +#. Type: note +#. Description +#: ../templates:6001 +msgid "You should set up qmail aliases for GNATS." +msgstr "Zuk qmail ezizenak GNATS-rentzat konfiguratu beharko zenituzke." + +#. Type: note +#. Description +#: ../templates:6001 +msgid "" +"It seems you use qmail as your mail transfer program. It is recommended to " +"add the following lines into your qmail users/assign file:" +msgstr "" +"Dirudienez qmail erabiltzen duzu posta transferentzia programa gisa. " +"Gomendagarria da hurrengo lerroak gehitzea qmail-ren erabiltzaile/ezarpen " +"fitxategian:" + +#. Type: note +#. Description +#: ../templates:7001 +msgid "You should set up GNATS mail aliases." +msgstr "GNATS ezizen datu-basea konfiguratu behar duzu." + +#. Type: note +#. Description +#: ../templates:7001 +msgid "" +"GNATS can be set to receive bug reports and database queries through mail. " +"However, it seems you are using a mailer I am not able to setup myself, so " +"you must do it by hand. The following addresses on localhost and appropriate " +"actions for them should be set up:" +msgstr "" +"GNATS programa-errore txostena eta datu-base galdeketak posta bidez " +"jasotzeko konfiguratu daiteke. Hala ere, dirudienez automatikoki konfiguratu " +"ezin den posta programa bat erabiltzen duzu, beraz zure kabuz egin beharko " +"duzu. Hurrengo helbideak eta dagozkion ekintzak konfiguratu behar dira " +"ostalari lokalean:" + +#. Type: note +#. Description +#: ../templates:7001 +msgid "" +"gnats: redirect this to GNATS administrator\"s address gnats-admin: alias " +"for \"gnats\" bugs: pipe it to the command \"| /usr/lib/gnats/queue-pr -q\" " +"query-pr: pipe it to the command \"| /usr/lib/gnats/mail-query\" ${SITE}-" +"gnats: alias for \"bugs\"" +msgstr "" +"gnats: birbidali hau GNATS administratzaile helbidera gnats-admin: \"gnats\"-" +"ren ezizena bugs: bideratu \"| /usr/lib/gnats/queue-pr -q\" komandora query-" +"pr: bideratu \"| /usr/lib/gnats/mail-query\" komandora ${SITE}-gnats: \"bugs" +"\"-en ezizena" + +#. Type: note +#. Description +#: ../templates:8001 +msgid "Multiple listings of the \"gnats\" userid were found in ${PASSWDFILE}." +msgstr "" +"\"gnats\" erabiltzailearen id-aren zerrendatze anitz aurkitu dira " +"${PASSWDFILE} fitxategian." + +#. Type: note +#. Description +#: ../templates:8001 +msgid "You should have only one \"gnats\" userid in your password file." +msgstr "" +"Bakarrik \"gnats\" erabiltzaile-id bat eduki behar duzu pasahitz fitxategian." + +#. Type: note +#. Description +#: ../templates:9001 +msgid "GNATS configuration needs change." +msgstr "GNATS konfigurazioa aldatu egin behar da." + +#. Type: note +#. Description +#: ../templates:9001 +msgid "" +"Please note that some GNATS configuration files have changed in version 4. " +"You can find examples of the new configuration files in the directory \"/etc/" +"gnats/defaults\"." +msgstr "" +"Mesedez kontutan izan GNATS konfigurazio batzuek aldatu egion direla 4 " +"bertsioan. Konfigurazio berrien adibideak \"/etc/gnats/defaults\" " +"direktorioan aurkitu ditzakezu." --- gnats-4.1.0.orig/debian/po/pt_BR.po +++ gnats-4.1.0/debian/po/pt_BR.po @@ -0,0 +1,208 @@ +# +# Translators, if you are not familiar with the PO format, gettext +# documentation is worth reading, especially sections dedicated to +# this format, e.g. by running: +# info -n '(gettext)PO Files' +# info -n '(gettext)Header Entry' +# +# Some information specific to po-debconf are available at +# /usr/share/doc/po-debconf/README-trans +# or http://www.debian.org/intl/l10n/po-debconf/README-trans +# +# Developers do not need to manually edit POT or PO files. +# +# Felipe Augusto van de Wiel (faw) , 2006. +# Licensed under the same terms of the totd package. +# +msgid "" +msgstr "" +"Project-Id-Version: gnats (20061108)\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2006-11-01 20:11+0100\n" +"PO-Revision-Date: 2006-11-08 23:23-0200\n" +"Last-Translator: Felipe Augusto van de Wiel (faw) \n" +"Language-Team: l10n portuguese \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"pt_BR utf-8\n" + +#. Type: string +#. Description +#: ../templates:1001 +msgid "What is the name of the GNATS site?" +msgstr "Qual é o nome do site GNATS?" + +#. Type: string +#. Description +#: ../templates:1001 +msgid "" +"This name should be a single word, it is used as a part of the e-mail alias " +"for delivering problem reports." +msgstr "" +"Este nome deve ser uma única palavra, é usado como parte do \"alias\" de e-" +"mail para a entrega de relatórios de problemas." + +#. Type: note +#. Description +#: ../templates:2001 +msgid "Database moved to ${GNATSDBDIR}." +msgstr "Base de dados movida para ${GNATSDBDIR}." + +#. Type: note +#. Description +#: ../templates:2001 +msgid "" +"A previous package version put the GNATS database under ${BADDIR}. It has " +"now been moved to the right location." +msgstr "" +"Uma versão anterior do pacote colocou a base de dados GNATS em ${BADDIR}. " +"Ela foi agora movida para o local correto." + +#. Type: note +#. Description +#: ../templates:3001 +msgid "You must move the database to ${GNATSDBDIR}." +msgstr "Você deve mover a base de dados para ${GNATSDBDIR}" + +#. Type: note +#. Description +#: ../templates:3001 +msgid "" +"A previous package version put the GNATS database under ${BADDIR}. I could " +"not move it to the right location, so you have to do so manually." +msgstr "" +"Uma versão anterior do pacote colocou a base de dados GNATS em ${BADDIR}. Eu " +"não pude movê-la para o local correto, portanto você precisará fazer isso " +"manualmente." + +#. Type: note +#. Description +#. Type: note +#. Description +#: ../templates:4001 ../templates:5001 +msgid "You should enable scripts in the Exim configuration." +msgstr "Você deveria habilitar scripts na configuração do Exim." + +#. Type: note +#. Description +#: ../templates:4001 +msgid "" +"It seems you have installed Exim, with script handling disabled in its " +"configuration. If this is so, GNATS will not be able to receive bug reports " +"via e-mail. I would suggest you to uncomment one of the lines" +msgstr "" +"Parece que você tem instalado Exim, com tratamento de script desabilitado em " +"sua configuração. Dessa maneira, GNATS não será capaz de receber relatórios " +"de problemas via e-mail. Eu sugiro que você remova o comentário de uma das " +"linhas" + +#. Type: note +#. Description +#: ../templates:4001 +msgid "in your file ${EXIMCONF}, in the section \"system_aliases\"." +msgstr "no seu arquivo ${EXIMCONF}, na seção \"system_aliases\"." + +#. Type: note +#. Description +#: ../templates:5001 +msgid "" +"It seems you have installed Exim, with no script handling enabled in its " +"configuration. If this is so, GNATS will not be able to receive bug reports " +"via e-mail. I would suggest you to add the line" +msgstr "" +"Parece que você tem instalado Exim, sem o tratamento de script habilitado em " +"sua configuração. Dessa maneira, GNATS não será capaz de receber relatórios " +"de problemas via e-mail. Eu sugiro que você adicione a linha" + +#. Type: note +#. Description +#: ../templates:5001 +msgid "to your file ${EXIMCONF}, in the section \"system_aliases\"." +msgstr "ao seu arquivo ${EXIMCONF}, na seção \"system_aliases\"." + +#. Type: note +#. Description +#: ../templates:6001 +msgid "You should set up qmail aliases for GNATS." +msgstr "" +"Você precisa configurar os apelidos (\"aliases\") do qmail para o GNATS." + +#. Type: note +#. Description +#: ../templates:6001 +msgid "" +"It seems you use qmail as your mail transfer program. It is recommended to " +"add the following lines into your qmail users/assign file:" +msgstr "" +"Parece que você usa qmail como seu programa de transferência de e-mail. É " +"recomendado adicionar as seguintes linhas no seu arquivo qmail users/assign:" + +#. Type: note +#. Description +#: ../templates:7001 +msgid "You should set up GNATS mail aliases." +msgstr "" +"Você precisa configurar os apelidos (\"aliases\") de e-mail para o GNATS" + +#. Type: note +#. Description +#: ../templates:7001 +msgid "" +"GNATS can be set to receive bug reports and database queries through mail. " +"However, it seems you are using a mailer I am not able to setup myself, so " +"you must do it by hand. The following addresses on localhost and appropriate " +"actions for them should be set up:" +msgstr "" +"GNATS pode ser configurado para receber relatórios de problemas e consultas " +"à base de dados por e-mail. No entanto, parece que você está utilizando um " +"sistema de e-mails que eu não posso configurar por conta própria, portanto " +"você deve fazê-lo manualmente. Os seguintes endereços em localhost com as " +"ações apropriadas para eles precisam ser configurados:" + +#. Type: note +#. Description +#: ../templates:7001 +msgid "" +"gnats: redirect this to GNATS administrator\"s address gnats-admin: alias " +"for \"gnats\" bugs: pipe it to the command \"| /usr/lib/gnats/queue-pr -q\" " +"query-pr: pipe it to the command \"| /usr/lib/gnats/mail-query\" ${SITE}-" +"gnats: alias for \"bugs\"" +msgstr "" +"gnats: redirecionar para o endereço do administrador GNATS gnats-admin: " +"apelido (\"alias\") para \"gnats\" bugs: enviar (\"pipe\") para o comando " +"\"| /usr/lib/gnats/queue-pr -q\" query-pr: enviar (\"pipe\") para o comando " +"\"| /usr/lib/gnats/mail-query\" ${SITE}-gnats: apelido (\"alias\") para " +"\"bugs\"" + +#. Type: note +#. Description +#: ../templates:8001 +msgid "Multiple listings of the \"gnats\" userid were found in ${PASSWDFILE}." +msgstr "" +"Múltiplas entradas do usuário \"gnats\" foram encontradas em ${PASSWDFILE}." + +#. Type: note +#. Description +#: ../templates:8001 +msgid "You should have only one \"gnats\" userid in your password file." +msgstr "" +"Você deveria ter somente um usuário \"gnats\" no seu arquivo de senhas." + +#. Type: note +#. Description +#: ../templates:9001 +msgid "GNATS configuration needs change." +msgstr "A configuração do GNATS precisa de modificações." + +#. Type: note +#. Description +#: ../templates:9001 +msgid "" +"Please note that some GNATS configuration files have changed in version 4. " +"You can find examples of the new configuration files in the directory \"/etc/" +"gnats/defaults\"." +msgstr "" +"Por favor, note que alguns arquivos de configuração GNATS mudaram na versão " +"4. Você pode encontrar exemplos dos novos arquivos de configuração no " +"diretório \"/etc/gnats/defaults\"." --- gnats-4.1.0.orig/debian/po/POTFILES.in +++ gnats-4.1.0/debian/po/POTFILES.in @@ -0,0 +1 @@ +[type: gettext/rfc822deb] templates --- gnats-4.1.0.orig/debian/po/cs.po +++ gnats-4.1.0/debian/po/cs.po @@ -0,0 +1,216 @@ +# +# Translators, if you are not familiar with the PO format, gettext +# documentation is worth reading, especially sections dedicated to +# this format, e.g. by running: +# info -n '(gettext)PO Files' +# info -n '(gettext)Header Entry' +# +# Some information specific to po-debconf are available at +# /usr/share/doc/po-debconf/README-trans +# or http://www.debian.org/intl/l10n/po-debconf/README-trans +# +# Developers do not need to manually edit POT or PO files. +# +msgid "" +msgstr "" +"Project-Id-Version: gnats 4.1.0-0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2006-11-01 20:11+0100\n" +"PO-Revision-Date: 2005-07-25 18:38+0200\n" +"Last-Translator: Martin Sin \n" +"Language-Team: Czech \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#. Type: string +#. Description +#: ../templates:1001 +msgid "What is the name of the GNATS site?" +msgstr "Jaké je jméno webu GNATS?" + +#. Type: string +#. Description +#: ../templates:1001 +msgid "" +"This name should be a single word, it is used as a part of the e-mail alias " +"for delivering problem reports." +msgstr "" +"Tímto jménem by mělo být jediné slovo, neboť je součástí emailové adresy " +"sloužící pro doručování zpráv o problémech." + +#. Type: note +#. Description +#: ../templates:2001 +msgid "Database moved to ${GNATSDBDIR}." +msgstr "Databáze byla přesunuta do ${GNATSDBDIR}." + +#. Type: note +#. Description +#: ../templates:2001 +msgid "" +"A previous package version put the GNATS database under ${BADDIR}. It has " +"now been moved to the right location." +msgstr "" +"Předchozí verze tohoto balíčku ukládala databázi GNATS do ${BADDIR}. Nyní je " +"přesunuta na to 'správné' místo." + +#. Type: note +#. Description +#: ../templates:3001 +msgid "You must move the database to ${GNATSDBDIR}." +msgstr "Musíte přesunout databázi do ${GNATSDBDIR}." + +#. Type: note +#. Description +#: ../templates:3001 +msgid "" +"A previous package version put the GNATS database under ${BADDIR}. I could " +"not move it to the right location, so you have to do so manually." +msgstr "" +"Předchozí verze balíčku ukládala databázi GNATS do ${BADDIR}. Tuto databázi " +"nemohu přesunout na správné místo, tak to musíte udělat ručně." + +#. Type: note +#. Description +#. Type: note +#. Description +#: ../templates:4001 ../templates:5001 +msgid "You should enable scripts in the Exim configuration." +msgstr "V konfiguraci Eximu byste měli povolit skripty." + +#. Type: note +#. Description +#: ../templates:4001 +msgid "" +"It seems you have installed Exim, with script handling disabled in its " +"configuration. If this is so, GNATS will not be able to receive bug reports " +"via e-mail. I would suggest you to uncomment one of the lines" +msgstr "" +"Zdá se, že máte nainstalován Exim s vypnutou manipulací se skripty " +"(nastavení naleznete v konfiguraci Eximu). Je-li tomu tak, GNATS nebude " +"schopen přijmout zprávy o chybách skrz email. Doporučuji odkomentovat " +"některý z těchto řádků" + +#. Type: note +#. Description +#: ../templates:4001 +msgid "in your file ${EXIMCONF}, in the section \"system_aliases\"." +msgstr "ve vašem souboru ${EXIMCONF}, v sekci \"system_aliases\"." + +#. Type: note +#. Description +#: ../templates:5001 +msgid "" +"It seems you have installed Exim, with no script handling enabled in its " +"configuration. If this is so, GNATS will not be able to receive bug reports " +"via e-mail. I would suggest you to add the line" +msgstr "" +"Zdá se, že máte nainstalován Exim s vypnutou manipulací se skripty " +"(nastavení naleznete v konfiguraci Eximu). Je-li tomu tak, GNATS nebude " +"schopen přijmout zprávy o chybách skrz email. Doporučuji přidat řádek" + +#. Type: note +#. Description +#: ../templates:5001 +msgid "to your file ${EXIMCONF}, in the section \"system_aliases\"." +msgstr "do vašeho souboru ${EXIMCONF}, do sekce \"system_aliases\"." + +#. Type: note +#. Description +#: ../templates:6001 +msgid "You should set up qmail aliases for GNATS." +msgstr "Měli byste nastavit aliasy qmailu pro GNATS." + +#. Type: note +#. Description +#: ../templates:6001 +msgid "" +"It seems you use qmail as your mail transfer program. It is recommended to " +"add the following lines into your qmail users/assign file:" +msgstr "" +"Zdá se, že pro přenos mailů používáte program qmail. Doporučujeme přidat do " +"qmailového souboru uživatelů/přiřazení následující řádky:" + +#. Type: note +#. Description +#: ../templates:7001 +msgid "You should set up GNATS mail aliases." +msgstr "Měli byste nastavit mailové aliasy GNATS." + +#. Type: note +#. Description +#: ../templates:7001 +msgid "" +"GNATS can be set to receive bug reports and database queries through mail. " +"However, it seems you are using a mailer I am not able to setup myself, so " +"you must do it by hand. The following addresses on localhost and appropriate " +"actions for them should be set up:" +msgstr "" +"GNATS může být nastaven pro přijímání zpráv o chybách a databázových " +"dotazech skrze email. Bohužel to vypadá, že používáte poštovní server, který " +"neumím nastavit sám, takže to budete muset udělat ručně. Měli byste nastavit " +"následující adresy na localhostu a k nim odpovídající akce:" + +#. Type: note +#. Description +#: ../templates:7001 +msgid "" +"gnats: redirect this to GNATS administrator\"s address gnats-admin: alias " +"for \"gnats\" bugs: pipe it to the command \"| /usr/lib/gnats/queue-pr -q\" " +"query-pr: pipe it to the command \"| /usr/lib/gnats/mail-query\" ${SITE}-" +"gnats: alias for \"bugs\"" +msgstr "" +"gnats: přesměrování na adresu administrátora GNATS gnats-admin: alias pro " +"\"gnats\" bugs: přesměrování do příkazu \"| /usr/lib/gnats/queue-pr -q\" " +"query-pr: přesměrování do příkazu \"| /usr/lib/gnats/mail-query\" ${SITE}-" +"gnats: alias pro \"bugs\"" + +#. Type: note +#. Description +#: ../templates:8001 +msgid "Multiple listings of the \"gnats\" userid were found in ${PASSWDFILE}." +msgstr "" +"V souboru ${PASSWDFILE} byly nalezeny vícenásobné záznamy uživatele \"gnats" +"\"." + +#. Type: note +#. Description +#: ../templates:8001 +msgid "You should have only one \"gnats\" userid in your password file." +msgstr "Soubor s heslem by měl obsahovat pouze jednoho uživatele \"gnats\"." + +#. Type: note +#. Description +#: ../templates:9001 +msgid "GNATS configuration needs change." +msgstr "Potřebujete změnit konfiguraci GNATS." + +#. Type: note +#. Description +#: ../templates:9001 +msgid "" +"Please note that some GNATS configuration files have changed in version 4. " +"You can find examples of the new configuration files in the directory \"/etc/" +"gnats/defaults\"." +msgstr "" +"Pamatujte prosím, že ve verzi 4 byly změněny některé konfigurační soubory " +"GNATS. Příklady nových konfiguračních souborů můžete nalézt v adresáři \"/" +"etc/gnats/defaults\"." + +#~ msgid "${LINES}" +#~ msgstr "${LINES}" + +#~ msgid "user = gnats" +#~ msgstr "user = gnats" + +#~ msgid "" +#~ "=gnats:gnats:41:41:/var/lib/gnats/gnats-adm::: =gnats-admin:gnats:41:41:/" +#~ "var/lib/gnats/gnats-adm::: =bugs:gnats:41:41:/var/lib/gnats/gnats-adm:-:" +#~ "bugs: =query-pr:gnats:41:41:/var/lib/gnats/gnats-adm:-:query: =${SITE}-" +#~ "gnats:gnats:41:41:/var/lib/gnats/gnats-adm:-:bugs:" +#~ msgstr "" +#~ "=gnats:gnats:41:41:/var/lib/gnats/gnats-adm::: =gnats-admin:gnats:41:41:/" +#~ "var/lib/gnats/gnats-adm::: =bugs:gnats:41:41:/var/lib/gnats/gnats-adm:-:" +#~ "bugs: =query-pr:gnats:41:41:/var/lib/gnats/gnats-adm:-:query: =${SITE}-" +#~ "gnats:gnats:41:41:/var/lib/gnats/gnats-adm:-:bugs:" --- gnats-4.1.0.orig/debian/po/pt.po +++ gnats-4.1.0/debian/po/pt.po @@ -0,0 +1,193 @@ +# Portuguese translation for gnats's debconf messages +# Rui Branco , 2006 +# 2006-11-11 - Rui Branco - Initial translation +# +msgid "" +msgstr "" +"Project-Id-Version: gnats\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2006-11-01 20:11+0100\n" +"PO-Revision-Date: 2006-11-11 14:52+0000\n" +"Last-Translator: Rui Branco \n" +"Language-Team: Portuguese \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#. Type: string +#. Description +#: ../templates:1001 +msgid "What is the name of the GNATS site?" +msgstr "Qual o nome to site GNATS?" + +#. Type: string +#. Description +#: ../templates:1001 +msgid "" +"This name should be a single word, it is used as a part of the e-mail alias " +"for delivering problem reports." +msgstr "" +"Este nome deverá ser apenas uma única palavra, é utilizado como parte de um " +"endereço email para entregar relatórios de problemas." + +#. Type: note +#. Description +#: ../templates:2001 +msgid "Database moved to ${GNATSDBDIR}." +msgstr "A base de dados foi movida para ${GNATSDBDIR}." + +#. Type: note +#. Description +#: ../templates:2001 +msgid "" +"A previous package version put the GNATS database under ${BADDIR}. It has " +"now been moved to the right location." +msgstr "" +"Uma versão anterior do pacote colocou a base de dados do GNATS em ${BADDIR}. " +"Foi agora movida para o local correcto." + +#. Type: note +#. Description +#: ../templates:3001 +msgid "You must move the database to ${GNATSDBDIR}." +msgstr "Tem que mover a base de dados para ${GNATSDBDIR}." + +#. Type: note +#. Description +#: ../templates:3001 +msgid "" +"A previous package version put the GNATS database under ${BADDIR}. I could " +"not move it to the right location, so you have to do so manually." +msgstr "" +"Uma versão anterior do pacote colocou a base de dados do GNATS em ${BADDIR}. " +"Não a posso mover para o local correcto, terá que o fazer manualmente." + +#. Type: note +#. Description +#. Type: note +#. Description +#: ../templates:4001 ../templates:5001 +msgid "You should enable scripts in the Exim configuration." +msgstr "Deverá activar 'scripts' na configuração do Exim." + +#. Type: note +#. Description +#: ../templates:4001 +msgid "" +"It seems you have installed Exim, with script handling disabled in its " +"configuration. If this is so, GNATS will not be able to receive bug reports " +"via e-mail. I would suggest you to uncomment one of the lines" +msgstr "" +"Parece que instalou o Exim com o suporte a 'scripts' desactivado na sua " +"configuração. Se assim for, o GNATS não será capaz de receber relatórios de " +"'bugs' via e-mail. Sugiro que retire o # a uma das linhas" + +#. Type: note +#. Description +#: ../templates:4001 +msgid "in your file ${EXIMCONF}, in the section \"system_aliases\"." +msgstr "no seu ficheiro ${EXIMCONF}, na secção \"system_aliases\"." + +#. Type: note +#. Description +#: ../templates:5001 +msgid "" +"It seems you have installed Exim, with no script handling enabled in its " +"configuration. If this is so, GNATS will not be able to receive bug reports " +"via e-mail. I would suggest you to add the line" +msgstr "" +"Parece que instalou o Exim com o suporte a 'scripts' activado na sua " +"configuração. Se assim for, o GNATS não será capaz de receber relatórios de " +"'bugs' via e-mail. Sugiro que adicione a linha" + +#. Type: note +#. Description +#: ../templates:5001 +msgid "to your file ${EXIMCONF}, in the section \"system_aliases\"." +msgstr "ao ficheiro ${EXIMCONF}, na secção \"system_aliases\"." + +#. Type: note +#. Description +#: ../templates:6001 +msgid "You should set up qmail aliases for GNATS." +msgstr "Deverá definir 'gmail aliases' para o GNATS" + +#. Type: note +#. Description +#: ../templates:6001 +msgid "" +"It seems you use qmail as your mail transfer program. It is recommended to " +"add the following lines into your qmail users/assign file:" +msgstr "" +"Parece que utiliza o gmail como o seu programa de transferência de mail. É " +"recomendado que adicione as seguintes linhas ao seu ficheiro gmail users/" +"assign:" + +#. Type: note +#. Description +#: ../templates:7001 +msgid "You should set up GNATS mail aliases." +msgstr "Deverá definir 'gmail aliases'." + +#. Type: note +#. Description +#: ../templates:7001 +msgid "" +"GNATS can be set to receive bug reports and database queries through mail. " +"However, it seems you are using a mailer I am not able to setup myself, so " +"you must do it by hand. The following addresses on localhost and appropriate " +"actions for them should be set up:" +msgstr "" +"O GNATS pode ser configurado para receber relatórios de erro e consultas a " +"bases de dados através de mail. No entanto parece que está a usar um " +"'mailer', que não consigo configurar, deste modo terá que o configurar " +"manualmente. Os seguintes endereços em localhost e as acções apropriadas " +"deverão ser definidas:" + +#. Type: note +#. Description +#: ../templates:7001 +msgid "" +"gnats: redirect this to GNATS administrator\"s address gnats-admin: alias " +"for \"gnats\" bugs: pipe it to the command \"| /usr/lib/gnats/queue-pr -q\" " +"query-pr: pipe it to the command \"| /usr/lib/gnats/mail-query\" ${SITE}-" +"gnats: alias for \"bugs\"" +msgstr "" +"gnats: redireccionar para o endereço do administrador do GNATS\"s gnats-" +"admin: alias para \"gnats\" 'bugs': 'pipe' para o comando \"| /usr/lib/gnats/" +"queue-pr -q\" query-pr: 'pipe' para o comando \"| /usr/lib/gnats/mail-query" +"\" ${SITE}- gnats: alias para \"bugs\"" + +#. Type: note +#. Description +#: ../templates:8001 +msgid "Multiple listings of the \"gnats\" userid were found in ${PASSWDFILE}." +msgstr "" +"Listas múltiplas do id de utilizador \"gnats\" foram encontradas em " +"${PASSWDFILE}." + +#. Type: note +#. Description +#: ../templates:8001 +msgid "You should have only one \"gnats\" userid in your password file." +msgstr "" +"Deverá apenas ter um id de utilizador \"gnats\" np seu ficheiro de palavra-" +"chave" + +#. Type: note +#. Description +#: ../templates:9001 +msgid "GNATS configuration needs change." +msgstr "A configuração do GNATS precisa de ser alterada." + +#. Type: note +#. Description +#: ../templates:9001 +msgid "" +"Please note that some GNATS configuration files have changed in version 4. " +"You can find examples of the new configuration files in the directory \"/etc/" +"gnats/defaults\"." +msgstr "" +"Por favor note que alguns ficheiros de configuração do GNATS foram alterados " +"na versão 4. Pode encontrar exemplos da novos ficheiros de configuração no " +"directório \"/etc/gnats/defaults\"." --- gnats-4.1.0.orig/debian/po/ja.po +++ gnats-4.1.0/debian/po/ja.po @@ -0,0 +1,217 @@ +# +# Translators, if you are not familiar with the PO format, gettext +# documentation is worth reading, especially sections dedicated to +# this format, e.g. by running: +# info -n '(gettext)PO Files' +# info -n '(gettext)Header Entry' +# +# Some information specific to po-debconf are available at +# /usr/share/doc/po-debconf/README-trans +# or http://www.debian.org/intl/l10n/po-debconf/README-trans +# +# Developers do not need to manually edit POT or PO files. +# +# +msgid "" +msgstr "" +"Project-Id-Version: gnats 4.0-7\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2006-11-01 20:11+0100\n" +"PO-Revision-Date: 2004-11-28 03:53+0900\n" +"Last-Translator: Hideki Yamane \n" +"Language-Team: Japanese \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=EUC-JP\n" +"Content-Transfer-Encoding: 8bit\n" + +#. Type: string +#. Description +#: ../templates:1001 +msgid "What is the name of the GNATS site?" +msgstr "GNATS ư륵Ȥ̾ϲǤ?" + +#. Type: string +#. Description +#: ../templates:1001 +msgid "" +"This name should be a single word, it is used as a part of the e-mail alias " +"for delivering problem reports." +msgstr "" +"̾ñҤȤĤǹɬפꡢѤΥ᡼륨ꥢΰ" +"ȤƻȤޤ" + +#. Type: note +#. Description +#: ../templates:2001 +msgid "Database moved to ${GNATSDBDIR}." +msgstr "ǡ١ ${GNATSDBDIR} ˰ưޤ" + +#. Type: note +#. Description +#: ../templates:2001 +msgid "" +"A previous package version put the GNATS database under ${BADDIR}. It has " +"now been moved to the right location." +msgstr "" +"ΥСΥѥåǤ GNATS ǡ١ ${BADDIR} ֤" +"ޤ֤˰ưޤ" + +#. Type: note +#. Description +#: ../templates:3001 +msgid "You must move the database to ${GNATSDBDIR}." +msgstr "ǡ١ ${GNATSDBDIR} ˰ܤɬפޤ" + +#. Type: note +#. Description +#: ../templates:3001 +msgid "" +"A previous package version put the GNATS database under ${BADDIR}. I could " +"not move it to the right location, so you have to do so manually." +msgstr "" +"ΥСΥѥåǤ GNATS ǡ١ ${BADDIR} ֤" +"ޤ֤˰ưǤʤäΤǡưǼ¹Ԥɬפޤ" + +#. Type: note +#. Description +#. Type: note +#. Description +#: ../templates:4001 ../templates:5001 +msgid "You should enable scripts in the Exim configuration." +msgstr "Exim ǥץȤͭˤɬפޤ" + +#. Type: note +#. Description +#: ../templates:4001 +msgid "" +"It seems you have installed Exim, with script handling disabled in its " +"configuration. If this is so, GNATS will not be able to receive bug reports " +"via e-mail. I would suggest you to uncomment one of the lines" +msgstr "" +"ץȤμ갷ǽ̵ˤ Exim 󥹥ȡ뤵Ƥ褦" +"Ǥξ硢GNATS ϥ᡼ͳǥХޤ󡣰ʲιԤΥ" +"ȤϤΤ򤪴ᤷޤ:" + +#. Type: note +#. Description +#: ../templates:4001 +msgid "in your file ${EXIMCONF}, in the section \"system_aliases\"." +msgstr "ե ${EXIMCONF} \"system_aliases\" Ǥ" + +#. Type: note +#. Description +#: ../templates:5001 +msgid "" +"It seems you have installed Exim, with no script handling enabled in its " +"configuration. If this is so, GNATS will not be able to receive bug reports " +"via e-mail. I would suggest you to add the line" +msgstr "" +"ץȤμ갷̵꤬ˤ줿֤ǡExim 󥹥ȡ뤵Ƥ" +"Ǥξ硢GNATS ϥ᡼ͳǤΥХʤʤäƤޤ" +"ʲιԤɲäΤ򤪴ᤷޤ" + +#. Type: note +#. Description +#: ../templates:5001 +msgid "to your file ${EXIMCONF}, in the section \"system_aliases\"." +msgstr "" +"ɲäΤϡե ${EXIMCONF} \"system_aliases\" Ǥ" + +#. Type: note +#. Description +#: ../templates:6001 +msgid "You should set up qmail aliases for GNATS." +msgstr "GNATS Ѥ qmail ꥢꤹɬפޤ" + +#. Type: note +#. Description +#: ../templates:6001 +msgid "" +"It seems you use qmail as your mail transfer program. It is recommended to " +"add the following lines into your qmail users/assign file:" +msgstr "" +"᡼ץȤ qmail ѤƤ褦ǤʲιԤ qmail " +"users/assign եɲäΤ򤪴ᤷޤ:" + +#. Type: note +#. Description +#: ../templates:7001 +msgid "You should set up GNATS mail aliases." +msgstr "GNATS Υ᡼륨ꥢꤹɬפޤ" + +#. Type: note +#. Description +#: ../templates:7001 +msgid "" +"GNATS can be set to receive bug reports and database queries through mail. " +"However, it seems you are using a mailer I am not able to setup myself, so " +"you must do it by hand. The following addresses on localhost and appropriate " +"actions for them should be set up:" +msgstr "" +"GNATS 򡢥᡼ͳǥХꡢǡ١θǤ褦" +"ǤޤʤȤäƤ᡼륽եȤϤκǤʤ" +"ΤǡȤꤹɬפޤۥȾΰʲΥɥ쥹ȡ" +"ФŬڤԤäƤ:" + +#. Type: note +#. Description +#: ../templates:7001 +msgid "" +"gnats: redirect this to GNATS administrator\"s address gnats-admin: alias " +"for \"gnats\" bugs: pipe it to the command \"| /usr/lib/gnats/queue-pr -q\" " +"query-pr: pipe it to the command \"| /usr/lib/gnats/mail-query\" ${SITE}-" +"gnats: alias for \"bugs\"" +msgstr "" +"gnats: GNATS δԥɥ쥹ž gnats-admin: \"gnats\" Υꥢ " +"bugs: \"| /usr/lib/gnats/queue-pr -q\" ޥɤ˥ѥפϤ query-pr: pipe " +"it to the command \"| /usr/lib/gnats/mail-query\" ޥɤ˥ѥפϤ " +"${SITE}-gnats: \"bugs\" Υꥢ" + +#. Type: note +#. Description +#: ../templates:8001 +msgid "Multiple listings of the \"gnats\" userid were found in ${PASSWDFILE}." +msgstr "" +"${PASSWDFILE} \"gnats\" userid ʣ¸ߤƤΤĤޤ" + +#. Type: note +#. Description +#: ../templates:8001 +msgid "You should have only one \"gnats\" userid in your password file." +msgstr "" +"ѥɥե \"gnats\" userid 1 ĤǤʤФʤޤ " + +#. Type: note +#. Description +#: ../templates:9001 +msgid "GNATS configuration needs change." +msgstr "GNATS ѹɬפǤ" + +#. Type: note +#. Description +#: ../templates:9001 +msgid "" +"Please note that some GNATS configuration files have changed in version 4. " +"You can find examples of the new configuration files in the directory \"/etc/" +"gnats/defaults\"." +msgstr "" +"С 4 GNATS ե¿ѹä줿ȤդƤ" +"եλͤ \"/etc/gnats/defaults\" ǥ쥯ȥˤ" +"" + +#~ msgid "${LINES}" +#~ msgstr "${LINES}" + +#~ msgid "user = gnats" +#~ msgstr "user = gnats" + +#~ msgid "" +#~ "=gnats:gnats:41:41:/var/lib/gnats/gnats-adm::: =gnats-admin:gnats:41:41:/" +#~ "var/lib/gnats/gnats-adm::: =bugs:gnats:41:41:/var/lib/gnats/gnats-adm:-:" +#~ "bugs: =query-pr:gnats:41:41:/var/lib/gnats/gnats-adm:-:query: =${SITE}-" +#~ "gnats:gnats:41:41:/var/lib/gnats/gnats-adm:-:bugs:" +#~ msgstr "" +#~ "=gnats:gnats:41:41:/var/lib/gnats/gnats-adm::: =gnats-admin:gnats:41:41:/" +#~ "var/lib/gnats/gnats-adm::: =bugs:gnats:41:41:/var/lib/gnats/gnats-adm:-:" +#~ "bugs: =query-pr:gnats:41:41:/var/lib/gnats/gnats-adm:-:query: =${SITE}-" +#~ "gnats:gnats:41:41:/var/lib/gnats/gnats-adm:-:bugs:" --- gnats-4.1.0.orig/debian/po/fi.po +++ gnats-4.1.0/debian/po/fi.po @@ -0,0 +1,190 @@ +msgid "" +msgstr "" +"Project-Id-Version: gnats\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2006-11-01 20:11+0100\n" +"PO-Revision-Date: 2008-05-10 22:46+0200\n" +"Last-Translator: Esko Arajärvi \n" +"Language-Team: Finnish \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Poedit-Language: Finnish\n" +"X-Poedit-Country: FINLAND\n" + +#. Type: string +#. Description +#: ../templates:1001 +msgid "What is the name of the GNATS site?" +msgstr "GNATS-sivuston nimi:" + +#. Type: string +#. Description +#: ../templates:1001 +msgid "" +"This name should be a single word, it is used as a part of the e-mail alias " +"for delivering problem reports." +msgstr "" +"Tämän nimen tulisi olla yksi sana. Sitä käytetään sähköpostialiaksen osana " +"raportoitaessa jakeluongelmia." + +#. Type: note +#. Description +#: ../templates:2001 +msgid "Database moved to ${GNATSDBDIR}." +msgstr "Tietokanta siirretty hakemistoon ${GNATSDBDIR}." + +#. Type: note +#. Description +#: ../templates:2001 +msgid "" +"A previous package version put the GNATS database under ${BADDIR}. It has " +"now been moved to the right location." +msgstr "" +"Paketin aiempi versio laittoi GNATS-tietokannan hakemistoon ${BADDIR}. Se on " +"nyt siirretty oikeaan paikkaan." + +#. Type: note +#. Description +#: ../templates:3001 +msgid "You must move the database to ${GNATSDBDIR}." +msgstr "Tietokanta on siirrettävä hakemistoon ${GNATSDBDIR}." + +#. Type: note +#. Description +#: ../templates:3001 +msgid "" +"A previous package version put the GNATS database under ${BADDIR}. I could " +"not move it to the right location, so you have to do so manually." +msgstr "" +"Paketin aiempi versio laittoi GNATS-tietokannan hakemistoon ${BADDIR}. Sen " +"siirtäminen oikeaan paikkaan ei onnistunut, joten se on tehtävä käsin." + +#. Type: note +#. Description +#. Type: note +#. Description +#: ../templates:4001 ../templates:5001 +msgid "You should enable scripts in the Exim configuration." +msgstr "Komentosarjat tulisi ottaa käyttöön Eximin asetuksissa." + +#. Type: note +#. Description +#: ../templates:4001 +msgid "" +"It seems you have installed Exim, with script handling disabled in its " +"configuration. If this is so, GNATS will not be able to receive bug reports " +"via e-mail. I would suggest you to uncomment one of the lines" +msgstr "" +"Exim näyttää olevan asennettuna niin, että komentosarjojen käsittely on " +"asetuksissa laitettu pois päältä. Tässä tilanteessa GNATS ei pysty ottamaan " +"sähköpostitse vastaan ilmoituksia ohjelmavirheistä. On suositeltavaa ottaa " +"käyttöön yksi seuraavista riveistä" + +#. Type: note +#. Description +#: ../templates:4001 +msgid "in your file ${EXIMCONF}, in the section \"system_aliases\"." +msgstr "tiedoston ${EXIMCONF} osiossa ”system_aliases”." + +#. Type: note +#. Description +#: ../templates:5001 +msgid "" +"It seems you have installed Exim, with no script handling enabled in its " +"configuration. If this is so, GNATS will not be able to receive bug reports " +"via e-mail. I would suggest you to add the line" +msgstr "" +"Exim näyttää olevan asennettuna niin, että komentosarjojen käsittely on " +"asetuksissa laitettu pois päältä. Tässä tilanteessa GNATS ei pysty ottamaan " +"sähköpostitse vastaan ilmoituksia ohjelmavirheistä. On suositeltavaa lisätä " +"rivi" + +#. Type: note +#. Description +#: ../templates:5001 +msgid "to your file ${EXIMCONF}, in the section \"system_aliases\"." +msgstr "tiedoston ${EXIMCONF} osioon ”system_aliases”." + +#. Type: note +#. Description +#: ../templates:6001 +msgid "You should set up qmail aliases for GNATS." +msgstr "GNATSia varten tulisi asettaa qmail-aliksia." + +#. Type: note +#. Description +#: ../templates:6001 +msgid "" +"It seems you use qmail as your mail transfer program. It is recommended to " +"add the following lines into your qmail users/assign file:" +msgstr "" +"Sähköpostipalvelimena näyttää olevan qmail. On suositeltavaa lisätä " +"seuraavat rivit qmailin users/assign-tiedostoon:" + +#. Type: note +#. Description +#: ../templates:7001 +msgid "You should set up GNATS mail aliases." +msgstr "GNATSia varten tulisi asettaa sähköpostialiaksia." + +#. Type: note +#. Description +#: ../templates:7001 +msgid "" +"GNATS can be set to receive bug reports and database queries through mail. " +"However, it seems you are using a mailer I am not able to setup myself, so " +"you must do it by hand. The following addresses on localhost and appropriate " +"actions for them should be set up:" +msgstr "" +"GNATS voidaan asettaa ottamaan vastaan ilmoituksia ohjelmavirheistä ja " +"tietokantakyselyitä sähköpostin kautta. Käytössä näyttää kuitenkin olevan " +"sähköpostijärjestelmä, jonka asetuksia ei voida tässä tehdä, joten ne pitää " +"tehdä käsin. Ohjelmaa varten tulisi tehdä seuraavat osoitteet ja niihin " +"liittyvät toiminnot:" + +#. Type: note +#. Description +#: ../templates:7001 +msgid "" +"gnats: redirect this to GNATS administrator\"s address gnats-admin: alias " +"for \"gnats\" bugs: pipe it to the command \"| /usr/lib/gnats/queue-pr -q\" " +"query-pr: pipe it to the command \"| /usr/lib/gnats/mail-query\" ${SITE}-" +"gnats: alias for \"bugs\"" +msgstr "" +" gnats: ohjataan edelleen GNATSin ylläpitäjän osoitteeseen.\n" +" gnats-admin: osoitteen ”gnats” alias.\n" +" bugs: putkitetaan komentoon ”| /usr/lib/gnats/queue-pr -q”.\n" +" query-pr: putkitetaan komentoon ”| /usr/lib/gnats/mail-query”.\n" +" ${SITE}-gnats: osoitteen ”bugs” alias." + +#. Type: note +#. Description +#: ../templates:8001 +msgid "Multiple listings of the \"gnats\" userid were found in ${PASSWDFILE}." +msgstr "" +"Käyttäjätunnus ”gnats” on listattu useampaan kertaan tiedostossa " +"${PASSWDFILE}." + +#. Type: note +#. Description +#: ../templates:8001 +msgid "You should have only one \"gnats\" userid in your password file." +msgstr "Käyttäjätunnus ”gnats” tulisi olla vain kerran salasanatiedostossa." + +#. Type: note +#. Description +#: ../templates:9001 +msgid "GNATS configuration needs change." +msgstr "GNATSin asetuksia täytyy muuttaa." + +#. Type: note +#. Description +#: ../templates:9001 +msgid "" +"Please note that some GNATS configuration files have changed in version 4. " +"You can find examples of the new configuration files in the directory \"/etc/" +"gnats/defaults\"." +msgstr "" +"Muutamat GNATSin asetustiedostot ovat muuttuneet versiossa 4. Esimerkkejä " +"uusista asetustiedostoista löytyy hakemistosta ”/etc/gnats/defaults”." --- gnats-4.1.0.orig/debian/po/fr.po +++ gnats-4.1.0/debian/po/fr.po @@ -0,0 +1,208 @@ +# translation of fr.po to French +# +# Translators, if you are not familiar with the PO format, gettext +# documentation is worth reading, especially sections dedicated to +# this format, e.g. by running: +# info -n '(gettext)PO Files' +# info -n '(gettext)Header Entry' +# Some information specific to po-debconf are available at +# /usr/share/doc/po-debconf/README-trans +# or http://www.debian.org/intl/l10n/po-debconf/README-trans# +# Developers do not need to manually edit POT or PO files. +# +# Christian Perrier , 2006. +msgid "" +msgstr "" +"Project-Id-Version: fr\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2006-11-01 20:11+0100\n" +"PO-Revision-Date: 2006-11-01 20:12+0100\n" +"Last-Translator: Christian Perrier \n" +"Language-Team: French \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=ISO-8859-15\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: KBabel 1.11.4\n" + +#. Type: string +#. Description +#: ../templates:1001 +msgid "What is the name of the GNATS site?" +msgstr "Nom du site GNATS:" + +#. Type: string +#. Description +#: ../templates:1001 +msgid "" +"This name should be a single word, it is used as a part of the e-mail alias " +"for delivering problem reports." +msgstr "" +"Le nom de site GNATS devrait tre un mot simple; il est utilis comme un " +"alias d'adresse pour les rapports sur les incidents de livraison de courrier." + +#. Type: note +#. Description +#: ../templates:2001 +msgid "Database moved to ${GNATSDBDIR}." +msgstr "Base de donnes dplace vers ${GNATSDBDIR}" + +#. Type: note +#. Description +#: ../templates:2001 +msgid "" +"A previous package version put the GNATS database under ${BADDIR}. It has " +"now been moved to the right location." +msgstr "" +"Une ancienne version du paquet avait plac la base de donnes sous " +"${BADDIR}. Elle vient d'tre dplace vers l'emplacement correct." + +#. Type: note +#. Description +#: ../templates:3001 +msgid "You must move the database to ${GNATSDBDIR}." +msgstr "Dplacement ncessaire de la base de donnes vers ${GNATSDBDIR}" + +#. Type: note +#. Description +#: ../templates:3001 +msgid "" +"A previous package version put the GNATS database under ${BADDIR}. I could " +"not move it to the right location, so you have to do so manually." +msgstr "" +"Une ancienne version du paquet avait plac la base de donnes GNATS sous " +"${BADDIR}. Il n'est pas possible de la dplacer vers son emplacement correct " +"de faon automatique: vous devez le faire vous-mme." + +#. Type: note +#. Description +#. Type: note +#. Description +#: ../templates:4001 ../templates:5001 +msgid "You should enable scripts in the Exim configuration." +msgstr "" +"Activation ncessaire du traitement des scripts dans la configuration d'Exim" + +#. Type: note +#. Description +#: ../templates:4001 +msgid "" +"It seems you have installed Exim, with script handling disabled in its " +"configuration. If this is so, GNATS will not be able to receive bug reports " +"via e-mail. I would suggest you to uncomment one of the lines" +msgstr "" +"Exim semble tre install mais le traitement des scripts semble dsactiv " +"dans sa configuration. Si c'est bien le cas, GNATS ne sera pas capable de " +"recevoir les rapports de bogues par messagerie. Il est conseill de " +"dcommenter l'une des lignes suivantes :" + +#. Type: note +#. Description +#: ../templates:4001 +msgid "in your file ${EXIMCONF}, in the section \"system_aliases\"." +msgstr "" +"Cette modification doit se faire dans le fichier ${EXIMCONF}, la section " +"\"system_aliases\"." + +#. Type: note +#. Description +#: ../templates:5001 +msgid "" +"It seems you have installed Exim, with no script handling enabled in its " +"configuration. If this is so, GNATS will not be able to receive bug reports " +"via e-mail. I would suggest you to add the line" +msgstr "" +"Exim semble install mais le traitement des scripts est dsactiv dans sa " +"configuration. Si c'est bien le cas, GNATS ne sera pas capable de recevoir " +"les rapports de bogues par messagerie. Il est conseill d'ajouter la ligne " +"suivante :" + +#. Type: note +#. Description +#: ../templates:5001 +msgid "to your file ${EXIMCONF}, in the section \"system_aliases\"." +msgstr "" +"Ce changement doit se faire dans le fichier ${EXIMCONF}, la section " +"\"system_aliases\"." + +#. Type: note +#. Description +#: ../templates:6001 +msgid "You should set up qmail aliases for GNATS." +msgstr "Dfinition des alias qmail pour GNATS" + +#. Type: note +#. Description +#: ../templates:6001 +msgid "" +"It seems you use qmail as your mail transfer program. It is recommended to " +"add the following lines into your qmail users/assign file:" +msgstr "" +"Vous semblez utiliser qmail comme agent de transport de courrier. Il est " +"recommand d'ajouter les lignes suivantes votre fichier users/assign de " +"qmail :" + +#. Type: note +#. Description +#: ../templates:7001 +msgid "You should set up GNATS mail aliases." +msgstr "Dfinition des alias d'adresse GNATS" + +#. Type: note +#. Description +#: ../templates:7001 +msgid "" +"GNATS can be set to receive bug reports and database queries through mail. " +"However, it seems you are using a mailer I am not able to setup myself, so " +"you must do it by hand. The following addresses on localhost and appropriate " +"actions for them should be set up:" +msgstr "" +"GNATS peut tre paramtr pour recevoir des rapports de bogues et des " +"requtes de base de donnes travers la messagerie. Cependant, vous semblez " +"utiliser un client de courrier dont le paramtrage automatique est " +"impossible. Vous devez donc le faire vous-mme. L'adresse suivante sur " +"l'hte local et les actions appropries pour le faire doivent tre dfinis." + +#. Type: note +#. Description +#: ../templates:7001 +msgid "" +"gnats: redirect this to GNATS administrator\"s address gnats-admin: alias " +"for \"gnats\" bugs: pipe it to the command \"| /usr/lib/gnats/queue-pr -q\" " +"query-pr: pipe it to the command \"| /usr/lib/gnats/mail-query\" ${SITE}-" +"gnats: alias for \"bugs\"" +msgstr "" +"gnats: redirige ceci vers l'administrateur GNATS \"s adresse gnats-admin: " +"alias pour les bogues \"gnats\": il faut le lier \"| /usr/lib/gnats/mail-" +"query\" ${SITE}-gnats: alias pour \"bugs\"" + +#. Type: note +#. Description +#: ../templates:8001 +msgid "Multiple listings of the \"gnats\" userid were found in ${PASSWDFILE}." +msgstr "Dfinitions multiples de l'identifiant gnats dans ${PASSWDFILE}" + +#. Type: note +#. Description +#: ../templates:8001 +msgid "You should have only one \"gnats\" userid in your password file." +msgstr "" +"Vous ne devriez possder qu'un seul identifiant gnats dans votre fichier " +"de mots de passe." + +#. Type: note +#. Description +#: ../templates:9001 +msgid "GNATS configuration needs change." +msgstr "Modifications ncessaires de la configuration de GNATS" + +#. Type: note +#. Description +#: ../templates:9001 +msgid "" +"Please note that some GNATS configuration files have changed in version 4. " +"You can find examples of the new configuration files in the directory \"/etc/" +"gnats/defaults\"." +msgstr "" +"Veuillez noter que certains fichiers de configuration de GNATS ont chang " +"dans la version 4. Vous trouverez des exemples de nouveaux fichiers de " +"configuration dans le rpertoire /etc/gnats/defaults." --- gnats-4.1.0.orig/debian/user/profile +++ gnats-4.1.0/debian/user/profile @@ -0,0 +1,6 @@ +# +# Extra profile information for the gnats administator +# + +PATH="/usr/lib/gnats:$PATH"; export PATH +GNATS_ROOT=/var/lib/gnats/gnats-db; export GNATS_ROOT --- gnats-4.1.0.orig/debian/misc/send-pr.conf +++ gnats-4.1.0/debian/misc/send-pr.conf @@ -0,0 +1,16 @@ +# -*-sh-*- +# This is the configuration file for send-pr. +# It is read by the send-pr script each time it is executed. You can customize +# various send-pr variables here instead of editting send-pr directly. You +# must at least uncomment the ORGANIZATION. variable value and set it to some +# reasonable value. + +# Id of the submitting organization +#DEFAULT_ORGANIZATION=fill_some_value_here + +# The site *receiving* the bug reports +#GNATS_SITE=${GNATS_SITE:-the_site} + +# The submitter-id for your site. +#SUBMITTER=fill_some_value_here + --- gnats-4.1.0.orig/debian/misc/gnatsweb-site-koi8-r.pl +++ gnats-4.1.0/debian/misc/gnatsweb-site-koi8-r.pl @@ -0,0 +1,82 @@ +# gnatsweb-site-koi8-r.pl allows to set charset (koi8-r) in http headers +# without original gnatsweb.pl sources modification +# +# Copyright (C) 2000 Konstantin Kivi +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; version 2 dated June, 1991. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# On Debian GNU/Linux systems, the complete text of the GNU General +# Public License can be found in `/usr/share/common-licenses/GPL' +# and `/usr/share/common-licenses/LGPL'. +# +# +# copy this file as /usr/lib/cgi-bin/gnatsweb-site.pl +# or call it from existing gnatsweb-site.pl like +# do "$path_to_this_file/gnatsweb-site-koi8-r.pl" + + +{ +# I don't know why should I call CGI::header once +# before redefintion +# I made test example with a simple module and it worked without this hack +# if you know the reason please mail me at kkivi@mailru.com + + use CGI; + eval{ + my($q)=new CGI; + $q->header; + } +} + +package CGI; + + +sub myheader; +*CGI::oldheader=\&CGI::header; +*CGI::header=\&CGI::myheader; +#*CGI::header=*::header=\&CGI::myheader; +sub myheader{ + my($self)=shift; + my($k,$v)=(undef,undef); + my(@arg,$fl ); + for $l (@_){ + + if(defined($k)){ + $v=$l; + }else{ + $k=$l; + } + if(!defined($v)){ + next; + } + if($k eq "-type"){ + $fl=1; + if($v =~ m#(text/html)(.*)#){ + if($2 !~ /charset/){ + $v="text/html; charset=koi8-r"; + } + } + } + push(@arg,$k => $v); + undef($k); + undef($v); + + } + + if(!$fl){ + push(@arg, -type => "text/html; charset=koi8-r"); + } + return $self->CGI::oldheader( @arg); +} +