debian/0000755000000000000000000000000012263523721007171 5ustar debian/templates0000644000000000000000000000446211700063564011117 0ustar Template: gnats/site Type: string _Description: What is the name of the GNATS site? This name should be a single word, it is used as a part of the e-mail alias for delivering problem reports. Template: gnats/exim_user_uncomment Type: note #flag:translate!:3 _Description: You should enable scripts in the Exim configuration. 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 . ${LINES} . in your file ${EXIMCONF}, in the section "system_aliases". Template: gnats/exim_user_add Type: note #flag:translate!:3 _Description: You should enable scripts in the Exim configuration. 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 . user = gnats . to your file ${EXIMCONF}, in the section "system_aliases". Template: gnats/qmail Type: note #flag:translate!:3 _Description: You should set up qmail aliases for GNATS. It seems you use qmail as your mail transfer program. It is recommended to add the following lines into your qmail users/assign file: . =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: Template: gnats/unknown_mailer Type: note _Description: You should set up GNATS mail aliases. 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: . 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" Template: gnats/user_multiple Type: error _Description: Multiple listings of the "gnats" userid were found in ${PASSWDFILE}. You should have only one "gnats" userid in your password file. debian/gnats-user.emacsen-install0000644000000000000000000000232411700026161014252 0ustar #! /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 debian/gnats-user.prerm.in0000644000000000000000000000104211700026161012721 0ustar #!/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# debian/.todo0000644000000000000000000000471411700026161010134 0ustar 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 debian/overrides.gnats0000644000000000000000000000117711700026161012226 0ustar # 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 debian/gnats.postinst.in0000644000000000000000000001455611700063537012531 0ustar #!/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@} 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 < # (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# debian/misc/0000755000000000000000000000000011700026161010113 5ustar debian/misc/gnatsweb-site-koi8-r.pl0000644000000000000000000000412511700026161014335 0ustar # 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); } debian/misc/send-pr.conf0000644000000000000000000000102711700026161012332 0ustar # -*-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 debian/gnats.examples0000644000000000000000000000015611700026161012036 0ustar contrib/juniper-web-reports contrib/scripts contrib/sql contrib/tkgnats contrib/www-gnats-admin contrib/prmon debian/user/0000755000000000000000000000000011700026161010136 5ustar debian/user/profile0000644000000000000000000000023311700026161011517 0ustar # # Extra profile information for the gnats administator # PATH="/usr/lib/gnats:$PATH"; export PATH GNATS_ROOT=/var/lib/gnats/gnats-db; export GNATS_ROOT debian/gnats-tk.menu0000644000000000000000000000024411700026161011576 0ustar ?package(gnats-tk):needs="X11" section="Apps/Technical" title="TkGnats" \ command="/usr/bin/tkgnats" \ longtitle="Tk interface to the GNATS bug tracking system." debian/gnats.prerm.in0000644000000000000000000000271111700026161011751 0ustar #!/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# debian/rules0000755000000000000000000001114712263523373010260 0ustar #!/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 include /usr/share/cdbs/1/rules/autoreconf.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_DH_AUTORECONF_ARGS := debian/rules -- autoreconf 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 autoreconf: autoreconf -fi cd doc && autoreconf -fi cd gnats && autoreconf -fi cd send-pr && autoreconf -fi 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 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 debian/overrides.gnats-user0000644000000000000000000000044311700026161013175 0ustar # 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 debian/gnats-user.postinst.in0000644000000000000000000000364011700026161013465 0ustar #!/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# debian/gnats-user.emacsen-remove0000644000000000000000000000072511700026161014104 0ustar #!/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 debian/gnats.doc-base.faq0000644000000000000000000000060011700026161012435 0ustar Document: gnats-faq Section: Project Management Title: GNATS FAQ Author: Hans-Albert Schneider Abstract: Frequently Asked Questions for gnats, the GNU Problem Report Management System, version 4.1.0. gnats is a bug-tracking tool designed for use at a central Support Site. Format: HTML Index: /usr/share/doc/gnats/gnats-faq/index.html Files: /usr/share/doc/gnats/gnats-faq/*.html debian/README.Debian0000644000000000000000000000077411700026161011231 0ustar 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. debian/common.sed0000644000000000000000000000161411700026161011147 0ustar ############################################################################### # # 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 debian/gnats.manpages0000644000000000000000000000042411700026161012011 0ustar debian/tmp/usr/share/man/man5/dbconfig.5 debian/tmp/usr/share/man/man8/gen-index.8 debian/tmp/usr/share/man/man8/gnatsd.8 debian/tmp/usr/share/man/man8/mkcat.8 debian/tmp/usr/share/man/man8/mkdb.8 debian/tmp/usr/share/man/man8/queue-pr.8 debian/tmp/usr/share/man/man8/rmcat.8 debian/gnats.install0000644000000000000000000000062711700026161011671 0ustar debian/tmp/usr/lib/gnats/at-pr debian/tmp/usr/lib/gnats/check-db debian/tmp/usr/lib/gnats/delete-pr debian/tmp/usr/lib/gnats/gen-index debian/tmp/usr/lib/gnats/gnats-pwconv debian/tmp/usr/lib/gnats/gnatsd debian/tmp/usr/lib/gnats/mail-query debian/tmp/usr/lib/gnats/mkcat debian/tmp/usr/lib/gnats/mkdb debian/tmp/usr/lib/gnats/queue-pr debian/tmp/usr/lib/gnats/rmcat debian/tmp/etc/gnats/gnatsd.host_access debian/copyright0000644000000000000000000000327211700026161011117 0ustar 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. debian/gnats.doc-base.manual0000644000000000000000000000062711700026161013154 0ustar Document: gnats Section: Project Management Title: GNATS User Manual Author: Andrew Gray, Yngve Svendsen, Milan Zamazal, Chad Walstrom Abstract: This manual documents gnats, the GNU Problem Report Management System, version 4.1.0. gnats is a bug-tracking tool designed for use at a central Support Site. Format: HTML Index: /usr/share/doc/gnats/gnats/index.html Files: /usr/share/doc/gnats/gnats/*.html debian/gnats.info0000644000000000000000000000011611700026161011147 0ustar debian/tmp/usr/share/info/gnats.info debian/tmp/usr/share/info/gnats-faq.info debian/gnats.docs0000644000000000000000000000003011700026161011137 0ustar doc/gnats doc/gnats-faq debian/po/0000755000000000000000000000000012263523715007612 5ustar debian/po/ru.po0000644000000000000000000002020311700066745010575 0ustar # 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: 2012-01-01 15:29+0100\n" "PO-Revision-Date: 2006-11-09 21:51+0300\n" "Last-Translator: Yuri Kozlov \n" "Language-Team: Russian \n" "Language: ru\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-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 #. Type: note #. Description #: ../templates:2001 ../templates:3001 msgid "You should enable scripts in the Exim configuration." msgstr "Вам нужно разрешить выполнение сценариев в конфигурации Exim." #. Type: note #. Description #: ../templates:2001 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:2001 msgid "in your file ${EXIMCONF}, in the section \"system_aliases\"." msgstr "в файле ${EXIMCONF} в секции \"system_aliases\"." #. Type: note #. Description #: ../templates:3001 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:3001 msgid "to your file ${EXIMCONF}, in the section \"system_aliases\"." msgstr "в файл ${EXIMCONF} в секцию \"system_aliases\"." #. Type: note #. Description #: ../templates:4001 msgid "You should set up qmail aliases for GNATS." msgstr "Нужно настроить псевдонимы в qmail для GNATS." #. Type: note #. Description #: ../templates:4001 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:5001 msgid "You should set up GNATS mail aliases." msgstr "Нужно настроить псевдонимы для GNATS." #. Type: note #. Description #: ../templates:5001 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:5001 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: error #. Description #: ../templates:6001 msgid "Multiple listings of the \"gnats\" userid were found in ${PASSWDFILE}." msgstr "" "В файле ${PASSWDFILE} найдено несколько идентификаторов пользователя \"gnats" "\"." #. Type: error #. Description #: ../templates:6001 msgid "You should have only one \"gnats\" userid in your password file." msgstr "" "Должен быть только один идентификатор пользователя \"gnats\" в файле паролей." #~ msgid "Database moved to ${GNATSDBDIR}." #~ msgstr "База данных перемещена в каталог ${GNATSDBDIR}." #~ msgid "" #~ "A previous package version put the GNATS database under ${BADDIR}. It has " #~ "now been moved to the right location." #~ msgstr "" #~ "В предыдущей версии пакета база данных GNATS хранилась в каталоге " #~ "${BADDIR}. Теперь она перемещена в правильное место." #~ msgid "You must move the database to ${GNATSDBDIR}." #~ msgstr "Вы должны перенести базу данных в каталог ${GNATSDBDIR}." #~ 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}. Невозможно переместить её в правильное место, сделайте это " #~ "самостоятельно." #~ msgid "GNATS configuration needs change." #~ msgstr "Требуется изменить конфигурацию GNATS." #~ 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\"." debian/po/nl.po0000644000000000000000000001533011700066744010564 0ustar # # 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: 2012-01-01 15:29+0100\n" "PO-Revision-Date: 2007-05-18 15:36+0100\n" "Last-Translator: Bart Cornelis \n" "Language-Team: debian-l10n-dutch \n" "Language: \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 #. Type: note #. Description #: ../templates:2001 ../templates:3001 msgid "You should enable scripts in the Exim configuration." msgstr "In de Exim-configuratie dienen scripts geactiveerd te worden." #. Type: note #. Description #: ../templates:2001 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:2001 msgid "in your file ${EXIMCONF}, in the section \"system_aliases\"." msgstr "In het bestand ${EXIMCONF}, in de sectie 'system_aliases'." #. Type: note #. Description #: ../templates:3001 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:3001 msgid "to your file ${EXIMCONF}, in the section \"system_aliases\"." msgstr "in het bestand ${EXIMCONF}, in de sectie 'system_aliases'." #. Type: note #. Description #: ../templates:4001 msgid "You should set up qmail aliases for GNATS." msgstr "U kunt best qmail-aliases aanmaken voor GNATS." #. Type: note #. Description #: ../templates:4001 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:5001 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:5001 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:5001 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: error #. Description #: ../templates:6001 msgid "Multiple listings of the \"gnats\" userid were found in ${PASSWDFILE}." msgstr "De gebruikers-id 'gnats' kom meerdere keren voor in ${PASSWDFILE}." #. Type: error #. Description #: ../templates:6001 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." #~ msgid "Database moved to ${GNATSDBDIR}." #~ msgstr "De database is verplaatst naar ${GNATSDBDIR}." #~ 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." #~ msgid "You must move the database to ${GNATSDBDIR}." #~ msgstr "De database dient verplaatst te worden naar ${GNATSDBDIR}." #~ 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." #~ msgid "GNATS configuration needs change." #~ msgstr "De GNATS-configuratie dient aangepast te worden." #~ 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'." debian/po/sv.po0000644000000000000000000001505211700066745010605 0ustar # # 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: 2012-01-01 15:29+0100\n" "PO-Revision-Date: 2006-11-09 12:12+0100\n" "Last-Translator: Daniel Nylander \n" "Language-Team: Swedish \n" "Language: sv\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" #. 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 #. Type: note #. Description #: ../templates:2001 ../templates:3001 msgid "You should enable scripts in the Exim configuration." msgstr "Du bör aktivera skript i Exim-konfigurationen." #. Type: note #. Description #: ../templates:2001 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:2001 msgid "in your file ${EXIMCONF}, in the section \"system_aliases\"." msgstr "i din fil ${EXIMCONF}, i sektionen \"system_aliases\"." #. Type: note #. Description #: ../templates:3001 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:3001 msgid "to your file ${EXIMCONF}, in the section \"system_aliases\"." msgstr "till din fil ${EXIMCONF}, i sektionen \"system_aliases\"." #. Type: note #. Description #: ../templates:4001 msgid "You should set up qmail aliases for GNATS." msgstr "Du bör konfigurera qmail-alias för GNATS." #. Type: note #. Description #: ../templates:4001 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:5001 msgid "You should set up GNATS mail aliases." msgstr "Du bör konfigurera GNATS e-postalias." #. Type: note #. Description #: ../templates:5001 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:5001 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: error #. Description #: ../templates:6001 msgid "Multiple listings of the \"gnats\" userid were found in ${PASSWDFILE}." msgstr "Flera listningar av användar-id:t \"gnats\" hittades i ${PASSWDFILE}." #. Type: error #. Description #: ../templates:6001 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." #~ msgid "Database moved to ${GNATSDBDIR}." #~ msgstr "Databasen flyttad till ${GNATSDBDIR}." #~ 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." #~ msgid "You must move the database to ${GNATSDBDIR}." #~ msgstr "Du måste flytta databasen till ${GNATSDBDIR}." #~ 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." #~ msgid "GNATS configuration needs change." #~ msgstr "Konfigurationen av GNATS behöver ändras." #~ 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\"." debian/po/pt.po0000644000000000000000000001433511700066744010602 0ustar # 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: 2012-01-01 15:29+0100\n" "PO-Revision-Date: 2006-11-11 14:52+0000\n" "Last-Translator: Rui Branco \n" "Language-Team: Portuguese \n" "Language: pt\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 #. Type: note #. Description #: ../templates:2001 ../templates:3001 msgid "You should enable scripts in the Exim configuration." msgstr "Deverá activar 'scripts' na configuração do Exim." #. Type: note #. Description #: ../templates:2001 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:2001 msgid "in your file ${EXIMCONF}, in the section \"system_aliases\"." msgstr "no seu ficheiro ${EXIMCONF}, na secção \"system_aliases\"." #. Type: note #. Description #: ../templates:3001 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:3001 msgid "to your file ${EXIMCONF}, in the section \"system_aliases\"." msgstr "ao ficheiro ${EXIMCONF}, na secção \"system_aliases\"." #. Type: note #. Description #: ../templates:4001 msgid "You should set up qmail aliases for GNATS." msgstr "Deverá definir 'gmail aliases' para o GNATS" #. Type: note #. Description #: ../templates:4001 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:5001 msgid "You should set up GNATS mail aliases." msgstr "Deverá definir 'gmail aliases'." #. Type: note #. Description #: ../templates:5001 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:5001 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: error #. Description #: ../templates:6001 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: error #. Description #: ../templates:6001 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" #~ msgid "Database moved to ${GNATSDBDIR}." #~ msgstr "A base de dados foi movida para ${GNATSDBDIR}." #~ 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." #~ msgid "You must move the database to ${GNATSDBDIR}." #~ msgstr "Tem que mover a base de dados para ${GNATSDBDIR}." #~ 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." #~ msgid "GNATS configuration needs change." #~ msgstr "A configuração do GNATS precisa de ser alterada." #~ 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\"." debian/po/POTFILES.in0000644000000000000000000000004411700026161011351 0ustar [type: gettext/rfc822deb] templates debian/po/fi.po0000644000000000000000000001424711700066744010557 0ustar msgid "" msgstr "" "Project-Id-Version: gnats\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2012-01-01 15:29+0100\n" "PO-Revision-Date: 2008-05-10 22:46+0200\n" "Last-Translator: Esko Arajärvi \n" "Language-Team: Finnish \n" "Language: fi\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 #. Type: note #. Description #: ../templates:2001 ../templates:3001 msgid "You should enable scripts in the Exim configuration." msgstr "Komentosarjat tulisi ottaa käyttöön Eximin asetuksissa." #. Type: note #. Description #: ../templates:2001 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:2001 msgid "in your file ${EXIMCONF}, in the section \"system_aliases\"." msgstr "tiedoston ${EXIMCONF} osiossa ”system_aliases”." #. Type: note #. Description #: ../templates:3001 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:3001 msgid "to your file ${EXIMCONF}, in the section \"system_aliases\"." msgstr "tiedoston ${EXIMCONF} osioon ”system_aliases”." #. Type: note #. Description #: ../templates:4001 msgid "You should set up qmail aliases for GNATS." msgstr "GNATSia varten tulisi asettaa qmail-aliksia." #. Type: note #. Description #: ../templates:4001 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:5001 msgid "You should set up GNATS mail aliases." msgstr "GNATSia varten tulisi asettaa sähköpostialiaksia." #. Type: note #. Description #: ../templates:5001 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:5001 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: error #. Description #: ../templates:6001 msgid "Multiple listings of the \"gnats\" userid were found in ${PASSWDFILE}." msgstr "" "Käyttäjätunnus ”gnats” on listattu useampaan kertaan tiedostossa " "${PASSWDFILE}." #. Type: error #. Description #: ../templates:6001 msgid "You should have only one \"gnats\" userid in your password file." msgstr "Käyttäjätunnus ”gnats” tulisi olla vain kerran salasanatiedostossa." #~ msgid "Database moved to ${GNATSDBDIR}." #~ msgstr "Tietokanta siirretty hakemistoon ${GNATSDBDIR}." #~ 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." #~ msgid "You must move the database to ${GNATSDBDIR}." #~ msgstr "Tietokanta on siirrettävä hakemistoon ${GNATSDBDIR}." #~ 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." #~ msgid "GNATS configuration needs change." #~ msgstr "GNATSin asetuksia täytyy muuttaa." #~ 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”." debian/po/vi.po0000644000000000000000000001555111700066745010577 0ustar # 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: 2012-01-01 15:29+0100\n" "PO-Revision-Date: 2006-11-09 23:00+1030\n" "Last-Translator: Clytie Siddall \n" "Language-Team: Vietnamese \n" "Language-Team: Japanese \n" "Language: ja\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 #. Type: note #. Description #: ../templates:2001 ../templates:3001 msgid "You should enable scripts in the Exim configuration." msgstr "Exim ǥץȤͭˤɬפޤ" #. Type: note #. Description #: ../templates:2001 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:2001 msgid "in your file ${EXIMCONF}, in the section \"system_aliases\"." msgstr "ե ${EXIMCONF} \"system_aliases\" Ǥ" #. Type: note #. Description #: ../templates:3001 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:3001 msgid "to your file ${EXIMCONF}, in the section \"system_aliases\"." msgstr "" "ɲäΤϡե ${EXIMCONF} \"system_aliases\" Ǥ" #. Type: note #. Description #: ../templates:4001 msgid "You should set up qmail aliases for GNATS." msgstr "GNATS Ѥ qmail ꥢꤹɬפޤ" #. Type: note #. Description #: ../templates:4001 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:5001 msgid "You should set up GNATS mail aliases." msgstr "GNATS Υ᡼륨ꥢꤹɬפޤ" #. Type: note #. Description #: ../templates:5001 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:5001 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: error #. Description #: ../templates:6001 msgid "Multiple listings of the \"gnats\" userid were found in ${PASSWDFILE}." msgstr "" "${PASSWDFILE} \"gnats\" userid ʣ¸ߤƤΤĤޤ" #. Type: error #. Description #: ../templates:6001 msgid "You should have only one \"gnats\" userid in your password file." msgstr "" "ѥɥե \"gnats\" userid 1 ĤǤʤФʤޤ " #~ msgid "Database moved to ${GNATSDBDIR}." #~ msgstr "ǡ١ ${GNATSDBDIR} ˰ưޤ" #~ msgid "" #~ "A previous package version put the GNATS database under ${BADDIR}. It has " #~ "now been moved to the right location." #~ msgstr "" #~ "ΥСΥѥåǤ GNATS ǡ١ ${BADDIR} ֤" #~ "Ƥޤ֤˰ưޤ" #~ msgid "You must move the database to ${GNATSDBDIR}." #~ msgstr "ǡ١ ${GNATSDBDIR} ˰ܤɬפޤ" #~ 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} ֤" #~ "Ƥޤ֤˰ưǤʤäΤǡưǼ¹Ԥɬפ" #~ "" #~ msgid "GNATS configuration needs change." #~ msgstr "GNATS ѹɬפǤ" #~ 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:" debian/po/pt_BR.po0000644000000000000000000001573311700066745011171 0ustar # # 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: 2012-01-01 15:29+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" "Language: \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 #. Type: note #. Description #: ../templates:2001 ../templates:3001 msgid "You should enable scripts in the Exim configuration." msgstr "Você deveria habilitar scripts na configuração do Exim." #. Type: note #. Description #: ../templates:2001 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:2001 msgid "in your file ${EXIMCONF}, in the section \"system_aliases\"." msgstr "no seu arquivo ${EXIMCONF}, na seção \"system_aliases\"." #. Type: note #. Description #: ../templates:3001 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:3001 msgid "to your file ${EXIMCONF}, in the section \"system_aliases\"." msgstr "ao seu arquivo ${EXIMCONF}, na seção \"system_aliases\"." #. Type: note #. Description #: ../templates:4001 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:4001 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:5001 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:5001 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:5001 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: error #. Description #: ../templates:6001 msgid "Multiple listings of the \"gnats\" userid were found in ${PASSWDFILE}." msgstr "" "Múltiplas entradas do usuário \"gnats\" foram encontradas em ${PASSWDFILE}." #. Type: error #. Description #: ../templates:6001 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." #~ msgid "Database moved to ${GNATSDBDIR}." #~ msgstr "Base de dados movida para ${GNATSDBDIR}." #~ 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." #~ msgid "You must move the database to ${GNATSDBDIR}." #~ msgstr "Você deve mover a base de dados para ${GNATSDBDIR}" #~ 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." #~ msgid "GNATS configuration needs change." #~ msgstr "A configuração do GNATS precisa de modificações." #~ 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\"." debian/po/de.po0000644000000000000000000001560111700066744010544 0ustar # # 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: 2012-01-01 15:29+0100\n" "PO-Revision-Date: 2006-11-10 16:27+0100\n" "Last-Translator: Holger Wansing \n" "Language-Team: German \n" "Language: de\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #. 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 #. Type: note #. Description #: ../templates:2001 ../templates:3001 msgid "You should enable scripts in the Exim configuration." msgstr "Sie sollten Skripte in der Exim-Konfiguration aktivieren." #. Type: note #. Description #: ../templates:2001 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:2001 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:3001 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:3001 msgid "to your file ${EXIMCONF}, in the section \"system_aliases\"." msgstr "zu Ihrer Datei ${EXIMCONF} (Abschnitt »system_aliases«) hinzufügen." #. Type: note #. Description #: ../templates:4001 msgid "You should set up qmail aliases for GNATS." msgstr "Sie sollten in qmail Aliase für GNATS einrichten." #. Type: note #. Description #: ../templates:4001 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:5001 msgid "You should set up GNATS mail aliases." msgstr "Sie sollten Mail-Aliase für GNATS einrichten." #. Type: note #. Description #: ../templates:5001 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:5001 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: error #. Description #: ../templates:6001 msgid "Multiple listings of the \"gnats\" userid were found in ${PASSWDFILE}." msgstr "Mehrere Vorkommen der »gnats«-User-ID in ${PASSWDFILE} gefunden" #. Type: error #. Description #: ../templates:6001 msgid "You should have only one \"gnats\" userid in your password file." msgstr "Die »gnats«-User-ID sollte in ${PASSWDFILE} nur einmal vorkommen." #~ msgid "Database moved to ${GNATSDBDIR}." #~ msgstr "Datenbank nach ${GNATSDBDIR} verschoben" #~ 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." #~ msgid "You must move the database to ${GNATSDBDIR}." #~ msgstr "Sie müssen die Datenbank nach ${GNATSDBDIR} verschieben." #~ 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." #~ msgid "GNATS configuration needs change." #~ msgstr "GNATS-Konfiguration muss geändert werden." #~ 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«." debian/po/templates.pot0000644000000000000000000000675311700066745012347 0ustar # # 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: 2012-01-01 15:29+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=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 #. Type: note #. Description #: ../templates:2001 ../templates:3001 msgid "You should enable scripts in the Exim configuration." msgstr "" #. Type: note #. Description #: ../templates:2001 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:2001 msgid "in your file ${EXIMCONF}, in the section \"system_aliases\"." msgstr "" #. Type: note #. Description #: ../templates:3001 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:3001 msgid "to your file ${EXIMCONF}, in the section \"system_aliases\"." msgstr "" #. Type: note #. Description #: ../templates:4001 msgid "You should set up qmail aliases for GNATS." msgstr "" #. Type: note #. Description #: ../templates:4001 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:5001 msgid "You should set up GNATS mail aliases." msgstr "" #. Type: note #. Description #: ../templates:5001 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:5001 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: error #. Description #: ../templates:6001 msgid "Multiple listings of the \"gnats\" userid were found in ${PASSWDFILE}." msgstr "" #. Type: error #. Description #: ../templates:6001 msgid "You should have only one \"gnats\" userid in your password file." msgstr "" debian/po/gl.po0000644000000000000000000001423211700066744010555 0ustar # 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: 2012-01-01 15:29+0100\n" "PO-Revision-Date: 2008-05-16 19:58+0100\n" "Last-Translator: Jacobo Tarrio \n" "Language-Team: Galician \n" "Language: gl\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 #. Type: note #. Description #: ../templates:2001 ../templates:3001 msgid "You should enable scripts in the Exim configuration." msgstr "Debería activar os scripts na configuración de Exim." #. Type: note #. Description #: ../templates:2001 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:2001 msgid "in your file ${EXIMCONF}, in the section \"system_aliases\"." msgstr "no ficheiro ${EXIMCONF}, na sección \"system_aliases\"." #. Type: note #. Description #: ../templates:3001 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:3001 msgid "to your file ${EXIMCONF}, in the section \"system_aliases\"." msgstr "ao ficheiro ${EXIMCONF}, na sección \"system_aliases\"." #. Type: note #. Description #: ../templates:4001 msgid "You should set up qmail aliases for GNATS." msgstr "Debería configurar os alias de qmail para GNATS." #. Type: note #. Description #: ../templates:4001 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:5001 msgid "You should set up GNATS mail aliases." msgstr "Debería configurar os alias de correo de GNATS." #. Type: note #. Description #: ../templates:5001 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:5001 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: error #. Description #: ../templates:6001 msgid "Multiple listings of the \"gnats\" userid were found in ${PASSWDFILE}." msgstr "Atopáronse varias aparicións do usuario \"gnats\" en ${PASSWDFILE}." #. Type: error #. Description #: ../templates:6001 msgid "You should have only one \"gnats\" userid in your password file." msgstr "Só debería ter un usuario \"gnats\" no ficheiro de contrasinais." #~ msgid "Database moved to ${GNATSDBDIR}." #~ msgstr "Trasladouse a base de datos a ${GNATSDBDIR}." #~ 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." #~ msgid "You must move the database to ${GNATSDBDIR}." #~ msgstr "Debe trasladar a base de datos a ${GNATSDBDIR}." #~ 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." #~ msgid "GNATS configuration needs change." #~ msgstr "A configuración de GNATS precisa de cambios." #~ 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\"." debian/po/da.po0000644000000000000000000001434211700066744010541 0ustar # Danish translation gnats. # Copyright (C) 2010 gnats & nedenstående oversættere. # This file is distributed under the same license as the gnats package. # Joe Hansen , 2010. # msgid "" msgstr "" "Project-Id-Version: gnats\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2012-01-01 15:29+0100\n" "PO-Revision-Date: 2011-05-28 17:30+01:00\n" "Last-Translator: Joe Hansen \n" "Language-Team: Danish \n" "Language: \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 "Hvad er navnet på GNATS' side?" #. 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 "" "Dette navn skal være et enkelt ord, det bruges som en del af e-post-aliasset " "for levering af fejlrapporter." #. Type: note #. Description #. Type: note #. Description #: ../templates:2001 ../templates:3001 msgid "You should enable scripts in the Exim configuration." msgstr "Du skal aktivere skripter i Eximkonfigurationen." #. Type: note #. Description #: ../templates:2001 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 ser ud til, at du har installeret Exim, med skripthåndtering deaktiveret " "i dennes konfiguration. Hvis det er korrekt vil GNATS ikke være i stand til " "at modtage fejlrapporter via e-post. Jeg vil foreslå, at du fjerner " "kommentering fra en af linjerne" #. Type: note #. Description #: ../templates:2001 msgid "in your file ${EXIMCONF}, in the section \"system_aliases\"." msgstr "i din fil ${EXIMCONF}, i afsnittet »system_aliases«." #. Type: note #. Description #: ../templates:3001 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 ser ud til, at du har installeret Exim uden skripthåndtering aktiveret i " "dennes konfiguration. Hvis det er korrekt vil GNATS ikke være i stand til at " "modtage fejlrapporter via e-post. Jeg vil foreslå, at du tilføjer linjen" #. Type: note #. Description #: ../templates:3001 msgid "to your file ${EXIMCONF}, in the section \"system_aliases\"." msgstr "til din fil ${EXIMCONF}, i afsnittet »system_aliases«." #. Type: note #. Description #: ../templates:4001 msgid "You should set up qmail aliases for GNATS." msgstr "Du skal indstille qmail-aliaser for GNATS." #. Type: note #. Description #: ../templates:4001 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 ser ud til, at du bruger qmail som dit e-post-overførselsprogram. Det " "anbefales at tilføje de følgende linjer til din qmailbruger/" "qmailtildelingsfil:" #. Type: note #. Description #: ../templates:5001 msgid "You should set up GNATS mail aliases." msgstr "Du skal angive GNATS-post-aliasser." #. Type: note #. Description #: ../templates:5001 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 angives til at modtage fejlrapporter og databaseforespørgsler via " "e-post. Det ser dog ud til, at du bruger en postsender, som jeg ikke selv " "kan opsætte, så du må gøre det manuelt. De følgende adresser på lokalvært og " "passende handlinger for dem skal angives:" #. Type: note #. Description #: ../templates:5001 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: Omdirigere dette til GNATS-administrators adresse gnats-admin: alias " "for »gnatsfejl«: gennemsend (pipe) den til kommandoen »| /usr/lib/gnats/" "queue-pr -q« query-pr: gennemsend (pipe) den til kommandoen »| /usr/lib/" "gnats/mail-query« ${SITE}-gnats: alias for »fejl« (bugs)" #. Type: error #. Description #: ../templates:6001 msgid "Multiple listings of the \"gnats\" userid were found in ${PASSWDFILE}." msgstr "Flere oplysninger om »gnats« bruger-id blev fundet i ${PASSWDFILE}." #. Type: error #. Description #: ../templates:6001 msgid "You should have only one \"gnats\" userid in your password file." msgstr "Du skal kun have en »gnats« brugerid i din adgangskodefil." #~ msgid "Database moved to ${GNATSDBDIR}." #~ msgstr "Database flyttet til ${GNATSDBDIR}." #~ msgid "" #~ "A previous package version put the GNATS database under ${BADDIR}. It has " #~ "now been moved to the right location." #~ msgstr "" #~ "En tidligere pakkeversion placerer GNATS-databasen under ${BADDIR}. Den " #~ "er nu blevet flyttet til den korrekte placering." #~ msgid "You must move the database to ${GNATSDBDIR}." #~ msgstr "Du skal flytte databasen til ${GNATSDBDIR}." #~ 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 tidligere pakkeversion placerer GNATS-databasen under ${BADDIR}. Jeg " #~ "kunne ikke flytte den til den korrekte placering, så du må gøre det " #~ "manuelt." #~ msgid "GNATS configuration needs change." #~ msgstr "Konfiguration for GNATS kræver ændring." #~ 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 "" #~ "Bemærk venligst at nogle konfigurationsfiler til GNATS har ændret sig i " #~ "version 4. Du kan finde eksempler på de nye konfigurationsfiler i mappen " #~ "»/etc/gnats/defaults«." debian/po/it.po0000644000000000000000000001230712263516006010564 0ustar # Italian translation of gnats debconf messages. # Copyright (C) 2013, gnats package copyright holder # This file is distributed under the same license as the gnats package. # Beatrice Torracca , 2013. msgid "" msgstr "" "Project-Id-Version: gnats\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2012-01-01 15:29+0100\n" "PO-Revision-Date: 2013-08-15 15:37+0200\n" "Last-Translator: Beatrice Torracca \n" "Language-Team: Italian \n" "Language: it\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Virtaal 0.7.1\n" #. Type: string #. Description #: ../templates:1001 msgid "What is the name of the GNATS site?" msgstr "Qual è il nome del sito 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 "" "Questo nome dovrebbe essere costituito da un'unica parola; viene usato come " "parte dell'alias di posta elettronica per inoltrare le segnalazioni dei " "problemi." #. Type: note #. Description #. Type: note #. Description #: ../templates:2001 ../templates:3001 msgid "You should enable scripts in the Exim configuration." msgstr "Si dovrebbero abilitare gli script nella configurazione di Exim." #. Type: note #. Description #: ../templates:2001 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 "" "Sembra che Exim sia installato, con la gestione degli script disabilitata " "nella sua configurazione. Se ciò è vero, GNATS non potrà ricevere le " "segnalazioni di bug via posta elettronica. È suggerito decommentare una " "delle righe" #. Type: note #. Description #: ../templates:2001 msgid "in your file ${EXIMCONF}, in the section \"system_aliases\"." msgstr "nel proprio file ${EXIMCONF}, nella sezione «system_aliases»." #. Type: note #. Description #: ../templates:3001 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 "" "Sembra che Exim sia installato, senza l'abilitazione della gestione degli " "script nella sua configurazione. Se ciò è vero, GNATS non potrà ricevere le " "segnalazioni di bug via posta elettronica. È suggerito aggiungere la riga" #. Type: note #. Description #: ../templates:3001 msgid "to your file ${EXIMCONF}, in the section \"system_aliases\"." msgstr "al proprio file ${EXIMCONF}, nella sezione «system_aliases»." #. Type: note #. Description #: ../templates:4001 msgid "You should set up qmail aliases for GNATS." msgstr "Si dovrebbero impostare alias di qmail per GNATS." #. Type: note #. Description #: ../templates:4001 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 "" "Sembra che il sistema usi qmail come programma di trasferimento della posta. " "È raccomandato aggiungere le righe seguenti al proprio file users/assign di " "qmail:" #. Type: note #. Description #: ../templates:5001 msgid "You should set up GNATS mail aliases." msgstr "Si dovrebbero impostare alias di posta per GNATS." #. Type: note #. Description #: ../templates:5001 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 può essere impostato per ricevere segnalazioni di bug e interrogazioni " "al database attraverso la posta. Tuttavia, sembra che si stia usando un " "programma di posta che non può essere impostato automaticamente, perciò deve " "essere fatto manualmente. Devono essere impostati su localhost gli " "indirizzi seguenti e le azioni appropriate per essi:" #. Type: note #. Description #: ../templates:5001 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: ridirigerlo all'indirizzo dell'amministratore di GNATS; gnats-admin: " "alias per «gnats»; bugs: reindirizzarlo con una pipe al comando «| " "/usr/lib/gnats/queue-pr -q»; query-pr: reindirizzarlo con una pipe al " "comando «| /usr/lib/gnats/mail-query»; ${SITE}-gnats: alias per «bugs»" #. Type: error #. Description #: ../templates:6001 msgid "Multiple listings of the \"gnats\" userid were found in ${PASSWDFILE}." msgstr "" "Sono state trovate voci multiple per l'ID utente «gnats» in ${PASSWDFILE}." #. Type: error #. Description #: ../templates:6001 msgid "You should have only one \"gnats\" userid in your password file." msgstr "Il file delle password deve contenere un solo ID utente «gnats»." debian/po/fr.po0000644000000000000000000001607712263523715010574 0ustar # 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, 2013. msgid "" msgstr "" "Project-Id-Version: fr\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2012-01-01 15:29+0100\n" "PO-Revision-Date: 2013-07-28 18:08+0200\n" "Last-Translator: Christian Perrier \n" "Language-Team: French \n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=ISO-8859-15\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Lokalize 1.5\n" "Plural-Forms: nplurals=2; plural=(n > 1);\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 #. Type: note #. Description #: ../templates:2001 ../templates:3001 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:2001 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:2001 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:3001 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:3001 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:4001 msgid "You should set up qmail aliases for GNATS." msgstr "Dfinition des alias qmail pour GNATS" #. Type: note #. Description #: ../templates:4001 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:5001 msgid "You should set up GNATS mail aliases." msgstr "Dfinition des alias d'adresse GNATS" #. Type: note #. Description #: ../templates:5001 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:5001 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'adresse de l'administrateur GNATS\n" " gnats-admin : alias pour \"gnats\"\n" " bugs : envoie la commande \"/usr/lib/gnats/queue-pr -q\"\n" " query-pr : envoie la commande \"usr/lib/gnats/mail-query\"\n" " ${SITE}-gnats: alias pour \"bugs\"" #. Type: error #. Description #: ../templates:6001 msgid "Multiple listings of the \"gnats\" userid were found in ${PASSWDFILE}." msgstr "Dfinitions multiples de l'identifiant gnats dans ${PASSWDFILE}" #. Type: error #. Description #: ../templates:6001 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." #~ msgid "Database moved to ${GNATSDBDIR}." #~ msgstr "Base de donnes dplace vers ${GNATSDBDIR}" #~ 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." #~ msgid "You must move the database to ${GNATSDBDIR}." #~ msgstr "Dplacement ncessaire de la base de donnes vers ${GNATSDBDIR}" #~ 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." #~ msgid "GNATS configuration needs change." #~ msgstr "Modifications ncessaires de la configuration de GNATS" #~ 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." debian/po/eu.po0000644000000000000000000001527311700066744010572 0ustar # 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: 2012-01-01 15:29+0100\n" "PO-Revision-Date: 2008-05-15 11:31+0200\n" "Last-Translator: Piarres Beobide \n" "Language-Team: Euskara \n" "Language: \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 #. Type: note #. Description #: ../templates:2001 ../templates:3001 msgid "You should enable scripts in the Exim configuration." msgstr "Exim konfigurazioan script-ak gaitu beharko zenituzke." #. Type: note #. Description #: ../templates:2001 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:2001 msgid "in your file ${EXIMCONF}, in the section \"system_aliases\"." msgstr "zure ${EXIMCONF} fitxategiko, \"system_aliases\" atalean." #. Type: note #. Description #: ../templates:3001 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:3001 msgid "to your file ${EXIMCONF}, in the section \"system_aliases\"." msgstr "zure ${EXIMCONF} fitxategiko, \"system_aliases\" atalean." #. Type: note #. Description #: ../templates:4001 msgid "You should set up qmail aliases for GNATS." msgstr "Zuk qmail ezizenak GNATS-rentzat konfiguratu beharko zenituzke." #. Type: note #. Description #: ../templates:4001 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:5001 msgid "You should set up GNATS mail aliases." msgstr "GNATS ezizen datu-basea konfiguratu behar duzu." #. Type: note #. Description #: ../templates:5001 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:5001 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: error #. Description #: ../templates:6001 msgid "Multiple listings of the \"gnats\" userid were found in ${PASSWDFILE}." msgstr "" "\"gnats\" erabiltzailearen id-aren zerrendatze anitz aurkitu dira " "${PASSWDFILE} fitxategian." #. Type: error #. Description #: ../templates:6001 msgid "You should have only one \"gnats\" userid in your password file." msgstr "" "Bakarrik \"gnats\" erabiltzaile-id bat eduki behar duzu pasahitz fitxategian." #~ msgid "Database moved to ${GNATSDBDIR}." #~ msgstr "Datu-basea ${GNATSDBDIR}-ra mugitu da." #~ 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." #~ msgid "You must move the database to ${GNATSDBDIR}." #~ msgstr "Datu-basea ${GNATSDBDIR}-ra mugitu behar duzu." #~ 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." #~ msgid "GNATS configuration needs change." #~ msgstr "GNATS konfigurazioa aldatu egin behar da." #~ 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." debian/po/cs.po0000644000000000000000000001645411700066744010570 0ustar # # 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: 2012-01-01 15:29+0100\n" "PO-Revision-Date: 2005-07-25 18:38+0200\n" "Last-Translator: Martin Sin \n" "Language-Team: Czech \n" "Language: cs\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 #. Type: note #. Description #: ../templates:2001 ../templates:3001 msgid "You should enable scripts in the Exim configuration." msgstr "V konfiguraci Eximu byste měli povolit skripty." #. Type: note #. Description #: ../templates:2001 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:2001 msgid "in your file ${EXIMCONF}, in the section \"system_aliases\"." msgstr "ve vašem souboru ${EXIMCONF}, v sekci \"system_aliases\"." #. Type: note #. Description #: ../templates:3001 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:3001 msgid "to your file ${EXIMCONF}, in the section \"system_aliases\"." msgstr "do vašeho souboru ${EXIMCONF}, do sekce \"system_aliases\"." #. Type: note #. Description #: ../templates:4001 msgid "You should set up qmail aliases for GNATS." msgstr "Měli byste nastavit aliasy qmailu pro GNATS." #. Type: note #. Description #: ../templates:4001 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:5001 msgid "You should set up GNATS mail aliases." msgstr "Měli byste nastavit mailové aliasy GNATS." #. Type: note #. Description #: ../templates:5001 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:5001 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: error #. Description #: ../templates:6001 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: error #. Description #: ../templates:6001 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\"." #~ msgid "Database moved to ${GNATSDBDIR}." #~ msgstr "Databáze byla přesunuta do ${GNATSDBDIR}." #~ 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." #~ msgid "You must move the database to ${GNATSDBDIR}." #~ msgstr "Musíte přesunout databázi do ${GNATSDBDIR}." #~ 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ě." #~ msgid "GNATS configuration needs change." #~ msgstr "Potřebujete změnit konfiguraci GNATS." #~ 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:" debian/po/es.po0000644000000000000000000002007611700066744010565 0ustar # gnats po-debconf translation to Spanish # Copyright (C) 2005 Software in the Public Interest # This file is distributed under the same license as the gnats package. # # Changes: # - Initial translation # César Gómez Martín # # - 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: 2012-01-01 15:29+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" "Language: \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 #. Type: note #. Description #: ../templates:2001 ../templates:3001 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:2001 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:2001 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:3001 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:3001 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:4001 msgid "You should set up qmail aliases for GNATS." msgstr "Debería configurar los alias qmail para GNATS." #. Type: note #. Description #: ../templates:4001 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:5001 msgid "You should set up GNATS mail aliases." msgstr "Debería configurar los alias de correo de GNATS." #. Type: note #. Description #: ../templates:5001 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:5001 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: error #. Description #: ../templates:6001 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: error #. Description #: ../templates:6001 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." #~ msgid "Database moved to ${GNATSDBDIR}." #~ msgstr "Se ha movido la base de datos a ${GNATSDBDIR}." #~ 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." #~ msgid "You must move the database to ${GNATSDBDIR}." #~ msgstr "Debe mover la base de datos a ${GNATSDBDIR}." #~ 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." #~ msgid "GNATS configuration needs change." #~ msgstr "Se necesita cambiar la configuración de GNATS." #~ 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:" debian/gnats-user.emacsen-startup0000644000000000000000000000157211700026161014312 0ustar ;; ;; 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 function protect () { "$@" || true; } ############################################################################### # # Remove the 'gnats' system configuration when purging # if [ "$1" = "purge" ] && [ -d "@GNATSDBDIR@" ]; then rmdir "@GNATSDBDIR@" fi ############################################################################### # # Automatically added debhelper stuff # #DEBHELPER# debian/gnats.cron.daily0000644000000000000000000000017112263515570012273 0ustar #!/bin/sh su - gnats -s /bin/sh -c 'test -x /usr/lib/gnats/check-db && /usr/lib/gnats/check-db --all-databases; exit 0' debian/NEWS0000644000000000000000000000234011700026161007656 0ustar 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 debian/source/0000755000000000000000000000000011700036132010457 5ustar debian/source/format0000644000000000000000000000001411700036132011665 0ustar 3.0 (quilt) debian/gnats.cron.d0000644000000000000000000000023211700026161011376 0ustar # 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 debian/gnats-user.manpages0000644000000000000000000000055411700026161012771 0ustar 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 debian/patches/0000755000000000000000000000000012263522755010626 5ustar debian/patches/edit-pr-quote.patch0000644000000000000000000000124012263522274014337 0ustar Description: Fix a missing quote error in gnats/edit-pr Author: Christian Perrier Last-Update: 2014-01-09 Index: b/gnats/edit-pr.sh =================================================================== --- a/gnats/edit-pr.sh +++ b/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 debian/patches/getdate-semicolons.patch0000644000000000000000000065316612263522275015453 0ustar Description: Add missing semicolons to getdate.y and refresh Bison output Author: Michael Meskes Bug-Debian: http://bugs.debian.org/486813 Last-Update: 2014-01-09 Index: b/gnats/getdate.c =================================================================== --- a/gnats/getdate.c +++ b/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 */ + Index: b/gnats/fconfig.h =================================================================== --- a/gnats/fconfig.h +++ b/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 */ + + Index: b/gnats/getdate.y =================================================================== --- a/gnats/getdate.y +++ b/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 Index: b/gnats/fconfig.c =================================================================== --- a/gnats/fconfig.c +++ b/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" + + + debian/patches/gnatsd-ipv6.patch0000644000000000000000000000245512263522300014001 0ustar Description: Handle IPv6 addresses in gnatsd Author: Jonathan Guthrie Bug-Debian: http://bugs.debian.org/366890 Forwarded: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=366890#8 Applied-Upstream: http://cvs.savannah.gnu.org/viewvc/gnats/gnats/gnatsd.c?root=gnats&r1=1.51&r2=1.52 Last-Update: 2014-01-09 Index: b/gnats/gnatsd.c =================================================================== --- a/gnats/gnatsd.c +++ b/gnats/gnatsd.c @@ -287,7 +287,7 @@ /* */ static char * -get_name (struct in_addr *host) +get_name (struct in_addr *host, int type) { char *buf; int i; @@ -296,7 +296,7 @@ char **pp; #endif - hp = gethostbyaddr ((char *) host, sizeof (*host), AF_INET); + hp = gethostbyaddr ((char *) host, sizeof (*host), type); if (hp == NULL) { return NULL; @@ -617,7 +617,7 @@ } else { - if (s.sin_family != AF_INET) + if ((s.sin_family != AF_INET) && (s.sin_family != AF_INET6)) { syslog (LOG_ERR, "%s: bad address family %ld", "?", (long) s.sin_family); @@ -628,7 +628,7 @@ else { current_addr = (char *) inet_ntoa (s.sin_addr); - current_host = get_name (&s.sin_addr); + current_host = get_name (&s.sin_addr, s.sin_family); if (current_host == NULL) { current_host = current_addr; debian/patches/mkdb-bashism.patch0000644000000000000000000000120012263522276014177 0ustar Description: Remove bashism from mkdb Author: Michael Meskes Bug-Debian: http://bugs.debian.org/535874 Last-Update: 2014-01-09 Index: b/gnats/mkdb.sh =================================================================== --- a/gnats/mkdb.sh +++ b/gnats/mkdb.sh @@ -60,7 +60,7 @@ dbdir=`grep "^${database}:" $DATABASES | sed -n 's/^'${database}':[^:]*:\([^:]*\)$/\1/p'` if [ -z "${dbdir}" ] then - echo "$prog: No proper entry for \`${database}' in \`$DATABASES':\n"`grep "^${database}:" $DATABASES` + echo "$prog: No proper entry for "${database}" in "$DATABASES":\n"`grep "^${database}:" $DATABASES` exit 1 fi debian/patches/series0000644000000000000000000000015012263522454012033 0ustar edit-pr-quote.patch getdate-semicolons.patch mkdb-bashism.patch gnatsd-ipv6.patch format-security.patch debian/patches/format-security.patch0000644000000000000000000000100612263522755015001 0ustar Description: Pacify "gcc -Wformat-security" in process_format Author: Colin Watson Forwarded: no Last-Update: 2014-01-09 Index: b/gnats/query.c =================================================================== --- a/gnats/query.c +++ b/gnats/query.c @@ -1250,7 +1250,7 @@ if (fmt->fields == NULL) { write_entire_header (fp, pr, eolTerminator); - fprintf (fp, eolTerminator); + fputs (eolTerminator, fp); writeFullPR (fp, pr, fmt->rawQuery, eolTerminator); } else debian/compat0000644000000000000000000000000211700036143010357 0ustar 8 debian/gnats-user.dirs0000644000000000000000000000033111700026161012130 0ustar 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 debian/control0000644000000000000000000000446112263520242010574 0ustar Source: gnats Section: devel Priority: extra Maintainer: Debian QA Group Build-Depends: debhelper (>= 8), cdbs (>= 0.4.21), autotools-dev, dh-autoreconf, m4, texinfo, bison, flex Standards-Version: 3.8.3 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: 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, dpkg (>= 1.15.4) | install-info Pre-Depends: debconf, ${misc:Depends} Suggests: gnatsweb Description: 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. debian/changelog0000644000000000000000000007720712263523721011060 0ustar gnats (4.1.0-3) unstable; urgency=medium * QA upload. * Pass "-s /bin/sh" to "su gnats" to cope with the change of the gnats user's shell in base-passwd 3.5.30. * Remove config.guess and config.sub from Debian patches, and instead build-depend on autotools-dev to ensure that cdbs will update them. * Use dh-autoreconf to update configure scripts, rather than a gigantic manual patch. * Split what remained of debian/patches/debian-changes into separate patches with proper DEP-3 headers. * Pacify "gcc -Wformat-security" in process_format. * Debconf translations: - French (thanks, Christian Perrier; closes: #718198). - Italian (thanks, Beatrice Torracca; closes: #719803). -- Colin Watson Thu, 09 Jan 2014 13:44:48 +0000 gnats (4.1.0-2) unstable; urgency=low * QA upload * Modernize package: - Use 3.0 source format - Bump debhelper compatibility to 8 - No leading article in package description - Drop antique directory transition handling in preinst. This allows dropping two awfully worded debconf templates. Yay. - Drop antique upgrade debconf note for v3->v4. Yay (bis). - Turn gnats/user_multiple debconnf note into an error - I was that close to remove the stupid debconf notes in this package. Note to self: do it for next QA upload. * Debconf translations: - Danish (Joe Hansen). Closes: #628232 -- Christian Perrier Sun, 01 Jan 2012 15:31:21 +0100 gnats (4.1.0-1) unstable; urgency=low * QA upload * Run "autoreconf -vfi" to fix compilation on GNU/kFreeBSD, thanks to Cyril Brulebois for the patch (closes: #558207). * Applied to the file gnats/gnatsd.c the diff between gnats upstream cvs versions 1.51 and 1.52. This should make it safe for ipv6 addresses. Thanks to Jonathan Guthrie for the patch (closes: #366890). * Install manual and FAQ into the gnats package by doc-base, using doc-base files submitted by Esteban Manchado Velázquez (thanks!), but setting section to "Project Management". Remove direct dhelp stuff in postinst and debian/rules. (closes: #484001) * Installation of info documents: - depend on dpkg (>= 1.15.4) | install-info - remove explicit invocation of install-info from postint -- Ralf Treinen Wed, 24 Feb 2010 21:34:41 +0100 gnats (4.1.0-0.7) unstable; urgency=high * Non-maintainer upload. * Orphaned package by setting maintainer to Debian QA, closes: #566491 -- Michael Meskes Sun, 24 Jan 2010 11:52:11 +0100 gnats (4.1.0-0.6) unstable; urgency=low * Non-maintainer upload. * Removed bashism from script. Closes: #535874 * Bumped Standards-Version, no changes needed. -- Michael Meskes Sat, 23 Jan 2010 15:02:14 +0100 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