mirror of
https://git.savannah.gnu.org/git/bison.git
synced 2026-03-21 18:23:03 +00:00
Get files from the gnulib and po repositories, instead of relying
on them being in our CVS. Upgrade to latest versions of gnulib and Automake.
This commit is contained in:
146
ChangeLog
146
ChangeLog
@@ -1,3 +1,148 @@
|
|||||||
|
2004-04-28 Paul Eggert <eggert@twinsun.com>
|
||||||
|
|
||||||
|
Get files from the gnulib and po repositories, instead of relying
|
||||||
|
on them being in our CVS. Upgrade to latest versions of gnulib
|
||||||
|
and Automake.
|
||||||
|
|
||||||
|
* Makefile.am (SUBDIRS): Remove m4; Automake now does m4.
|
||||||
|
* bootstrap: Bootstrap from gnulib and po repositories.
|
||||||
|
Much of this code was stolen from GNU diff and GNU tar's bootstrap.
|
||||||
|
* README-cvs: Document these changes. Remove version numbers from
|
||||||
|
mentions of build tools, since they change so often. Mention Flex.
|
||||||
|
|
||||||
|
* configure.ac (AC_CONFIG_MACRO_DIR): Add, with m4 as arg.
|
||||||
|
(gl_USE_SYSTEM_EXTENSIONS): Add.
|
||||||
|
(AC_GNU_SOURCE): Remove; no longer needed, as gl_USE_SYSTEM_EXTENSIONS
|
||||||
|
does this for us.
|
||||||
|
(AC_ISC_POSIX, AC_MINIX): Remove; we no longer support these
|
||||||
|
ancient OSes, as they get in the way of latest Autoconf & gnulib.
|
||||||
|
(AC_HEADER_STDC): Remove: we now assume C89 or better.
|
||||||
|
(AC_CHECK_HEADERS_ONCE): Use instead of AC_CHECK_HEADERS.
|
||||||
|
Do not check for C89 headers, except for locale.h which is used
|
||||||
|
by the Yacc library and must port to K&R hosts.
|
||||||
|
(AC_CHECK_FUNCS_ONCE): Use instead of AC_CHECK_FUNCS.
|
||||||
|
Do not check for C89 functions, except for setlocale which is
|
||||||
|
used by the Yacc library.
|
||||||
|
(AC_CHECK_DECLS, AC_REPLACE_FUNCS): Remove; no longer needed.
|
||||||
|
(gl_DIRNAME, gl_ERROR, gl_FUNC_ALLOCA, gl_FUNC_MEMCHR,
|
||||||
|
gl_FUNC_MEMRCHR, gl_FUNC_STPCPY, gl_FUNC_STRNLEN, gl_FUNC_STRTOL,
|
||||||
|
gl_GETOPT, gl_HASH, gl_MBSWIDTH, gl_OBSTACK, gl_QUOTE,
|
||||||
|
gl_QUOTEARG, gl_XALLOC, jm_FUNC_GLIBC_UNLOCKED_IO, jm_FUNC_MALLOC,
|
||||||
|
AM_GNU_GETTEXT): Remove; now done by:
|
||||||
|
(GNULIB_AUTOCONF_SNIPPET): Add. "bootstrap" builds this for us.
|
||||||
|
(AC_CONFIG_FILES): Remove m4/Makefile, as Automake now does this
|
||||||
|
for us.
|
||||||
|
|
||||||
|
* lib/Makefile.am: Include gnulib.mk, built for us by "bootstrap".
|
||||||
|
(BUILT_SOURCES, EXTRA_DIST, MOSTLYCLEANFILES):
|
||||||
|
Define to empty, as gnulib.mk will do the rest for us.
|
||||||
|
($(libbison_a_OBJECTS), stdbool.h): Remove, as gnulib.mk does this
|
||||||
|
for us.
|
||||||
|
(libbison_a_SOURCES): Define to $(lib_SOURCES) now.
|
||||||
|
(lib_SOURCES): New symbol, containing only the non-gnulib libs.
|
||||||
|
|
||||||
|
* src/files.c: Include gnulib's xstrndup.h.
|
||||||
|
|
||||||
|
* src/system.h (MALLOC): Use xnmalloc, for better overflow checking.
|
||||||
|
(REALLOC): Use xnrealloc, for likewise.
|
||||||
|
(xstrndup, stpcpy): Remove decls, as gnulib does this for us now.
|
||||||
|
(strnlen, memrchr): Remove decls; functions no longer used.
|
||||||
|
Include <stpcpy.h>.
|
||||||
|
|
||||||
|
* config/depcomp, config/install-sh, lib/alloca.c, lib/argmatch.c,
|
||||||
|
lib/argmatch.h, lib/basename.c, lib/dirname.c, lib/dirname.h,
|
||||||
|
lib/error.c, lib/error.h, lib/getopt.c, lib/getopt.h,
|
||||||
|
lib/getopt1.c, lib/gettext.h, lib/hash.c, lib/hash.h,
|
||||||
|
lib/malloc.c, lib/mbswidth.c, lib/mbswidth.h, lib/memchr.c,
|
||||||
|
lib/memcmp.c, lib/memrchr.c, lib/obstack.c, lib/obstack.h,
|
||||||
|
lib/quote.c, lib/quote.h, lib/quotearg.c, lib/quotearg.h,
|
||||||
|
lib/realloc.c, lib/stdbool_.h, lib/stpcpy.c, lib/strcasecmp.c,
|
||||||
|
lib/strchr.c, lib/strncasecmp.c, lib/strnlen.c, lib/strrchr.c,
|
||||||
|
lib/strspn.c, lib/strtol.c, lib/strtoul.c, lib/unlocked-io.h,
|
||||||
|
lib/xalloc.h, lib/xmalloc.c, lib/xstrdup.c, lib/xstrndup.c,
|
||||||
|
m4/Makefile.am, m4/alloca.m4, m4/dirname.m4, m4/dos.m4,
|
||||||
|
m4/error.m4, m4/getopt.m4, m4/hash.m4, m4/malloc.m4,
|
||||||
|
m4/mbrtowc.m4, m4/mbswidth.m4, m4/memchr.m4, m4/memcmp.m4,
|
||||||
|
m4/memrchr.m4, m4/obstack.m4, m4/onceonly.m4, m4/prereq.m4,
|
||||||
|
m4/quote.m4, m4/quotearg.m4, m4/realloc.m4, m4/stdbool.m4,
|
||||||
|
m4/stpcpy.m4, m4/strnlen.m4, m4/strtol.m4, m4/strtoul.m4,
|
||||||
|
m4/unlocked-io.m4, m4/xalloc.m4, po/LINGUAS, po/Makefile.in.in,
|
||||||
|
po/Makevars, po/da.po, po/de.po, po/es.po, po/et.po, po/fr.po,
|
||||||
|
po/hr.po, po/id.po, po/it.po, po/ja.po, po/ms.po, po/nl.po,
|
||||||
|
po/pt_BR.po, po/ro.po, po/ru.po, po/sv.po, po/tr.po:
|
||||||
|
Remove, as these files are now generated automatically
|
||||||
|
by bootstrap or automake.
|
||||||
|
|
||||||
|
* po/ChangeLog: Remove: all but one entry was a duplicate
|
||||||
|
of this file, and I moved that 2000-11-02 entry here.
|
||||||
|
|
||||||
|
* config/.cvsignore: Add Makefile, depcomp, install-sh.
|
||||||
|
* lib/.cvsignore: Add alloca.c, alloca.h, alloca_.h, argmatch.c,
|
||||||
|
argmatch.h, basename.c, dirname.c, dirname.h, error.c, error.h,
|
||||||
|
exit.h, exitfail.c, exitfail.h, getopt.c, getopt.h, getopt1.c,
|
||||||
|
getopt_int.h, gettext.h, gnulib.mk, hard-locale.c, hard-locale.h,
|
||||||
|
hash.c, hash.h, malloc.c, mbswidth.c, mbswidth.h, memchr.c,
|
||||||
|
memcmp.c, memrchr.c, obstack.c, obstack.h, quote.c, quote.h,
|
||||||
|
quotearg.c, quotearg.h, realloc.c, stdbool_.h, stpcpy.c, stpcpy.h,
|
||||||
|
strcasecmp.c, strchr.c, stripslash.c, strncasecmp.c, strndup.c,
|
||||||
|
strnlen.c, strrchr.c, strspn.c, strtol.c, strtoul.c,
|
||||||
|
unlocked-io.h, xalloc.h, xmalloc.c, xstrdup.c, xstrndup.c,
|
||||||
|
xstrndup.h.
|
||||||
|
* m4/.cvsignore: Remove Makefile, Makefile.in. Add alloca.m4,
|
||||||
|
dirname.m4, dos.m4, error.m4, getopt.m4, hash.m4, mbrtowc.m4,
|
||||||
|
mbswidth.m4, obstack.m4, onceonly.m4, quote.m4, quotearg.m4,
|
||||||
|
stdbool.m4, stpcpy.m4, strnlen.m4, unlocked-io.m4, xalloc.m4.
|
||||||
|
* po/.cvsignore: Add *.po, LINGUAS, Makefile.in.in, Makevars.
|
||||||
|
* src/.cvsignore: Remove *_.c.
|
||||||
|
|
||||||
|
|
||||||
|
* Makefile.maint (GZIP_ENV): Don't use --rsyncable if gzip doesn't
|
||||||
|
support it. (The latest stable gzip doesn't.)
|
||||||
|
|
||||||
|
2004-04-27 Paul Eggert <eggert@twinsun.com>
|
||||||
|
|
||||||
|
* data/lalr1.cc (Parser::stos_) [! YYDEBUG]: Define even in this
|
||||||
|
case, as stos_ is now used by destructors due to the 2004-02-09
|
||||||
|
change.
|
||||||
|
|
||||||
|
Remove more K&R C support.
|
||||||
|
* lib/libiberty.y (PARAMS): Remove. All uses removed.
|
||||||
|
* lib/subpipe.c (errno): Remove decl.
|
||||||
|
Include <stdlib.h> unconditionally.
|
||||||
|
(EXIT_FAILURE): Remove macro.
|
||||||
|
* src/complain.c (vfprintf, strerror): Remove.
|
||||||
|
* src/system.h: Include limits.h, stdlib.h, string.h, locale.h
|
||||||
|
unconditionally.
|
||||||
|
(EXIT_FAILURE, EXIT_SUCCESS, setlocale): Remove defns.
|
||||||
|
Use latest Autoconf recommendations for including inttypes.h, stdint.h.
|
||||||
|
(strchr, strspn, memchr): Remove decls.
|
||||||
|
* tests/calc.at (_AT_DATA_CALC_Y): Include stdlib.h, string.h
|
||||||
|
unconditionally. Do not declare perror.
|
||||||
|
* tests/conflicts.at (%nonassoc and eof): Include stdlib.h
|
||||||
|
unconditionally.
|
||||||
|
|
||||||
|
* src/complain.c (_): Remove useless defn, as system.h defines this.
|
||||||
|
|
||||||
|
* lib/bitset.h (__INT_TO_PTR): Remove; workaround no longer needed
|
||||||
|
with latest obstack.h.
|
||||||
|
* lib/ebitset.c (ebitset_elt_alloc): Don't bother to cast args
|
||||||
|
to procedure types, as obstack.h now does that for us.
|
||||||
|
* lib/lbitset.c (lbitset_elt_alloc): Likewise.
|
||||||
|
|
||||||
|
* lib/subpipe.h [HAVE_SYS_TYPES_H]: Include <sys/types.h>,
|
||||||
|
so that this include file can stand alone.
|
||||||
|
* lib/subpipe.c: Do not include <sys/types.h>, as subpipe.h
|
||||||
|
does this now. Include subpipe.h first after config.h, to
|
||||||
|
test whether it can stand alone.
|
||||||
|
|
||||||
|
* tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Don't
|
||||||
|
declare yyerror when using lalr.cc, as GCC 3.4.0 warns about the
|
||||||
|
unused declaration.
|
||||||
|
|
||||||
|
* tests/synclines.at (%union synch line): Put a dummy member in
|
||||||
|
the union, because empty unions aren't allowed in C. Caught
|
||||||
|
by GCC 3.4.0.
|
||||||
|
|
||||||
2004-04-13 Jim Meyering <jim@meyering.net>
|
2004-04-13 Jim Meyering <jim@meyering.net>
|
||||||
|
|
||||||
* src/conflicts.c (conflicts_print): Correct format string typo:
|
* src/conflicts.c (conflicts_print): Correct format string typo:
|
||||||
@@ -10179,6 +10324,7 @@
|
|||||||
obstacks.
|
obstacks.
|
||||||
(output_token_defines, reader_output_yylsp): Use obstacks.
|
(output_token_defines, reader_output_yylsp): Use obstacks.
|
||||||
* src/system.h (obstack_fgrow3): New.
|
* src/system.h (obstack_fgrow3): New.
|
||||||
|
* po/POTFILES.in: Adjust.
|
||||||
|
|
||||||
2000-11-01 Akim Demaille <akim@epita.fr>
|
2000-11-01 Akim Demaille <akim@epita.fr>
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
## Process this file with automake to produce Makefile.in -*-Makefile-*-
|
## Process this file with automake to produce Makefile.in -*-Makefile-*-
|
||||||
## Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc.
|
## Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
|
||||||
|
|
||||||
## This program is free software; you can redistribute it and/or modify
|
## This program is free software; you can redistribute it and/or modify
|
||||||
## it under the terms of the GNU General Public License as published by
|
## it under the terms of the GNU General Public License as published by
|
||||||
@@ -18,7 +18,7 @@
|
|||||||
|
|
||||||
ACLOCAL_AMFLAGS = -I m4
|
ACLOCAL_AMFLAGS = -I m4
|
||||||
|
|
||||||
SUBDIRS = config po lib data src doc m4 tests
|
SUBDIRS = config po lib data src doc tests
|
||||||
|
|
||||||
EXTRA_DIST = REFERENCES OChangeLog Makefile.maint GNUmakefile Makefile.cfg
|
EXTRA_DIST = REFERENCES OChangeLog Makefile.maint GNUmakefile Makefile.cfg
|
||||||
|
|
||||||
|
|||||||
20
README-cvs
20
README-cvs
@@ -6,15 +6,13 @@ Bison.
|
|||||||
* Requirements
|
* Requirements
|
||||||
|
|
||||||
Only the sources are installed in the CVS repository (to ease the
|
Only the sources are installed in the CVS repository (to ease the
|
||||||
maintenance, merges etc.), therefore you will have to the maintainer
|
maintenance, merges etc.), therefore you will have to get the latest
|
||||||
tools we depend upon:
|
stable versions of the maintainer tools we depend upon, including:
|
||||||
|
|
||||||
- Automake 1.7
|
|
||||||
|
|
||||||
- Autoconf 2.57
|
|
||||||
|
|
||||||
- Gettext 0.12.1
|
|
||||||
|
|
||||||
|
- Automake
|
||||||
|
- Autoconf
|
||||||
|
- Flex
|
||||||
|
- Gettext
|
||||||
- CVS Bison itself
|
- CVS Bison itself
|
||||||
|
|
||||||
Only building the initial full source tree will be a bit painful,
|
Only building the initial full source tree will be a bit painful,
|
||||||
@@ -55,19 +53,19 @@ If you experience problems, I suggest the following:
|
|||||||
1. Do a regular CVS checkout
|
1. Do a regular CVS checkout
|
||||||
|
|
||||||
2. Fetch a recent tarball in:
|
2. Fetch a recent tarball in:
|
||||||
http://www.lrde.epita.fr/~akim/download/
|
ftp://alpha.gnu.org/gnu/bison/
|
||||||
|
|
||||||
3. Extract it
|
3. Extract it
|
||||||
|
|
||||||
4. Override the content of your checkout with the content of this
|
4. Override the content of your checkout with the content of this
|
||||||
tarball, i.e.:
|
tarball, i.e.:
|
||||||
cp -r bison-1.49b/* bison-cvs
|
cp -r bison-1.875c/* bison-cvs
|
||||||
|
|
||||||
5. Proceed on ./configure && make etc.
|
5. Proceed on ./configure && make etc.
|
||||||
|
|
||||||
-----
|
-----
|
||||||
|
|
||||||
Copyright (C) 2002, 2003 Free Software Foundation, Inc.
|
Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc.
|
||||||
|
|
||||||
This file is part of GNU Bison.
|
This file is part of GNU Bison.
|
||||||
|
|
||||||
|
|||||||
223
bootstrap
223
bootstrap
@@ -1,6 +1,223 @@
|
|||||||
#! /bin/sh
|
#! /bin/sh
|
||||||
|
|
||||||
echo "Bootstrapping CVS Bison..."
|
# Bootstrap this package from CVS.
|
||||||
|
|
||||||
echo "running: autoreconf --verbose --install --force"
|
# Copyright (C) 2003, 2004 Free Software Foundation, Inc.
|
||||||
autoreconf --verbose --install --force
|
|
||||||
|
# This program is free software; you can 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.
|
||||||
|
|
||||||
|
# Written by Paul Eggert.
|
||||||
|
|
||||||
|
package=bison
|
||||||
|
|
||||||
|
# Parse options.
|
||||||
|
|
||||||
|
for option
|
||||||
|
do
|
||||||
|
case $option in
|
||||||
|
--help)
|
||||||
|
echo "$0: usage: $0 [--gnulib-srcdir=DIR] [--cvs-user=USERNAME] [--skip-po]"
|
||||||
|
exit;;
|
||||||
|
--gnulib-srcdir=*)
|
||||||
|
GNULIB_SRCDIR=`expr "$1" : '--gnulib-srcdir=\(.*\)'`;;
|
||||||
|
--cvs-user=*)
|
||||||
|
CVS_USER=`expr "$1" : '--cvs-user=\(.*\)'`;;
|
||||||
|
--skip-po)
|
||||||
|
SKIP_PO=t;;
|
||||||
|
*)
|
||||||
|
echo >&2 "$0: $option: unknown option"
|
||||||
|
exit 1;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
|
echo "$0: Bootstrapping CVS $package..."
|
||||||
|
|
||||||
|
build_cvs_prefix() {
|
||||||
|
CVS_PREFIX=:${1}:
|
||||||
|
if [ "${2}" != - ]; then
|
||||||
|
CVS_PREFIX=${CVS_PREFIX}${2}@
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# Get gnulib files.
|
||||||
|
|
||||||
|
case ${GNULIB_SRCDIR--} in
|
||||||
|
-)
|
||||||
|
if [ ! -d gnulib ]; then
|
||||||
|
echo "$0: getting gnulib files..."
|
||||||
|
|
||||||
|
trap exit 1 2 13 15
|
||||||
|
trap 'rm -fr gnulib; exit 1' 0
|
||||||
|
|
||||||
|
case ${CVS_AUTH-anoncvs} in
|
||||||
|
anoncvs)
|
||||||
|
CVS_PREFIX='anoncvs@';;
|
||||||
|
ssh)
|
||||||
|
CVS_PREFIX="$CVS_USER${CVS_USER+@}";;
|
||||||
|
*)
|
||||||
|
echo "$0: $CVS_AUTH: Unknown CVS access method" >&2
|
||||||
|
exit 1;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
case $CVS_RSH in
|
||||||
|
'') export CVS_RSH=ssh;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
cvs -z3 -q -d ${CVS_PREFIX}subversions.gnu.org:/cvsroot/gnulib co gnulib || exit
|
||||||
|
|
||||||
|
trap 0
|
||||||
|
fi
|
||||||
|
GNULIB_SRCDIR=gnulib
|
||||||
|
esac
|
||||||
|
|
||||||
|
<$GNULIB_SRCDIR/gnulib-tool || exit
|
||||||
|
|
||||||
|
gnulib_modules='
|
||||||
|
alloca
|
||||||
|
argmatch
|
||||||
|
dirname
|
||||||
|
error
|
||||||
|
getopt
|
||||||
|
hard-locale
|
||||||
|
hash
|
||||||
|
malloc
|
||||||
|
mbswidth
|
||||||
|
obstack
|
||||||
|
quote
|
||||||
|
quotearg
|
||||||
|
stdbool
|
||||||
|
stpcpy
|
||||||
|
xalloc
|
||||||
|
xstrndup
|
||||||
|
'
|
||||||
|
|
||||||
|
previous_gnulib_modules=
|
||||||
|
while [ "$gnulib_modules" != "$previous_gnulib_modules" ]; do
|
||||||
|
previous_gnulib_modules=$gnulib_modules
|
||||||
|
gnulib_modules=`
|
||||||
|
(echo "$gnulib_modules"
|
||||||
|
for gnulib_module in $gnulib_modules; do
|
||||||
|
$GNULIB_SRCDIR/gnulib-tool --extract-dependencies $gnulib_module
|
||||||
|
done) | sort -u
|
||||||
|
`
|
||||||
|
done
|
||||||
|
|
||||||
|
gnulib_files=`
|
||||||
|
(for gnulib_module in $gnulib_modules; do
|
||||||
|
$GNULIB_SRCDIR/gnulib-tool --extract-filelist $gnulib_module
|
||||||
|
done) | sort -u
|
||||||
|
`
|
||||||
|
|
||||||
|
gnulib_dirs=`echo "$gnulib_files" | sed 's,/[^/]*$,,' | sort -u`
|
||||||
|
mkdir -p $gnulib_dirs || exit
|
||||||
|
|
||||||
|
for gnulib_file in $gnulib_files; do
|
||||||
|
dest=$gnulib_file
|
||||||
|
|
||||||
|
case $gnulib_file in
|
||||||
|
m4/onceonly_2_57.m4) dest=m4/onceonly.m4;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
rm -f $dest &&
|
||||||
|
echo "$0: Copying file $GNULIB_SRCDIR/$gnulib_file" &&
|
||||||
|
cp -p $GNULIB_SRCDIR/$gnulib_file $dest || exit
|
||||||
|
done
|
||||||
|
|
||||||
|
|
||||||
|
# Get translations.
|
||||||
|
|
||||||
|
case $SKIP_PO in
|
||||||
|
'')
|
||||||
|
echo "$0: getting translations into po..."
|
||||||
|
(cd po &&
|
||||||
|
rm -f dummy `ls | sed -n '/\.gmo$/p; /\.po/p'` &&
|
||||||
|
wget -nv -nd -r -l 1 -A .po -C off \
|
||||||
|
http://www2.iro.umontreal.ca/~gnutra/po/maint/$package/ &&
|
||||||
|
ls *.po | sed 's/\.po$//' >LINGUAS
|
||||||
|
) || exit;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
|
||||||
|
# Generate autoconf and automake snippets.
|
||||||
|
|
||||||
|
(echo '# This file is generated automatically by "bootstrap".' &&
|
||||||
|
echo 'AC_DEFUN([GNULIB_AUTOCONF_SNIPPET],[' &&
|
||||||
|
$GNULIB_SRCDIR/gnulib-tool --extract-autoconf-snippet $gnulib_modules &&
|
||||||
|
echo '])'
|
||||||
|
) >m4/gnulib.m4 || exit
|
||||||
|
|
||||||
|
(echo '# This file is generated automatically by "bootstrap".' &&
|
||||||
|
$GNULIB_SRCDIR/gnulib-tool --extract-automake-snippet $gnulib_modules
|
||||||
|
) >lib/gnulib.mk || exit
|
||||||
|
|
||||||
|
|
||||||
|
# Reconfigure, getting other files.
|
||||||
|
|
||||||
|
echo "$0: autoreconf --verbose --install --force ..."
|
||||||
|
autoreconf --verbose --install --force || exit
|
||||||
|
|
||||||
|
# We don't need intl, so remove it.
|
||||||
|
echo "$0: rm -fr intl ..."
|
||||||
|
rm -fr intl || exit
|
||||||
|
|
||||||
|
|
||||||
|
# Patch what appears to be a bug in gettext 0.14.1;
|
||||||
|
# remove this once the bug is fixed.
|
||||||
|
grep @top_builddir@ po/Makefile.in.in >/dev/null || {
|
||||||
|
echo "$0: prepending 'top_builddir=@top_builddir@' to po/Makefile.in.in ... "
|
||||||
|
old_contents=$(cat po/Makefile.in.in) || exit
|
||||||
|
cat >po/Makefile.in.in <<EOF
|
||||||
|
top_builddir=@top_builddir@
|
||||||
|
$old_contents
|
||||||
|
EOF
|
||||||
|
}
|
||||||
|
|
||||||
|
# Put bug-reporting address into po/Makevars.
|
||||||
|
echo "$0: sed '/^MSGID_BUGS_ADDRESS *=/s/=.*/= bug-bison@gnu.org/' po/Makevars.template >po/Makevars ..."
|
||||||
|
sed '/^MSGID_BUGS_ADDRESS *=/s/=.*/= bug-bison@gnu.org/' po/Makevars.template >po/Makevars
|
||||||
|
|
||||||
|
|
||||||
|
# if src/parse-gram.[ch] are out of date, rebuild them.
|
||||||
|
parse_gram_y=$(find src/parse-gram.y \
|
||||||
|
'(' -newer src/parse-gram.c -o -newer src/parse-gram.h ')' \
|
||||||
|
-print) || exit
|
||||||
|
case $parse_gram_y in
|
||||||
|
?*)
|
||||||
|
echo "$0: warning: bootstrapping with old src/parse-gram.[ch] files."
|
||||||
|
|
||||||
|
echo "$0: touch -c src/parse-gram.[ch] ... "
|
||||||
|
touch -c src/parse-gram.[ch] || exit
|
||||||
|
|
||||||
|
echo "$0: ./configure --disable-nls ..."
|
||||||
|
./configure --disable-nls || exit
|
||||||
|
|
||||||
|
echo "$0: (cd lib && make) ..."
|
||||||
|
(cd lib && make) || exit
|
||||||
|
|
||||||
|
echo "$0: (cd src && make) ..."
|
||||||
|
(cd src && make) || exit
|
||||||
|
|
||||||
|
echo "$0: rm -f src/parse-gram.c src/parse-gram.h ..."
|
||||||
|
rm -f src/parse-gram.c src/parse-gram.h || exit
|
||||||
|
|
||||||
|
echo "$0: (cd src && make parse-gram.c parse-gram.h) ..."
|
||||||
|
(cd src && make parse-gram.c parse-gram.h) || exit
|
||||||
|
|
||||||
|
echo "$0: make distclean ..."
|
||||||
|
make distclean || exit;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
echo "$0: done. Now you can run './configure'."
|
||||||
|
|||||||
@@ -1,11 +1,13 @@
|
|||||||
Makefile
|
|
||||||
*.t
|
*.t
|
||||||
|
Makefile
|
||||||
Makefile.in
|
Makefile.in
|
||||||
mkinstalldirs
|
|
||||||
missing
|
|
||||||
config.sub
|
|
||||||
config.guess
|
config.guess
|
||||||
mdate-sh
|
|
||||||
texinfo.tex
|
|
||||||
config.rpath
|
config.rpath
|
||||||
|
config.sub
|
||||||
|
depcomp
|
||||||
|
install-sh
|
||||||
|
mdate-sh
|
||||||
|
missing
|
||||||
|
mkinstalldirs
|
||||||
|
texinfo.tex
|
||||||
ylwrap
|
ylwrap
|
||||||
|
|||||||
520
config/depcomp
520
config/depcomp
@@ -1,520 +0,0 @@
|
|||||||
#! /bin/sh
|
|
||||||
# depcomp - compile a program generating dependencies as side-effects
|
|
||||||
|
|
||||||
scriptversion=2003-11-08.23
|
|
||||||
|
|
||||||
# Copyright (C) 1999, 2000, 2003 Free Software Foundation, Inc.
|
|
||||||
|
|
||||||
# This program is free software; you can 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 to the GNU General Public License, if you
|
|
||||||
# distribute this file as part of a program that contains a
|
|
||||||
# configuration script generated by Autoconf, you may include it under
|
|
||||||
# the same distribution terms that you use for the rest of that program.
|
|
||||||
|
|
||||||
# Originally written by Alexandre Oliva <oliva@dcc.unicamp.br>.
|
|
||||||
|
|
||||||
case $1 in
|
|
||||||
'')
|
|
||||||
echo "$0: No command. Try \`$0 --help' for more information." 1>&2
|
|
||||||
exit 1;
|
|
||||||
;;
|
|
||||||
-h | --h*)
|
|
||||||
cat <<\EOF
|
|
||||||
Usage: depcomp [--help] [--version] PROGRAM [ARGS]
|
|
||||||
|
|
||||||
Run PROGRAMS ARGS to compile a file, generating dependencies
|
|
||||||
as side-effects.
|
|
||||||
|
|
||||||
Environment variables:
|
|
||||||
depmode Dependency tracking mode.
|
|
||||||
source Source file read by `PROGRAMS ARGS'.
|
|
||||||
object Object file output by `PROGRAMS ARGS'.
|
|
||||||
depfile Dependency file to output.
|
|
||||||
tmpdepfile Temporary file to use when outputing dependencies.
|
|
||||||
libtool Whether libtool is used (yes/no).
|
|
||||||
|
|
||||||
Report bugs to <bug-automake@gnu.org>.
|
|
||||||
EOF
|
|
||||||
exit 0
|
|
||||||
;;
|
|
||||||
-v | --v*)
|
|
||||||
echo "depcomp $scriptversion"
|
|
||||||
exit 0
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
if test -z "$depmode" || test -z "$source" || test -z "$object"; then
|
|
||||||
echo "depcomp: Variables source, object and depmode must be set" 1>&2
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
# `libtool' can also be set to `yes' or `no'.
|
|
||||||
|
|
||||||
if test -z "$depfile"; then
|
|
||||||
base=`echo "$object" | sed -e 's,^.*/,,' -e 's,\.\([^.]*\)$,.P\1,'`
|
|
||||||
dir=`echo "$object" | sed 's,/.*$,/,'`
|
|
||||||
if test "$dir" = "$object"; then
|
|
||||||
dir=
|
|
||||||
fi
|
|
||||||
# FIXME: should be _deps on DOS.
|
|
||||||
depfile="$dir.deps/$base"
|
|
||||||
fi
|
|
||||||
|
|
||||||
tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`}
|
|
||||||
|
|
||||||
rm -f "$tmpdepfile"
|
|
||||||
|
|
||||||
# Some modes work just like other modes, but use different flags. We
|
|
||||||
# parameterize here, but still list the modes in the big case below,
|
|
||||||
# to make depend.m4 easier to write. Note that we *cannot* use a case
|
|
||||||
# here, because this file can only contain one case statement.
|
|
||||||
if test "$depmode" = hp; then
|
|
||||||
# HP compiler uses -M and no extra arg.
|
|
||||||
gccflag=-M
|
|
||||||
depmode=gcc
|
|
||||||
fi
|
|
||||||
|
|
||||||
if test "$depmode" = dashXmstdout; then
|
|
||||||
# This is just like dashmstdout with a different argument.
|
|
||||||
dashmflag=-xM
|
|
||||||
depmode=dashmstdout
|
|
||||||
fi
|
|
||||||
|
|
||||||
case "$depmode" in
|
|
||||||
gcc3)
|
|
||||||
## gcc 3 implements dependency tracking that does exactly what
|
|
||||||
## we want. Yay! Note: for some reason libtool 1.4 doesn't like
|
|
||||||
## it if -MD -MP comes after the -MF stuff. Hmm.
|
|
||||||
"$@" -MT "$object" -MD -MP -MF "$tmpdepfile"
|
|
||||||
stat=$?
|
|
||||||
if test $stat -eq 0; then :
|
|
||||||
else
|
|
||||||
rm -f "$tmpdepfile"
|
|
||||||
exit $stat
|
|
||||||
fi
|
|
||||||
mv "$tmpdepfile" "$depfile"
|
|
||||||
;;
|
|
||||||
|
|
||||||
gcc)
|
|
||||||
## There are various ways to get dependency output from gcc. Here's
|
|
||||||
## why we pick this rather obscure method:
|
|
||||||
## - Don't want to use -MD because we'd like the dependencies to end
|
|
||||||
## up in a subdir. Having to rename by hand is ugly.
|
|
||||||
## (We might end up doing this anyway to support other compilers.)
|
|
||||||
## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like
|
|
||||||
## -MM, not -M (despite what the docs say).
|
|
||||||
## - Using -M directly means running the compiler twice (even worse
|
|
||||||
## than renaming).
|
|
||||||
if test -z "$gccflag"; then
|
|
||||||
gccflag=-MD,
|
|
||||||
fi
|
|
||||||
"$@" -Wp,"$gccflag$tmpdepfile"
|
|
||||||
stat=$?
|
|
||||||
if test $stat -eq 0; then :
|
|
||||||
else
|
|
||||||
rm -f "$tmpdepfile"
|
|
||||||
exit $stat
|
|
||||||
fi
|
|
||||||
rm -f "$depfile"
|
|
||||||
echo "$object : \\" > "$depfile"
|
|
||||||
alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
|
|
||||||
## The second -e expression handles DOS-style file names with drive letters.
|
|
||||||
sed -e 's/^[^:]*: / /' \
|
|
||||||
-e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile"
|
|
||||||
## This next piece of magic avoids the `deleted header file' problem.
|
|
||||||
## The problem is that when a header file which appears in a .P file
|
|
||||||
## is deleted, the dependency causes make to die (because there is
|
|
||||||
## typically no way to rebuild the header). We avoid this by adding
|
|
||||||
## dummy dependencies for each header file. Too bad gcc doesn't do
|
|
||||||
## this for us directly.
|
|
||||||
tr ' ' '
|
|
||||||
' < "$tmpdepfile" |
|
|
||||||
## Some versions of gcc put a space before the `:'. On the theory
|
|
||||||
## that the space means something, we add a space to the output as
|
|
||||||
## well.
|
|
||||||
## Some versions of the HPUX 10.20 sed can't process this invocation
|
|
||||||
## correctly. Breaking it into two sed invocations is a workaround.
|
|
||||||
sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
|
|
||||||
rm -f "$tmpdepfile"
|
|
||||||
;;
|
|
||||||
|
|
||||||
hp)
|
|
||||||
# This case exists only to let depend.m4 do its work. It works by
|
|
||||||
# looking at the text of this script. This case will never be run,
|
|
||||||
# since it is checked for above.
|
|
||||||
exit 1
|
|
||||||
;;
|
|
||||||
|
|
||||||
sgi)
|
|
||||||
if test "$libtool" = yes; then
|
|
||||||
"$@" "-Wp,-MDupdate,$tmpdepfile"
|
|
||||||
else
|
|
||||||
"$@" -MDupdate "$tmpdepfile"
|
|
||||||
fi
|
|
||||||
stat=$?
|
|
||||||
if test $stat -eq 0; then :
|
|
||||||
else
|
|
||||||
rm -f "$tmpdepfile"
|
|
||||||
exit $stat
|
|
||||||
fi
|
|
||||||
rm -f "$depfile"
|
|
||||||
|
|
||||||
if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files
|
|
||||||
echo "$object : \\" > "$depfile"
|
|
||||||
|
|
||||||
# Clip off the initial element (the dependent). Don't try to be
|
|
||||||
# clever and replace this with sed code, as IRIX sed won't handle
|
|
||||||
# lines with more than a fixed number of characters (4096 in
|
|
||||||
# IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines;
|
|
||||||
# the IRIX cc adds comments like `#:fec' to the end of the
|
|
||||||
# dependency line.
|
|
||||||
tr ' ' '
|
|
||||||
' < "$tmpdepfile" \
|
|
||||||
| sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \
|
|
||||||
tr '
|
|
||||||
' ' ' >> $depfile
|
|
||||||
echo >> $depfile
|
|
||||||
|
|
||||||
# The second pass generates a dummy entry for each header file.
|
|
||||||
tr ' ' '
|
|
||||||
' < "$tmpdepfile" \
|
|
||||||
| sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \
|
|
||||||
>> $depfile
|
|
||||||
else
|
|
||||||
# The sourcefile does not contain any dependencies, so just
|
|
||||||
# store a dummy comment line, to avoid errors with the Makefile
|
|
||||||
# "include basename.Plo" scheme.
|
|
||||||
echo "#dummy" > "$depfile"
|
|
||||||
fi
|
|
||||||
rm -f "$tmpdepfile"
|
|
||||||
;;
|
|
||||||
|
|
||||||
aix)
|
|
||||||
# The C for AIX Compiler uses -M and outputs the dependencies
|
|
||||||
# in a .u file. In older versions, this file always lives in the
|
|
||||||
# current directory. Also, the AIX compiler puts `$object:' at the
|
|
||||||
# start of each line; $object doesn't have directory information.
|
|
||||||
# Version 6 uses the directory in both cases.
|
|
||||||
stripped=`echo "$object" | sed 's/\(.*\)\..*$/\1/'`
|
|
||||||
tmpdepfile="$stripped.u"
|
|
||||||
if test "$libtool" = yes; then
|
|
||||||
"$@" -Wc,-M
|
|
||||||
else
|
|
||||||
"$@" -M
|
|
||||||
fi
|
|
||||||
stat=$?
|
|
||||||
|
|
||||||
if test -f "$tmpdepfile"; then :
|
|
||||||
else
|
|
||||||
stripped=`echo "$stripped" | sed 's,^.*/,,'`
|
|
||||||
tmpdepfile="$stripped.u"
|
|
||||||
fi
|
|
||||||
|
|
||||||
if test $stat -eq 0; then :
|
|
||||||
else
|
|
||||||
rm -f "$tmpdepfile"
|
|
||||||
exit $stat
|
|
||||||
fi
|
|
||||||
|
|
||||||
if test -f "$tmpdepfile"; then
|
|
||||||
outname="$stripped.o"
|
|
||||||
# Each line is of the form `foo.o: dependent.h'.
|
|
||||||
# Do two passes, one to just change these to
|
|
||||||
# `$object: dependent.h' and one to simply `dependent.h:'.
|
|
||||||
sed -e "s,^$outname:,$object :," < "$tmpdepfile" > "$depfile"
|
|
||||||
sed -e "s,^$outname: \(.*\)$,\1:," < "$tmpdepfile" >> "$depfile"
|
|
||||||
else
|
|
||||||
# The sourcefile does not contain any dependencies, so just
|
|
||||||
# store a dummy comment line, to avoid errors with the Makefile
|
|
||||||
# "include basename.Plo" scheme.
|
|
||||||
echo "#dummy" > "$depfile"
|
|
||||||
fi
|
|
||||||
rm -f "$tmpdepfile"
|
|
||||||
;;
|
|
||||||
|
|
||||||
icc)
|
|
||||||
# Intel's C compiler understands `-MD -MF file'. However on
|
|
||||||
# icc -MD -MF foo.d -c -o sub/foo.o sub/foo.c
|
|
||||||
# ICC 7.0 will fill foo.d with something like
|
|
||||||
# foo.o: sub/foo.c
|
|
||||||
# foo.o: sub/foo.h
|
|
||||||
# which is wrong. We want:
|
|
||||||
# sub/foo.o: sub/foo.c
|
|
||||||
# sub/foo.o: sub/foo.h
|
|
||||||
# sub/foo.c:
|
|
||||||
# sub/foo.h:
|
|
||||||
# ICC 7.1 will output
|
|
||||||
# foo.o: sub/foo.c sub/foo.h
|
|
||||||
# and will wrap long lines using \ :
|
|
||||||
# foo.o: sub/foo.c ... \
|
|
||||||
# sub/foo.h ... \
|
|
||||||
# ...
|
|
||||||
|
|
||||||
"$@" -MD -MF "$tmpdepfile"
|
|
||||||
stat=$?
|
|
||||||
if test $stat -eq 0; then :
|
|
||||||
else
|
|
||||||
rm -f "$tmpdepfile"
|
|
||||||
exit $stat
|
|
||||||
fi
|
|
||||||
rm -f "$depfile"
|
|
||||||
# Each line is of the form `foo.o: dependent.h',
|
|
||||||
# or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'.
|
|
||||||
# Do two passes, one to just change these to
|
|
||||||
# `$object: dependent.h' and one to simply `dependent.h:'.
|
|
||||||
sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile"
|
|
||||||
# Some versions of the HPUX 10.20 sed can't process this invocation
|
|
||||||
# correctly. Breaking it into two sed invocations is a workaround.
|
|
||||||
sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" |
|
|
||||||
sed -e 's/$/ :/' >> "$depfile"
|
|
||||||
rm -f "$tmpdepfile"
|
|
||||||
;;
|
|
||||||
|
|
||||||
tru64)
|
|
||||||
# The Tru64 compiler uses -MD to generate dependencies as a side
|
|
||||||
# effect. `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'.
|
|
||||||
# At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put
|
|
||||||
# dependencies in `foo.d' instead, so we check for that too.
|
|
||||||
# Subdirectories are respected.
|
|
||||||
dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
|
|
||||||
test "x$dir" = "x$object" && dir=
|
|
||||||
base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
|
|
||||||
|
|
||||||
if test "$libtool" = yes; then
|
|
||||||
tmpdepfile1="$dir.libs/$base.lo.d"
|
|
||||||
tmpdepfile2="$dir.libs/$base.d"
|
|
||||||
"$@" -Wc,-MD
|
|
||||||
else
|
|
||||||
tmpdepfile1="$dir$base.o.d"
|
|
||||||
tmpdepfile2="$dir$base.d"
|
|
||||||
"$@" -MD
|
|
||||||
fi
|
|
||||||
|
|
||||||
stat=$?
|
|
||||||
if test $stat -eq 0; then :
|
|
||||||
else
|
|
||||||
rm -f "$tmpdepfile1" "$tmpdepfile2"
|
|
||||||
exit $stat
|
|
||||||
fi
|
|
||||||
|
|
||||||
if test -f "$tmpdepfile1"; then
|
|
||||||
tmpdepfile="$tmpdepfile1"
|
|
||||||
else
|
|
||||||
tmpdepfile="$tmpdepfile2"
|
|
||||||
fi
|
|
||||||
if test -f "$tmpdepfile"; then
|
|
||||||
sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile"
|
|
||||||
# That's a tab and a space in the [].
|
|
||||||
sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile"
|
|
||||||
else
|
|
||||||
echo "#dummy" > "$depfile"
|
|
||||||
fi
|
|
||||||
rm -f "$tmpdepfile"
|
|
||||||
;;
|
|
||||||
|
|
||||||
#nosideeffect)
|
|
||||||
# This comment above is used by automake to tell side-effect
|
|
||||||
# dependency tracking mechanisms from slower ones.
|
|
||||||
|
|
||||||
dashmstdout)
|
|
||||||
# Important note: in order to support this mode, a compiler *must*
|
|
||||||
# always write the preprocessed file to stdout, regardless of -o.
|
|
||||||
"$@" || exit $?
|
|
||||||
|
|
||||||
# Remove the call to Libtool.
|
|
||||||
if test "$libtool" = yes; then
|
|
||||||
while test $1 != '--mode=compile'; do
|
|
||||||
shift
|
|
||||||
done
|
|
||||||
shift
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Remove `-o $object'.
|
|
||||||
IFS=" "
|
|
||||||
for arg
|
|
||||||
do
|
|
||||||
case $arg in
|
|
||||||
-o)
|
|
||||||
shift
|
|
||||||
;;
|
|
||||||
$object)
|
|
||||||
shift
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
set fnord "$@" "$arg"
|
|
||||||
shift # fnord
|
|
||||||
shift # $arg
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
done
|
|
||||||
|
|
||||||
test -z "$dashmflag" && dashmflag=-M
|
|
||||||
# Require at least two characters before searching for `:'
|
|
||||||
# in the target name. This is to cope with DOS-style filenames:
|
|
||||||
# a dependency such as `c:/foo/bar' could be seen as target `c' otherwise.
|
|
||||||
"$@" $dashmflag |
|
|
||||||
sed 's:^[ ]*[^: ][^:][^:]*\:[ ]*:'"$object"'\: :' > "$tmpdepfile"
|
|
||||||
rm -f "$depfile"
|
|
||||||
cat < "$tmpdepfile" > "$depfile"
|
|
||||||
tr ' ' '
|
|
||||||
' < "$tmpdepfile" | \
|
|
||||||
## Some versions of the HPUX 10.20 sed can't process this invocation
|
|
||||||
## correctly. Breaking it into two sed invocations is a workaround.
|
|
||||||
sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
|
|
||||||
rm -f "$tmpdepfile"
|
|
||||||
;;
|
|
||||||
|
|
||||||
dashXmstdout)
|
|
||||||
# This case only exists to satisfy depend.m4. It is never actually
|
|
||||||
# run, as this mode is specially recognized in the preamble.
|
|
||||||
exit 1
|
|
||||||
;;
|
|
||||||
|
|
||||||
makedepend)
|
|
||||||
"$@" || exit $?
|
|
||||||
# Remove any Libtool call
|
|
||||||
if test "$libtool" = yes; then
|
|
||||||
while test $1 != '--mode=compile'; do
|
|
||||||
shift
|
|
||||||
done
|
|
||||||
shift
|
|
||||||
fi
|
|
||||||
# X makedepend
|
|
||||||
shift
|
|
||||||
cleared=no
|
|
||||||
for arg in "$@"; do
|
|
||||||
case $cleared in
|
|
||||||
no)
|
|
||||||
set ""; shift
|
|
||||||
cleared=yes ;;
|
|
||||||
esac
|
|
||||||
case "$arg" in
|
|
||||||
-D*|-I*)
|
|
||||||
set fnord "$@" "$arg"; shift ;;
|
|
||||||
# Strip any option that makedepend may not understand. Remove
|
|
||||||
# the object too, otherwise makedepend will parse it as a source file.
|
|
||||||
-*|$object)
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
set fnord "$@" "$arg"; shift ;;
|
|
||||||
esac
|
|
||||||
done
|
|
||||||
obj_suffix="`echo $object | sed 's/^.*\././'`"
|
|
||||||
touch "$tmpdepfile"
|
|
||||||
${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@"
|
|
||||||
rm -f "$depfile"
|
|
||||||
cat < "$tmpdepfile" > "$depfile"
|
|
||||||
sed '1,2d' "$tmpdepfile" | tr ' ' '
|
|
||||||
' | \
|
|
||||||
## Some versions of the HPUX 10.20 sed can't process this invocation
|
|
||||||
## correctly. Breaking it into two sed invocations is a workaround.
|
|
||||||
sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
|
|
||||||
rm -f "$tmpdepfile" "$tmpdepfile".bak
|
|
||||||
;;
|
|
||||||
|
|
||||||
cpp)
|
|
||||||
# Important note: in order to support this mode, a compiler *must*
|
|
||||||
# always write the preprocessed file to stdout.
|
|
||||||
"$@" || exit $?
|
|
||||||
|
|
||||||
# Remove the call to Libtool.
|
|
||||||
if test "$libtool" = yes; then
|
|
||||||
while test $1 != '--mode=compile'; do
|
|
||||||
shift
|
|
||||||
done
|
|
||||||
shift
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Remove `-o $object'.
|
|
||||||
IFS=" "
|
|
||||||
for arg
|
|
||||||
do
|
|
||||||
case $arg in
|
|
||||||
-o)
|
|
||||||
shift
|
|
||||||
;;
|
|
||||||
$object)
|
|
||||||
shift
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
set fnord "$@" "$arg"
|
|
||||||
shift # fnord
|
|
||||||
shift # $arg
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
done
|
|
||||||
|
|
||||||
"$@" -E |
|
|
||||||
sed -n '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' |
|
|
||||||
sed '$ s: \\$::' > "$tmpdepfile"
|
|
||||||
rm -f "$depfile"
|
|
||||||
echo "$object : \\" > "$depfile"
|
|
||||||
cat < "$tmpdepfile" >> "$depfile"
|
|
||||||
sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile"
|
|
||||||
rm -f "$tmpdepfile"
|
|
||||||
;;
|
|
||||||
|
|
||||||
msvisualcpp)
|
|
||||||
# Important note: in order to support this mode, a compiler *must*
|
|
||||||
# always write the preprocessed file to stdout, regardless of -o,
|
|
||||||
# because we must use -o when running libtool.
|
|
||||||
"$@" || exit $?
|
|
||||||
IFS=" "
|
|
||||||
for arg
|
|
||||||
do
|
|
||||||
case "$arg" in
|
|
||||||
"-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI")
|
|
||||||
set fnord "$@"
|
|
||||||
shift
|
|
||||||
shift
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
set fnord "$@" "$arg"
|
|
||||||
shift
|
|
||||||
shift
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
done
|
|
||||||
"$@" -E |
|
|
||||||
sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::echo "`cygpath -u \\"\1\\"`":p' | sort | uniq > "$tmpdepfile"
|
|
||||||
rm -f "$depfile"
|
|
||||||
echo "$object : \\" > "$depfile"
|
|
||||||
. "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s:: \1 \\:p' >> "$depfile"
|
|
||||||
echo " " >> "$depfile"
|
|
||||||
. "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s::\1\::p' >> "$depfile"
|
|
||||||
rm -f "$tmpdepfile"
|
|
||||||
;;
|
|
||||||
|
|
||||||
none)
|
|
||||||
exec "$@"
|
|
||||||
;;
|
|
||||||
|
|
||||||
*)
|
|
||||||
echo "Unknown depmode $depmode" 1>&2
|
|
||||||
exit 1
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
exit 0
|
|
||||||
|
|
||||||
# Local Variables:
|
|
||||||
# mode: shell-script
|
|
||||||
# sh-indentation: 2
|
|
||||||
# eval: (add-hook 'write-file-hooks 'time-stamp)
|
|
||||||
# time-stamp-start: "scriptversion="
|
|
||||||
# time-stamp-format: "%:y-%02m-%02d.%02H"
|
|
||||||
# time-stamp-end: "$"
|
|
||||||
# End:
|
|
||||||
@@ -1,316 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
# install - install a program, script, or datafile
|
|
||||||
|
|
||||||
scriptversion=2004-02-15.20
|
|
||||||
|
|
||||||
# This originates from X11R5 (mit/util/scripts/install.sh), which was
|
|
||||||
# later released in X11R6 (xc/config/util/install.sh) with the
|
|
||||||
# following copyright and license.
|
|
||||||
#
|
|
||||||
# Copyright (C) 1994 X Consortium
|
|
||||||
#
|
|
||||||
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
||||||
# of this software and associated documentation files (the "Software"), to
|
|
||||||
# deal in the Software without restriction, including without limitation the
|
|
||||||
# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
|
|
||||||
# sell copies of the Software, and to permit persons to whom the Software is
|
|
||||||
# furnished to do so, subject to the following conditions:
|
|
||||||
#
|
|
||||||
# The above copyright notice and this permission notice shall be included in
|
|
||||||
# all copies or substantial portions of the Software.
|
|
||||||
#
|
|
||||||
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
# X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
|
|
||||||
# AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC-
|
|
||||||
# TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
||||||
#
|
|
||||||
# Except as contained in this notice, the name of the X Consortium shall not
|
|
||||||
# be used in advertising or otherwise to promote the sale, use or other deal-
|
|
||||||
# ings in this Software without prior written authorization from the X Consor-
|
|
||||||
# tium.
|
|
||||||
#
|
|
||||||
#
|
|
||||||
# FSF changes to this file are in the public domain.
|
|
||||||
#
|
|
||||||
# Calling this script install-sh is preferred over install.sh, to prevent
|
|
||||||
# `make' implicit rules from creating a file called install from it
|
|
||||||
# when there is no Makefile.
|
|
||||||
#
|
|
||||||
# This script is compatible with the BSD install script, but was written
|
|
||||||
# from scratch. It can only install one file at a time, a restriction
|
|
||||||
# shared with many OS's install programs.
|
|
||||||
|
|
||||||
# set DOITPROG to echo to test this script
|
|
||||||
|
|
||||||
# Don't use :- since 4.3BSD and earlier shells don't like it.
|
|
||||||
doit="${DOITPROG-}"
|
|
||||||
|
|
||||||
# put in absolute paths if you don't have them in your path; or use env. vars.
|
|
||||||
|
|
||||||
mvprog="${MVPROG-mv}"
|
|
||||||
cpprog="${CPPROG-cp}"
|
|
||||||
chmodprog="${CHMODPROG-chmod}"
|
|
||||||
chownprog="${CHOWNPROG-chown}"
|
|
||||||
chgrpprog="${CHGRPPROG-chgrp}"
|
|
||||||
stripprog="${STRIPPROG-strip}"
|
|
||||||
rmprog="${RMPROG-rm}"
|
|
||||||
mkdirprog="${MKDIRPROG-mkdir}"
|
|
||||||
|
|
||||||
transformbasename=
|
|
||||||
transform_arg=
|
|
||||||
instcmd="$mvprog"
|
|
||||||
chmodcmd="$chmodprog 0755"
|
|
||||||
chowncmd=
|
|
||||||
chgrpcmd=
|
|
||||||
stripcmd=
|
|
||||||
rmcmd="$rmprog -f"
|
|
||||||
mvcmd="$mvprog"
|
|
||||||
src=
|
|
||||||
dst=
|
|
||||||
dir_arg=
|
|
||||||
|
|
||||||
usage="Usage: $0 [OPTION]... SRCFILE DSTFILE
|
|
||||||
or: $0 [OPTION]... SRCFILES... DIRECTORY
|
|
||||||
or: $0 -d DIRECTORIES...
|
|
||||||
|
|
||||||
In the first form, install SRCFILE to DSTFILE, removing SRCFILE by default.
|
|
||||||
In the second, create the directory path DIR.
|
|
||||||
|
|
||||||
Options:
|
|
||||||
-b=TRANSFORMBASENAME
|
|
||||||
-c copy source (using $cpprog) instead of moving (using $mvprog).
|
|
||||||
-d create directories instead of installing files.
|
|
||||||
-g GROUP $chgrp installed files to GROUP.
|
|
||||||
-m MODE $chmod installed files to MODE.
|
|
||||||
-o USER $chown installed files to USER.
|
|
||||||
-s strip installed files (using $stripprog).
|
|
||||||
-t=TRANSFORM
|
|
||||||
--help display this help and exit.
|
|
||||||
--version display version info and exit.
|
|
||||||
|
|
||||||
Environment variables override the default commands:
|
|
||||||
CHGRPPROG CHMODPROG CHOWNPROG CPPROG MKDIRPROG MVPROG RMPROG STRIPPROG
|
|
||||||
"
|
|
||||||
|
|
||||||
while test -n "$1"; do
|
|
||||||
case $1 in
|
|
||||||
-b=*) transformbasename=`echo $1 | sed 's/-b=//'`
|
|
||||||
shift
|
|
||||||
continue;;
|
|
||||||
|
|
||||||
-c) instcmd=$cpprog
|
|
||||||
shift
|
|
||||||
continue;;
|
|
||||||
|
|
||||||
-d) dir_arg=true
|
|
||||||
shift
|
|
||||||
continue;;
|
|
||||||
|
|
||||||
-g) chgrpcmd="$chgrpprog $2"
|
|
||||||
shift
|
|
||||||
shift
|
|
||||||
continue;;
|
|
||||||
|
|
||||||
--help) echo "$usage"; exit 0;;
|
|
||||||
|
|
||||||
-m) chmodcmd="$chmodprog $2"
|
|
||||||
shift
|
|
||||||
shift
|
|
||||||
continue;;
|
|
||||||
|
|
||||||
-o) chowncmd="$chownprog $2"
|
|
||||||
shift
|
|
||||||
shift
|
|
||||||
continue;;
|
|
||||||
|
|
||||||
-s) stripcmd=$stripprog
|
|
||||||
shift
|
|
||||||
continue;;
|
|
||||||
|
|
||||||
-t=*) transformarg=`echo $1 | sed 's/-t=//'`
|
|
||||||
shift
|
|
||||||
continue;;
|
|
||||||
|
|
||||||
--version) echo "$0 $scriptversion"; exit 0;;
|
|
||||||
|
|
||||||
*) # When -d is used, all remaining arguments are directories to create.
|
|
||||||
test -n "$dir_arg" && break
|
|
||||||
# Otherwise, the last argument is the destination. Remove it from $@.
|
|
||||||
for arg
|
|
||||||
do
|
|
||||||
if test -n "$dstarg"; then
|
|
||||||
# $@ is not empty: it contains at least $arg.
|
|
||||||
set fnord "$@" "$dstarg"
|
|
||||||
shift # fnord
|
|
||||||
fi
|
|
||||||
shift # arg
|
|
||||||
dstarg=$arg
|
|
||||||
done
|
|
||||||
break;;
|
|
||||||
esac
|
|
||||||
done
|
|
||||||
|
|
||||||
if test -z "$1"; then
|
|
||||||
if test -z "$dir_arg"; then
|
|
||||||
echo "$0: no input file specified." >&2
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
# It's OK to call `install-sh -d' without argument.
|
|
||||||
# This can happen when creating conditional directories.
|
|
||||||
exit 0
|
|
||||||
fi
|
|
||||||
|
|
||||||
for src
|
|
||||||
do
|
|
||||||
# Protect names starting with `-'.
|
|
||||||
case $src in
|
|
||||||
-*) src=./$src ;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
if test -n "$dir_arg"; then
|
|
||||||
dst=$src
|
|
||||||
src=
|
|
||||||
|
|
||||||
if test -d "$dst"; then
|
|
||||||
instcmd=:
|
|
||||||
chmodcmd=
|
|
||||||
else
|
|
||||||
instcmd=$mkdirprog
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
# Waiting for this to be detected by the "$instcmd $src $dsttmp" command
|
|
||||||
# might cause directories to be created, which would be especially bad
|
|
||||||
# if $src (and thus $dsttmp) contains '*'.
|
|
||||||
if test ! -f "$src" && test ! -d "$src"; then
|
|
||||||
echo "$0: $src does not exist." >&2
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
if test -z "$dstarg"; then
|
|
||||||
echo "$0: no destination specified." >&2
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
dst=$dstarg
|
|
||||||
# Protect names starting with `-'.
|
|
||||||
case $dst in
|
|
||||||
-*) dst=./$dst ;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
# If destination is a directory, append the input filename; won't work
|
|
||||||
# if double slashes aren't ignored.
|
|
||||||
if test -d "$dst"; then
|
|
||||||
dst=$dst/`basename "$src"`
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
# This sed command emulates the dirname command.
|
|
||||||
dstdir=`echo "$dst" | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'`
|
|
||||||
|
|
||||||
# Make sure that the destination directory exists.
|
|
||||||
|
|
||||||
# Skip lots of stat calls in the usual case.
|
|
||||||
if test ! -d "$dstdir"; then
|
|
||||||
defaultIFS='
|
|
||||||
'
|
|
||||||
IFS="${IFS-$defaultIFS}"
|
|
||||||
|
|
||||||
oIFS=$IFS
|
|
||||||
# Some sh's can't handle IFS=/ for some reason.
|
|
||||||
IFS='%'
|
|
||||||
set - `echo "$dstdir" | sed -e 's@/@%@g' -e 's@^%@/@'`
|
|
||||||
IFS=$oIFS
|
|
||||||
|
|
||||||
pathcomp=
|
|
||||||
|
|
||||||
while test $# -ne 0 ; do
|
|
||||||
pathcomp=$pathcomp$1
|
|
||||||
shift
|
|
||||||
if test ! -d "$pathcomp"; then
|
|
||||||
$mkdirprog "$pathcomp" || lasterr=$?
|
|
||||||
# mkdir can fail with a `File exist' error in case several
|
|
||||||
# install-sh are creating the directory concurrently. This
|
|
||||||
# is OK.
|
|
||||||
test ! -d "$pathcomp" && { (exit ${lasterr-1}); exit; }
|
|
||||||
fi
|
|
||||||
pathcomp=$pathcomp/
|
|
||||||
done
|
|
||||||
fi
|
|
||||||
|
|
||||||
if test -n "$dir_arg"; then
|
|
||||||
$doit $instcmd "$dst" \
|
|
||||||
&& { test -z "$chowncmd" || $doit $chowncmd "$dst"; } \
|
|
||||||
&& { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } \
|
|
||||||
&& { test -z "$stripcmd" || $doit $stripcmd "$dst"; } \
|
|
||||||
&& { test -z "$chmodcmd" || $doit $chmodcmd "$dst"; }
|
|
||||||
|
|
||||||
else
|
|
||||||
# If we're going to rename the final executable, determine the name now.
|
|
||||||
if test -z "$transformarg"; then
|
|
||||||
dstfile=`basename "$dst"`
|
|
||||||
else
|
|
||||||
dstfile=`basename "$dst" $transformbasename \
|
|
||||||
| sed $transformarg`$transformbasename
|
|
||||||
fi
|
|
||||||
|
|
||||||
# don't allow the sed command to completely eliminate the filename.
|
|
||||||
test -z "$dstfile" && dstfile=`basename "$dst"`
|
|
||||||
|
|
||||||
# Make a couple of temp file names in the proper directory.
|
|
||||||
dsttmp=$dstdir/_inst.$$_
|
|
||||||
rmtmp=$dstdir/_rm.$$_
|
|
||||||
|
|
||||||
# Trap to clean up those temp files at exit.
|
|
||||||
trap 'status=$?; rm -f "$dsttmp" "$rmtmp" && exit $status' 0
|
|
||||||
trap '(exit $?); exit' 1 2 13 15
|
|
||||||
|
|
||||||
# Move or copy the file name to the temp name
|
|
||||||
$doit $instcmd "$src" "$dsttmp" &&
|
|
||||||
|
|
||||||
# and set any options; do chmod last to preserve setuid bits.
|
|
||||||
#
|
|
||||||
# If any of these fail, we abort the whole thing. If we want to
|
|
||||||
# ignore errors from any of these, just make sure not to ignore
|
|
||||||
# errors from the above "$doit $instcmd $src $dsttmp" command.
|
|
||||||
#
|
|
||||||
{ test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } \
|
|
||||||
&& { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } \
|
|
||||||
&& { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } \
|
|
||||||
&& { test -z "$chmodcmd" || $doit $chmodcmd "$dsttmp"; } &&
|
|
||||||
|
|
||||||
# Now remove or move aside any old file at destination location. We
|
|
||||||
# try this two ways since rm can't unlink itself on some systems and
|
|
||||||
# the destination file might be busy for other reasons. In this case,
|
|
||||||
# the final cleanup might fail but the new file should still install
|
|
||||||
# successfully.
|
|
||||||
{
|
|
||||||
if test -f "$dstdir/$dstfile"; then
|
|
||||||
$doit $rmcmd -f "$dstdir/$dstfile" 2>/dev/null \
|
|
||||||
|| $doit $mvcmd -f "$dstdir/$dstfile" "$rmtmp" 2>/dev/null \
|
|
||||||
|| {
|
|
||||||
echo "$0: cannot unlink or rename $dstdir/$dstfile" >&2
|
|
||||||
(exit 1); exit
|
|
||||||
}
|
|
||||||
else
|
|
||||||
:
|
|
||||||
fi
|
|
||||||
} &&
|
|
||||||
|
|
||||||
# Now rename the file to the real destination.
|
|
||||||
$doit $mvcmd "$dsttmp" "$dstdir/$dstfile"
|
|
||||||
fi || { (exit 1); exit; }
|
|
||||||
done
|
|
||||||
|
|
||||||
# The final little trick to "correctly" pass the exit status to the exit trap.
|
|
||||||
{
|
|
||||||
(exit 0); exit
|
|
||||||
}
|
|
||||||
|
|
||||||
# Local variables:
|
|
||||||
# eval: (add-hook 'write-file-hooks 'time-stamp)
|
|
||||||
# time-stamp-start: "scriptversion="
|
|
||||||
# time-stamp-format: "%:y-%02m-%02d.%02H"
|
|
||||||
# time-stamp-end: "$"
|
|
||||||
# End:
|
|
||||||
47
configure.ac
47
configure.ac
@@ -1,6 +1,6 @@
|
|||||||
# Configure template for GNU Bison. -*-Autoconf-*-
|
# Configure template for GNU Bison. -*-Autoconf-*-
|
||||||
#
|
#
|
||||||
# Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc.
|
# Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
|
||||||
#
|
#
|
||||||
# This program is free software; you can redistribute it and/or modify
|
# This program is free software; you can redistribute it and/or modify
|
||||||
# it under the terms of the GNU General Public License as published by
|
# it under the terms of the GNU General Public License as published by
|
||||||
@@ -21,17 +21,16 @@
|
|||||||
AC_PREREQ(2.57)
|
AC_PREREQ(2.57)
|
||||||
|
|
||||||
AC_INIT([GNU Bison], [1.875c], [bug-bison@gnu.org])
|
AC_INIT([GNU Bison], [1.875c], [bug-bison@gnu.org])
|
||||||
AC_CONFIG_AUX_DIR(config)
|
AC_CONFIG_AUX_DIR([config])
|
||||||
|
AC_CONFIG_MACRO_DIR([m4])
|
||||||
|
|
||||||
AM_INIT_AUTOMAKE([1.7 check-news readme-alpha dist-bzip2])
|
AM_INIT_AUTOMAKE([1.7 check-news readme-alpha dist-bzip2])
|
||||||
AC_CONFIG_HEADERS([config.h:config.hin])
|
AC_CONFIG_HEADERS([config.h:config.hin])
|
||||||
|
|
||||||
|
gl_USE_SYSTEM_EXTENSIONS
|
||||||
|
|
||||||
# Checks for the compiler.
|
# Checks for the compiler.
|
||||||
AC_PROG_CC
|
AC_PROG_CC
|
||||||
# Remove with Automake 1.8.
|
|
||||||
AC_ISC_POSIX
|
|
||||||
AC_GNU_SOURCE
|
|
||||||
AC_MINIX
|
|
||||||
AM_PROG_CC_STDC
|
AM_PROG_CC_STDC
|
||||||
AC_ARG_ENABLE(gcc-warnings,
|
AC_ARG_ENABLE(gcc-warnings,
|
||||||
[ --enable-gcc-warnings turn on lots of GCC warnings (not recommended)],
|
[ --enable-gcc-warnings turn on lots of GCC warnings (not recommended)],
|
||||||
@@ -87,8 +86,7 @@ fi
|
|||||||
AC_DEFINE_UNQUOTED([M4], ["$M4"], [Define to the GNU M4 executable name.])
|
AC_DEFINE_UNQUOTED([M4], ["$M4"], [Define to the GNU M4 executable name.])
|
||||||
|
|
||||||
# Checks for header files.
|
# Checks for header files.
|
||||||
AC_HEADER_STDC
|
AC_CHECK_HEADERS_ONCE([locale.h])
|
||||||
AC_CHECK_HEADERS([ctype.h locale.h memory.h stdlib.h string.h unistd.h])
|
|
||||||
AM_STDBOOL_H
|
AM_STDBOOL_H
|
||||||
|
|
||||||
# Checks for compiler characteristics.
|
# Checks for compiler characteristics.
|
||||||
@@ -98,36 +96,14 @@ AC_C_INLINE
|
|||||||
AC_CHECK_TYPES([uintptr_t])
|
AC_CHECK_TYPES([uintptr_t])
|
||||||
|
|
||||||
# Checks for library functions.
|
# Checks for library functions.
|
||||||
AC_CHECK_FUNCS(setlocale)
|
AC_CHECK_FUNCS_ONCE([setlocale])
|
||||||
AC_CHECK_DECLS([free, getenv, getopt,
|
|
||||||
stpcpy, strchr, strspn, strnlen,
|
|
||||||
malloc, memchr, memrchr])
|
|
||||||
AC_REPLACE_FUNCS(strchr strrchr strspn)
|
|
||||||
AM_WITH_DMALLOC
|
AM_WITH_DMALLOC
|
||||||
BISON_PREREQ_SUBPIPE
|
BISON_PREREQ_SUBPIPE
|
||||||
BISON_PREREQ_TIMEVAR
|
BISON_PREREQ_TIMEVAR
|
||||||
gl_DIRNAME
|
|
||||||
gl_ERROR
|
|
||||||
gl_FUNC_ALLOCA
|
|
||||||
gl_FUNC_MEMCHR
|
|
||||||
gl_FUNC_MEMRCHR
|
|
||||||
gl_FUNC_STPCPY
|
|
||||||
gl_FUNC_STRNLEN
|
|
||||||
gl_FUNC_STRTOL
|
|
||||||
gl_GETOPT
|
|
||||||
gl_HASH
|
|
||||||
gl_MBSWIDTH
|
|
||||||
gl_OBSTACK
|
|
||||||
gl_QUOTE
|
|
||||||
gl_QUOTEARG
|
|
||||||
gl_XALLOC
|
|
||||||
jm_FUNC_GLIBC_UNLOCKED_IO
|
|
||||||
jm_FUNC_MALLOC
|
|
||||||
jm_FUNC_REALLOC
|
|
||||||
|
|
||||||
# Gettext.
|
# gnulib and gettext.
|
||||||
AM_GNU_GETTEXT([external], [need-ngettext])
|
GNULIB_AUTOCONF_SNIPPET
|
||||||
AM_GNU_GETTEXT_VERSION(0.12.1)
|
AM_GNU_GETTEXT_VERSION([0.14.1])
|
||||||
|
|
||||||
# Initialize the test suite.
|
# Initialize the test suite.
|
||||||
AC_CONFIG_TESTDIR(tests)
|
AC_CONFIG_TESTDIR(tests)
|
||||||
@@ -145,6 +121,5 @@ AC_CONFIG_FILES([Makefile
|
|||||||
config/Makefile
|
config/Makefile
|
||||||
po/Makefile.in
|
po/Makefile.in
|
||||||
data/Makefile
|
data/Makefile
|
||||||
lib/Makefile src/Makefile doc/Makefile
|
lib/Makefile src/Makefile doc/Makefile])
|
||||||
m4/Makefile])
|
|
||||||
AC_OUTPUT
|
AC_OUTPUT
|
||||||
|
|||||||
@@ -2,4 +2,59 @@
|
|||||||
.deps
|
.deps
|
||||||
Makefile
|
Makefile
|
||||||
Makefile.in
|
Makefile.in
|
||||||
|
alloca.c
|
||||||
|
alloca.h
|
||||||
|
alloca_.h
|
||||||
|
argmatch.c
|
||||||
|
argmatch.h
|
||||||
|
basename.c
|
||||||
|
dirname.c
|
||||||
|
dirname.h
|
||||||
|
error.c
|
||||||
|
error.h
|
||||||
|
exit.h
|
||||||
|
exitfail.c
|
||||||
|
exitfail.h
|
||||||
|
getopt.c
|
||||||
|
getopt.h
|
||||||
|
getopt1.c
|
||||||
|
getopt_int.h
|
||||||
|
gettext.h
|
||||||
|
gnulib.mk
|
||||||
|
hard-locale.c
|
||||||
|
hard-locale.h
|
||||||
|
hash.c
|
||||||
|
hash.h
|
||||||
|
malloc.c
|
||||||
|
mbswidth.c
|
||||||
|
mbswidth.h
|
||||||
|
memchr.c
|
||||||
|
memcmp.c
|
||||||
|
memrchr.c
|
||||||
|
obstack.c
|
||||||
|
obstack.h
|
||||||
|
quote.c
|
||||||
|
quote.h
|
||||||
|
quotearg.c
|
||||||
|
quotearg.h
|
||||||
|
realloc.c
|
||||||
stdbool.h
|
stdbool.h
|
||||||
|
stdbool_.h
|
||||||
|
stpcpy.c
|
||||||
|
stpcpy.h
|
||||||
|
strcasecmp.c
|
||||||
|
strchr.c
|
||||||
|
stripslash.c
|
||||||
|
strncasecmp.c
|
||||||
|
strndup.c
|
||||||
|
strnlen.c
|
||||||
|
strrchr.c
|
||||||
|
strspn.c
|
||||||
|
strtol.c
|
||||||
|
strtoul.c
|
||||||
|
unlocked-io.h
|
||||||
|
xalloc.h
|
||||||
|
xmalloc.c
|
||||||
|
xstrdup.c
|
||||||
|
xstrndup.c
|
||||||
|
xstrndup.h
|
||||||
|
|||||||
@@ -17,36 +17,20 @@
|
|||||||
|
|
||||||
AM_CFLAGS = $(WARNING_CFLAGS)
|
AM_CFLAGS = $(WARNING_CFLAGS)
|
||||||
|
|
||||||
|
BUILT_SOURCES =
|
||||||
|
EXTRA_DIST =
|
||||||
|
MOSTLYCLEANFILES =
|
||||||
|
|
||||||
lib_LIBRARIES = $(YACC_LIBRARY)
|
lib_LIBRARIES = $(YACC_LIBRARY)
|
||||||
EXTRA_LIBRARIES = liby.a
|
EXTRA_LIBRARIES = liby.a
|
||||||
noinst_LIBRARIES = libbison.a
|
noinst_LIBRARIES = libbison.a
|
||||||
|
|
||||||
liby_a_SOURCES = main.c yyerror.c
|
liby_a_SOURCES = main.c yyerror.c
|
||||||
|
|
||||||
# Heck, we are still using an old version of Automake which does not
|
libbison_a_SOURCES = $(lib_SOURCES)
|
||||||
# understand inner AC_LIBOBJ (i.e., from Autoconf itself, not from
|
lib_SOURCES = \
|
||||||
# configure.in).
|
|
||||||
EXTRA_DIST = malloc.c realloc.c stdbool_.h strnlen.c
|
|
||||||
MOSTLYCLEANFILES = stdbool.h stdbool.h-t
|
|
||||||
|
|
||||||
# We need the following in order to create an <stdbool.h> when the system
|
|
||||||
# doesn't have one that works.
|
|
||||||
$(libbison_a_OBJECTS): $(STDBOOL_H)
|
|
||||||
stdbool.h: stdbool_.h
|
|
||||||
sed -e 's/@''HAVE__BOOL''@/$(HAVE__BOOL)/g' <$(srcdir)/stdbool_.h >$@-t
|
|
||||||
mv $@-t $@
|
|
||||||
|
|
||||||
libbison_a_SOURCES = \
|
|
||||||
gettext.h \
|
|
||||||
argmatch.c argmatch.h \
|
|
||||||
basename.c dirname.h dirname.c \
|
|
||||||
get-errno.h get-errno.c \
|
get-errno.h get-errno.c \
|
||||||
getopt.h getopt.c getopt1.c \
|
subpipe.h subpipe.c \
|
||||||
hash.h hash.c \
|
|
||||||
mbswidth.h mbswidth.c \
|
|
||||||
quote.h quote.c quotearg.h quotearg.c \
|
|
||||||
subpipe.h subpipe.c unlocked-io.h \
|
|
||||||
xalloc.h xmalloc.c xstrdup.c xstrndup.c \
|
|
||||||
$(bitsets_sources) $(additional_bitsets_sources) $(timevars_sources)
|
$(bitsets_sources) $(additional_bitsets_sources) $(timevars_sources)
|
||||||
|
|
||||||
# Implementation of bitsets
|
# Implementation of bitsets
|
||||||
@@ -65,3 +49,5 @@ timevars_sources = \
|
|||||||
|
|
||||||
libbison_a_LIBADD = $(LIBOBJS) $(ALLOCA)
|
libbison_a_LIBADD = $(LIBOBJS) $(ALLOCA)
|
||||||
libbison_a_DEPENDENCIES = $(libbison_a_LIBADD)
|
libbison_a_DEPENDENCIES = $(libbison_a_LIBADD)
|
||||||
|
|
||||||
|
include gnulib.mk
|
||||||
|
|||||||
508
lib/alloca.c
508
lib/alloca.c
@@ -1,508 +0,0 @@
|
|||||||
/* alloca.c -- allocate automatically reclaimed memory
|
|
||||||
(Mostly) portable public-domain implementation -- D A Gwyn
|
|
||||||
|
|
||||||
This implementation of the PWB library alloca function,
|
|
||||||
which is used to allocate space off the run-time stack so
|
|
||||||
that it is automatically reclaimed upon procedure exit,
|
|
||||||
was inspired by discussions with J. Q. Johnson of Cornell.
|
|
||||||
J.Otto Tennant <jot@cray.com> contributed the Cray support.
|
|
||||||
|
|
||||||
There are some preprocessor constants that can
|
|
||||||
be defined when compiling for your specific system, for
|
|
||||||
improved efficiency; however, the defaults should be okay.
|
|
||||||
|
|
||||||
The general concept of this implementation is to keep
|
|
||||||
track of all alloca-allocated blocks, and reclaim any
|
|
||||||
that are found to be deeper in the stack than the current
|
|
||||||
invocation. This heuristic does not reclaim storage as
|
|
||||||
soon as it becomes invalid, but it will do so eventually.
|
|
||||||
|
|
||||||
As a special case, alloca(0) reclaims storage without
|
|
||||||
allocating any. It is a good idea to use alloca(0) in
|
|
||||||
your main control loop, etc. to force garbage collection. */
|
|
||||||
|
|
||||||
#ifdef HAVE_CONFIG_H
|
|
||||||
# include <config.h>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if HAVE_STRING_H
|
|
||||||
# include <string.h>
|
|
||||||
#endif
|
|
||||||
#if HAVE_STDLIB_H
|
|
||||||
# include <stdlib.h>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef emacs
|
|
||||||
# include "lisp.h"
|
|
||||||
# include "blockinput.h"
|
|
||||||
# define xalloc_die() memory_full ()
|
|
||||||
# ifdef EMACS_FREE
|
|
||||||
# undef free
|
|
||||||
# define free EMACS_FREE
|
|
||||||
# endif
|
|
||||||
#else
|
|
||||||
# include <xalloc.h>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* If compiling with GCC 2, this file's not needed. */
|
|
||||||
#if !defined (__GNUC__) || __GNUC__ < 2
|
|
||||||
|
|
||||||
/* If someone has defined alloca as a macro,
|
|
||||||
there must be some other way alloca is supposed to work. */
|
|
||||||
# ifndef alloca
|
|
||||||
|
|
||||||
# ifdef emacs
|
|
||||||
# ifdef static
|
|
||||||
/* actually, only want this if static is defined as ""
|
|
||||||
-- this is for usg, in which emacs must undefine static
|
|
||||||
in order to make unexec workable
|
|
||||||
*/
|
|
||||||
# ifndef STACK_DIRECTION
|
|
||||||
you
|
|
||||||
lose
|
|
||||||
-- must know STACK_DIRECTION at compile-time
|
|
||||||
/* Using #error here is not wise since this file should work for
|
|
||||||
old and obscure compilers. */
|
|
||||||
# endif /* STACK_DIRECTION undefined */
|
|
||||||
# endif /* static */
|
|
||||||
# endif /* emacs */
|
|
||||||
|
|
||||||
/* If your stack is a linked list of frames, you have to
|
|
||||||
provide an "address metric" ADDRESS_FUNCTION macro. */
|
|
||||||
|
|
||||||
# if defined (CRAY) && defined (CRAY_STACKSEG_END)
|
|
||||||
long i00afunc ();
|
|
||||||
# define ADDRESS_FUNCTION(arg) (char *) i00afunc (&(arg))
|
|
||||||
# else
|
|
||||||
# define ADDRESS_FUNCTION(arg) &(arg)
|
|
||||||
# endif
|
|
||||||
|
|
||||||
# ifndef POINTER_TYPE
|
|
||||||
# ifdef __STDC__
|
|
||||||
# define POINTER_TYPE void
|
|
||||||
# else
|
|
||||||
# define POINTER_TYPE char
|
|
||||||
# endif
|
|
||||||
# endif
|
|
||||||
typedef POINTER_TYPE *pointer;
|
|
||||||
|
|
||||||
# ifndef NULL
|
|
||||||
# define NULL 0
|
|
||||||
# endif
|
|
||||||
|
|
||||||
/* Define STACK_DIRECTION if you know the direction of stack
|
|
||||||
growth for your system; otherwise it will be automatically
|
|
||||||
deduced at run-time.
|
|
||||||
|
|
||||||
STACK_DIRECTION > 0 => grows toward higher addresses
|
|
||||||
STACK_DIRECTION < 0 => grows toward lower addresses
|
|
||||||
STACK_DIRECTION = 0 => direction of growth unknown */
|
|
||||||
|
|
||||||
# ifndef STACK_DIRECTION
|
|
||||||
# define STACK_DIRECTION 0 /* Direction unknown. */
|
|
||||||
# endif
|
|
||||||
|
|
||||||
# if STACK_DIRECTION != 0
|
|
||||||
|
|
||||||
# define STACK_DIR STACK_DIRECTION /* Known at compile-time. */
|
|
||||||
|
|
||||||
# else /* STACK_DIRECTION == 0; need run-time code. */
|
|
||||||
|
|
||||||
static int stack_dir; /* 1 or -1 once known. */
|
|
||||||
# define STACK_DIR stack_dir
|
|
||||||
|
|
||||||
static void
|
|
||||||
find_stack_direction ()
|
|
||||||
{
|
|
||||||
static char *addr = NULL; /* Address of first `dummy', once known. */
|
|
||||||
auto char dummy; /* To get stack address. */
|
|
||||||
|
|
||||||
if (addr == NULL)
|
|
||||||
{ /* Initial entry. */
|
|
||||||
addr = ADDRESS_FUNCTION (dummy);
|
|
||||||
|
|
||||||
find_stack_direction (); /* Recurse once. */
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
/* Second entry. */
|
|
||||||
if (ADDRESS_FUNCTION (dummy) > addr)
|
|
||||||
stack_dir = 1; /* Stack grew upward. */
|
|
||||||
else
|
|
||||||
stack_dir = -1; /* Stack grew downward. */
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
# endif /* STACK_DIRECTION == 0 */
|
|
||||||
|
|
||||||
/* An "alloca header" is used to:
|
|
||||||
(a) chain together all alloca'ed blocks;
|
|
||||||
(b) keep track of stack depth.
|
|
||||||
|
|
||||||
It is very important that sizeof(header) agree with malloc
|
|
||||||
alignment chunk size. The following default should work okay. */
|
|
||||||
|
|
||||||
# ifndef ALIGN_SIZE
|
|
||||||
# define ALIGN_SIZE sizeof(double)
|
|
||||||
# endif
|
|
||||||
|
|
||||||
typedef union hdr
|
|
||||||
{
|
|
||||||
char align[ALIGN_SIZE]; /* To force sizeof(header). */
|
|
||||||
struct
|
|
||||||
{
|
|
||||||
union hdr *next; /* For chaining headers. */
|
|
||||||
char *deep; /* For stack depth measure. */
|
|
||||||
} h;
|
|
||||||
} header;
|
|
||||||
|
|
||||||
static header *last_alloca_header = NULL; /* -> last alloca header. */
|
|
||||||
|
|
||||||
/* Return a pointer to at least SIZE bytes of storage,
|
|
||||||
which will be automatically reclaimed upon exit from
|
|
||||||
the procedure that called alloca. Originally, this space
|
|
||||||
was supposed to be taken from the current stack frame of the
|
|
||||||
caller, but that method cannot be made to work for some
|
|
||||||
implementations of C, for example under Gould's UTX/32. */
|
|
||||||
|
|
||||||
pointer
|
|
||||||
alloca (size)
|
|
||||||
size_t size;
|
|
||||||
{
|
|
||||||
auto char probe; /* Probes stack depth: */
|
|
||||||
register char *depth = ADDRESS_FUNCTION (probe);
|
|
||||||
|
|
||||||
# if STACK_DIRECTION == 0
|
|
||||||
if (STACK_DIR == 0) /* Unknown growth direction. */
|
|
||||||
find_stack_direction ();
|
|
||||||
# endif
|
|
||||||
|
|
||||||
/* Reclaim garbage, defined as all alloca'd storage that
|
|
||||||
was allocated from deeper in the stack than currently. */
|
|
||||||
|
|
||||||
{
|
|
||||||
register header *hp; /* Traverses linked list. */
|
|
||||||
|
|
||||||
# ifdef emacs
|
|
||||||
BLOCK_INPUT;
|
|
||||||
# endif
|
|
||||||
|
|
||||||
for (hp = last_alloca_header; hp != NULL;)
|
|
||||||
if ((STACK_DIR > 0 && hp->h.deep > depth)
|
|
||||||
|| (STACK_DIR < 0 && hp->h.deep < depth))
|
|
||||||
{
|
|
||||||
register header *np = hp->h.next;
|
|
||||||
|
|
||||||
free ((pointer) hp); /* Collect garbage. */
|
|
||||||
|
|
||||||
hp = np; /* -> next header. */
|
|
||||||
}
|
|
||||||
else
|
|
||||||
break; /* Rest are not deeper. */
|
|
||||||
|
|
||||||
last_alloca_header = hp; /* -> last valid storage. */
|
|
||||||
|
|
||||||
# ifdef emacs
|
|
||||||
UNBLOCK_INPUT;
|
|
||||||
# endif
|
|
||||||
}
|
|
||||||
|
|
||||||
if (size == 0)
|
|
||||||
return NULL; /* No allocation required. */
|
|
||||||
|
|
||||||
/* Allocate combined header + user data storage. */
|
|
||||||
|
|
||||||
{
|
|
||||||
/* Address of header. */
|
|
||||||
register pointer new;
|
|
||||||
|
|
||||||
size_t combined_size = sizeof (header) + size;
|
|
||||||
if (combined_size < sizeof (header))
|
|
||||||
xalloc_die ();
|
|
||||||
|
|
||||||
new = xmalloc (combined_size);
|
|
||||||
|
|
||||||
if (new == 0)
|
|
||||||
abort();
|
|
||||||
|
|
||||||
((header *) new)->h.next = last_alloca_header;
|
|
||||||
((header *) new)->h.deep = depth;
|
|
||||||
|
|
||||||
last_alloca_header = (header *) new;
|
|
||||||
|
|
||||||
/* User storage begins just after header. */
|
|
||||||
|
|
||||||
return (pointer) ((char *) new + sizeof (header));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
# if defined (CRAY) && defined (CRAY_STACKSEG_END)
|
|
||||||
|
|
||||||
# ifdef DEBUG_I00AFUNC
|
|
||||||
# include <stdio.h>
|
|
||||||
# endif
|
|
||||||
|
|
||||||
# ifndef CRAY_STACK
|
|
||||||
# define CRAY_STACK
|
|
||||||
# ifndef CRAY2
|
|
||||||
/* Stack structures for CRAY-1, CRAY X-MP, and CRAY Y-MP */
|
|
||||||
struct stack_control_header
|
|
||||||
{
|
|
||||||
long shgrow:32; /* Number of times stack has grown. */
|
|
||||||
long shaseg:32; /* Size of increments to stack. */
|
|
||||||
long shhwm:32; /* High water mark of stack. */
|
|
||||||
long shsize:32; /* Current size of stack (all segments). */
|
|
||||||
};
|
|
||||||
|
|
||||||
/* The stack segment linkage control information occurs at
|
|
||||||
the high-address end of a stack segment. (The stack
|
|
||||||
grows from low addresses to high addresses.) The initial
|
|
||||||
part of the stack segment linkage control information is
|
|
||||||
0200 (octal) words. This provides for register storage
|
|
||||||
for the routine which overflows the stack. */
|
|
||||||
|
|
||||||
struct stack_segment_linkage
|
|
||||||
{
|
|
||||||
long ss[0200]; /* 0200 overflow words. */
|
|
||||||
long sssize:32; /* Number of words in this segment. */
|
|
||||||
long ssbase:32; /* Offset to stack base. */
|
|
||||||
long:32;
|
|
||||||
long sspseg:32; /* Offset to linkage control of previous
|
|
||||||
segment of stack. */
|
|
||||||
long:32;
|
|
||||||
long sstcpt:32; /* Pointer to task common address block. */
|
|
||||||
long sscsnm; /* Private control structure number for
|
|
||||||
microtasking. */
|
|
||||||
long ssusr1; /* Reserved for user. */
|
|
||||||
long ssusr2; /* Reserved for user. */
|
|
||||||
long sstpid; /* Process ID for pid based multi-tasking. */
|
|
||||||
long ssgvup; /* Pointer to multitasking thread giveup. */
|
|
||||||
long sscray[7]; /* Reserved for Cray Research. */
|
|
||||||
long ssa0;
|
|
||||||
long ssa1;
|
|
||||||
long ssa2;
|
|
||||||
long ssa3;
|
|
||||||
long ssa4;
|
|
||||||
long ssa5;
|
|
||||||
long ssa6;
|
|
||||||
long ssa7;
|
|
||||||
long sss0;
|
|
||||||
long sss1;
|
|
||||||
long sss2;
|
|
||||||
long sss3;
|
|
||||||
long sss4;
|
|
||||||
long sss5;
|
|
||||||
long sss6;
|
|
||||||
long sss7;
|
|
||||||
};
|
|
||||||
|
|
||||||
# else /* CRAY2 */
|
|
||||||
/* The following structure defines the vector of words
|
|
||||||
returned by the STKSTAT library routine. */
|
|
||||||
struct stk_stat
|
|
||||||
{
|
|
||||||
long now; /* Current total stack size. */
|
|
||||||
long maxc; /* Amount of contiguous space which would
|
|
||||||
be required to satisfy the maximum
|
|
||||||
stack demand to date. */
|
|
||||||
long high_water; /* Stack high-water mark. */
|
|
||||||
long overflows; /* Number of stack overflow ($STKOFEN) calls. */
|
|
||||||
long hits; /* Number of internal buffer hits. */
|
|
||||||
long extends; /* Number of block extensions. */
|
|
||||||
long stko_mallocs; /* Block allocations by $STKOFEN. */
|
|
||||||
long underflows; /* Number of stack underflow calls ($STKRETN). */
|
|
||||||
long stko_free; /* Number of deallocations by $STKRETN. */
|
|
||||||
long stkm_free; /* Number of deallocations by $STKMRET. */
|
|
||||||
long segments; /* Current number of stack segments. */
|
|
||||||
long maxs; /* Maximum number of stack segments so far. */
|
|
||||||
long pad_size; /* Stack pad size. */
|
|
||||||
long current_address; /* Current stack segment address. */
|
|
||||||
long current_size; /* Current stack segment size. This
|
|
||||||
number is actually corrupted by STKSTAT to
|
|
||||||
include the fifteen word trailer area. */
|
|
||||||
long initial_address; /* Address of initial segment. */
|
|
||||||
long initial_size; /* Size of initial segment. */
|
|
||||||
};
|
|
||||||
|
|
||||||
/* The following structure describes the data structure which trails
|
|
||||||
any stack segment. I think that the description in 'asdef' is
|
|
||||||
out of date. I only describe the parts that I am sure about. */
|
|
||||||
|
|
||||||
struct stk_trailer
|
|
||||||
{
|
|
||||||
long this_address; /* Address of this block. */
|
|
||||||
long this_size; /* Size of this block (does not include
|
|
||||||
this trailer). */
|
|
||||||
long unknown2;
|
|
||||||
long unknown3;
|
|
||||||
long link; /* Address of trailer block of previous
|
|
||||||
segment. */
|
|
||||||
long unknown5;
|
|
||||||
long unknown6;
|
|
||||||
long unknown7;
|
|
||||||
long unknown8;
|
|
||||||
long unknown9;
|
|
||||||
long unknown10;
|
|
||||||
long unknown11;
|
|
||||||
long unknown12;
|
|
||||||
long unknown13;
|
|
||||||
long unknown14;
|
|
||||||
};
|
|
||||||
|
|
||||||
# endif /* CRAY2 */
|
|
||||||
# endif /* not CRAY_STACK */
|
|
||||||
|
|
||||||
# ifdef CRAY2
|
|
||||||
/* Determine a "stack measure" for an arbitrary ADDRESS.
|
|
||||||
I doubt that "lint" will like this much. */
|
|
||||||
|
|
||||||
static long
|
|
||||||
i00afunc (long *address)
|
|
||||||
{
|
|
||||||
struct stk_stat status;
|
|
||||||
struct stk_trailer *trailer;
|
|
||||||
long *block, size;
|
|
||||||
long result = 0;
|
|
||||||
|
|
||||||
/* We want to iterate through all of the segments. The first
|
|
||||||
step is to get the stack status structure. We could do this
|
|
||||||
more quickly and more directly, perhaps, by referencing the
|
|
||||||
$LM00 common block, but I know that this works. */
|
|
||||||
|
|
||||||
STKSTAT (&status);
|
|
||||||
|
|
||||||
/* Set up the iteration. */
|
|
||||||
|
|
||||||
trailer = (struct stk_trailer *) (status.current_address
|
|
||||||
+ status.current_size
|
|
||||||
- 15);
|
|
||||||
|
|
||||||
/* There must be at least one stack segment. Therefore it is
|
|
||||||
a fatal error if "trailer" is null. */
|
|
||||||
|
|
||||||
if (trailer == 0)
|
|
||||||
abort ();
|
|
||||||
|
|
||||||
/* Discard segments that do not contain our argument address. */
|
|
||||||
|
|
||||||
while (trailer != 0)
|
|
||||||
{
|
|
||||||
block = (long *) trailer->this_address;
|
|
||||||
size = trailer->this_size;
|
|
||||||
if (block == 0 || size == 0)
|
|
||||||
abort ();
|
|
||||||
trailer = (struct stk_trailer *) trailer->link;
|
|
||||||
if ((block <= address) && (address < (block + size)))
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Set the result to the offset in this segment and add the sizes
|
|
||||||
of all predecessor segments. */
|
|
||||||
|
|
||||||
result = address - block;
|
|
||||||
|
|
||||||
if (trailer == 0)
|
|
||||||
{
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
|
|
||||||
do
|
|
||||||
{
|
|
||||||
if (trailer->this_size <= 0)
|
|
||||||
abort ();
|
|
||||||
result += trailer->this_size;
|
|
||||||
trailer = (struct stk_trailer *) trailer->link;
|
|
||||||
}
|
|
||||||
while (trailer != 0);
|
|
||||||
|
|
||||||
/* We are done. Note that if you present a bogus address (one
|
|
||||||
not in any segment), you will get a different number back, formed
|
|
||||||
from subtracting the address of the first block. This is probably
|
|
||||||
not what you want. */
|
|
||||||
|
|
||||||
return (result);
|
|
||||||
}
|
|
||||||
|
|
||||||
# else /* not CRAY2 */
|
|
||||||
/* Stack address function for a CRAY-1, CRAY X-MP, or CRAY Y-MP.
|
|
||||||
Determine the number of the cell within the stack,
|
|
||||||
given the address of the cell. The purpose of this
|
|
||||||
routine is to linearize, in some sense, stack addresses
|
|
||||||
for alloca. */
|
|
||||||
|
|
||||||
static long
|
|
||||||
i00afunc (long address)
|
|
||||||
{
|
|
||||||
long stkl = 0;
|
|
||||||
|
|
||||||
long size, pseg, this_segment, stack;
|
|
||||||
long result = 0;
|
|
||||||
|
|
||||||
struct stack_segment_linkage *ssptr;
|
|
||||||
|
|
||||||
/* Register B67 contains the address of the end of the
|
|
||||||
current stack segment. If you (as a subprogram) store
|
|
||||||
your registers on the stack and find that you are past
|
|
||||||
the contents of B67, you have overflowed the segment.
|
|
||||||
|
|
||||||
B67 also points to the stack segment linkage control
|
|
||||||
area, which is what we are really interested in. */
|
|
||||||
|
|
||||||
stkl = CRAY_STACKSEG_END ();
|
|
||||||
ssptr = (struct stack_segment_linkage *) stkl;
|
|
||||||
|
|
||||||
/* If one subtracts 'size' from the end of the segment,
|
|
||||||
one has the address of the first word of the segment.
|
|
||||||
|
|
||||||
If this is not the first segment, 'pseg' will be
|
|
||||||
nonzero. */
|
|
||||||
|
|
||||||
pseg = ssptr->sspseg;
|
|
||||||
size = ssptr->sssize;
|
|
||||||
|
|
||||||
this_segment = stkl - size;
|
|
||||||
|
|
||||||
/* It is possible that calling this routine itself caused
|
|
||||||
a stack overflow. Discard stack segments which do not
|
|
||||||
contain the target address. */
|
|
||||||
|
|
||||||
while (!(this_segment <= address && address <= stkl))
|
|
||||||
{
|
|
||||||
# ifdef DEBUG_I00AFUNC
|
|
||||||
fprintf (stderr, "%011o %011o %011o\n", this_segment, address, stkl);
|
|
||||||
# endif
|
|
||||||
if (pseg == 0)
|
|
||||||
break;
|
|
||||||
stkl = stkl - pseg;
|
|
||||||
ssptr = (struct stack_segment_linkage *) stkl;
|
|
||||||
size = ssptr->sssize;
|
|
||||||
pseg = ssptr->sspseg;
|
|
||||||
this_segment = stkl - size;
|
|
||||||
}
|
|
||||||
|
|
||||||
result = address - this_segment;
|
|
||||||
|
|
||||||
/* If you subtract pseg from the current end of the stack,
|
|
||||||
you get the address of the previous stack segment's end.
|
|
||||||
This seems a little convoluted to me, but I'll bet you save
|
|
||||||
a cycle somewhere. */
|
|
||||||
|
|
||||||
while (pseg != 0)
|
|
||||||
{
|
|
||||||
# ifdef DEBUG_I00AFUNC
|
|
||||||
fprintf (stderr, "%011o %011o\n", pseg, size);
|
|
||||||
# endif
|
|
||||||
stkl = stkl - pseg;
|
|
||||||
ssptr = (struct stack_segment_linkage *) stkl;
|
|
||||||
size = ssptr->sssize;
|
|
||||||
pseg = ssptr->sspseg;
|
|
||||||
result += size;
|
|
||||||
}
|
|
||||||
return (result);
|
|
||||||
}
|
|
||||||
|
|
||||||
# endif /* not CRAY2 */
|
|
||||||
# endif /* CRAY */
|
|
||||||
|
|
||||||
# endif /* no alloca */
|
|
||||||
#endif /* not GCC version 2 */
|
|
||||||
280
lib/argmatch.c
280
lib/argmatch.c
@@ -1,280 +0,0 @@
|
|||||||
/* argmatch.c -- find a match for a string in an array
|
|
||||||
|
|
||||||
Copyright (C) 1990, 1998, 1999, 2001, 2002, 2003 Free Software
|
|
||||||
Foundation, Inc.
|
|
||||||
|
|
||||||
This program is free software; you can 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. */
|
|
||||||
|
|
||||||
/* Written by David MacKenzie <djm@ai.mit.edu>
|
|
||||||
Modified by Akim Demaille <demaille@inf.enst.fr> */
|
|
||||||
|
|
||||||
#if HAVE_CONFIG_H
|
|
||||||
# include <config.h>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* Specification. */
|
|
||||||
#include "argmatch.h"
|
|
||||||
|
|
||||||
#include <stdio.h>
|
|
||||||
#include <stdlib.h>
|
|
||||||
#include <string.h>
|
|
||||||
|
|
||||||
#include "gettext.h"
|
|
||||||
#define _(msgid) gettext (msgid)
|
|
||||||
|
|
||||||
#include "error.h"
|
|
||||||
#include "quotearg.h"
|
|
||||||
#include "quote.h"
|
|
||||||
#include "unlocked-io.h"
|
|
||||||
|
|
||||||
/* When reporting an invalid argument, show nonprinting characters
|
|
||||||
by using the quoting style ARGMATCH_QUOTING_STYLE. Do not use
|
|
||||||
literal_quoting_style. */
|
|
||||||
#ifndef ARGMATCH_QUOTING_STYLE
|
|
||||||
# define ARGMATCH_QUOTING_STYLE locale_quoting_style
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef EXIT_FAILURE
|
|
||||||
# define EXIT_FAILURE 1
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* Non failing version of argmatch call this function after failing. */
|
|
||||||
#ifndef ARGMATCH_DIE
|
|
||||||
# define ARGMATCH_DIE exit (EXIT_FAILURE)
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef ARGMATCH_DIE_DECL
|
|
||||||
ARGMATCH_DIE_DECL;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
static void
|
|
||||||
__argmatch_die (void)
|
|
||||||
{
|
|
||||||
ARGMATCH_DIE;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Used by XARGMATCH and XARGCASEMATCH. See description in argmatch.h.
|
|
||||||
Default to __argmatch_die, but allow caller to change this at run-time. */
|
|
||||||
argmatch_exit_fn argmatch_die = __argmatch_die;
|
|
||||||
|
|
||||||
|
|
||||||
/* If ARG is an unambiguous match for an element of the
|
|
||||||
null-terminated array ARGLIST, return the index in ARGLIST
|
|
||||||
of the matched element, else -1 if it does not match any element
|
|
||||||
or -2 if it is ambiguous (is a prefix of more than one element).
|
|
||||||
|
|
||||||
If VALLIST is none null, use it to resolve ambiguities limited to
|
|
||||||
synonyms, i.e., for
|
|
||||||
"yes", "yop" -> 0
|
|
||||||
"no", "nope" -> 1
|
|
||||||
"y" is a valid argument, for `0', and "n" for `1'. */
|
|
||||||
|
|
||||||
int
|
|
||||||
argmatch (const char *arg, const char *const *arglist,
|
|
||||||
const char *vallist, size_t valsize)
|
|
||||||
{
|
|
||||||
int i; /* Temporary index in ARGLIST. */
|
|
||||||
size_t arglen; /* Length of ARG. */
|
|
||||||
int matchind = -1; /* Index of first nonexact match. */
|
|
||||||
int ambiguous = 0; /* If nonzero, multiple nonexact match(es). */
|
|
||||||
|
|
||||||
arglen = strlen (arg);
|
|
||||||
|
|
||||||
/* Test all elements for either exact match or abbreviated matches. */
|
|
||||||
for (i = 0; arglist[i]; i++)
|
|
||||||
{
|
|
||||||
if (!strncmp (arglist[i], arg, arglen))
|
|
||||||
{
|
|
||||||
if (strlen (arglist[i]) == arglen)
|
|
||||||
/* Exact match found. */
|
|
||||||
return i;
|
|
||||||
else if (matchind == -1)
|
|
||||||
/* First nonexact match found. */
|
|
||||||
matchind = i;
|
|
||||||
else
|
|
||||||
{
|
|
||||||
/* Second nonexact match found. */
|
|
||||||
if (vallist == NULL
|
|
||||||
|| memcmp (vallist + valsize * matchind,
|
|
||||||
vallist + valsize * i, valsize))
|
|
||||||
{
|
|
||||||
/* There is a real ambiguity, or we could not
|
|
||||||
disambiguate. */
|
|
||||||
ambiguous = 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (ambiguous)
|
|
||||||
return -2;
|
|
||||||
else
|
|
||||||
return matchind;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Error reporting for argmatch.
|
|
||||||
CONTEXT is a description of the type of entity that was being matched.
|
|
||||||
VALUE is the invalid value that was given.
|
|
||||||
PROBLEM is the return value from argmatch. */
|
|
||||||
|
|
||||||
void
|
|
||||||
argmatch_invalid (const char *context, const char *value, int problem)
|
|
||||||
{
|
|
||||||
char const *format = (problem == -1
|
|
||||||
? _("invalid argument %s for %s")
|
|
||||||
: _("ambiguous argument %s for %s"));
|
|
||||||
|
|
||||||
error (0, 0, format, quotearg_n_style (0, ARGMATCH_QUOTING_STYLE, value),
|
|
||||||
quote_n (1, context));
|
|
||||||
}
|
|
||||||
|
|
||||||
/* List the valid arguments for argmatch.
|
|
||||||
ARGLIST is the same as in argmatch.
|
|
||||||
VALLIST is a pointer to an array of values.
|
|
||||||
VALSIZE is the size of the elements of VALLIST */
|
|
||||||
void
|
|
||||||
argmatch_valid (const char *const *arglist,
|
|
||||||
const char *vallist, size_t valsize)
|
|
||||||
{
|
|
||||||
int i;
|
|
||||||
const char *last_val = NULL;
|
|
||||||
|
|
||||||
/* We try to put synonyms on the same line. The assumption is that
|
|
||||||
synonyms follow each other */
|
|
||||||
fprintf (stderr, _("Valid arguments are:"));
|
|
||||||
for (i = 0; arglist[i]; i++)
|
|
||||||
if ((i == 0)
|
|
||||||
|| memcmp (last_val, vallist + valsize * i, valsize))
|
|
||||||
{
|
|
||||||
fprintf (stderr, "\n - `%s'", arglist[i]);
|
|
||||||
last_val = vallist + valsize * i;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
fprintf (stderr, ", `%s'", arglist[i]);
|
|
||||||
}
|
|
||||||
putc ('\n', stderr);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Never failing versions of the previous functions.
|
|
||||||
|
|
||||||
CONTEXT is the context for which argmatch is called (e.g.,
|
|
||||||
"--version-control", or "$VERSION_CONTROL" etc.). Upon failure,
|
|
||||||
calls the (supposed never to return) function EXIT_FN. */
|
|
||||||
|
|
||||||
int
|
|
||||||
__xargmatch_internal (const char *context,
|
|
||||||
const char *arg, const char *const *arglist,
|
|
||||||
const char *vallist, size_t valsize,
|
|
||||||
argmatch_exit_fn exit_fn)
|
|
||||||
{
|
|
||||||
int res = argmatch (arg, arglist, vallist, valsize);
|
|
||||||
if (res >= 0)
|
|
||||||
/* Success. */
|
|
||||||
return res;
|
|
||||||
|
|
||||||
/* We failed. Explain why. */
|
|
||||||
argmatch_invalid (context, arg, res);
|
|
||||||
argmatch_valid (arglist, vallist, valsize);
|
|
||||||
(*exit_fn) ();
|
|
||||||
|
|
||||||
return -1; /* To please the compilers. */
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Look for VALUE in VALLIST, an array of objects of size VALSIZE and
|
|
||||||
return the first corresponding argument in ARGLIST */
|
|
||||||
const char *
|
|
||||||
argmatch_to_argument (const char *value,
|
|
||||||
const char *const *arglist,
|
|
||||||
const char *vallist, size_t valsize)
|
|
||||||
{
|
|
||||||
int i;
|
|
||||||
|
|
||||||
for (i = 0; arglist[i]; i++)
|
|
||||||
if (!memcmp (value, vallist + valsize * i, valsize))
|
|
||||||
return arglist[i];
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
#ifdef TEST
|
|
||||||
/*
|
|
||||||
* Based on "getversion.c" by David MacKenzie <djm@gnu.ai.mit.edu>
|
|
||||||
*/
|
|
||||||
char *program_name;
|
|
||||||
extern const char *getenv ();
|
|
||||||
|
|
||||||
/* When to make backup files. */
|
|
||||||
enum backup_type
|
|
||||||
{
|
|
||||||
/* Never make backups. */
|
|
||||||
none,
|
|
||||||
|
|
||||||
/* Make simple backups of every file. */
|
|
||||||
simple,
|
|
||||||
|
|
||||||
/* Make numbered backups of files that already have numbered backups,
|
|
||||||
and simple backups of the others. */
|
|
||||||
numbered_existing,
|
|
||||||
|
|
||||||
/* Make numbered backups of every file. */
|
|
||||||
numbered
|
|
||||||
};
|
|
||||||
|
|
||||||
/* Two tables describing arguments (keys) and their corresponding
|
|
||||||
values */
|
|
||||||
static const char *const backup_args[] =
|
|
||||||
{
|
|
||||||
"no", "none", "off",
|
|
||||||
"simple", "never",
|
|
||||||
"existing", "nil",
|
|
||||||
"numbered", "t",
|
|
||||||
0
|
|
||||||
};
|
|
||||||
|
|
||||||
static const enum backup_type backup_vals[] =
|
|
||||||
{
|
|
||||||
none, none, none,
|
|
||||||
simple, simple,
|
|
||||||
numbered_existing, numbered_existing,
|
|
||||||
numbered, numbered
|
|
||||||
};
|
|
||||||
|
|
||||||
int
|
|
||||||
main (int argc, const char *const *argv)
|
|
||||||
{
|
|
||||||
const char *cp;
|
|
||||||
enum backup_type backup_type = none;
|
|
||||||
|
|
||||||
program_name = (char *) argv[0];
|
|
||||||
|
|
||||||
if (argc > 2)
|
|
||||||
{
|
|
||||||
fprintf (stderr, "Usage: %s [VERSION_CONTROL]\n", program_name);
|
|
||||||
exit (1);
|
|
||||||
}
|
|
||||||
|
|
||||||
if ((cp = getenv ("VERSION_CONTROL")))
|
|
||||||
backup_type = XARGMATCH ("$VERSION_CONTROL", cp,
|
|
||||||
backup_args, backup_vals);
|
|
||||||
|
|
||||||
if (argc == 2)
|
|
||||||
backup_type = XARGMATCH (program_name, argv[1],
|
|
||||||
backup_args, backup_vals);
|
|
||||||
|
|
||||||
printf ("The version control is `%s'\n",
|
|
||||||
ARGMATCH_TO_ARGUMENT (backup_type, backup_args, backup_vals));
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
109
lib/argmatch.h
109
lib/argmatch.h
@@ -1,109 +0,0 @@
|
|||||||
/* argmatch.h -- definitions and prototypes for argmatch.c
|
|
||||||
Copyright (C) 1990, 1998, 1999, 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. */
|
|
||||||
|
|
||||||
/* Written by David MacKenzie <djm@ai.mit.edu>
|
|
||||||
Modified by Akim Demaille <demaille@inf.enst.fr> */
|
|
||||||
|
|
||||||
#ifndef ARGMATCH_H_
|
|
||||||
# define ARGMATCH_H_ 1
|
|
||||||
|
|
||||||
# include <stddef.h>
|
|
||||||
|
|
||||||
# define ARRAY_CARDINALITY(Array) (sizeof (Array) / sizeof *(Array))
|
|
||||||
|
|
||||||
# define ARGMATCH_CONSTRAINT(Arglist, Vallist) \
|
|
||||||
(ARRAY_CARDINALITY (Arglist) == ARRAY_CARDINALITY (Vallist) + 1)
|
|
||||||
|
|
||||||
/* Assert there are as many real arguments as there are values
|
|
||||||
(argument list ends with a NULL guard). ARGMATCH_VERIFY is
|
|
||||||
preferred, since it is guaranteed to be checked at compile-time.
|
|
||||||
ARGMATCH_ASSERT is for backward compatibility only. */
|
|
||||||
|
|
||||||
# define ARGMATCH_VERIFY(Arglist, Vallist) \
|
|
||||||
struct argmatch_verify \
|
|
||||||
{ \
|
|
||||||
char argmatch_verify[ARGMATCH_CONSTRAINT(Arglist, Vallist) ? 1 : -1]; \
|
|
||||||
}
|
|
||||||
|
|
||||||
# define ARGMATCH_ASSERT(Arglist, Vallist) \
|
|
||||||
assert (ARGMATCH_CONSTRAINT (Arglist, Vallist))
|
|
||||||
|
|
||||||
/* Return the index of the element of ARGLIST (NULL terminated) that
|
|
||||||
matches with ARG. If VALLIST is not NULL, then use it to resolve
|
|
||||||
false ambiguities (i.e., different matches of ARG but corresponding
|
|
||||||
to the same values in VALLIST). */
|
|
||||||
|
|
||||||
int argmatch (char const *arg, char const *const *arglist,
|
|
||||||
char const *vallist, size_t valsize);
|
|
||||||
|
|
||||||
# define ARGMATCH(Arg, Arglist, Vallist) \
|
|
||||||
argmatch (Arg, Arglist, (char const *) (Vallist), sizeof *(Vallist))
|
|
||||||
|
|
||||||
/* xargmatch calls this function when it fails. This function should not
|
|
||||||
return. By default, this is a function that calls ARGMATCH_DIE which
|
|
||||||
in turn defaults to `exit (EXIT_FAILURE)'. */
|
|
||||||
typedef void (*argmatch_exit_fn) (void);
|
|
||||||
extern argmatch_exit_fn argmatch_die;
|
|
||||||
|
|
||||||
/* Report on stderr why argmatch failed. Report correct values. */
|
|
||||||
|
|
||||||
void argmatch_invalid (char const *context, char const *value, int problem);
|
|
||||||
|
|
||||||
/* Left for compatibility with the old name invalid_arg */
|
|
||||||
|
|
||||||
# define invalid_arg(Context, Value, Problem) \
|
|
||||||
argmatch_invalid (Context, Value, Problem)
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* Report on stderr the list of possible arguments. */
|
|
||||||
|
|
||||||
void argmatch_valid (char const *const *arglist,
|
|
||||||
char const *vallist, size_t valsize);
|
|
||||||
|
|
||||||
# define ARGMATCH_VALID(Arglist, Vallist) \
|
|
||||||
argmatch_valid (Arglist, (char const *) (Vallist), sizeof *(Vallist))
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* Same as argmatch, but upon failure, reports a explanation on the
|
|
||||||
failure, and exits using the function EXIT_FN. */
|
|
||||||
|
|
||||||
int __xargmatch_internal (char const *context,
|
|
||||||
char const *arg, char const *const *arglist,
|
|
||||||
char const *vallist, size_t valsize,
|
|
||||||
argmatch_exit_fn exit_fn);
|
|
||||||
|
|
||||||
/* Programmer friendly interface to __xargmatch_internal. */
|
|
||||||
|
|
||||||
# define XARGMATCH(Context, Arg, Arglist, Vallist) \
|
|
||||||
((Vallist) [__xargmatch_internal (Context, Arg, Arglist, \
|
|
||||||
(char const *) (Vallist), \
|
|
||||||
sizeof *(Vallist), \
|
|
||||||
argmatch_die)])
|
|
||||||
|
|
||||||
/* Convert a value into a corresponding argument. */
|
|
||||||
|
|
||||||
char const *argmatch_to_argument (char const *value,
|
|
||||||
char const *const *arglist,
|
|
||||||
char const *vallist, size_t valsize);
|
|
||||||
|
|
||||||
# define ARGMATCH_TO_ARGUMENT(Value, Arglist, Vallist) \
|
|
||||||
argmatch_to_argument (Value, Arglist, \
|
|
||||||
(char const *) (Vallist), sizeof *(Vallist))
|
|
||||||
|
|
||||||
#endif /* ARGMATCH_H_ */
|
|
||||||
@@ -1,79 +0,0 @@
|
|||||||
/* basename.c -- return the last element in a path
|
|
||||||
Copyright (C) 1990, 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
|
|
||||||
|
|
||||||
This program is free software; you can 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. */
|
|
||||||
|
|
||||||
#if HAVE_CONFIG_H
|
|
||||||
# include <config.h>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if STDC_HEADERS || HAVE_STRING_H
|
|
||||||
# include <string.h>
|
|
||||||
#endif
|
|
||||||
#include "dirname.h"
|
|
||||||
|
|
||||||
/* In general, we can't use the builtin `basename' function if available,
|
|
||||||
since it has different meanings in different environments.
|
|
||||||
In some environments the builtin `basename' modifies its argument.
|
|
||||||
|
|
||||||
Return the address of the last file name component of NAME. If
|
|
||||||
NAME has no file name components because it is all slashes, return
|
|
||||||
NAME if it is empty, the address of its last slash otherwise. */
|
|
||||||
|
|
||||||
char *
|
|
||||||
base_name (char const *name)
|
|
||||||
{
|
|
||||||
char const *base = name + FILESYSTEM_PREFIX_LEN (name);
|
|
||||||
char const *p;
|
|
||||||
|
|
||||||
for (p = base; *p; p++)
|
|
||||||
{
|
|
||||||
if (ISSLASH (*p))
|
|
||||||
{
|
|
||||||
/* Treat multiple adjacent slashes like a single slash. */
|
|
||||||
do p++;
|
|
||||||
while (ISSLASH (*p));
|
|
||||||
|
|
||||||
/* If the file name ends in slash, use the trailing slash as
|
|
||||||
the basename if no non-slashes have been found. */
|
|
||||||
if (! *p)
|
|
||||||
{
|
|
||||||
if (ISSLASH (*base))
|
|
||||||
base = p - 1;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* *P is a non-slash preceded by a slash. */
|
|
||||||
base = p;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return (char *) base;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Return the length of of the basename NAME. Typically NAME is the
|
|
||||||
value returned by base_name. Act like strlen (NAME), except omit
|
|
||||||
redundant trailing slashes. */
|
|
||||||
|
|
||||||
size_t
|
|
||||||
base_len (char const *name)
|
|
||||||
{
|
|
||||||
size_t len;
|
|
||||||
|
|
||||||
for (len = strlen (name); 1 < len && ISSLASH (name[len - 1]); len--)
|
|
||||||
continue;
|
|
||||||
|
|
||||||
return len;
|
|
||||||
}
|
|
||||||
121
lib/dirname.c
121
lib/dirname.c
@@ -1,121 +0,0 @@
|
|||||||
/* dirname.c -- return all but the last element in a path
|
|
||||||
Copyright 1990, 1998, 2000, 2001, 2003 Free Software Foundation, Inc.
|
|
||||||
|
|
||||||
This program is free software; you can 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. */
|
|
||||||
|
|
||||||
#if HAVE_CONFIG_H
|
|
||||||
# include <config.h>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if STDC_HEADERS || HAVE_STRING_H
|
|
||||||
# include <string.h>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#include "dirname.h"
|
|
||||||
#include "xalloc.h"
|
|
||||||
|
|
||||||
/* Return the length of `dirname (PATH)', or zero if PATH is
|
|
||||||
in the working directory. Works properly even if
|
|
||||||
there are trailing slashes (by effectively ignoring them). */
|
|
||||||
size_t
|
|
||||||
dir_len (char const *path)
|
|
||||||
{
|
|
||||||
size_t prefix_length = FILESYSTEM_PREFIX_LEN (path);
|
|
||||||
size_t length;
|
|
||||||
|
|
||||||
/* Strip the basename and any redundant slashes before it. */
|
|
||||||
for (length = base_name (path) - path; prefix_length < length; length--)
|
|
||||||
if (! ISSLASH (path[length - 1]))
|
|
||||||
return length;
|
|
||||||
|
|
||||||
/* But don't strip the only slash from "/". */
|
|
||||||
return prefix_length + ISSLASH (path[prefix_length]);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Return the leading directories part of PATH,
|
|
||||||
allocated with xmalloc.
|
|
||||||
Works properly even if there are trailing slashes
|
|
||||||
(by effectively ignoring them). */
|
|
||||||
|
|
||||||
char *
|
|
||||||
dir_name (char const *path)
|
|
||||||
{
|
|
||||||
size_t length = dir_len (path);
|
|
||||||
int append_dot = (length == FILESYSTEM_PREFIX_LEN (path));
|
|
||||||
char *newpath = xmalloc (length + append_dot + 1);
|
|
||||||
memcpy (newpath, path, length);
|
|
||||||
if (append_dot)
|
|
||||||
newpath[length++] = '.';
|
|
||||||
newpath[length] = 0;
|
|
||||||
return newpath;
|
|
||||||
}
|
|
||||||
|
|
||||||
#ifdef TEST_DIRNAME
|
|
||||||
/*
|
|
||||||
|
|
||||||
Run the test like this (expect no output):
|
|
||||||
gcc -DHAVE_CONFIG_H -DTEST_DIRNAME -I.. -O -Wall \
|
|
||||||
basename.c dirname.c xmalloc.c error.c
|
|
||||||
sed -n '/^BEGIN-DATA$/,/^END-DATA$/p' dirname.c|grep -v DATA|./a.out
|
|
||||||
|
|
||||||
If it's been built on a DOS or Windows platforms, run another test like
|
|
||||||
this (again, expect no output):
|
|
||||||
sed -n '/^BEGIN-DOS-DATA$/,/^END-DOS-DATA$/p' dirname.c|grep -v DATA|./a.out
|
|
||||||
|
|
||||||
BEGIN-DATA
|
|
||||||
foo//// .
|
|
||||||
bar/foo//// bar
|
|
||||||
foo/ .
|
|
||||||
/ /
|
|
||||||
. .
|
|
||||||
a .
|
|
||||||
END-DATA
|
|
||||||
|
|
||||||
BEGIN-DOS-DATA
|
|
||||||
c:///// c:/
|
|
||||||
c:/ c:/
|
|
||||||
c:/. c:/
|
|
||||||
c:foo c:.
|
|
||||||
c:foo/bar c:foo
|
|
||||||
END-DOS-DATA
|
|
||||||
|
|
||||||
*/
|
|
||||||
|
|
||||||
# define MAX_BUFF_LEN 1024
|
|
||||||
# include <stdio.h>
|
|
||||||
|
|
||||||
char *program_name;
|
|
||||||
|
|
||||||
int
|
|
||||||
main (int argc, char *argv[])
|
|
||||||
{
|
|
||||||
char buff[MAX_BUFF_LEN + 1];
|
|
||||||
|
|
||||||
program_name = argv[0];
|
|
||||||
|
|
||||||
buff[MAX_BUFF_LEN] = 0;
|
|
||||||
while (fgets (buff, MAX_BUFF_LEN, stdin) && buff[0])
|
|
||||||
{
|
|
||||||
char path[MAX_BUFF_LEN];
|
|
||||||
char expected_result[MAX_BUFF_LEN];
|
|
||||||
char const *result;
|
|
||||||
sscanf (buff, "%s %s", path, expected_result);
|
|
||||||
result = dir_name (path);
|
|
||||||
if (strcmp (result, expected_result))
|
|
||||||
printf ("%s: got %s, expected %s\n", path, result, expected_result);
|
|
||||||
}
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
@@ -1,49 +0,0 @@
|
|||||||
/* Copyright (C) 1998, 2001 Free Software Foundation, Inc.
|
|
||||||
|
|
||||||
This program is free software; you can 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. */
|
|
||||||
|
|
||||||
#ifndef DIRNAME_H_
|
|
||||||
# define DIRNAME_H_ 1
|
|
||||||
|
|
||||||
# include <stddef.h>
|
|
||||||
|
|
||||||
# ifndef PARAMS
|
|
||||||
# if defined PROTOTYPES || (defined __STDC__ && __STDC__)
|
|
||||||
# define PARAMS(Args) Args
|
|
||||||
# else
|
|
||||||
# define PARAMS(Args) ()
|
|
||||||
# endif
|
|
||||||
# endif
|
|
||||||
|
|
||||||
# ifndef DIRECTORY_SEPARATOR
|
|
||||||
# define DIRECTORY_SEPARATOR '/'
|
|
||||||
# endif
|
|
||||||
|
|
||||||
# ifndef ISSLASH
|
|
||||||
# define ISSLASH(C) ((C) == DIRECTORY_SEPARATOR)
|
|
||||||
# endif
|
|
||||||
|
|
||||||
# ifndef FILESYSTEM_PREFIX_LEN
|
|
||||||
# define FILESYSTEM_PREFIX_LEN(Filename) 0
|
|
||||||
# endif
|
|
||||||
|
|
||||||
char *base_name PARAMS ((char const *path));
|
|
||||||
char *dir_name PARAMS ((char const *path));
|
|
||||||
size_t base_len PARAMS ((char const *path));
|
|
||||||
size_t dir_len PARAMS ((char const *path));
|
|
||||||
|
|
||||||
int strip_trailing_slashes PARAMS ((char *path));
|
|
||||||
|
|
||||||
#endif /* not DIRNAME_H_ */
|
|
||||||
407
lib/error.c
407
lib/error.c
@@ -1,407 +0,0 @@
|
|||||||
/* Error handler for noninteractive utilities
|
|
||||||
Copyright (C) 1990-1998, 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. */
|
|
||||||
|
|
||||||
/* Written by David MacKenzie <djm@gnu.ai.mit.edu>. */
|
|
||||||
|
|
||||||
#ifdef HAVE_CONFIG_H
|
|
||||||
# include <config.h>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#include <stdio.h>
|
|
||||||
|
|
||||||
#ifdef _LIBC
|
|
||||||
# include <libintl.h>
|
|
||||||
#else
|
|
||||||
# include "gettext.h"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef _LIBC
|
|
||||||
# include <wchar.h>
|
|
||||||
# define mbsrtowcs __mbsrtowcs
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if HAVE_VPRINTF || HAVE_DOPRNT || _LIBC
|
|
||||||
# if __STDC__
|
|
||||||
# include <stdarg.h>
|
|
||||||
# define VA_START(args, lastarg) va_start(args, lastarg)
|
|
||||||
# else
|
|
||||||
# include <varargs.h>
|
|
||||||
# define VA_START(args, lastarg) va_start(args)
|
|
||||||
# endif
|
|
||||||
#else
|
|
||||||
# define va_alist a1, a2, a3, a4, a5, a6, a7, a8
|
|
||||||
# define va_dcl char *a1, *a2, *a3, *a4, *a5, *a6, *a7, *a8;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if STDC_HEADERS || _LIBC
|
|
||||||
# include <stdlib.h>
|
|
||||||
# include <string.h>
|
|
||||||
#else
|
|
||||||
void exit ();
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#include "error.h"
|
|
||||||
|
|
||||||
#if !_LIBC
|
|
||||||
# include "unlocked-io.h"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef _
|
|
||||||
# define _(String) String
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* If NULL, error will flush stdout, then print on stderr the program
|
|
||||||
name, a colon and a space. Otherwise, error will call this
|
|
||||||
function without parameters instead. */
|
|
||||||
void (*error_print_progname) (
|
|
||||||
#if __STDC__ - 0
|
|
||||||
void
|
|
||||||
#endif
|
|
||||||
);
|
|
||||||
|
|
||||||
/* This variable is incremented each time `error' is called. */
|
|
||||||
unsigned int error_message_count;
|
|
||||||
|
|
||||||
#ifdef _LIBC
|
|
||||||
/* In the GNU C library, there is a predefined variable for this. */
|
|
||||||
|
|
||||||
# define program_name program_invocation_name
|
|
||||||
# include <errno.h>
|
|
||||||
# include <libio/libioP.h>
|
|
||||||
|
|
||||||
/* In GNU libc we want do not want to use the common name `error' directly.
|
|
||||||
Instead make it a weak alias. */
|
|
||||||
extern void __error (int status, int errnum, const char *message, ...)
|
|
||||||
__attribute__ ((__format__ (__printf__, 3, 4)));
|
|
||||||
extern void __error_at_line (int status, int errnum, const char *file_name,
|
|
||||||
unsigned int line_number, const char *message,
|
|
||||||
...)
|
|
||||||
__attribute__ ((__format__ (__printf__, 5, 6)));;
|
|
||||||
# define error __error
|
|
||||||
# define error_at_line __error_at_line
|
|
||||||
|
|
||||||
# ifdef USE_IN_LIBIO
|
|
||||||
# include <libio/iolibio.h>
|
|
||||||
# define fflush(s) INTUSE(_IO_fflush) (s)
|
|
||||||
# undef putc
|
|
||||||
# define putc(c, fp) INTUSE(_IO_putc) (c, fp)
|
|
||||||
# endif
|
|
||||||
|
|
||||||
#else /* not _LIBC */
|
|
||||||
|
|
||||||
# if !HAVE_DECL_STRERROR_R && STRERROR_R_CHAR_P
|
|
||||||
# ifndef HAVE_DECL_STRERROR_R
|
|
||||||
"this configure-time declaration test was not run"
|
|
||||||
# endif
|
|
||||||
char *strerror_r ();
|
|
||||||
# endif
|
|
||||||
|
|
||||||
/* The calling program should define program_name and set it to the
|
|
||||||
name of the executing program. */
|
|
||||||
extern char *program_name;
|
|
||||||
|
|
||||||
# if HAVE_STRERROR_R || defined strerror_r
|
|
||||||
# define __strerror_r strerror_r
|
|
||||||
# else
|
|
||||||
# if HAVE_STRERROR
|
|
||||||
# ifndef HAVE_DECL_STRERROR
|
|
||||||
"this configure-time declaration test was not run"
|
|
||||||
# endif
|
|
||||||
# if !HAVE_DECL_STRERROR
|
|
||||||
char *strerror ();
|
|
||||||
# endif
|
|
||||||
# else
|
|
||||||
static char *
|
|
||||||
private_strerror (int errnum)
|
|
||||||
{
|
|
||||||
extern char *sys_errlist[];
|
|
||||||
extern int sys_nerr;
|
|
||||||
|
|
||||||
if (errnum > 0 && errnum <= sys_nerr)
|
|
||||||
return _(sys_errlist[errnum]);
|
|
||||||
return _("Unknown system error");
|
|
||||||
}
|
|
||||||
# define strerror private_strerror
|
|
||||||
# endif /* HAVE_STRERROR */
|
|
||||||
# endif /* HAVE_STRERROR_R || defined strerror_r */
|
|
||||||
#endif /* not _LIBC */
|
|
||||||
|
|
||||||
static void
|
|
||||||
print_errno_message (int errnum)
|
|
||||||
{
|
|
||||||
char const *s;
|
|
||||||
|
|
||||||
#if defined HAVE_STRERROR_R || _LIBC
|
|
||||||
char errbuf[1024];
|
|
||||||
# if STRERROR_R_CHAR_P || _LIBC
|
|
||||||
s = __strerror_r (errnum, errbuf, sizeof errbuf);
|
|
||||||
# else
|
|
||||||
if (__strerror_r (errnum, errbuf, sizeof errbuf) == 0)
|
|
||||||
s = errbuf;
|
|
||||||
else
|
|
||||||
s = 0;
|
|
||||||
# endif
|
|
||||||
#else
|
|
||||||
s = strerror (errnum);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if !_LIBC
|
|
||||||
if (! s)
|
|
||||||
s = _("Unknown system error");
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if _LIBC && USE_IN_LIBIO
|
|
||||||
if (_IO_fwide (stderr, 0) > 0)
|
|
||||||
{
|
|
||||||
__fwprintf (stderr, L": %s", s);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
fprintf (stderr, ": %s", s);
|
|
||||||
}
|
|
||||||
|
|
||||||
#ifdef VA_START
|
|
||||||
static void
|
|
||||||
error_tail (int status, int errnum, const char *message, va_list args)
|
|
||||||
{
|
|
||||||
# if HAVE_VPRINTF || _LIBC
|
|
||||||
# if _LIBC && USE_IN_LIBIO
|
|
||||||
if (_IO_fwide (stderr, 0) > 0)
|
|
||||||
{
|
|
||||||
# define ALLOCA_LIMIT 2000
|
|
||||||
size_t len = strlen (message) + 1;
|
|
||||||
wchar_t *wmessage = NULL;
|
|
||||||
mbstate_t st;
|
|
||||||
size_t res;
|
|
||||||
const char *tmp;
|
|
||||||
|
|
||||||
do
|
|
||||||
{
|
|
||||||
if (len < ALLOCA_LIMIT)
|
|
||||||
wmessage = (wchar_t *) alloca (len * sizeof (wchar_t));
|
|
||||||
else
|
|
||||||
{
|
|
||||||
if (wmessage != NULL && len / 2 < ALLOCA_LIMIT)
|
|
||||||
wmessage = NULL;
|
|
||||||
|
|
||||||
wmessage = (wchar_t *) realloc (wmessage,
|
|
||||||
len * sizeof (wchar_t));
|
|
||||||
|
|
||||||
if (wmessage == NULL)
|
|
||||||
{
|
|
||||||
fputws_unlocked (L"out of memory\n", stderr);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
memset (&st, '\0', sizeof (st));
|
|
||||||
tmp =message;
|
|
||||||
}
|
|
||||||
while ((res = mbsrtowcs (wmessage, &tmp, len, &st)) == len);
|
|
||||||
|
|
||||||
if (res == (size_t) -1)
|
|
||||||
/* The string cannot be converted. */
|
|
||||||
wmessage = (wchar_t *) L"???";
|
|
||||||
|
|
||||||
__vfwprintf (stderr, wmessage, args);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
# endif
|
|
||||||
vfprintf (stderr, message, args);
|
|
||||||
# else
|
|
||||||
_doprnt (message, args, stderr);
|
|
||||||
# endif
|
|
||||||
va_end (args);
|
|
||||||
|
|
||||||
++error_message_count;
|
|
||||||
if (errnum)
|
|
||||||
print_errno_message (errnum);
|
|
||||||
# if _LIBC && USE_IN_LIBIO
|
|
||||||
if (_IO_fwide (stderr, 0) > 0)
|
|
||||||
putwc (L'\n', stderr);
|
|
||||||
else
|
|
||||||
# endif
|
|
||||||
putc ('\n', stderr);
|
|
||||||
fflush (stderr);
|
|
||||||
if (status)
|
|
||||||
exit (status);
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
/* Print the program name and error message MESSAGE, which is a printf-style
|
|
||||||
format string with optional args.
|
|
||||||
If ERRNUM is nonzero, print its corresponding system error message.
|
|
||||||
Exit with status STATUS if it is nonzero. */
|
|
||||||
/* VARARGS */
|
|
||||||
void
|
|
||||||
#if defined VA_START && __STDC__
|
|
||||||
error (int status, int errnum, const char *message, ...)
|
|
||||||
#else
|
|
||||||
error (status, errnum, message, va_alist)
|
|
||||||
int status;
|
|
||||||
int errnum;
|
|
||||||
char *message;
|
|
||||||
va_dcl
|
|
||||||
#endif
|
|
||||||
{
|
|
||||||
#ifdef VA_START
|
|
||||||
va_list args;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
fflush (stdout);
|
|
||||||
#ifdef _LIBC
|
|
||||||
# ifdef USE_IN_LIBIO
|
|
||||||
_IO_flockfile (stderr);
|
|
||||||
# else
|
|
||||||
__flockfile (stderr);
|
|
||||||
# endif
|
|
||||||
#endif
|
|
||||||
if (error_print_progname)
|
|
||||||
(*error_print_progname) ();
|
|
||||||
else
|
|
||||||
{
|
|
||||||
#if _LIBC && USE_IN_LIBIO
|
|
||||||
if (_IO_fwide (stderr, 0) > 0)
|
|
||||||
__fwprintf (stderr, L"%s: ", program_name);
|
|
||||||
else
|
|
||||||
#endif
|
|
||||||
fprintf (stderr, "%s: ", program_name);
|
|
||||||
}
|
|
||||||
|
|
||||||
#ifdef VA_START
|
|
||||||
VA_START (args, message);
|
|
||||||
error_tail (status, errnum, message, args);
|
|
||||||
#else
|
|
||||||
fprintf (stderr, message, a1, a2, a3, a4, a5, a6, a7, a8);
|
|
||||||
|
|
||||||
++error_message_count;
|
|
||||||
if (errnum)
|
|
||||||
print_errno_message (errnum);
|
|
||||||
putc ('\n', stderr);
|
|
||||||
fflush (stderr);
|
|
||||||
if (status)
|
|
||||||
exit (status);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef _LIBC
|
|
||||||
# ifdef USE_IN_LIBIO
|
|
||||||
_IO_funlockfile (stderr);
|
|
||||||
# else
|
|
||||||
__funlockfile (stderr);
|
|
||||||
# endif
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Sometimes we want to have at most one error per line. This
|
|
||||||
variable controls whether this mode is selected or not. */
|
|
||||||
int error_one_per_line;
|
|
||||||
|
|
||||||
void
|
|
||||||
#if defined VA_START && __STDC__
|
|
||||||
error_at_line (int status, int errnum, const char *file_name,
|
|
||||||
unsigned int line_number, const char *message, ...)
|
|
||||||
#else
|
|
||||||
error_at_line (status, errnum, file_name, line_number, message, va_alist)
|
|
||||||
int status;
|
|
||||||
int errnum;
|
|
||||||
const char *file_name;
|
|
||||||
unsigned int line_number;
|
|
||||||
char *message;
|
|
||||||
va_dcl
|
|
||||||
#endif
|
|
||||||
{
|
|
||||||
#ifdef VA_START
|
|
||||||
va_list args;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
if (error_one_per_line)
|
|
||||||
{
|
|
||||||
static const char *old_file_name;
|
|
||||||
static unsigned int old_line_number;
|
|
||||||
|
|
||||||
if (old_line_number == line_number
|
|
||||||
&& (file_name == old_file_name
|
|
||||||
|| strcmp (old_file_name, file_name) == 0))
|
|
||||||
/* Simply return and print nothing. */
|
|
||||||
return;
|
|
||||||
|
|
||||||
old_file_name = file_name;
|
|
||||||
old_line_number = line_number;
|
|
||||||
}
|
|
||||||
|
|
||||||
fflush (stdout);
|
|
||||||
#ifdef _LIBC
|
|
||||||
# ifdef USE_IN_LIBIO
|
|
||||||
_IO_flockfile (stderr);
|
|
||||||
# else
|
|
||||||
__flockfile (stderr);
|
|
||||||
# endif
|
|
||||||
#endif
|
|
||||||
if (error_print_progname)
|
|
||||||
(*error_print_progname) ();
|
|
||||||
else
|
|
||||||
{
|
|
||||||
#if _LIBC && USE_IN_LIBIO
|
|
||||||
if (_IO_fwide (stderr, 0) > 0)
|
|
||||||
__fwprintf (stderr, L"%s: ", program_name);
|
|
||||||
else
|
|
||||||
#endif
|
|
||||||
fprintf (stderr, "%s:", program_name);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (file_name != NULL)
|
|
||||||
{
|
|
||||||
#if _LIBC && USE_IN_LIBIO
|
|
||||||
if (_IO_fwide (stderr, 0) > 0)
|
|
||||||
__fwprintf (stderr, L"%s:%d: ", file_name, line_number);
|
|
||||||
else
|
|
||||||
#endif
|
|
||||||
fprintf (stderr, "%s:%d: ", file_name, line_number);
|
|
||||||
}
|
|
||||||
|
|
||||||
#ifdef VA_START
|
|
||||||
VA_START (args, message);
|
|
||||||
error_tail (status, errnum, message, args);
|
|
||||||
#else
|
|
||||||
fprintf (stderr, message, a1, a2, a3, a4, a5, a6, a7, a8);
|
|
||||||
|
|
||||||
++error_message_count;
|
|
||||||
if (errnum)
|
|
||||||
print_errno_message (errnum);
|
|
||||||
putc ('\n', stderr);
|
|
||||||
fflush (stderr);
|
|
||||||
if (status)
|
|
||||||
exit (status);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef _LIBC
|
|
||||||
# ifdef USE_IN_LIBIO
|
|
||||||
_IO_funlockfile (stderr);
|
|
||||||
# else
|
|
||||||
__funlockfile (stderr);
|
|
||||||
# endif
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
#ifdef _LIBC
|
|
||||||
/* Make the weak alias. */
|
|
||||||
# undef error
|
|
||||||
# undef error_at_line
|
|
||||||
weak_alias (__error, error)
|
|
||||||
weak_alias (__error_at_line, error_at_line)
|
|
||||||
#endif
|
|
||||||
78
lib/error.h
78
lib/error.h
@@ -1,78 +0,0 @@
|
|||||||
/* Declaration for error-reporting function
|
|
||||||
Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
|
|
||||||
|
|
||||||
|
|
||||||
NOTE: The canonical source of this file is maintained with the GNU C Library.
|
|
||||||
Bugs can be reported to bug-glibc@prep.ai.mit.edu.
|
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify it
|
|
||||||
under the terms of the GNU General Public License as published by the
|
|
||||||
Free Software Foundation; either version 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. */
|
|
||||||
|
|
||||||
#ifndef _ERROR_H
|
|
||||||
#define _ERROR_H 1
|
|
||||||
|
|
||||||
#ifndef __attribute__
|
|
||||||
/* This feature is available in gcc versions 2.5 and later. */
|
|
||||||
# if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 5)
|
|
||||||
# define __attribute__(Spec) /* empty */
|
|
||||||
# endif
|
|
||||||
/* The __-protected variants of `format' and `printf' attributes
|
|
||||||
are accepted by gcc versions 2.6.4 (effectively 2.7) and later. */
|
|
||||||
# if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 7)
|
|
||||||
# define __format__ format
|
|
||||||
# define __printf__ printf
|
|
||||||
# endif
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
|
||||||
extern "C" {
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined (__STDC__) && __STDC__
|
|
||||||
|
|
||||||
/* Print a message with `fprintf (stderr, FORMAT, ...)';
|
|
||||||
if ERRNUM is nonzero, follow it with ": " and strerror (ERRNUM).
|
|
||||||
If STATUS is nonzero, terminate the program with `exit (STATUS)'. */
|
|
||||||
|
|
||||||
extern void error (int status, int errnum, const char *format, ...)
|
|
||||||
__attribute__ ((__format__ (__printf__, 3, 4)));
|
|
||||||
|
|
||||||
extern void error_at_line (int status, int errnum, const char *fname,
|
|
||||||
unsigned int lineno, const char *format, ...)
|
|
||||||
__attribute__ ((__format__ (__printf__, 5, 6)));
|
|
||||||
|
|
||||||
/* If NULL, error will flush stdout, then print on stderr the program
|
|
||||||
name, a colon and a space. Otherwise, error will call this
|
|
||||||
function without parameters instead. */
|
|
||||||
extern void (*error_print_progname) (void);
|
|
||||||
|
|
||||||
#else
|
|
||||||
void error ();
|
|
||||||
void error_at_line ();
|
|
||||||
extern void (*error_print_progname) ();
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* This variable is incremented each time `error' is called. */
|
|
||||||
extern unsigned int error_message_count;
|
|
||||||
|
|
||||||
/* Sometimes we want to have at most one error per line. This
|
|
||||||
variable controls whether this mode is selected or not. */
|
|
||||||
extern int error_one_per_line;
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif /* error.h */
|
|
||||||
1273
lib/getopt.c
1273
lib/getopt.c
File diff suppressed because it is too large
Load Diff
180
lib/getopt.h
180
lib/getopt.h
@@ -1,180 +0,0 @@
|
|||||||
/* Declarations for getopt.
|
|
||||||
Copyright (C) 1989-1994, 1996-1999, 2001 Free Software Foundation, Inc.
|
|
||||||
This file is part of the GNU C Library.
|
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
|
||||||
it under the terms of the GNU General Public License as published by
|
|
||||||
the Free Software Foundation; either version 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. */
|
|
||||||
|
|
||||||
#ifndef _GETOPT_H
|
|
||||||
|
|
||||||
#ifndef __need_getopt
|
|
||||||
# define _GETOPT_H 1
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* If __GNU_LIBRARY__ is not already defined, either we are being used
|
|
||||||
standalone, or this is the first header included in the source file.
|
|
||||||
If we are being used with glibc, we need to include <features.h>, but
|
|
||||||
that does not exist if we are standalone. So: if __GNU_LIBRARY__ is
|
|
||||||
not defined, include <ctype.h>, which will pull in <features.h> for us
|
|
||||||
if it's from glibc. (Why ctype.h? It's guaranteed to exist and it
|
|
||||||
doesn't flood the namespace with stuff the way some other headers do.) */
|
|
||||||
#if !defined __GNU_LIBRARY__
|
|
||||||
# include <ctype.h>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
|
||||||
extern "C" {
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* For communication from `getopt' to the caller.
|
|
||||||
When `getopt' finds an option that takes an argument,
|
|
||||||
the argument value is returned here.
|
|
||||||
Also, when `ordering' is RETURN_IN_ORDER,
|
|
||||||
each non-option ARGV-element is returned here. */
|
|
||||||
|
|
||||||
extern char *optarg;
|
|
||||||
|
|
||||||
/* Index in ARGV of the next element to be scanned.
|
|
||||||
This is used for communication to and from the caller
|
|
||||||
and for communication between successive calls to `getopt'.
|
|
||||||
|
|
||||||
On entry to `getopt', zero means this is the first call; initialize.
|
|
||||||
|
|
||||||
When `getopt' returns -1, this is the index of the first of the
|
|
||||||
non-option elements that the caller should itself scan.
|
|
||||||
|
|
||||||
Otherwise, `optind' communicates from one call to the next
|
|
||||||
how much of ARGV has been scanned so far. */
|
|
||||||
|
|
||||||
extern int optind;
|
|
||||||
|
|
||||||
/* Callers store zero here to inhibit the error message `getopt' prints
|
|
||||||
for unrecognized options. */
|
|
||||||
|
|
||||||
extern int opterr;
|
|
||||||
|
|
||||||
/* Set to an option character which was unrecognized. */
|
|
||||||
|
|
||||||
extern int optopt;
|
|
||||||
|
|
||||||
#ifndef __need_getopt
|
|
||||||
/* Describe the long-named options requested by the application.
|
|
||||||
The LONG_OPTIONS argument to getopt_long or getopt_long_only is a vector
|
|
||||||
of `struct option' terminated by an element containing a name which is
|
|
||||||
zero.
|
|
||||||
|
|
||||||
The field `has_arg' is:
|
|
||||||
no_argument (or 0) if the option does not take an argument,
|
|
||||||
required_argument (or 1) if the option requires an argument,
|
|
||||||
optional_argument (or 2) if the option takes an optional argument.
|
|
||||||
|
|
||||||
If the field `flag' is not NULL, it points to a variable that is set
|
|
||||||
to the value given in the field `val' when the option is found, but
|
|
||||||
left unchanged if the option is not found.
|
|
||||||
|
|
||||||
To have a long-named option do something other than set an `int' to
|
|
||||||
a compiled-in constant, such as set a value from `optarg', set the
|
|
||||||
option's `flag' field to zero and its `val' field to a nonzero
|
|
||||||
value (the equivalent single-letter option character, if there is
|
|
||||||
one). For long options that have a zero `flag' field, `getopt'
|
|
||||||
returns the contents of the `val' field. */
|
|
||||||
|
|
||||||
struct option
|
|
||||||
{
|
|
||||||
# if (defined __STDC__ && __STDC__) || defined __cplusplus
|
|
||||||
const char *name;
|
|
||||||
# else
|
|
||||||
char *name;
|
|
||||||
# endif
|
|
||||||
/* has_arg can't be an enum because some compilers complain about
|
|
||||||
type mismatches in all the code that assumes it is an int. */
|
|
||||||
int has_arg;
|
|
||||||
int *flag;
|
|
||||||
int val;
|
|
||||||
};
|
|
||||||
|
|
||||||
/* Names for the values of the `has_arg' field of `struct option'. */
|
|
||||||
|
|
||||||
# define no_argument 0
|
|
||||||
# define required_argument 1
|
|
||||||
# define optional_argument 2
|
|
||||||
#endif /* need getopt */
|
|
||||||
|
|
||||||
|
|
||||||
/* Get definitions and prototypes for functions to process the
|
|
||||||
arguments in ARGV (ARGC of them, minus the program name) for
|
|
||||||
options given in OPTS.
|
|
||||||
|
|
||||||
Return the option character from OPTS just read. Return -1 when
|
|
||||||
there are no more options. For unrecognized options, or options
|
|
||||||
missing arguments, `optopt' is set to the option letter, and '?' is
|
|
||||||
returned.
|
|
||||||
|
|
||||||
The OPTS string is a list of characters which are recognized option
|
|
||||||
letters, optionally followed by colons, specifying that that letter
|
|
||||||
takes an argument, to be placed in `optarg'.
|
|
||||||
|
|
||||||
If a letter in OPTS is followed by two colons, its argument is
|
|
||||||
optional. This behavior is specific to the GNU `getopt'.
|
|
||||||
|
|
||||||
The argument `--' causes premature termination of argument
|
|
||||||
scanning, explicitly telling `getopt' that there are no more
|
|
||||||
options.
|
|
||||||
|
|
||||||
If OPTS begins with `--', then non-option arguments are treated as
|
|
||||||
arguments to the option '\0'. This behavior is specific to the GNU
|
|
||||||
`getopt'. */
|
|
||||||
|
|
||||||
#if (defined __STDC__ && __STDC__) || defined __cplusplus
|
|
||||||
# ifdef __GNU_LIBRARY__
|
|
||||||
/* Many other libraries have conflicting prototypes for getopt, with
|
|
||||||
differences in the consts, in stdlib.h. To avoid compilation
|
|
||||||
errors, only prototype getopt for the GNU C library. */
|
|
||||||
extern int getopt (int ___argc, char *const *___argv, const char *__shortopts);
|
|
||||||
# else /* not __GNU_LIBRARY__ */
|
|
||||||
extern int getopt ();
|
|
||||||
# endif /* __GNU_LIBRARY__ */
|
|
||||||
|
|
||||||
# ifndef __need_getopt
|
|
||||||
extern int getopt_long (int ___argc, char *const *___argv,
|
|
||||||
const char *__shortopts,
|
|
||||||
const struct option *__longopts, int *__longind);
|
|
||||||
extern int getopt_long_only (int ___argc, char *const *___argv,
|
|
||||||
const char *__shortopts,
|
|
||||||
const struct option *__longopts, int *__longind);
|
|
||||||
|
|
||||||
/* Internal only. Users should not call this directly. */
|
|
||||||
extern int _getopt_internal (int ___argc, char *const *___argv,
|
|
||||||
const char *__shortopts,
|
|
||||||
const struct option *__longopts, int *__longind,
|
|
||||||
int __long_only);
|
|
||||||
# endif
|
|
||||||
#else /* not __STDC__ */
|
|
||||||
extern int getopt ();
|
|
||||||
# ifndef __need_getopt
|
|
||||||
extern int getopt_long ();
|
|
||||||
extern int getopt_long_only ();
|
|
||||||
|
|
||||||
extern int _getopt_internal ();
|
|
||||||
# endif
|
|
||||||
#endif /* __STDC__ */
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* Make sure we later can get all the definitions and declarations. */
|
|
||||||
#undef __need_getopt
|
|
||||||
|
|
||||||
#endif /* getopt.h */
|
|
||||||
195
lib/getopt1.c
195
lib/getopt1.c
@@ -1,195 +0,0 @@
|
|||||||
/* getopt_long and getopt_long_only entry points for GNU getopt.
|
|
||||||
Copyright (C) 1987,88,89,90,91,92,93,94,96,97,98
|
|
||||||
Free Software Foundation, Inc.
|
|
||||||
This file is part of the GNU C Library.
|
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
|
||||||
it under the terms of the GNU General Public License as published by
|
|
||||||
the Free Software Foundation; either version 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. */
|
|
||||||
|
|
||||||
#ifdef HAVE_CONFIG_H
|
|
||||||
#include <config.h>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef _LIBC
|
|
||||||
# include <getopt.h>
|
|
||||||
#else
|
|
||||||
# include "getopt.h"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if !defined __STDC__ || !__STDC__
|
|
||||||
/* This is a separate conditional since some stdc systems
|
|
||||||
reject `defined (const)'. */
|
|
||||||
#ifndef const
|
|
||||||
#define const
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#include <stdio.h>
|
|
||||||
|
|
||||||
/* Comment out all this code if we are using the GNU C Library, and are not
|
|
||||||
actually compiling the library itself. This code is part of the GNU C
|
|
||||||
Library, but also included in many other GNU distributions. Compiling
|
|
||||||
and linking in this code is a waste when using the GNU C library
|
|
||||||
(especially if it is a shared library). Rather than having every GNU
|
|
||||||
program understand `configure --with-gnu-libc' and omit the object files,
|
|
||||||
it is simpler to just do this in the source for each such file. */
|
|
||||||
|
|
||||||
#define GETOPT_INTERFACE_VERSION 2
|
|
||||||
#if !defined _LIBC && defined __GLIBC__ && __GLIBC__ >= 2
|
|
||||||
#include <gnu-versions.h>
|
|
||||||
#if _GNU_GETOPT_INTERFACE_VERSION == GETOPT_INTERFACE_VERSION
|
|
||||||
#define ELIDE_CODE
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef ELIDE_CODE
|
|
||||||
|
|
||||||
|
|
||||||
/* This needs to come after some library #include
|
|
||||||
to get __GNU_LIBRARY__ defined. */
|
|
||||||
#ifdef __GNU_LIBRARY__
|
|
||||||
#include <stdlib.h>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef NULL
|
|
||||||
#define NULL 0
|
|
||||||
#endif
|
|
||||||
|
|
||||||
int
|
|
||||||
getopt_long (argc, argv, options, long_options, opt_index)
|
|
||||||
int argc;
|
|
||||||
char *const *argv;
|
|
||||||
const char *options;
|
|
||||||
const struct option *long_options;
|
|
||||||
int *opt_index;
|
|
||||||
{
|
|
||||||
return _getopt_internal (argc, argv, options, long_options, opt_index, 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Like getopt_long, but '-' as well as '--' can indicate a long option.
|
|
||||||
If an option that starts with '-' (not '--') doesn't match a long option,
|
|
||||||
but does match a short option, it is parsed as a short option
|
|
||||||
instead. */
|
|
||||||
|
|
||||||
int
|
|
||||||
getopt_long_only (argc, argv, options, long_options, opt_index)
|
|
||||||
int argc;
|
|
||||||
char *const *argv;
|
|
||||||
const char *options;
|
|
||||||
const struct option *long_options;
|
|
||||||
int *opt_index;
|
|
||||||
{
|
|
||||||
return _getopt_internal (argc, argv, options, long_options, opt_index, 1);
|
|
||||||
}
|
|
||||||
|
|
||||||
# ifdef _LIBC
|
|
||||||
libc_hidden_def (getopt_long)
|
|
||||||
libc_hidden_def (getopt_long_only)
|
|
||||||
# endif
|
|
||||||
|
|
||||||
#endif /* Not ELIDE_CODE. */
|
|
||||||
|
|
||||||
#ifdef TEST
|
|
||||||
|
|
||||||
#include <stdio.h>
|
|
||||||
|
|
||||||
int
|
|
||||||
main (argc, argv)
|
|
||||||
int argc;
|
|
||||||
char **argv;
|
|
||||||
{
|
|
||||||
int c;
|
|
||||||
int digit_optind = 0;
|
|
||||||
|
|
||||||
while (1)
|
|
||||||
{
|
|
||||||
int this_option_optind = optind ? optind : 1;
|
|
||||||
int option_index = 0;
|
|
||||||
static struct option long_options[] =
|
|
||||||
{
|
|
||||||
{"add", 1, 0, 0},
|
|
||||||
{"append", 0, 0, 0},
|
|
||||||
{"delete", 1, 0, 0},
|
|
||||||
{"verbose", 0, 0, 0},
|
|
||||||
{"create", 0, 0, 0},
|
|
||||||
{"file", 1, 0, 0},
|
|
||||||
{0, 0, 0, 0}
|
|
||||||
};
|
|
||||||
|
|
||||||
c = getopt_long (argc, argv, "abc:d:0123456789",
|
|
||||||
long_options, &option_index);
|
|
||||||
if (c == -1)
|
|
||||||
break;
|
|
||||||
|
|
||||||
switch (c)
|
|
||||||
{
|
|
||||||
case 0:
|
|
||||||
printf ("option %s", long_options[option_index].name);
|
|
||||||
if (optarg)
|
|
||||||
printf (" with arg %s", optarg);
|
|
||||||
printf ("\n");
|
|
||||||
break;
|
|
||||||
|
|
||||||
case '0':
|
|
||||||
case '1':
|
|
||||||
case '2':
|
|
||||||
case '3':
|
|
||||||
case '4':
|
|
||||||
case '5':
|
|
||||||
case '6':
|
|
||||||
case '7':
|
|
||||||
case '8':
|
|
||||||
case '9':
|
|
||||||
if (digit_optind != 0 && digit_optind != this_option_optind)
|
|
||||||
printf ("digits occur in two different argv-elements.\n");
|
|
||||||
digit_optind = this_option_optind;
|
|
||||||
printf ("option %c\n", c);
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 'a':
|
|
||||||
printf ("option a\n");
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 'b':
|
|
||||||
printf ("option b\n");
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 'c':
|
|
||||||
printf ("option c with value `%s'\n", optarg);
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 'd':
|
|
||||||
printf ("option d with value `%s'\n", optarg);
|
|
||||||
break;
|
|
||||||
|
|
||||||
case '?':
|
|
||||||
break;
|
|
||||||
|
|
||||||
default:
|
|
||||||
printf ("?? getopt returned character code 0%o ??\n", c);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (optind < argc)
|
|
||||||
{
|
|
||||||
printf ("non-option ARGV-elements: ");
|
|
||||||
while (optind < argc)
|
|
||||||
printf ("%s ", argv[optind++]);
|
|
||||||
printf ("\n");
|
|
||||||
}
|
|
||||||
|
|
||||||
exit (0);
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif /* TEST */
|
|
||||||
@@ -1,69 +0,0 @@
|
|||||||
/* Convenience header for conditional use of GNU <libintl.h>.
|
|
||||||
Copyright (C) 1995-1998, 2000-2002 Free Software Foundation, Inc.
|
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify it
|
|
||||||
under the terms of the GNU Library 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
|
|
||||||
Library General Public License for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU Library 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 _LIBGETTEXT_H
|
|
||||||
#define _LIBGETTEXT_H 1
|
|
||||||
|
|
||||||
/* NLS can be disabled through the configure --disable-nls option. */
|
|
||||||
#if ENABLE_NLS
|
|
||||||
|
|
||||||
/* Get declarations of GNU message catalog functions. */
|
|
||||||
# include <libintl.h>
|
|
||||||
|
|
||||||
#else
|
|
||||||
|
|
||||||
/* Solaris /usr/include/locale.h includes /usr/include/libintl.h, which
|
|
||||||
chokes if dcgettext is defined as a macro. So include it now, to make
|
|
||||||
later inclusions of <locale.h> a NOP. We don't include <libintl.h>
|
|
||||||
as well because people using "gettext.h" will not include <libintl.h>,
|
|
||||||
and also including <libintl.h> would fail on SunOS 4, whereas <locale.h>
|
|
||||||
is OK. */
|
|
||||||
#if defined(__sun)
|
|
||||||
# include <locale.h>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* Disabled NLS.
|
|
||||||
The casts to 'const char *' serve the purpose of producing warnings
|
|
||||||
for invalid uses of the value returned from these functions.
|
|
||||||
On pre-ANSI systems without 'const', the config.h file is supposed to
|
|
||||||
contain "#define const". */
|
|
||||||
# define gettext(Msgid) ((const char *) (Msgid))
|
|
||||||
# define dgettext(Domainname, Msgid) ((const char *) (Msgid))
|
|
||||||
# define dcgettext(Domainname, Msgid, Category) ((const char *) (Msgid))
|
|
||||||
# define ngettext(Msgid1, Msgid2, N) \
|
|
||||||
((N) == 1 ? (const char *) (Msgid1) : (const char *) (Msgid2))
|
|
||||||
# define dngettext(Domainname, Msgid1, Msgid2, N) \
|
|
||||||
((N) == 1 ? (const char *) (Msgid1) : (const char *) (Msgid2))
|
|
||||||
# define dcngettext(Domainname, Msgid1, Msgid2, N, Category) \
|
|
||||||
((N) == 1 ? (const char *) (Msgid1) : (const char *) (Msgid2))
|
|
||||||
# define textdomain(Domainname) ((const char *) (Domainname))
|
|
||||||
# define bindtextdomain(Domainname, Dirname) ((const char *) (Dirname))
|
|
||||||
# define bind_textdomain_codeset(Domainname, Codeset) ((const char *) (Codeset))
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* A pseudo function call that serves as a marker for the automated
|
|
||||||
extraction of messages, but does not call gettext(). The run-time
|
|
||||||
translation is done at a different place in the code.
|
|
||||||
The argument, String, should be a literal string. Concatenated strings
|
|
||||||
and other string expressions won't work.
|
|
||||||
The macro's expansion is not parenthesized, so that it is suitable as
|
|
||||||
initializer for static 'char[]' or 'const char[]' variables. */
|
|
||||||
#define gettext_noop(String) String
|
|
||||||
|
|
||||||
#endif /* _LIBGETTEXT_H */
|
|
||||||
1051
lib/hash.c
1051
lib/hash.c
File diff suppressed because it is too large
Load Diff
95
lib/hash.h
95
lib/hash.h
@@ -1,95 +0,0 @@
|
|||||||
/* hash - hashing table processing.
|
|
||||||
Copyright (C) 1998, 1999, 2001 Free Software Foundation, Inc.
|
|
||||||
Written by Jim Meyering <meyering@ascend.com>, 1998.
|
|
||||||
|
|
||||||
This program is free software; you can 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. */
|
|
||||||
|
|
||||||
/* A generic hash table package. */
|
|
||||||
|
|
||||||
/* Make sure USE_OBSTACK is defined to 1 if you want the allocator to use
|
|
||||||
obstacks instead of malloc, and recompile `hash.c' with same setting. */
|
|
||||||
|
|
||||||
#ifndef HASH_H_
|
|
||||||
# define HASH_H_
|
|
||||||
|
|
||||||
# include <stdio.h>
|
|
||||||
|
|
||||||
# ifndef PARAMS
|
|
||||||
# if PROTOTYPES || __STDC__
|
|
||||||
# define PARAMS(Args) Args
|
|
||||||
# else
|
|
||||||
# define PARAMS(Args) ()
|
|
||||||
# endif
|
|
||||||
# endif
|
|
||||||
|
|
||||||
typedef unsigned (*Hash_hasher) PARAMS ((const void *, unsigned));
|
|
||||||
typedef bool (*Hash_comparator) PARAMS ((const void *, const void *));
|
|
||||||
typedef void (*Hash_data_freer) PARAMS ((void *));
|
|
||||||
typedef bool (*Hash_processor) PARAMS ((void *, void *));
|
|
||||||
|
|
||||||
struct hash_entry
|
|
||||||
{
|
|
||||||
void *data;
|
|
||||||
struct hash_entry *next;
|
|
||||||
};
|
|
||||||
|
|
||||||
struct hash_tuning
|
|
||||||
{
|
|
||||||
/* This structure is mainly used for `hash_initialize', see the block
|
|
||||||
documentation of `hash_reset_tuning' for more complete comments. */
|
|
||||||
|
|
||||||
float shrink_threshold; /* ratio of used buckets to trigger a shrink */
|
|
||||||
float shrink_factor; /* ratio of new smaller size to original size */
|
|
||||||
float growth_threshold; /* ratio of used buckets to trigger a growth */
|
|
||||||
float growth_factor; /* ratio of new bigger size to original size */
|
|
||||||
bool is_n_buckets; /* if CANDIDATE really means table size */
|
|
||||||
};
|
|
||||||
|
|
||||||
typedef struct hash_tuning Hash_tuning;
|
|
||||||
|
|
||||||
struct hash_table;
|
|
||||||
|
|
||||||
typedef struct hash_table Hash_table;
|
|
||||||
|
|
||||||
/* Information and lookup. */
|
|
||||||
unsigned hash_get_n_buckets PARAMS ((const Hash_table *));
|
|
||||||
unsigned hash_get_n_buckets_used PARAMS ((const Hash_table *));
|
|
||||||
unsigned hash_get_n_entries PARAMS ((const Hash_table *));
|
|
||||||
unsigned hash_get_max_bucket_length PARAMS ((const Hash_table *));
|
|
||||||
bool hash_table_ok PARAMS ((const Hash_table *));
|
|
||||||
void hash_print_statistics PARAMS ((const Hash_table *, FILE *));
|
|
||||||
void *hash_lookup PARAMS ((const Hash_table *, const void *));
|
|
||||||
|
|
||||||
/* Walking. */
|
|
||||||
void *hash_get_first PARAMS ((const Hash_table *));
|
|
||||||
void *hash_get_next PARAMS ((const Hash_table *, const void *));
|
|
||||||
unsigned hash_get_entries PARAMS ((const Hash_table *, void **, unsigned));
|
|
||||||
unsigned hash_do_for_each PARAMS ((const Hash_table *, Hash_processor, void *));
|
|
||||||
|
|
||||||
/* Allocation and clean-up. */
|
|
||||||
unsigned hash_string PARAMS ((const char *, unsigned));
|
|
||||||
void hash_reset_tuning PARAMS ((Hash_tuning *));
|
|
||||||
Hash_table *hash_initialize PARAMS ((unsigned, const Hash_tuning *,
|
|
||||||
Hash_hasher, Hash_comparator,
|
|
||||||
Hash_data_freer));
|
|
||||||
void hash_clear PARAMS ((Hash_table *));
|
|
||||||
void hash_free PARAMS ((Hash_table *));
|
|
||||||
|
|
||||||
/* Insertion and deletion. */
|
|
||||||
bool hash_rehash PARAMS ((Hash_table *, unsigned));
|
|
||||||
void *hash_insert PARAMS ((Hash_table *, const void *));
|
|
||||||
void *hash_delete PARAMS ((Hash_table *, const void *));
|
|
||||||
|
|
||||||
#endif
|
|
||||||
38
lib/malloc.c
38
lib/malloc.c
@@ -1,38 +0,0 @@
|
|||||||
/* Work around bug on some systems where malloc (0) fails.
|
|
||||||
Copyright (C) 1997, 1998 Free Software Foundation, Inc.
|
|
||||||
|
|
||||||
This program is free software; you can 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. */
|
|
||||||
|
|
||||||
/* written by Jim Meyering */
|
|
||||||
|
|
||||||
#if HAVE_CONFIG_H
|
|
||||||
# include <config.h>
|
|
||||||
#endif
|
|
||||||
#undef malloc
|
|
||||||
|
|
||||||
#include <stddef.h>
|
|
||||||
|
|
||||||
char *malloc ();
|
|
||||||
|
|
||||||
/* Allocate an N-byte block of memory from the heap.
|
|
||||||
If N is zero, allocate a 1-byte block. */
|
|
||||||
|
|
||||||
char *
|
|
||||||
rpl_malloc (size_t n)
|
|
||||||
{
|
|
||||||
if (n == 0)
|
|
||||||
n = 1;
|
|
||||||
return malloc (n);
|
|
||||||
}
|
|
||||||
213
lib/mbswidth.c
213
lib/mbswidth.c
@@ -1,213 +0,0 @@
|
|||||||
/* Determine the number of screen columns needed for a string.
|
|
||||||
Copyright (C) 2000-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. */
|
|
||||||
|
|
||||||
/* Written by Bruno Haible <haible@clisp.cons.org>. */
|
|
||||||
|
|
||||||
#ifdef HAVE_CONFIG_H
|
|
||||||
# include <config.h>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* Specification. */
|
|
||||||
#include "mbswidth.h"
|
|
||||||
|
|
||||||
/* Get MB_CUR_MAX. */
|
|
||||||
#include <stdlib.h>
|
|
||||||
|
|
||||||
#include <string.h>
|
|
||||||
|
|
||||||
/* Get isprint(). */
|
|
||||||
#include <ctype.h>
|
|
||||||
|
|
||||||
/* Get mbstate_t, mbrtowc(), mbsinit(), wcwidth(). */
|
|
||||||
#if HAVE_WCHAR_H
|
|
||||||
# include <wchar.h>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* Get iswprint(), iswcntrl(). */
|
|
||||||
#if HAVE_WCTYPE_H
|
|
||||||
# include <wctype.h>
|
|
||||||
#endif
|
|
||||||
#if !defined iswprint && !HAVE_ISWPRINT
|
|
||||||
# define iswprint(wc) 1
|
|
||||||
#endif
|
|
||||||
#if !defined iswcntrl && !HAVE_ISWCNTRL
|
|
||||||
# define iswcntrl(wc) 0
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef mbsinit
|
|
||||||
# if !HAVE_MBSINIT
|
|
||||||
# define mbsinit(ps) 1
|
|
||||||
# endif
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef HAVE_DECL_WCWIDTH
|
|
||||||
"this configure-time declaration test was not run"
|
|
||||||
#endif
|
|
||||||
#if !HAVE_DECL_WCWIDTH
|
|
||||||
int wcwidth ();
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef wcwidth
|
|
||||||
# if !HAVE_WCWIDTH
|
|
||||||
/* wcwidth doesn't exist, so assume all printable characters have
|
|
||||||
width 1. */
|
|
||||||
# define wcwidth(wc) ((wc) == 0 ? 0 : iswprint (wc) ? 1 : -1)
|
|
||||||
# endif
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* Get ISPRINT. */
|
|
||||||
#if defined (STDC_HEADERS) || (!defined (isascii) && !defined (HAVE_ISASCII))
|
|
||||||
# define IN_CTYPE_DOMAIN(c) 1
|
|
||||||
#else
|
|
||||||
# define IN_CTYPE_DOMAIN(c) isascii(c)
|
|
||||||
#endif
|
|
||||||
/* Undefine to protect against the definition in wctype.h of solaris2.6. */
|
|
||||||
#undef ISPRINT
|
|
||||||
#define ISPRINT(c) (IN_CTYPE_DOMAIN (c) && isprint (c))
|
|
||||||
#undef ISCNTRL
|
|
||||||
#define ISCNTRL(c) (IN_CTYPE_DOMAIN (c) && iscntrl (c))
|
|
||||||
|
|
||||||
/* Returns the number of columns needed to represent the multibyte
|
|
||||||
character string pointed to by STRING. If a non-printable character
|
|
||||||
occurs, and MBSW_REJECT_UNPRINTABLE is specified, -1 is returned.
|
|
||||||
With flags = MBSW_REJECT_INVALID | MBSW_REJECT_UNPRINTABLE, this is
|
|
||||||
the multibyte analogon of the wcswidth function. */
|
|
||||||
int
|
|
||||||
mbswidth (const char *string, int flags)
|
|
||||||
{
|
|
||||||
return mbsnwidth (string, strlen (string), flags);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Returns the number of columns needed to represent the multibyte
|
|
||||||
character string pointed to by STRING of length NBYTES. If a
|
|
||||||
non-printable character occurs, and MBSW_REJECT_UNPRINTABLE is
|
|
||||||
specified, -1 is returned. */
|
|
||||||
int
|
|
||||||
mbsnwidth (const char *string, size_t nbytes, int flags)
|
|
||||||
{
|
|
||||||
const char *p = string;
|
|
||||||
const char *plimit = p + nbytes;
|
|
||||||
int width;
|
|
||||||
|
|
||||||
width = 0;
|
|
||||||
#if HAVE_MBRTOWC
|
|
||||||
if (MB_CUR_MAX > 1)
|
|
||||||
{
|
|
||||||
while (p < plimit)
|
|
||||||
switch (*p)
|
|
||||||
{
|
|
||||||
case ' ': case '!': case '"': case '#': case '%':
|
|
||||||
case '&': case '\'': case '(': case ')': case '*':
|
|
||||||
case '+': case ',': case '-': case '.': case '/':
|
|
||||||
case '0': case '1': case '2': case '3': case '4':
|
|
||||||
case '5': case '6': case '7': case '8': case '9':
|
|
||||||
case ':': case ';': case '<': case '=': case '>':
|
|
||||||
case '?':
|
|
||||||
case 'A': case 'B': case 'C': case 'D': case 'E':
|
|
||||||
case 'F': case 'G': case 'H': case 'I': case 'J':
|
|
||||||
case 'K': case 'L': case 'M': case 'N': case 'O':
|
|
||||||
case 'P': case 'Q': case 'R': case 'S': case 'T':
|
|
||||||
case 'U': case 'V': case 'W': case 'X': case 'Y':
|
|
||||||
case 'Z':
|
|
||||||
case '[': case '\\': case ']': case '^': case '_':
|
|
||||||
case 'a': case 'b': case 'c': case 'd': case 'e':
|
|
||||||
case 'f': case 'g': case 'h': case 'i': case 'j':
|
|
||||||
case 'k': case 'l': case 'm': case 'n': case 'o':
|
|
||||||
case 'p': case 'q': case 'r': case 's': case 't':
|
|
||||||
case 'u': case 'v': case 'w': case 'x': case 'y':
|
|
||||||
case 'z': case '{': case '|': case '}': case '~':
|
|
||||||
/* These characters are printable ASCII characters. */
|
|
||||||
p++;
|
|
||||||
width++;
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
/* If we have a multibyte sequence, scan it up to its end. */
|
|
||||||
{
|
|
||||||
mbstate_t mbstate;
|
|
||||||
memset (&mbstate, 0, sizeof mbstate);
|
|
||||||
do
|
|
||||||
{
|
|
||||||
wchar_t wc;
|
|
||||||
size_t bytes;
|
|
||||||
int w;
|
|
||||||
|
|
||||||
bytes = mbrtowc (&wc, p, plimit - p, &mbstate);
|
|
||||||
|
|
||||||
if (bytes == (size_t) -1)
|
|
||||||
/* An invalid multibyte sequence was encountered. */
|
|
||||||
{
|
|
||||||
if (!(flags & MBSW_REJECT_INVALID))
|
|
||||||
{
|
|
||||||
p++;
|
|
||||||
width++;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (bytes == (size_t) -2)
|
|
||||||
/* An incomplete multibyte character at the end. */
|
|
||||||
{
|
|
||||||
if (!(flags & MBSW_REJECT_INVALID))
|
|
||||||
{
|
|
||||||
p = plimit;
|
|
||||||
width++;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (bytes == 0)
|
|
||||||
/* A null wide character was encountered. */
|
|
||||||
bytes = 1;
|
|
||||||
|
|
||||||
w = wcwidth (wc);
|
|
||||||
if (w >= 0)
|
|
||||||
/* A printable multibyte character. */
|
|
||||||
width += w;
|
|
||||||
else
|
|
||||||
/* An unprintable multibyte character. */
|
|
||||||
if (!(flags & MBSW_REJECT_UNPRINTABLE))
|
|
||||||
width += (iswcntrl (wc) ? 0 : 1);
|
|
||||||
else
|
|
||||||
return -1;
|
|
||||||
|
|
||||||
p += bytes;
|
|
||||||
}
|
|
||||||
while (! mbsinit (&mbstate));
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
return width;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
while (p < plimit)
|
|
||||||
{
|
|
||||||
unsigned char c = (unsigned char) *p++;
|
|
||||||
|
|
||||||
if (ISPRINT (c))
|
|
||||||
width++;
|
|
||||||
else if (!(flags & MBSW_REJECT_UNPRINTABLE))
|
|
||||||
width += (ISCNTRL (c) ? 0 : 1);
|
|
||||||
else
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
return width;
|
|
||||||
}
|
|
||||||
@@ -1,46 +0,0 @@
|
|||||||
/* Determine the number of screen columns needed for a string.
|
|
||||||
Copyright (C) 2000-2003 Free Software Foundation, Inc.
|
|
||||||
|
|
||||||
This program is free software; you can 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. */
|
|
||||||
|
|
||||||
#include <stddef.h>
|
|
||||||
|
|
||||||
/* Avoid a clash of our mbswidth() with a function of the same name defined
|
|
||||||
in UnixWare 7.1.1 <wchar.h>. We need this #include before the #define
|
|
||||||
below. */
|
|
||||||
#if HAVE_WCHAR_H
|
|
||||||
# include <wchar.h>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
/* Optional flags to influence mbswidth/mbsnwidth behavior. */
|
|
||||||
|
|
||||||
/* If this bit is set, return -1 upon finding an invalid or incomplete
|
|
||||||
character. Otherwise, assume invalid characters have width 1. */
|
|
||||||
#define MBSW_REJECT_INVALID 1
|
|
||||||
|
|
||||||
/* If this bit is set, return -1 upon finding a non-printable character.
|
|
||||||
Otherwise, assume unprintable characters have width 0 if they are
|
|
||||||
control characters and 1 otherwise. */
|
|
||||||
#define MBSW_REJECT_UNPRINTABLE 2
|
|
||||||
|
|
||||||
|
|
||||||
/* Returns the number of screen columns needed for STRING. */
|
|
||||||
#define mbswidth gnu_mbswidth /* avoid clash with UnixWare 7.1.1 function */
|
|
||||||
extern int mbswidth (const char *string, int flags);
|
|
||||||
|
|
||||||
/* Returns the number of screen columns needed for the NBYTES bytes
|
|
||||||
starting at BUF. */
|
|
||||||
extern int mbsnwidth (const char *buf, size_t nbytes, int flags);
|
|
||||||
216
lib/memchr.c
216
lib/memchr.c
@@ -1,216 +0,0 @@
|
|||||||
/* Copyright (C) 1991,93,96,97,99,2000 Free Software Foundation, Inc.
|
|
||||||
Based on strlen implementation by Torbjorn Granlund (tege@sics.se),
|
|
||||||
with help from Dan Sahlin (dan@sics.se) and
|
|
||||||
commentary by Jim Blandy (jimb@ai.mit.edu);
|
|
||||||
adaptation to memchr suggested by Dick Karpinski (dick@cca.ucsf.edu),
|
|
||||||
and implemented by Roland McGrath (roland@ai.mit.edu).
|
|
||||||
|
|
||||||
NOTE: The canonical source of this file is maintained with the GNU C Library.
|
|
||||||
Bugs can be reported to bug-glibc@prep.ai.mit.edu.
|
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify it
|
|
||||||
under the terms of the GNU General Public License as published by the
|
|
||||||
Free Software Foundation; either version 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. */
|
|
||||||
|
|
||||||
#ifdef HAVE_CONFIG_H
|
|
||||||
# include <config.h>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#undef __ptr_t
|
|
||||||
#if defined (__cplusplus) || (defined (__STDC__) && __STDC__)
|
|
||||||
# define __ptr_t void *
|
|
||||||
#else /* Not C++ or ANSI C. */
|
|
||||||
# define __ptr_t char *
|
|
||||||
#endif /* C++ or ANSI C. */
|
|
||||||
|
|
||||||
#if defined _LIBC
|
|
||||||
# include <string.h>
|
|
||||||
# include <memcopy.h>
|
|
||||||
#else
|
|
||||||
# define reg_char char
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if HAVE_STDLIB_H || defined _LIBC
|
|
||||||
# include <stdlib.h>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if HAVE_LIMITS_H || defined _LIBC
|
|
||||||
# include <limits.h>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#define LONG_MAX_32_BITS 2147483647
|
|
||||||
|
|
||||||
#ifndef LONG_MAX
|
|
||||||
# define LONG_MAX LONG_MAX_32_BITS
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#include <sys/types.h>
|
|
||||||
#if HAVE_BP_SYM_H || defined _LIBC
|
|
||||||
# include <bp-sym.h>
|
|
||||||
#else
|
|
||||||
# define BP_SYM(sym) sym
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#undef memchr
|
|
||||||
#undef __memchr
|
|
||||||
|
|
||||||
/* Search no more than N bytes of S for C. */
|
|
||||||
__ptr_t
|
|
||||||
__memchr (s, c_in, n)
|
|
||||||
const __ptr_t s;
|
|
||||||
int c_in;
|
|
||||||
size_t n;
|
|
||||||
{
|
|
||||||
const unsigned char *char_ptr;
|
|
||||||
const unsigned long int *longword_ptr;
|
|
||||||
unsigned long int longword, magic_bits, charmask;
|
|
||||||
unsigned reg_char c;
|
|
||||||
|
|
||||||
c = (unsigned char) c_in;
|
|
||||||
|
|
||||||
/* Handle the first few characters by reading one character at a time.
|
|
||||||
Do this until CHAR_PTR is aligned on a longword boundary. */
|
|
||||||
for (char_ptr = (const unsigned char *) s;
|
|
||||||
n > 0 && ((unsigned long int) char_ptr
|
|
||||||
& (sizeof (longword) - 1)) != 0;
|
|
||||||
--n, ++char_ptr)
|
|
||||||
if (*char_ptr == c)
|
|
||||||
return (__ptr_t) char_ptr;
|
|
||||||
|
|
||||||
/* All these elucidatory comments refer to 4-byte longwords,
|
|
||||||
but the theory applies equally well to 8-byte longwords. */
|
|
||||||
|
|
||||||
longword_ptr = (unsigned long int *) char_ptr;
|
|
||||||
|
|
||||||
/* Bits 31, 24, 16, and 8 of this number are zero. Call these bits
|
|
||||||
the "holes." Note that there is a hole just to the left of
|
|
||||||
each byte, with an extra at the end:
|
|
||||||
|
|
||||||
bits: 01111110 11111110 11111110 11111111
|
|
||||||
bytes: AAAAAAAA BBBBBBBB CCCCCCCC DDDDDDDD
|
|
||||||
|
|
||||||
The 1-bits make sure that carries propagate to the next 0-bit.
|
|
||||||
The 0-bits provide holes for carries to fall into. */
|
|
||||||
|
|
||||||
if (sizeof (longword) != 4 && sizeof (longword) != 8)
|
|
||||||
abort ();
|
|
||||||
|
|
||||||
#if LONG_MAX <= LONG_MAX_32_BITS
|
|
||||||
magic_bits = 0x7efefeff;
|
|
||||||
#else
|
|
||||||
magic_bits = ((unsigned long int) 0x7efefefe << 32) | 0xfefefeff;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* Set up a longword, each of whose bytes is C. */
|
|
||||||
charmask = c | (c << 8);
|
|
||||||
charmask |= charmask << 16;
|
|
||||||
#if LONG_MAX > LONG_MAX_32_BITS
|
|
||||||
charmask |= charmask << 32;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* Instead of the traditional loop which tests each character,
|
|
||||||
we will test a longword at a time. The tricky part is testing
|
|
||||||
if *any of the four* bytes in the longword in question are zero. */
|
|
||||||
while (n >= sizeof (longword))
|
|
||||||
{
|
|
||||||
/* We tentatively exit the loop if adding MAGIC_BITS to
|
|
||||||
LONGWORD fails to change any of the hole bits of LONGWORD.
|
|
||||||
|
|
||||||
1) Is this safe? Will it catch all the zero bytes?
|
|
||||||
Suppose there is a byte with all zeros. Any carry bits
|
|
||||||
propagating from its left will fall into the hole at its
|
|
||||||
least significant bit and stop. Since there will be no
|
|
||||||
carry from its most significant bit, the LSB of the
|
|
||||||
byte to the left will be unchanged, and the zero will be
|
|
||||||
detected.
|
|
||||||
|
|
||||||
2) Is this worthwhile? Will it ignore everything except
|
|
||||||
zero bytes? Suppose every byte of LONGWORD has a bit set
|
|
||||||
somewhere. There will be a carry into bit 8. If bit 8
|
|
||||||
is set, this will carry into bit 16. If bit 8 is clear,
|
|
||||||
one of bits 9-15 must be set, so there will be a carry
|
|
||||||
into bit 16. Similarly, there will be a carry into bit
|
|
||||||
24. If one of bits 24-30 is set, there will be a carry
|
|
||||||
into bit 31, so all of the hole bits will be changed.
|
|
||||||
|
|
||||||
The one misfire occurs when bits 24-30 are clear and bit
|
|
||||||
31 is set; in this case, the hole at bit 31 is not
|
|
||||||
changed. If we had access to the processor carry flag,
|
|
||||||
we could close this loophole by putting the fourth hole
|
|
||||||
at bit 32!
|
|
||||||
|
|
||||||
So it ignores everything except 128's, when they're aligned
|
|
||||||
properly.
|
|
||||||
|
|
||||||
3) But wait! Aren't we looking for C, not zero?
|
|
||||||
Good point. So what we do is XOR LONGWORD with a longword,
|
|
||||||
each of whose bytes is C. This turns each byte that is C
|
|
||||||
into a zero. */
|
|
||||||
|
|
||||||
longword = *longword_ptr++ ^ charmask;
|
|
||||||
|
|
||||||
/* Add MAGIC_BITS to LONGWORD. */
|
|
||||||
if ((((longword + magic_bits)
|
|
||||||
|
|
||||||
/* Set those bits that were unchanged by the addition. */
|
|
||||||
^ ~longword)
|
|
||||||
|
|
||||||
/* Look at only the hole bits. If any of the hole bits
|
|
||||||
are unchanged, most likely one of the bytes was a
|
|
||||||
zero. */
|
|
||||||
& ~magic_bits) != 0)
|
|
||||||
{
|
|
||||||
/* Which of the bytes was C? If none of them were, it was
|
|
||||||
a misfire; continue the search. */
|
|
||||||
|
|
||||||
const unsigned char *cp = (const unsigned char *) (longword_ptr - 1);
|
|
||||||
|
|
||||||
if (cp[0] == c)
|
|
||||||
return (__ptr_t) cp;
|
|
||||||
if (cp[1] == c)
|
|
||||||
return (__ptr_t) &cp[1];
|
|
||||||
if (cp[2] == c)
|
|
||||||
return (__ptr_t) &cp[2];
|
|
||||||
if (cp[3] == c)
|
|
||||||
return (__ptr_t) &cp[3];
|
|
||||||
#if LONG_MAX > 2147483647
|
|
||||||
if (cp[4] == c)
|
|
||||||
return (__ptr_t) &cp[4];
|
|
||||||
if (cp[5] == c)
|
|
||||||
return (__ptr_t) &cp[5];
|
|
||||||
if (cp[6] == c)
|
|
||||||
return (__ptr_t) &cp[6];
|
|
||||||
if (cp[7] == c)
|
|
||||||
return (__ptr_t) &cp[7];
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
n -= sizeof (longword);
|
|
||||||
}
|
|
||||||
|
|
||||||
char_ptr = (const unsigned char *) longword_ptr;
|
|
||||||
|
|
||||||
while (n-- > 0)
|
|
||||||
{
|
|
||||||
if (*char_ptr == c)
|
|
||||||
return (__ptr_t) char_ptr;
|
|
||||||
else
|
|
||||||
++char_ptr;
|
|
||||||
}
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
#ifdef weak_alias
|
|
||||||
weak_alias (__memchr, BP_SYM (memchr))
|
|
||||||
#endif
|
|
||||||
386
lib/memcmp.c
386
lib/memcmp.c
@@ -1,386 +0,0 @@
|
|||||||
/* Copyright (C) 1991, 1993, 1995, 1997, 1998 Free Software Foundation, Inc.
|
|
||||||
Contributed by Torbjorn Granlund (tege@sics.se).
|
|
||||||
|
|
||||||
NOTE: The canonical source of this file is maintained with the GNU C Library.
|
|
||||||
Bugs can be reported to bug-glibc@prep.ai.mit.edu.
|
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify it
|
|
||||||
under the terms of the GNU General Public License as published by the
|
|
||||||
Free Software Foundation; either version 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. */
|
|
||||||
|
|
||||||
#ifdef HAVE_CONFIG_H
|
|
||||||
# include "config.h"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#undef __ptr_t
|
|
||||||
#if defined __cplusplus || (defined __STDC__ && __STDC__)
|
|
||||||
# define __ptr_t void *
|
|
||||||
#else /* Not C++ or ANSI C. */
|
|
||||||
# undef const
|
|
||||||
# define const
|
|
||||||
# define __ptr_t char *
|
|
||||||
#endif /* C++ or ANSI C. */
|
|
||||||
|
|
||||||
#ifndef __P
|
|
||||||
# if defined __GNUC__ || (defined __STDC__ && __STDC__)
|
|
||||||
# define __P(args) args
|
|
||||||
# else
|
|
||||||
# define __P(args) ()
|
|
||||||
# endif /* GCC. */
|
|
||||||
#endif /* Not __P. */
|
|
||||||
|
|
||||||
#if defined HAVE_STRING_H || defined _LIBC
|
|
||||||
# include <string.h>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#undef memcmp
|
|
||||||
|
|
||||||
#ifdef _LIBC
|
|
||||||
|
|
||||||
# include <memcopy.h>
|
|
||||||
# include <endian.h>
|
|
||||||
|
|
||||||
# if __BYTE_ORDER == __BIG_ENDIAN
|
|
||||||
# define WORDS_BIGENDIAN
|
|
||||||
# endif
|
|
||||||
|
|
||||||
#else /* Not in the GNU C library. */
|
|
||||||
|
|
||||||
# include <sys/types.h>
|
|
||||||
|
|
||||||
/* Type to use for aligned memory operations.
|
|
||||||
This should normally be the biggest type supported by a single load
|
|
||||||
and store. Must be an unsigned type. */
|
|
||||||
# define op_t unsigned long int
|
|
||||||
# define OPSIZ (sizeof(op_t))
|
|
||||||
|
|
||||||
/* Threshold value for when to enter the unrolled loops. */
|
|
||||||
# define OP_T_THRES 16
|
|
||||||
|
|
||||||
/* Type to use for unaligned operations. */
|
|
||||||
typedef unsigned char byte;
|
|
||||||
|
|
||||||
# ifndef WORDS_BIGENDIAN
|
|
||||||
# define MERGE(w0, sh_1, w1, sh_2) (((w0) >> (sh_1)) | ((w1) << (sh_2)))
|
|
||||||
# else
|
|
||||||
# define MERGE(w0, sh_1, w1, sh_2) (((w0) << (sh_1)) | ((w1) >> (sh_2)))
|
|
||||||
# endif
|
|
||||||
|
|
||||||
#endif /* In the GNU C library. */
|
|
||||||
|
|
||||||
#ifdef WORDS_BIGENDIAN
|
|
||||||
# define CMP_LT_OR_GT(a, b) ((a) > (b) ? 1 : -1)
|
|
||||||
#else
|
|
||||||
# define CMP_LT_OR_GT(a, b) memcmp_bytes ((a), (b))
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* BE VERY CAREFUL IF YOU CHANGE THIS CODE! */
|
|
||||||
|
|
||||||
/* The strategy of this memcmp is:
|
|
||||||
|
|
||||||
1. Compare bytes until one of the block pointers is aligned.
|
|
||||||
|
|
||||||
2. Compare using memcmp_common_alignment or
|
|
||||||
memcmp_not_common_alignment, regarding the alignment of the other
|
|
||||||
block after the initial byte operations. The maximum number of
|
|
||||||
full words (of type op_t) are compared in this way.
|
|
||||||
|
|
||||||
3. Compare the few remaining bytes. */
|
|
||||||
|
|
||||||
#ifndef WORDS_BIGENDIAN
|
|
||||||
/* memcmp_bytes -- Compare A and B bytewise in the byte order of the machine.
|
|
||||||
A and B are known to be different.
|
|
||||||
This is needed only on little-endian machines. */
|
|
||||||
|
|
||||||
static int memcmp_bytes __P((op_t, op_t));
|
|
||||||
|
|
||||||
# ifdef __GNUC__
|
|
||||||
__inline
|
|
||||||
# endif
|
|
||||||
static int
|
|
||||||
memcmp_bytes (long unsigned int a, long unsigned int b)
|
|
||||||
{
|
|
||||||
long int srcp1 = (long int) &a;
|
|
||||||
long int srcp2 = (long int) &b;
|
|
||||||
op_t a0, b0;
|
|
||||||
|
|
||||||
do
|
|
||||||
{
|
|
||||||
a0 = ((byte *) srcp1)[0];
|
|
||||||
b0 = ((byte *) srcp2)[0];
|
|
||||||
srcp1 += 1;
|
|
||||||
srcp2 += 1;
|
|
||||||
}
|
|
||||||
while (a0 == b0);
|
|
||||||
return a0 - b0;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
static int memcmp_common_alignment __P((long, long, size_t));
|
|
||||||
|
|
||||||
/* memcmp_common_alignment -- Compare blocks at SRCP1 and SRCP2 with LEN `op_t'
|
|
||||||
objects (not LEN bytes!). Both SRCP1 and SRCP2 should be aligned for
|
|
||||||
memory operations on `op_t's. */
|
|
||||||
#ifdef __GNUC__
|
|
||||||
__inline
|
|
||||||
#endif
|
|
||||||
static int
|
|
||||||
memcmp_common_alignment (long int srcp1, long int srcp2, size_t len)
|
|
||||||
{
|
|
||||||
op_t a0, a1;
|
|
||||||
op_t b0, b1;
|
|
||||||
|
|
||||||
switch (len % 4)
|
|
||||||
{
|
|
||||||
default: /* Avoid warning about uninitialized local variables. */
|
|
||||||
case 2:
|
|
||||||
a0 = ((op_t *) srcp1)[0];
|
|
||||||
b0 = ((op_t *) srcp2)[0];
|
|
||||||
srcp1 -= 2 * OPSIZ;
|
|
||||||
srcp2 -= 2 * OPSIZ;
|
|
||||||
len += 2;
|
|
||||||
goto do1;
|
|
||||||
case 3:
|
|
||||||
a1 = ((op_t *) srcp1)[0];
|
|
||||||
b1 = ((op_t *) srcp2)[0];
|
|
||||||
srcp1 -= OPSIZ;
|
|
||||||
srcp2 -= OPSIZ;
|
|
||||||
len += 1;
|
|
||||||
goto do2;
|
|
||||||
case 0:
|
|
||||||
if (OP_T_THRES <= 3 * OPSIZ && len == 0)
|
|
||||||
return 0;
|
|
||||||
a0 = ((op_t *) srcp1)[0];
|
|
||||||
b0 = ((op_t *) srcp2)[0];
|
|
||||||
goto do3;
|
|
||||||
case 1:
|
|
||||||
a1 = ((op_t *) srcp1)[0];
|
|
||||||
b1 = ((op_t *) srcp2)[0];
|
|
||||||
srcp1 += OPSIZ;
|
|
||||||
srcp2 += OPSIZ;
|
|
||||||
len -= 1;
|
|
||||||
if (OP_T_THRES <= 3 * OPSIZ && len == 0)
|
|
||||||
goto do0;
|
|
||||||
/* Fall through. */
|
|
||||||
}
|
|
||||||
|
|
||||||
do
|
|
||||||
{
|
|
||||||
a0 = ((op_t *) srcp1)[0];
|
|
||||||
b0 = ((op_t *) srcp2)[0];
|
|
||||||
if (a1 != b1)
|
|
||||||
return CMP_LT_OR_GT (a1, b1);
|
|
||||||
|
|
||||||
do3:
|
|
||||||
a1 = ((op_t *) srcp1)[1];
|
|
||||||
b1 = ((op_t *) srcp2)[1];
|
|
||||||
if (a0 != b0)
|
|
||||||
return CMP_LT_OR_GT (a0, b0);
|
|
||||||
|
|
||||||
do2:
|
|
||||||
a0 = ((op_t *) srcp1)[2];
|
|
||||||
b0 = ((op_t *) srcp2)[2];
|
|
||||||
if (a1 != b1)
|
|
||||||
return CMP_LT_OR_GT (a1, b1);
|
|
||||||
|
|
||||||
do1:
|
|
||||||
a1 = ((op_t *) srcp1)[3];
|
|
||||||
b1 = ((op_t *) srcp2)[3];
|
|
||||||
if (a0 != b0)
|
|
||||||
return CMP_LT_OR_GT (a0, b0);
|
|
||||||
|
|
||||||
srcp1 += 4 * OPSIZ;
|
|
||||||
srcp2 += 4 * OPSIZ;
|
|
||||||
len -= 4;
|
|
||||||
}
|
|
||||||
while (len != 0);
|
|
||||||
|
|
||||||
/* This is the right position for do0. Please don't move
|
|
||||||
it into the loop. */
|
|
||||||
do0:
|
|
||||||
if (a1 != b1)
|
|
||||||
return CMP_LT_OR_GT (a1, b1);
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
static int memcmp_not_common_alignment __P((long, long, size_t));
|
|
||||||
|
|
||||||
/* memcmp_not_common_alignment -- Compare blocks at SRCP1 and SRCP2 with LEN
|
|
||||||
`op_t' objects (not LEN bytes!). SRCP2 should be aligned for memory
|
|
||||||
operations on `op_t', but SRCP1 *should be unaligned*. */
|
|
||||||
#ifdef __GNUC__
|
|
||||||
__inline
|
|
||||||
#endif
|
|
||||||
static int
|
|
||||||
memcmp_not_common_alignment (long int srcp1, long int srcp2, size_t len)
|
|
||||||
{
|
|
||||||
op_t a0, a1, a2, a3;
|
|
||||||
op_t b0, b1, b2, b3;
|
|
||||||
op_t x;
|
|
||||||
int shl, shr;
|
|
||||||
|
|
||||||
/* Calculate how to shift a word read at the memory operation
|
|
||||||
aligned srcp1 to make it aligned for comparison. */
|
|
||||||
|
|
||||||
shl = 8 * (srcp1 % OPSIZ);
|
|
||||||
shr = 8 * OPSIZ - shl;
|
|
||||||
|
|
||||||
/* Make SRCP1 aligned by rounding it down to the beginning of the `op_t'
|
|
||||||
it points in the middle of. */
|
|
||||||
srcp1 &= -OPSIZ;
|
|
||||||
|
|
||||||
switch (len % 4)
|
|
||||||
{
|
|
||||||
default: /* Avoid warning about uninitialized local variables. */
|
|
||||||
case 2:
|
|
||||||
a1 = ((op_t *) srcp1)[0];
|
|
||||||
a2 = ((op_t *) srcp1)[1];
|
|
||||||
b2 = ((op_t *) srcp2)[0];
|
|
||||||
srcp1 -= 1 * OPSIZ;
|
|
||||||
srcp2 -= 2 * OPSIZ;
|
|
||||||
len += 2;
|
|
||||||
goto do1;
|
|
||||||
case 3:
|
|
||||||
a0 = ((op_t *) srcp1)[0];
|
|
||||||
a1 = ((op_t *) srcp1)[1];
|
|
||||||
b1 = ((op_t *) srcp2)[0];
|
|
||||||
srcp2 -= 1 * OPSIZ;
|
|
||||||
len += 1;
|
|
||||||
goto do2;
|
|
||||||
case 0:
|
|
||||||
if (OP_T_THRES <= 3 * OPSIZ && len == 0)
|
|
||||||
return 0;
|
|
||||||
a3 = ((op_t *) srcp1)[0];
|
|
||||||
a0 = ((op_t *) srcp1)[1];
|
|
||||||
b0 = ((op_t *) srcp2)[0];
|
|
||||||
srcp1 += 1 * OPSIZ;
|
|
||||||
goto do3;
|
|
||||||
case 1:
|
|
||||||
a2 = ((op_t *) srcp1)[0];
|
|
||||||
a3 = ((op_t *) srcp1)[1];
|
|
||||||
b3 = ((op_t *) srcp2)[0];
|
|
||||||
srcp1 += 2 * OPSIZ;
|
|
||||||
srcp2 += 1 * OPSIZ;
|
|
||||||
len -= 1;
|
|
||||||
if (OP_T_THRES <= 3 * OPSIZ && len == 0)
|
|
||||||
goto do0;
|
|
||||||
/* Fall through. */
|
|
||||||
}
|
|
||||||
|
|
||||||
do
|
|
||||||
{
|
|
||||||
a0 = ((op_t *) srcp1)[0];
|
|
||||||
b0 = ((op_t *) srcp2)[0];
|
|
||||||
x = MERGE(a2, shl, a3, shr);
|
|
||||||
if (x != b3)
|
|
||||||
return CMP_LT_OR_GT (x, b3);
|
|
||||||
|
|
||||||
do3:
|
|
||||||
a1 = ((op_t *) srcp1)[1];
|
|
||||||
b1 = ((op_t *) srcp2)[1];
|
|
||||||
x = MERGE(a3, shl, a0, shr);
|
|
||||||
if (x != b0)
|
|
||||||
return CMP_LT_OR_GT (x, b0);
|
|
||||||
|
|
||||||
do2:
|
|
||||||
a2 = ((op_t *) srcp1)[2];
|
|
||||||
b2 = ((op_t *) srcp2)[2];
|
|
||||||
x = MERGE(a0, shl, a1, shr);
|
|
||||||
if (x != b1)
|
|
||||||
return CMP_LT_OR_GT (x, b1);
|
|
||||||
|
|
||||||
do1:
|
|
||||||
a3 = ((op_t *) srcp1)[3];
|
|
||||||
b3 = ((op_t *) srcp2)[3];
|
|
||||||
x = MERGE(a1, shl, a2, shr);
|
|
||||||
if (x != b2)
|
|
||||||
return CMP_LT_OR_GT (x, b2);
|
|
||||||
|
|
||||||
srcp1 += 4 * OPSIZ;
|
|
||||||
srcp2 += 4 * OPSIZ;
|
|
||||||
len -= 4;
|
|
||||||
}
|
|
||||||
while (len != 0);
|
|
||||||
|
|
||||||
/* This is the right position for do0. Please don't move
|
|
||||||
it into the loop. */
|
|
||||||
do0:
|
|
||||||
x = MERGE(a2, shl, a3, shr);
|
|
||||||
if (x != b3)
|
|
||||||
return CMP_LT_OR_GT (x, b3);
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
int
|
|
||||||
rpl_memcmp (const void *s1, const void *s2, size_t len)
|
|
||||||
{
|
|
||||||
op_t a0;
|
|
||||||
op_t b0;
|
|
||||||
long int srcp1 = (long int) s1;
|
|
||||||
long int srcp2 = (long int) s2;
|
|
||||||
op_t res;
|
|
||||||
|
|
||||||
if (len >= OP_T_THRES)
|
|
||||||
{
|
|
||||||
/* There are at least some bytes to compare. No need to test
|
|
||||||
for LEN == 0 in this alignment loop. */
|
|
||||||
while (srcp2 % OPSIZ != 0)
|
|
||||||
{
|
|
||||||
a0 = ((byte *) srcp1)[0];
|
|
||||||
b0 = ((byte *) srcp2)[0];
|
|
||||||
srcp1 += 1;
|
|
||||||
srcp2 += 1;
|
|
||||||
res = a0 - b0;
|
|
||||||
if (res != 0)
|
|
||||||
return res;
|
|
||||||
len -= 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* SRCP2 is now aligned for memory operations on `op_t'.
|
|
||||||
SRCP1 alignment determines if we can do a simple,
|
|
||||||
aligned compare or need to shuffle bits. */
|
|
||||||
|
|
||||||
if (srcp1 % OPSIZ == 0)
|
|
||||||
res = memcmp_common_alignment (srcp1, srcp2, len / OPSIZ);
|
|
||||||
else
|
|
||||||
res = memcmp_not_common_alignment (srcp1, srcp2, len / OPSIZ);
|
|
||||||
if (res != 0)
|
|
||||||
return res;
|
|
||||||
|
|
||||||
/* Number of bytes remaining in the interval [0..OPSIZ-1]. */
|
|
||||||
srcp1 += len & -OPSIZ;
|
|
||||||
srcp2 += len & -OPSIZ;
|
|
||||||
len %= OPSIZ;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* There are just a few bytes to compare. Use byte memory operations. */
|
|
||||||
while (len != 0)
|
|
||||||
{
|
|
||||||
a0 = ((byte *) srcp1)[0];
|
|
||||||
b0 = ((byte *) srcp2)[0];
|
|
||||||
srcp1 += 1;
|
|
||||||
srcp2 += 1;
|
|
||||||
res = a0 - b0;
|
|
||||||
if (res != 0)
|
|
||||||
return res;
|
|
||||||
len -= 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
#ifdef weak_alias
|
|
||||||
# undef bcmp
|
|
||||||
weak_alias (memcmp, bcmp)
|
|
||||||
#endif
|
|
||||||
209
lib/memrchr.c
209
lib/memrchr.c
@@ -1,209 +0,0 @@
|
|||||||
/* memrchr -- find the last occurrence of a byte in a memory block
|
|
||||||
Copyright (C) 1991, 93, 96, 97, 99, 2000 Free Software Foundation, Inc.
|
|
||||||
Based on strlen implementation by Torbjorn Granlund (tege@sics.se),
|
|
||||||
with help from Dan Sahlin (dan@sics.se) and
|
|
||||||
commentary by Jim Blandy (jimb@ai.mit.edu);
|
|
||||||
adaptation to memchr suggested by Dick Karpinski (dick@cca.ucsf.edu),
|
|
||||||
and implemented by Roland McGrath (roland@ai.mit.edu).
|
|
||||||
|
|
||||||
The GNU C Library is free software; you can redistribute it and/or
|
|
||||||
modify it under the terms of the GNU Library General Public License as
|
|
||||||
published by the Free Software Foundation; either version 2 of the
|
|
||||||
License, or (at your option) any later version.
|
|
||||||
|
|
||||||
The GNU C Library is distributed in the hope that it will be useful,
|
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
||||||
Library General Public License for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU Library General Public
|
|
||||||
License along with the GNU C Library; see the file COPYING.LIB. If not,
|
|
||||||
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
|
||||||
Boston, MA 02111-1307, USA. */
|
|
||||||
|
|
||||||
#ifdef HAVE_CONFIG_H
|
|
||||||
# include <config.h>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#include <stdlib.h>
|
|
||||||
|
|
||||||
#undef __ptr_t
|
|
||||||
#if defined (__cplusplus) || (defined (__STDC__) && __STDC__)
|
|
||||||
# define __ptr_t void *
|
|
||||||
#else /* Not C++ or ANSI C. */
|
|
||||||
# define __ptr_t char *
|
|
||||||
#endif /* C++ or ANSI C. */
|
|
||||||
|
|
||||||
#if defined (_LIBC)
|
|
||||||
# include <string.h>
|
|
||||||
# include <memcopy.h>
|
|
||||||
#else
|
|
||||||
# define reg_char char
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined (HAVE_LIMITS_H) || defined (_LIBC)
|
|
||||||
# include <limits.h>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#define LONG_MAX_32_BITS 2147483647
|
|
||||||
|
|
||||||
#ifndef LONG_MAX
|
|
||||||
# define LONG_MAX LONG_MAX_32_BITS
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#include <sys/types.h>
|
|
||||||
|
|
||||||
#undef __memrchr
|
|
||||||
#undef memrchr
|
|
||||||
|
|
||||||
#ifndef weak_alias
|
|
||||||
# define __memrchr memrchr
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* Search no more than N bytes of S for C. */
|
|
||||||
__ptr_t
|
|
||||||
__memrchr (s, c_in, n)
|
|
||||||
const __ptr_t s;
|
|
||||||
int c_in;
|
|
||||||
size_t n;
|
|
||||||
{
|
|
||||||
const unsigned char *char_ptr;
|
|
||||||
const unsigned long int *longword_ptr;
|
|
||||||
unsigned long int longword, magic_bits, charmask;
|
|
||||||
unsigned reg_char c;
|
|
||||||
|
|
||||||
c = (unsigned char) c_in;
|
|
||||||
|
|
||||||
/* Handle the last few characters by reading one character at a time.
|
|
||||||
Do this until CHAR_PTR is aligned on a longword boundary. */
|
|
||||||
for (char_ptr = (const unsigned char *) s + n;
|
|
||||||
n > 0 && ((unsigned long int) char_ptr
|
|
||||||
& (sizeof (longword) - 1)) != 0;
|
|
||||||
--n)
|
|
||||||
if (*--char_ptr == c)
|
|
||||||
return (__ptr_t) char_ptr;
|
|
||||||
|
|
||||||
/* All these elucidatory comments refer to 4-byte longwords,
|
|
||||||
but the theory applies equally well to 8-byte longwords. */
|
|
||||||
|
|
||||||
longword_ptr = (unsigned long int *) char_ptr;
|
|
||||||
|
|
||||||
/* Bits 31, 24, 16, and 8 of this number are zero. Call these bits
|
|
||||||
the "holes." Note that there is a hole just to the left of
|
|
||||||
each byte, with an extra at the end:
|
|
||||||
|
|
||||||
bits: 01111110 11111110 11111110 11111111
|
|
||||||
bytes: AAAAAAAA BBBBBBBB CCCCCCCC DDDDDDDD
|
|
||||||
|
|
||||||
The 1-bits make sure that carries propagate to the next 0-bit.
|
|
||||||
The 0-bits provide holes for carries to fall into. */
|
|
||||||
|
|
||||||
if (sizeof (longword) != 4 && sizeof (longword) != 8)
|
|
||||||
abort ();
|
|
||||||
|
|
||||||
#if LONG_MAX <= LONG_MAX_32_BITS
|
|
||||||
magic_bits = 0x7efefeff;
|
|
||||||
#else
|
|
||||||
magic_bits = ((unsigned long int) 0x7efefefe << 32) | 0xfefefeff;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* Set up a longword, each of whose bytes is C. */
|
|
||||||
charmask = c | (c << 8);
|
|
||||||
charmask |= charmask << 16;
|
|
||||||
#if LONG_MAX > LONG_MAX_32_BITS
|
|
||||||
charmask |= charmask << 32;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* Instead of the traditional loop which tests each character,
|
|
||||||
we will test a longword at a time. The tricky part is testing
|
|
||||||
if *any of the four* bytes in the longword in question are zero. */
|
|
||||||
while (n >= sizeof (longword))
|
|
||||||
{
|
|
||||||
/* We tentatively exit the loop if adding MAGIC_BITS to
|
|
||||||
LONGWORD fails to change any of the hole bits of LONGWORD.
|
|
||||||
|
|
||||||
1) Is this safe? Will it catch all the zero bytes?
|
|
||||||
Suppose there is a byte with all zeros. Any carry bits
|
|
||||||
propagating from its left will fall into the hole at its
|
|
||||||
least significant bit and stop. Since there will be no
|
|
||||||
carry from its most significant bit, the LSB of the
|
|
||||||
byte to the left will be unchanged, and the zero will be
|
|
||||||
detected.
|
|
||||||
|
|
||||||
2) Is this worthwhile? Will it ignore everything except
|
|
||||||
zero bytes? Suppose every byte of LONGWORD has a bit set
|
|
||||||
somewhere. There will be a carry into bit 8. If bit 8
|
|
||||||
is set, this will carry into bit 16. If bit 8 is clear,
|
|
||||||
one of bits 9-15 must be set, so there will be a carry
|
|
||||||
into bit 16. Similarly, there will be a carry into bit
|
|
||||||
24. If one of bits 24-30 is set, there will be a carry
|
|
||||||
into bit 31, so all of the hole bits will be changed.
|
|
||||||
|
|
||||||
The one misfire occurs when bits 24-30 are clear and bit
|
|
||||||
31 is set; in this case, the hole at bit 31 is not
|
|
||||||
changed. If we had access to the processor carry flag,
|
|
||||||
we could close this loophole by putting the fourth hole
|
|
||||||
at bit 32!
|
|
||||||
|
|
||||||
So it ignores everything except 128's, when they're aligned
|
|
||||||
properly.
|
|
||||||
|
|
||||||
3) But wait! Aren't we looking for C, not zero?
|
|
||||||
Good point. So what we do is XOR LONGWORD with a longword,
|
|
||||||
each of whose bytes is C. This turns each byte that is C
|
|
||||||
into a zero. */
|
|
||||||
|
|
||||||
longword = *--longword_ptr ^ charmask;
|
|
||||||
|
|
||||||
/* Add MAGIC_BITS to LONGWORD. */
|
|
||||||
if ((((longword + magic_bits)
|
|
||||||
|
|
||||||
/* Set those bits that were unchanged by the addition. */
|
|
||||||
^ ~longword)
|
|
||||||
|
|
||||||
/* Look at only the hole bits. If any of the hole bits
|
|
||||||
are unchanged, most likely one of the bytes was a
|
|
||||||
zero. */
|
|
||||||
& ~magic_bits) != 0)
|
|
||||||
{
|
|
||||||
/* Which of the bytes was C? If none of them were, it was
|
|
||||||
a misfire; continue the search. */
|
|
||||||
|
|
||||||
const unsigned char *cp = (const unsigned char *) longword_ptr;
|
|
||||||
|
|
||||||
#if LONG_MAX > 2147483647
|
|
||||||
if (cp[7] == c)
|
|
||||||
return (__ptr_t) &cp[7];
|
|
||||||
if (cp[6] == c)
|
|
||||||
return (__ptr_t) &cp[6];
|
|
||||||
if (cp[5] == c)
|
|
||||||
return (__ptr_t) &cp[5];
|
|
||||||
if (cp[4] == c)
|
|
||||||
return (__ptr_t) &cp[4];
|
|
||||||
#endif
|
|
||||||
if (cp[3] == c)
|
|
||||||
return (__ptr_t) &cp[3];
|
|
||||||
if (cp[2] == c)
|
|
||||||
return (__ptr_t) &cp[2];
|
|
||||||
if (cp[1] == c)
|
|
||||||
return (__ptr_t) &cp[1];
|
|
||||||
if (cp[0] == c)
|
|
||||||
return (__ptr_t) cp;
|
|
||||||
}
|
|
||||||
|
|
||||||
n -= sizeof (longword);
|
|
||||||
}
|
|
||||||
|
|
||||||
char_ptr = (const unsigned char *) longword_ptr;
|
|
||||||
|
|
||||||
while (n-- > 0)
|
|
||||||
{
|
|
||||||
if (*--char_ptr == c)
|
|
||||||
return (__ptr_t) char_ptr;
|
|
||||||
}
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
#ifdef weak_alias
|
|
||||||
weak_alias (__memrchr, memrchr)
|
|
||||||
#endif
|
|
||||||
616
lib/obstack.c
616
lib/obstack.c
@@ -1,616 +0,0 @@
|
|||||||
/* obstack.c - subroutines used implicitly by object stack macros
|
|
||||||
Copyright (C) 1988-1994, 1996-1999, 2000-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. */
|
|
||||||
|
|
||||||
#ifdef HAVE_CONFIG_H
|
|
||||||
# include <config.h>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#include "obstack.h"
|
|
||||||
|
|
||||||
/* NOTE BEFORE MODIFYING THIS FILE: This version number must be
|
|
||||||
incremented whenever callers compiled using an old obstack.h can no
|
|
||||||
longer properly call the functions in this obstack.c. */
|
|
||||||
#define OBSTACK_INTERFACE_VERSION 1
|
|
||||||
|
|
||||||
/* Comment out all this code if we are using the GNU C Library, and are not
|
|
||||||
actually compiling the library itself, and the installed library
|
|
||||||
supports the same library interface we do. This code is part of the GNU
|
|
||||||
C Library, but also included in many other GNU distributions. Compiling
|
|
||||||
and linking in this code is a waste when using the GNU C library
|
|
||||||
(especially if it is a shared library). Rather than having every GNU
|
|
||||||
program understand `configure --with-gnu-libc' and omit the object
|
|
||||||
files, it is simpler to just do this in the source for each such file. */
|
|
||||||
|
|
||||||
#include <stdio.h> /* Random thing to get __GNU_LIBRARY__. */
|
|
||||||
#if !defined _LIBC && defined __GNU_LIBRARY__ && __GNU_LIBRARY__ > 1
|
|
||||||
# include <gnu-versions.h>
|
|
||||||
# if _GNU_OBSTACK_INTERFACE_VERSION == OBSTACK_INTERFACE_VERSION
|
|
||||||
# define ELIDE_CODE
|
|
||||||
# endif
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined _LIBC && defined USE_IN_LIBIO
|
|
||||||
# include <wchar.h>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef ELIDE_CODE
|
|
||||||
|
|
||||||
|
|
||||||
# if defined __STDC__ && __STDC__
|
|
||||||
# define POINTER void *
|
|
||||||
# else
|
|
||||||
# define POINTER char *
|
|
||||||
# endif
|
|
||||||
|
|
||||||
/* Determine default alignment. */
|
|
||||||
struct fooalign {char x; double d;};
|
|
||||||
# define DEFAULT_ALIGNMENT \
|
|
||||||
((PTR_INT_TYPE) ((char *) &((struct fooalign *) 0)->d - (char *) 0))
|
|
||||||
/* If malloc were really smart, it would round addresses to DEFAULT_ALIGNMENT.
|
|
||||||
But in fact it might be less smart and round addresses to as much as
|
|
||||||
DEFAULT_ROUNDING. So we prepare for it to do that. */
|
|
||||||
union fooround {long x; double d;};
|
|
||||||
# define DEFAULT_ROUNDING (sizeof (union fooround))
|
|
||||||
|
|
||||||
/* When we copy a long block of data, this is the unit to do it with.
|
|
||||||
On some machines, copying successive ints does not work;
|
|
||||||
in such a case, redefine COPYING_UNIT to `long' (if that works)
|
|
||||||
or `char' as a last resort. */
|
|
||||||
# ifndef COPYING_UNIT
|
|
||||||
# define COPYING_UNIT int
|
|
||||||
# endif
|
|
||||||
|
|
||||||
|
|
||||||
/* The functions allocating more room by calling `obstack_chunk_alloc'
|
|
||||||
jump to the handler pointed to by `obstack_alloc_failed_handler'.
|
|
||||||
This can be set to a user defined function which should either
|
|
||||||
abort gracefully or use longjump - but shouldn't return. This
|
|
||||||
variable by default points to the internal function
|
|
||||||
`print_and_abort'. */
|
|
||||||
# if defined __STDC__ && __STDC__
|
|
||||||
static void print_and_abort (void);
|
|
||||||
void (*obstack_alloc_failed_handler) (void) = print_and_abort;
|
|
||||||
# else
|
|
||||||
static void print_and_abort ();
|
|
||||||
void (*obstack_alloc_failed_handler) () = print_and_abort;
|
|
||||||
# endif
|
|
||||||
|
|
||||||
/* Exit value used when `print_and_abort' is used. */
|
|
||||||
# if defined __GNU_LIBRARY__ || defined HAVE_STDLIB_H
|
|
||||||
# include <stdlib.h>
|
|
||||||
# endif
|
|
||||||
# ifndef EXIT_FAILURE
|
|
||||||
# define EXIT_FAILURE 1
|
|
||||||
# endif
|
|
||||||
int obstack_exit_failure = EXIT_FAILURE;
|
|
||||||
|
|
||||||
/* The non-GNU-C macros copy the obstack into this global variable
|
|
||||||
to avoid multiple evaluation. */
|
|
||||||
|
|
||||||
struct obstack *_obstack;
|
|
||||||
|
|
||||||
/* Define a macro that either calls functions with the traditional malloc/free
|
|
||||||
calling interface, or calls functions with the mmalloc/mfree interface
|
|
||||||
(that adds an extra first argument), based on the state of use_extra_arg.
|
|
||||||
For free, do not use ?:, since some compilers, like the MIPS compilers,
|
|
||||||
do not allow (expr) ? void : void. */
|
|
||||||
|
|
||||||
# if defined __STDC__ && __STDC__
|
|
||||||
# define CALL_CHUNKFUN(h, size) \
|
|
||||||
(((h) -> use_extra_arg) \
|
|
||||||
? (*(h)->chunkfun) ((h)->extra_arg, (size)) \
|
|
||||||
: (*(struct _obstack_chunk *(*) (long)) (h)->chunkfun) ((size)))
|
|
||||||
|
|
||||||
# define CALL_FREEFUN(h, old_chunk) \
|
|
||||||
do { \
|
|
||||||
if ((h) -> use_extra_arg) \
|
|
||||||
(*(h)->freefun) ((h)->extra_arg, (old_chunk)); \
|
|
||||||
else \
|
|
||||||
(*(void (*) (void *)) (h)->freefun) ((old_chunk)); \
|
|
||||||
} while (0)
|
|
||||||
# else
|
|
||||||
# define CALL_CHUNKFUN(h, size) \
|
|
||||||
(((h) -> use_extra_arg) \
|
|
||||||
? (*(h)->chunkfun) ((h)->extra_arg, (size)) \
|
|
||||||
: (*(struct _obstack_chunk *(*) ()) (h)->chunkfun) ((size)))
|
|
||||||
|
|
||||||
# define CALL_FREEFUN(h, old_chunk) \
|
|
||||||
do { \
|
|
||||||
if ((h) -> use_extra_arg) \
|
|
||||||
(*(h)->freefun) ((h)->extra_arg, (old_chunk)); \
|
|
||||||
else \
|
|
||||||
(*(void (*) ()) (h)->freefun) ((old_chunk)); \
|
|
||||||
} while (0)
|
|
||||||
# endif
|
|
||||||
|
|
||||||
|
|
||||||
/* Initialize an obstack H for use. Specify chunk size SIZE (0 means default).
|
|
||||||
Objects start on multiples of ALIGNMENT (0 means use default).
|
|
||||||
CHUNKFUN is the function to use to allocate chunks,
|
|
||||||
and FREEFUN the function to free them.
|
|
||||||
|
|
||||||
Return nonzero if successful, calls obstack_alloc_failed_handler if
|
|
||||||
allocation fails. */
|
|
||||||
|
|
||||||
int
|
|
||||||
_obstack_begin (h, size, alignment, chunkfun, freefun)
|
|
||||||
struct obstack *h;
|
|
||||||
int size;
|
|
||||||
int alignment;
|
|
||||||
# if defined __STDC__ && __STDC__
|
|
||||||
POINTER (*chunkfun) (long);
|
|
||||||
void (*freefun) (void *);
|
|
||||||
# else
|
|
||||||
POINTER (*chunkfun) ();
|
|
||||||
void (*freefun) ();
|
|
||||||
# endif
|
|
||||||
{
|
|
||||||
register struct _obstack_chunk *chunk; /* points to new chunk */
|
|
||||||
|
|
||||||
if (alignment == 0)
|
|
||||||
alignment = (int) DEFAULT_ALIGNMENT;
|
|
||||||
if (size == 0)
|
|
||||||
/* Default size is what GNU malloc can fit in a 4096-byte block. */
|
|
||||||
{
|
|
||||||
/* 12 is sizeof (mhead) and 4 is EXTRA from GNU malloc.
|
|
||||||
Use the values for range checking, because if range checking is off,
|
|
||||||
the extra bytes won't be missed terribly, but if range checking is on
|
|
||||||
and we used a larger request, a whole extra 4096 bytes would be
|
|
||||||
allocated.
|
|
||||||
|
|
||||||
These number are irrelevant to the new GNU malloc. I suspect it is
|
|
||||||
less sensitive to the size of the request. */
|
|
||||||
int extra = ((((12 + DEFAULT_ROUNDING - 1) & ~(DEFAULT_ROUNDING - 1))
|
|
||||||
+ 4 + DEFAULT_ROUNDING - 1)
|
|
||||||
& ~(DEFAULT_ROUNDING - 1));
|
|
||||||
size = 4096 - extra;
|
|
||||||
}
|
|
||||||
|
|
||||||
# if defined __STDC__ && __STDC__
|
|
||||||
h->chunkfun = (struct _obstack_chunk * (*)(void *, long)) chunkfun;
|
|
||||||
h->freefun = (void (*) (void *, struct _obstack_chunk *)) freefun;
|
|
||||||
# else
|
|
||||||
h->chunkfun = (struct _obstack_chunk * (*)()) chunkfun;
|
|
||||||
h->freefun = freefun;
|
|
||||||
# endif
|
|
||||||
h->chunk_size = size;
|
|
||||||
h->alignment_mask = alignment - 1;
|
|
||||||
h->use_extra_arg = 0;
|
|
||||||
|
|
||||||
chunk = h->chunk = CALL_CHUNKFUN (h, h -> chunk_size);
|
|
||||||
if (!chunk)
|
|
||||||
(*obstack_alloc_failed_handler) ();
|
|
||||||
h->next_free = h->object_base = chunk->contents;
|
|
||||||
h->chunk_limit = chunk->limit
|
|
||||||
= (char *) chunk + h->chunk_size;
|
|
||||||
chunk->prev = 0;
|
|
||||||
/* The initial chunk now contains no empty object. */
|
|
||||||
h->maybe_empty_object = 0;
|
|
||||||
h->alloc_failed = 0;
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
int
|
|
||||||
_obstack_begin_1 (h, size, alignment, chunkfun, freefun, arg)
|
|
||||||
struct obstack *h;
|
|
||||||
int size;
|
|
||||||
int alignment;
|
|
||||||
# if defined __STDC__ && __STDC__
|
|
||||||
POINTER (*chunkfun) (POINTER, long);
|
|
||||||
void (*freefun) (POINTER, POINTER);
|
|
||||||
# else
|
|
||||||
POINTER (*chunkfun) ();
|
|
||||||
void (*freefun) ();
|
|
||||||
# endif
|
|
||||||
POINTER arg;
|
|
||||||
{
|
|
||||||
register struct _obstack_chunk *chunk; /* points to new chunk */
|
|
||||||
|
|
||||||
if (alignment == 0)
|
|
||||||
alignment = (int) DEFAULT_ALIGNMENT;
|
|
||||||
if (size == 0)
|
|
||||||
/* Default size is what GNU malloc can fit in a 4096-byte block. */
|
|
||||||
{
|
|
||||||
/* 12 is sizeof (mhead) and 4 is EXTRA from GNU malloc.
|
|
||||||
Use the values for range checking, because if range checking is off,
|
|
||||||
the extra bytes won't be missed terribly, but if range checking is on
|
|
||||||
and we used a larger request, a whole extra 4096 bytes would be
|
|
||||||
allocated.
|
|
||||||
|
|
||||||
These number are irrelevant to the new GNU malloc. I suspect it is
|
|
||||||
less sensitive to the size of the request. */
|
|
||||||
int extra = ((((12 + DEFAULT_ROUNDING - 1) & ~(DEFAULT_ROUNDING - 1))
|
|
||||||
+ 4 + DEFAULT_ROUNDING - 1)
|
|
||||||
& ~(DEFAULT_ROUNDING - 1));
|
|
||||||
size = 4096 - extra;
|
|
||||||
}
|
|
||||||
|
|
||||||
# if defined __STDC__ && __STDC__
|
|
||||||
h->chunkfun = (struct _obstack_chunk * (*)(void *,long)) chunkfun;
|
|
||||||
h->freefun = (void (*) (void *, struct _obstack_chunk *)) freefun;
|
|
||||||
# else
|
|
||||||
h->chunkfun = (struct _obstack_chunk * (*)()) chunkfun;
|
|
||||||
h->freefun = freefun;
|
|
||||||
# endif
|
|
||||||
h->chunk_size = size;
|
|
||||||
h->alignment_mask = alignment - 1;
|
|
||||||
h->extra_arg = arg;
|
|
||||||
h->use_extra_arg = 1;
|
|
||||||
|
|
||||||
chunk = h->chunk = CALL_CHUNKFUN (h, h -> chunk_size);
|
|
||||||
if (!chunk)
|
|
||||||
(*obstack_alloc_failed_handler) ();
|
|
||||||
h->next_free = h->object_base = chunk->contents;
|
|
||||||
h->chunk_limit = chunk->limit
|
|
||||||
= (char *) chunk + h->chunk_size;
|
|
||||||
chunk->prev = 0;
|
|
||||||
/* The initial chunk now contains no empty object. */
|
|
||||||
h->maybe_empty_object = 0;
|
|
||||||
h->alloc_failed = 0;
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Allocate a new current chunk for the obstack *H
|
|
||||||
on the assumption that LENGTH bytes need to be added
|
|
||||||
to the current object, or a new object of length LENGTH allocated.
|
|
||||||
Copies any partial object from the end of the old chunk
|
|
||||||
to the beginning of the new one. */
|
|
||||||
|
|
||||||
void
|
|
||||||
_obstack_newchunk (h, length)
|
|
||||||
struct obstack *h;
|
|
||||||
int length;
|
|
||||||
{
|
|
||||||
register struct _obstack_chunk *old_chunk = h->chunk;
|
|
||||||
register struct _obstack_chunk *new_chunk;
|
|
||||||
register long new_size;
|
|
||||||
register long obj_size = h->next_free - h->object_base;
|
|
||||||
register long i;
|
|
||||||
long already;
|
|
||||||
char *object_base;
|
|
||||||
|
|
||||||
/* Compute size for new chunk. */
|
|
||||||
new_size = (obj_size + length) + (obj_size >> 3) + h->alignment_mask + 100;
|
|
||||||
if (new_size < h->chunk_size)
|
|
||||||
new_size = h->chunk_size;
|
|
||||||
|
|
||||||
/* Allocate and initialize the new chunk. */
|
|
||||||
new_chunk = CALL_CHUNKFUN (h, new_size);
|
|
||||||
if (!new_chunk)
|
|
||||||
(*obstack_alloc_failed_handler) ();
|
|
||||||
h->chunk = new_chunk;
|
|
||||||
new_chunk->prev = old_chunk;
|
|
||||||
new_chunk->limit = h->chunk_limit = (char *) new_chunk + new_size;
|
|
||||||
|
|
||||||
/* Compute an aligned object_base in the new chunk */
|
|
||||||
object_base =
|
|
||||||
__INT_TO_PTR ((__PTR_TO_INT (new_chunk->contents) + h->alignment_mask)
|
|
||||||
& ~ (h->alignment_mask));
|
|
||||||
|
|
||||||
/* Move the existing object to the new chunk.
|
|
||||||
Word at a time is fast and is safe if the object
|
|
||||||
is sufficiently aligned. */
|
|
||||||
if (h->alignment_mask + 1 >= DEFAULT_ALIGNMENT)
|
|
||||||
{
|
|
||||||
for (i = obj_size / sizeof (COPYING_UNIT) - 1;
|
|
||||||
i >= 0; i--)
|
|
||||||
((COPYING_UNIT *)object_base)[i]
|
|
||||||
= ((COPYING_UNIT *)h->object_base)[i];
|
|
||||||
/* We used to copy the odd few remaining bytes as one extra COPYING_UNIT,
|
|
||||||
but that can cross a page boundary on a machine
|
|
||||||
which does not do strict alignment for COPYING_UNITS. */
|
|
||||||
already = obj_size / sizeof (COPYING_UNIT) * sizeof (COPYING_UNIT);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
already = 0;
|
|
||||||
/* Copy remaining bytes one by one. */
|
|
||||||
for (i = already; i < obj_size; i++)
|
|
||||||
object_base[i] = h->object_base[i];
|
|
||||||
|
|
||||||
/* If the object just copied was the only data in OLD_CHUNK,
|
|
||||||
free that chunk and remove it from the chain.
|
|
||||||
But not if that chunk might contain an empty object. */
|
|
||||||
if (h->object_base == old_chunk->contents && ! h->maybe_empty_object)
|
|
||||||
{
|
|
||||||
new_chunk->prev = old_chunk->prev;
|
|
||||||
CALL_FREEFUN (h, old_chunk);
|
|
||||||
}
|
|
||||||
|
|
||||||
h->object_base = object_base;
|
|
||||||
h->next_free = h->object_base + obj_size;
|
|
||||||
/* The new chunk certainly contains no empty object yet. */
|
|
||||||
h->maybe_empty_object = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Return nonzero if object OBJ has been allocated from obstack H.
|
|
||||||
This is here for debugging.
|
|
||||||
If you use it in a program, you are probably losing. */
|
|
||||||
|
|
||||||
# if defined __STDC__ && __STDC__
|
|
||||||
/* Suppress -Wmissing-prototypes warning. We don't want to declare this in
|
|
||||||
obstack.h because it is just for debugging. */
|
|
||||||
int _obstack_allocated_p (struct obstack *h, POINTER obj);
|
|
||||||
# endif
|
|
||||||
|
|
||||||
int
|
|
||||||
_obstack_allocated_p (h, obj)
|
|
||||||
struct obstack *h;
|
|
||||||
POINTER obj;
|
|
||||||
{
|
|
||||||
register struct _obstack_chunk *lp; /* below addr of any objects in this chunk */
|
|
||||||
register struct _obstack_chunk *plp; /* point to previous chunk if any */
|
|
||||||
|
|
||||||
lp = (h)->chunk;
|
|
||||||
/* We use >= rather than > since the object cannot be exactly at
|
|
||||||
the beginning of the chunk but might be an empty object exactly
|
|
||||||
at the end of an adjacent chunk. */
|
|
||||||
while (lp != 0 && ((POINTER) lp >= obj || (POINTER) (lp)->limit < obj))
|
|
||||||
{
|
|
||||||
plp = lp->prev;
|
|
||||||
lp = plp;
|
|
||||||
}
|
|
||||||
return lp != 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Free objects in obstack H, including OBJ and everything allocate
|
|
||||||
more recently than OBJ. If OBJ is zero, free everything in H. */
|
|
||||||
|
|
||||||
# undef obstack_free
|
|
||||||
|
|
||||||
/* This function has two names with identical definitions.
|
|
||||||
This is the first one, called from non-ANSI code. */
|
|
||||||
|
|
||||||
void
|
|
||||||
_obstack_free (h, obj)
|
|
||||||
struct obstack *h;
|
|
||||||
POINTER obj;
|
|
||||||
{
|
|
||||||
register struct _obstack_chunk *lp; /* below addr of any objects in this chunk */
|
|
||||||
register struct _obstack_chunk *plp; /* point to previous chunk if any */
|
|
||||||
|
|
||||||
lp = h->chunk;
|
|
||||||
/* We use >= because there cannot be an object at the beginning of a chunk.
|
|
||||||
But there can be an empty object at that address
|
|
||||||
at the end of another chunk. */
|
|
||||||
while (lp != 0 && ((POINTER) lp >= obj || (POINTER) (lp)->limit < obj))
|
|
||||||
{
|
|
||||||
plp = lp->prev;
|
|
||||||
CALL_FREEFUN (h, lp);
|
|
||||||
lp = plp;
|
|
||||||
/* If we switch chunks, we can't tell whether the new current
|
|
||||||
chunk contains an empty object, so assume that it may. */
|
|
||||||
h->maybe_empty_object = 1;
|
|
||||||
}
|
|
||||||
if (lp)
|
|
||||||
{
|
|
||||||
h->object_base = h->next_free = (char *) (obj);
|
|
||||||
h->chunk_limit = lp->limit;
|
|
||||||
h->chunk = lp;
|
|
||||||
}
|
|
||||||
else if (obj != 0)
|
|
||||||
/* obj is not in any of the chunks! */
|
|
||||||
abort ();
|
|
||||||
}
|
|
||||||
|
|
||||||
/* This function is used from ANSI code. */
|
|
||||||
|
|
||||||
void
|
|
||||||
obstack_free (h, obj)
|
|
||||||
struct obstack *h;
|
|
||||||
POINTER obj;
|
|
||||||
{
|
|
||||||
register struct _obstack_chunk *lp; /* below addr of any objects in this chunk */
|
|
||||||
register struct _obstack_chunk *plp; /* point to previous chunk if any */
|
|
||||||
|
|
||||||
lp = h->chunk;
|
|
||||||
/* We use >= because there cannot be an object at the beginning of a chunk.
|
|
||||||
But there can be an empty object at that address
|
|
||||||
at the end of another chunk. */
|
|
||||||
while (lp != 0 && ((POINTER) lp >= obj || (POINTER) (lp)->limit < obj))
|
|
||||||
{
|
|
||||||
plp = lp->prev;
|
|
||||||
CALL_FREEFUN (h, lp);
|
|
||||||
lp = plp;
|
|
||||||
/* If we switch chunks, we can't tell whether the new current
|
|
||||||
chunk contains an empty object, so assume that it may. */
|
|
||||||
h->maybe_empty_object = 1;
|
|
||||||
}
|
|
||||||
if (lp)
|
|
||||||
{
|
|
||||||
h->object_base = h->next_free = (char *) (obj);
|
|
||||||
h->chunk_limit = lp->limit;
|
|
||||||
h->chunk = lp;
|
|
||||||
}
|
|
||||||
else if (obj != 0)
|
|
||||||
/* obj is not in any of the chunks! */
|
|
||||||
abort ();
|
|
||||||
}
|
|
||||||
|
|
||||||
int
|
|
||||||
_obstack_memory_used (h)
|
|
||||||
struct obstack *h;
|
|
||||||
{
|
|
||||||
register struct _obstack_chunk* lp;
|
|
||||||
register int nbytes = 0;
|
|
||||||
|
|
||||||
for (lp = h->chunk; lp != 0; lp = lp->prev)
|
|
||||||
{
|
|
||||||
nbytes += lp->limit - (char *) lp;
|
|
||||||
}
|
|
||||||
return nbytes;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Define the error handler. */
|
|
||||||
# ifdef _LIBC
|
|
||||||
# include <libintl.h>
|
|
||||||
# else
|
|
||||||
# include "gettext.h"
|
|
||||||
# endif
|
|
||||||
# define _(msgid) gettext (msgid)
|
|
||||||
|
|
||||||
# if defined _LIBC && defined USE_IN_LIBIO
|
|
||||||
# include <libio/iolibio.h>
|
|
||||||
# define fputs(s, f) _IO_fputs (s, f)
|
|
||||||
# endif
|
|
||||||
|
|
||||||
# ifndef __attribute__
|
|
||||||
/* This feature is available in gcc versions 2.5 and later. */
|
|
||||||
# if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 5)
|
|
||||||
# define __attribute__(Spec) /* empty */
|
|
||||||
# endif
|
|
||||||
# endif
|
|
||||||
|
|
||||||
static void
|
|
||||||
__attribute__ ((noreturn))
|
|
||||||
print_and_abort ()
|
|
||||||
{
|
|
||||||
/* Don't change any of these strings. Yes, it would be possible to add
|
|
||||||
the newline to the string and use fputs or so. But this must not
|
|
||||||
happen because the "memory exhausted" message appears in other places
|
|
||||||
like this and the translation should be reused instead of creating
|
|
||||||
a very similar string which requires a separate translation. */
|
|
||||||
# if defined _LIBC && defined USE_IN_LIBIO
|
|
||||||
if (_IO_fwide (stderr, 0) > 0)
|
|
||||||
__fwprintf (stderr, L"%s\n", _("memory exhausted"));
|
|
||||||
else
|
|
||||||
# endif
|
|
||||||
fprintf (stderr, "%s\n", _("memory exhausted"));
|
|
||||||
exit (obstack_exit_failure);
|
|
||||||
}
|
|
||||||
|
|
||||||
# if 0
|
|
||||||
/* These are now turned off because the applications do not use it
|
|
||||||
and it uses bcopy via obstack_grow, which causes trouble on sysV. */
|
|
||||||
|
|
||||||
/* Now define the functional versions of the obstack macros.
|
|
||||||
Define them to simply use the corresponding macros to do the job. */
|
|
||||||
|
|
||||||
# if defined __STDC__ && __STDC__
|
|
||||||
/* These function definitions do not work with non-ANSI preprocessors;
|
|
||||||
they won't pass through the macro names in parentheses. */
|
|
||||||
|
|
||||||
/* The function names appear in parentheses in order to prevent
|
|
||||||
the macro-definitions of the names from being expanded there. */
|
|
||||||
|
|
||||||
POINTER (obstack_base) (obstack)
|
|
||||||
struct obstack *obstack;
|
|
||||||
{
|
|
||||||
return obstack_base (obstack);
|
|
||||||
}
|
|
||||||
|
|
||||||
POINTER (obstack_next_free) (obstack)
|
|
||||||
struct obstack *obstack;
|
|
||||||
{
|
|
||||||
return obstack_next_free (obstack);
|
|
||||||
}
|
|
||||||
|
|
||||||
int (obstack_object_size) (obstack)
|
|
||||||
struct obstack *obstack;
|
|
||||||
{
|
|
||||||
return obstack_object_size (obstack);
|
|
||||||
}
|
|
||||||
|
|
||||||
int (obstack_room) (obstack)
|
|
||||||
struct obstack *obstack;
|
|
||||||
{
|
|
||||||
return obstack_room (obstack);
|
|
||||||
}
|
|
||||||
|
|
||||||
int (obstack_make_room) (obstack, length)
|
|
||||||
struct obstack *obstack;
|
|
||||||
int length;
|
|
||||||
{
|
|
||||||
return obstack_make_room (obstack, length);
|
|
||||||
}
|
|
||||||
|
|
||||||
void (obstack_grow) (obstack, data, length)
|
|
||||||
struct obstack *obstack;
|
|
||||||
const POINTER data;
|
|
||||||
int length;
|
|
||||||
{
|
|
||||||
obstack_grow (obstack, data, length);
|
|
||||||
}
|
|
||||||
|
|
||||||
void (obstack_grow0) (obstack, data, length)
|
|
||||||
struct obstack *obstack;
|
|
||||||
const POINTER data;
|
|
||||||
int length;
|
|
||||||
{
|
|
||||||
obstack_grow0 (obstack, data, length);
|
|
||||||
}
|
|
||||||
|
|
||||||
void (obstack_1grow) (obstack, character)
|
|
||||||
struct obstack *obstack;
|
|
||||||
int character;
|
|
||||||
{
|
|
||||||
obstack_1grow (obstack, character);
|
|
||||||
}
|
|
||||||
|
|
||||||
void (obstack_blank) (obstack, length)
|
|
||||||
struct obstack *obstack;
|
|
||||||
int length;
|
|
||||||
{
|
|
||||||
obstack_blank (obstack, length);
|
|
||||||
}
|
|
||||||
|
|
||||||
void (obstack_1grow_fast) (obstack, character)
|
|
||||||
struct obstack *obstack;
|
|
||||||
int character;
|
|
||||||
{
|
|
||||||
obstack_1grow_fast (obstack, character);
|
|
||||||
}
|
|
||||||
|
|
||||||
void (obstack_blank_fast) (obstack, length)
|
|
||||||
struct obstack *obstack;
|
|
||||||
int length;
|
|
||||||
{
|
|
||||||
obstack_blank_fast (obstack, length);
|
|
||||||
}
|
|
||||||
|
|
||||||
POINTER (obstack_finish) (obstack)
|
|
||||||
struct obstack *obstack;
|
|
||||||
{
|
|
||||||
return obstack_finish (obstack);
|
|
||||||
}
|
|
||||||
|
|
||||||
POINTER (obstack_alloc) (obstack, length)
|
|
||||||
struct obstack *obstack;
|
|
||||||
int length;
|
|
||||||
{
|
|
||||||
return obstack_alloc (obstack, length);
|
|
||||||
}
|
|
||||||
|
|
||||||
POINTER (obstack_copy) (obstack, address, length)
|
|
||||||
struct obstack *obstack;
|
|
||||||
const POINTER address;
|
|
||||||
int length;
|
|
||||||
{
|
|
||||||
return obstack_copy (obstack, address, length);
|
|
||||||
}
|
|
||||||
|
|
||||||
POINTER (obstack_copy0) (obstack, address, length)
|
|
||||||
struct obstack *obstack;
|
|
||||||
const POINTER address;
|
|
||||||
int length;
|
|
||||||
{
|
|
||||||
return obstack_copy0 (obstack, address, length);
|
|
||||||
}
|
|
||||||
|
|
||||||
# endif /* __STDC__ */
|
|
||||||
|
|
||||||
# endif /* 0 */
|
|
||||||
|
|
||||||
#endif /* !ELIDE_CODE */
|
|
||||||
613
lib/obstack.h
613
lib/obstack.h
@@ -1,613 +0,0 @@
|
|||||||
/* obstack.h - object stack macros
|
|
||||||
Copyright (C) 1988,89,90,91,92,93,94,96,97,98,99,2003 Free Software Foundation, Inc.
|
|
||||||
|
|
||||||
This file is part of the GNU C Library. Its master source is NOT part of
|
|
||||||
the C library, however. The master source lives in /gd/gnu/lib.
|
|
||||||
|
|
||||||
NOTE: The canonical source of this file is maintained with the GNU C Library.
|
|
||||||
Bugs can be reported to bug-glibc@gnu.org.
|
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify it
|
|
||||||
under the terms of the GNU General Public License as published by the
|
|
||||||
Free Software Foundation; either version 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
|
|
||||||
Library General Public License for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU Library 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. */
|
|
||||||
|
|
||||||
/* Summary:
|
|
||||||
|
|
||||||
All the apparent functions defined here are macros. The idea
|
|
||||||
is that you would use these pre-tested macros to solve a
|
|
||||||
very specific set of problems, and they would run fast.
|
|
||||||
Caution: no side-effects in arguments please!! They may be
|
|
||||||
evaluated MANY times!!
|
|
||||||
|
|
||||||
These macros operate a stack of objects. Each object starts life
|
|
||||||
small, and may grow to maturity. (Consider building a word syllable
|
|
||||||
by syllable.) An object can move while it is growing. Once it has
|
|
||||||
been "finished" it never changes address again. So the "top of the
|
|
||||||
stack" is typically an immature growing object, while the rest of the
|
|
||||||
stack is of mature, fixed size and fixed address objects.
|
|
||||||
|
|
||||||
These routines grab large chunks of memory, using a function you
|
|
||||||
supply, called `obstack_chunk_alloc'. On occasion, they free chunks,
|
|
||||||
by calling `obstack_chunk_free'. You must define them and declare
|
|
||||||
them before using any obstack macros.
|
|
||||||
|
|
||||||
Each independent stack is represented by a `struct obstack'.
|
|
||||||
Each of the obstack macros expects a pointer to such a structure
|
|
||||||
as the first argument.
|
|
||||||
|
|
||||||
One motivation for this package is the problem of growing char strings
|
|
||||||
in symbol tables. Unless you are "fascist pig with a read-only mind"
|
|
||||||
--Gosper's immortal quote from HAKMEM item 154, out of context--you
|
|
||||||
would not like to put any arbitrary upper limit on the length of your
|
|
||||||
symbols.
|
|
||||||
|
|
||||||
In practice this often means you will build many short symbols and a
|
|
||||||
few long symbols. At the time you are reading a symbol you don't know
|
|
||||||
how long it is. One traditional method is to read a symbol into a
|
|
||||||
buffer, realloc()ating the buffer every time you try to read a symbol
|
|
||||||
that is longer than the buffer. This is beaut, but you still will
|
|
||||||
want to copy the symbol from the buffer to a more permanent
|
|
||||||
symbol-table entry say about half the time.
|
|
||||||
|
|
||||||
With obstacks, you can work differently. Use one obstack for all symbol
|
|
||||||
names. As you read a symbol, grow the name in the obstack gradually.
|
|
||||||
When the name is complete, finalize it. Then, if the symbol exists already,
|
|
||||||
free the newly read name.
|
|
||||||
|
|
||||||
The way we do this is to take a large chunk, allocating memory from
|
|
||||||
low addresses. When you want to build a symbol in the chunk you just
|
|
||||||
add chars above the current "high water mark" in the chunk. When you
|
|
||||||
have finished adding chars, because you got to the end of the symbol,
|
|
||||||
you know how long the chars are, and you can create a new object.
|
|
||||||
Mostly the chars will not burst over the highest address of the chunk,
|
|
||||||
because you would typically expect a chunk to be (say) 100 times as
|
|
||||||
long as an average object.
|
|
||||||
|
|
||||||
In case that isn't clear, when we have enough chars to make up
|
|
||||||
the object, THEY ARE ALREADY CONTIGUOUS IN THE CHUNK (guaranteed)
|
|
||||||
so we just point to it where it lies. No moving of chars is
|
|
||||||
needed and this is the second win: potentially long strings need
|
|
||||||
never be explicitly shuffled. Once an object is formed, it does not
|
|
||||||
change its address during its lifetime.
|
|
||||||
|
|
||||||
When the chars burst over a chunk boundary, we allocate a larger
|
|
||||||
chunk, and then copy the partly formed object from the end of the old
|
|
||||||
chunk to the beginning of the new larger chunk. We then carry on
|
|
||||||
accreting characters to the end of the object as we normally would.
|
|
||||||
|
|
||||||
A special macro is provided to add a single char at a time to a
|
|
||||||
growing object. This allows the use of register variables, which
|
|
||||||
break the ordinary 'growth' macro.
|
|
||||||
|
|
||||||
Summary:
|
|
||||||
We allocate large chunks.
|
|
||||||
We carve out one object at a time from the current chunk.
|
|
||||||
Once carved, an object never moves.
|
|
||||||
We are free to append data of any size to the currently
|
|
||||||
growing object.
|
|
||||||
Exactly one object is growing in an obstack at any one time.
|
|
||||||
You can run one obstack per control block.
|
|
||||||
You may have as many control blocks as you dare.
|
|
||||||
Because of the way we do it, you can `unwind' an obstack
|
|
||||||
back to a previous state. (You may remove objects much
|
|
||||||
as you would with a stack.)
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
/* Don't do the contents of this file more than once. */
|
|
||||||
|
|
||||||
#ifndef _OBSTACK_H
|
|
||||||
#define _OBSTACK_H 1
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
|
||||||
extern "C" {
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* We use subtraction of (char *) 0 instead of casting to int
|
|
||||||
because on word-addressable machines a simple cast to int
|
|
||||||
may ignore the byte-within-word field of the pointer. */
|
|
||||||
|
|
||||||
#ifndef __PTR_TO_INT
|
|
||||||
# define __PTR_TO_INT(P) ((P) - (char *) 0)
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef __INT_TO_PTR
|
|
||||||
#if defined __STDC__ && __STDC__
|
|
||||||
# define __INT_TO_PTR(P) ((void *) ((P) + (char *) 0))
|
|
||||||
#else
|
|
||||||
# define __INT_TO_PTR(P) ((P) + (char *) 0)
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* We need the type of the resulting object. If __PTRDIFF_TYPE__ is
|
|
||||||
defined, as with GNU C, use that; that way we don't pollute the
|
|
||||||
namespace with <stddef.h>'s symbols. Otherwise, if <stddef.h> is
|
|
||||||
available, include it and use ptrdiff_t. In traditional C, long is
|
|
||||||
the best that we can do. */
|
|
||||||
|
|
||||||
#ifdef __PTRDIFF_TYPE__
|
|
||||||
# define PTR_INT_TYPE __PTRDIFF_TYPE__
|
|
||||||
#else
|
|
||||||
# ifdef HAVE_STDDEF_H
|
|
||||||
# include <stddef.h>
|
|
||||||
# define PTR_INT_TYPE ptrdiff_t
|
|
||||||
# else
|
|
||||||
# define PTR_INT_TYPE long
|
|
||||||
# endif
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined _LIBC || defined HAVE_STRING_H
|
|
||||||
# include <string.h>
|
|
||||||
# define _obstack_memcpy(To, From, N) memcpy ((To), (From), (N))
|
|
||||||
#else
|
|
||||||
# ifdef memcpy
|
|
||||||
# define _obstack_memcpy(To, From, N) memcpy ((To), (From), (N))
|
|
||||||
# else
|
|
||||||
# define _obstack_memcpy(To, From, N) bcopy ((From), (To), (N))
|
|
||||||
# endif
|
|
||||||
#endif
|
|
||||||
|
|
||||||
struct _obstack_chunk /* Lives at front of each chunk. */
|
|
||||||
{
|
|
||||||
char *limit; /* 1 past end of this chunk */
|
|
||||||
struct _obstack_chunk *prev; /* address of prior chunk or NULL */
|
|
||||||
char contents[4]; /* objects begin here */
|
|
||||||
};
|
|
||||||
|
|
||||||
struct obstack /* control current object in current chunk */
|
|
||||||
{
|
|
||||||
long chunk_size; /* preferred size to allocate chunks in */
|
|
||||||
struct _obstack_chunk *chunk; /* address of current struct obstack_chunk */
|
|
||||||
char *object_base; /* address of object we are building */
|
|
||||||
char *next_free; /* where to add next char to current object */
|
|
||||||
char *chunk_limit; /* address of char after current chunk */
|
|
||||||
PTR_INT_TYPE temp; /* Temporary for some macros. */
|
|
||||||
int alignment_mask; /* Mask of alignment for each object. */
|
|
||||||
#if defined __STDC__ && __STDC__
|
|
||||||
/* These prototypes vary based on `use_extra_arg', and we use
|
|
||||||
casts to the prototypeless function type in all assignments,
|
|
||||||
but having prototypes here quiets -Wstrict-prototypes. */
|
|
||||||
struct _obstack_chunk *(*chunkfun) (void *, long);
|
|
||||||
void (*freefun) (void *, struct _obstack_chunk *);
|
|
||||||
void *extra_arg; /* first arg for chunk alloc/dealloc funcs */
|
|
||||||
#else
|
|
||||||
struct _obstack_chunk *(*chunkfun) (); /* User's fcn to allocate a chunk. */
|
|
||||||
void (*freefun) (); /* User's function to free a chunk. */
|
|
||||||
char *extra_arg; /* first arg for chunk alloc/dealloc funcs */
|
|
||||||
#endif
|
|
||||||
unsigned use_extra_arg:1; /* chunk alloc/dealloc funcs take extra arg */
|
|
||||||
unsigned maybe_empty_object:1;/* There is a possibility that the current
|
|
||||||
chunk contains a zero-length object. This
|
|
||||||
prevents freeing the chunk if we allocate
|
|
||||||
a bigger chunk to replace it. */
|
|
||||||
unsigned alloc_failed:1; /* No longer used, as we now call the failed
|
|
||||||
handler on error, but retained for binary
|
|
||||||
compatibility. */
|
|
||||||
};
|
|
||||||
|
|
||||||
/* Declare the external functions we use; they are in obstack.c. */
|
|
||||||
|
|
||||||
#if defined __STDC__ && __STDC__
|
|
||||||
extern void _obstack_newchunk (struct obstack *, int);
|
|
||||||
extern void _obstack_free (struct obstack *, void *);
|
|
||||||
extern int _obstack_begin (struct obstack *, int, int,
|
|
||||||
void *(*) (long), void (*) (void *));
|
|
||||||
extern int _obstack_begin_1 (struct obstack *, int, int,
|
|
||||||
void *(*) (void *, long),
|
|
||||||
void (*) (void *, void *), void *);
|
|
||||||
extern int _obstack_memory_used (struct obstack *);
|
|
||||||
#else
|
|
||||||
extern void _obstack_newchunk ();
|
|
||||||
extern void _obstack_free ();
|
|
||||||
extern int _obstack_begin ();
|
|
||||||
extern int _obstack_begin_1 ();
|
|
||||||
extern int _obstack_memory_used ();
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined __STDC__ && __STDC__
|
|
||||||
|
|
||||||
/* Do the function-declarations after the structs
|
|
||||||
but before defining the macros. */
|
|
||||||
|
|
||||||
void obstack_init (struct obstack *obstack);
|
|
||||||
|
|
||||||
void * obstack_alloc (struct obstack *obstack, int size);
|
|
||||||
|
|
||||||
void * obstack_copy (struct obstack *obstack, const void *address, int size);
|
|
||||||
void * obstack_copy0 (struct obstack *obstack, const void *address, int size);
|
|
||||||
|
|
||||||
void obstack_free (struct obstack *obstack, void *block);
|
|
||||||
|
|
||||||
void obstack_blank (struct obstack *obstack, int size);
|
|
||||||
|
|
||||||
void obstack_grow (struct obstack *obstack, const void *data, int size);
|
|
||||||
void obstack_grow0 (struct obstack *obstack, const void *data, int size);
|
|
||||||
|
|
||||||
void obstack_1grow (struct obstack *obstack, int data_char);
|
|
||||||
void obstack_ptr_grow (struct obstack *obstack, const void *data);
|
|
||||||
void obstack_int_grow (struct obstack *obstack, int data);
|
|
||||||
|
|
||||||
void * obstack_finish (struct obstack *obstack);
|
|
||||||
|
|
||||||
int obstack_object_size (struct obstack *obstack);
|
|
||||||
|
|
||||||
int obstack_room (struct obstack *obstack);
|
|
||||||
void obstack_make_room (struct obstack *obstack, int size);
|
|
||||||
void obstack_1grow_fast (struct obstack *obstack, int data_char);
|
|
||||||
void obstack_ptr_grow_fast (struct obstack *obstack, const void *data);
|
|
||||||
void obstack_int_grow_fast (struct obstack *obstack, int data);
|
|
||||||
void obstack_blank_fast (struct obstack *obstack, int size);
|
|
||||||
|
|
||||||
void * obstack_base (struct obstack *obstack);
|
|
||||||
void * obstack_next_free (struct obstack *obstack);
|
|
||||||
int obstack_alignment_mask (struct obstack *obstack);
|
|
||||||
int obstack_chunk_size (struct obstack *obstack);
|
|
||||||
int obstack_memory_used (struct obstack *obstack);
|
|
||||||
|
|
||||||
#endif /* __STDC__ */
|
|
||||||
|
|
||||||
/* Non-ANSI C cannot really support alternative functions for these macros,
|
|
||||||
so we do not declare them. */
|
|
||||||
|
|
||||||
/* Error handler called when `obstack_chunk_alloc' failed to allocate
|
|
||||||
more memory. This can be set to a user defined function which
|
|
||||||
should either abort gracefully or use longjump - but shouldn't
|
|
||||||
return. The default action is to print a message and abort. */
|
|
||||||
#if defined __STDC__ && __STDC__
|
|
||||||
extern void (*obstack_alloc_failed_handler) (void);
|
|
||||||
#else
|
|
||||||
extern void (*obstack_alloc_failed_handler) ();
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* Exit value used when `print_and_abort' is used. */
|
|
||||||
extern int obstack_exit_failure;
|
|
||||||
|
|
||||||
/* Pointer to beginning of object being allocated or to be allocated next.
|
|
||||||
Note that this might not be the final address of the object
|
|
||||||
because a new chunk might be needed to hold the final size. */
|
|
||||||
|
|
||||||
#define obstack_base(h) ((h)->object_base)
|
|
||||||
|
|
||||||
/* Size for allocating ordinary chunks. */
|
|
||||||
|
|
||||||
#define obstack_chunk_size(h) ((h)->chunk_size)
|
|
||||||
|
|
||||||
/* Pointer to next byte not yet allocated in current chunk. */
|
|
||||||
|
|
||||||
#define obstack_next_free(h) ((h)->next_free)
|
|
||||||
|
|
||||||
/* Mask specifying low bits that should be clear in address of an object. */
|
|
||||||
|
|
||||||
#define obstack_alignment_mask(h) ((h)->alignment_mask)
|
|
||||||
|
|
||||||
/* To prevent prototype warnings provide complete argument list in
|
|
||||||
standard C version. */
|
|
||||||
#if defined __STDC__ && __STDC__
|
|
||||||
|
|
||||||
# define obstack_init(h) \
|
|
||||||
_obstack_begin ((h), 0, 0, \
|
|
||||||
(void *(*) (long)) obstack_chunk_alloc, \
|
|
||||||
(void (*) (void *)) obstack_chunk_free)
|
|
||||||
|
|
||||||
# define obstack_begin(h, size) \
|
|
||||||
_obstack_begin ((h), (size), 0, \
|
|
||||||
(void *(*) (long)) obstack_chunk_alloc, \
|
|
||||||
(void (*) (void *)) obstack_chunk_free)
|
|
||||||
|
|
||||||
# define obstack_specify_allocation(h, size, alignment, chunkfun, freefun) \
|
|
||||||
_obstack_begin ((h), (size), (alignment), \
|
|
||||||
(void *(*) (long)) (chunkfun), \
|
|
||||||
(void (*) (void *)) (freefun))
|
|
||||||
|
|
||||||
# define obstack_specify_allocation_with_arg(h, size, alignment, chunkfun, freefun, arg) \
|
|
||||||
_obstack_begin_1 ((h), (size), (alignment), \
|
|
||||||
(void *(*) (void *, long)) (chunkfun), \
|
|
||||||
(void (*) (void *, void *)) (freefun), (arg))
|
|
||||||
|
|
||||||
# define obstack_chunkfun(h, newchunkfun) \
|
|
||||||
((h) -> chunkfun = (struct _obstack_chunk *(*)(void *, long)) (newchunkfun))
|
|
||||||
|
|
||||||
# define obstack_freefun(h, newfreefun) \
|
|
||||||
((h) -> freefun = (void (*)(void *, struct _obstack_chunk *)) (newfreefun))
|
|
||||||
|
|
||||||
#else
|
|
||||||
|
|
||||||
# define obstack_init(h) \
|
|
||||||
_obstack_begin ((h), 0, 0, \
|
|
||||||
(void *(*) ()) obstack_chunk_alloc, \
|
|
||||||
(void (*) ()) obstack_chunk_free)
|
|
||||||
|
|
||||||
# define obstack_begin(h, size) \
|
|
||||||
_obstack_begin ((h), (size), 0, \
|
|
||||||
(void *(*) ()) obstack_chunk_alloc, \
|
|
||||||
(void (*) ()) obstack_chunk_free)
|
|
||||||
|
|
||||||
# define obstack_specify_allocation(h, size, alignment, chunkfun, freefun) \
|
|
||||||
_obstack_begin ((h), (size), (alignment), \
|
|
||||||
(void *(*) ()) (chunkfun), \
|
|
||||||
(void (*) ()) (freefun))
|
|
||||||
|
|
||||||
# define obstack_specify_allocation_with_arg(h, size, alignment, chunkfun, freefun, arg) \
|
|
||||||
_obstack_begin_1 ((h), (size), (alignment), \
|
|
||||||
(void *(*) ()) (chunkfun), \
|
|
||||||
(void (*) ()) (freefun), (arg))
|
|
||||||
|
|
||||||
# define obstack_chunkfun(h, newchunkfun) \
|
|
||||||
((h) -> chunkfun = (struct _obstack_chunk *(*)()) (newchunkfun))
|
|
||||||
|
|
||||||
# define obstack_freefun(h, newfreefun) \
|
|
||||||
((h) -> freefun = (void (*)()) (newfreefun))
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#define obstack_1grow_fast(h,achar) (*((h)->next_free)++ = achar)
|
|
||||||
|
|
||||||
#define obstack_blank_fast(h,n) ((h)->next_free += (n))
|
|
||||||
|
|
||||||
#define obstack_memory_used(h) _obstack_memory_used (h)
|
|
||||||
|
|
||||||
#if defined __GNUC__ && defined __STDC__ && __STDC__
|
|
||||||
/* NextStep 2.0 cc is really gcc 1.93 but it defines __GNUC__ = 2 and
|
|
||||||
does not implement __extension__. But that compiler doesn't define
|
|
||||||
__GNUC_MINOR__. */
|
|
||||||
# if __GNUC__ < 2 || (__NeXT__ && !__GNUC_MINOR__)
|
|
||||||
# define __extension__
|
|
||||||
# endif
|
|
||||||
|
|
||||||
/* For GNU C, if not -traditional,
|
|
||||||
we can define these macros to compute all args only once
|
|
||||||
without using a global variable.
|
|
||||||
Also, we can avoid using the `temp' slot, to make faster code. */
|
|
||||||
|
|
||||||
# define obstack_object_size(OBSTACK) \
|
|
||||||
__extension__ \
|
|
||||||
({ struct obstack const *__o = (OBSTACK); \
|
|
||||||
(unsigned) (__o->next_free - __o->object_base); })
|
|
||||||
|
|
||||||
# define obstack_room(OBSTACK) \
|
|
||||||
__extension__ \
|
|
||||||
({ struct obstack const *__o = (OBSTACK); \
|
|
||||||
(unsigned) (__o->chunk_limit - __o->next_free); })
|
|
||||||
|
|
||||||
# define obstack_make_room(OBSTACK,length) \
|
|
||||||
__extension__ \
|
|
||||||
({ struct obstack *__o = (OBSTACK); \
|
|
||||||
int __len = (length); \
|
|
||||||
if (__o->chunk_limit - __o->next_free < __len) \
|
|
||||||
_obstack_newchunk (__o, __len); \
|
|
||||||
(void) 0; })
|
|
||||||
|
|
||||||
# define obstack_empty_p(OBSTACK) \
|
|
||||||
__extension__ \
|
|
||||||
({ struct obstack const *__o = (OBSTACK); \
|
|
||||||
(__o->chunk->prev == 0 && __o->next_free - __o->chunk->contents == 0); })
|
|
||||||
|
|
||||||
# define obstack_grow(OBSTACK,where,length) \
|
|
||||||
__extension__ \
|
|
||||||
({ struct obstack *__o = (OBSTACK); \
|
|
||||||
int __len = (length); \
|
|
||||||
if (__o->next_free + __len > __o->chunk_limit) \
|
|
||||||
_obstack_newchunk (__o, __len); \
|
|
||||||
_obstack_memcpy (__o->next_free, (where), __len); \
|
|
||||||
__o->next_free += __len; \
|
|
||||||
(void) 0; })
|
|
||||||
|
|
||||||
# define obstack_grow0(OBSTACK,where,length) \
|
|
||||||
__extension__ \
|
|
||||||
({ struct obstack *__o = (OBSTACK); \
|
|
||||||
int __len = (length); \
|
|
||||||
if (__o->next_free + __len + 1 > __o->chunk_limit) \
|
|
||||||
_obstack_newchunk (__o, __len + 1); \
|
|
||||||
_obstack_memcpy (__o->next_free, (where), __len); \
|
|
||||||
__o->next_free += __len; \
|
|
||||||
*(__o->next_free)++ = 0; \
|
|
||||||
(void) 0; })
|
|
||||||
|
|
||||||
# define obstack_1grow(OBSTACK,datum) \
|
|
||||||
__extension__ \
|
|
||||||
({ struct obstack *__o = (OBSTACK); \
|
|
||||||
if (__o->next_free + 1 > __o->chunk_limit) \
|
|
||||||
_obstack_newchunk (__o, 1); \
|
|
||||||
*(__o->next_free)++ = (datum); \
|
|
||||||
(void) 0; })
|
|
||||||
|
|
||||||
/* These assume that the obstack alignment is good enough for pointers
|
|
||||||
or ints, and that the data added so far to the current object
|
|
||||||
shares that much alignment. */
|
|
||||||
|
|
||||||
# define obstack_ptr_grow(OBSTACK,datum) \
|
|
||||||
__extension__ \
|
|
||||||
({ struct obstack *__o = (OBSTACK); \
|
|
||||||
if (__o->next_free + sizeof (void *) > __o->chunk_limit) \
|
|
||||||
_obstack_newchunk (__o, sizeof (void *)); \
|
|
||||||
*((void **)__o->next_free)++ = (datum); \
|
|
||||||
(void) 0; })
|
|
||||||
|
|
||||||
# define obstack_int_grow(OBSTACK,datum) \
|
|
||||||
__extension__ \
|
|
||||||
({ struct obstack *__o = (OBSTACK); \
|
|
||||||
if (__o->next_free + sizeof (int) > __o->chunk_limit) \
|
|
||||||
_obstack_newchunk (__o, sizeof (int)); \
|
|
||||||
*((int *)__o->next_free)++ = (datum); \
|
|
||||||
(void) 0; })
|
|
||||||
|
|
||||||
# define obstack_ptr_grow_fast(h,aptr) \
|
|
||||||
(*((void **) (h)->next_free)++ = (aptr))
|
|
||||||
|
|
||||||
# define obstack_int_grow_fast(h,aint) \
|
|
||||||
(*((int *) (h)->next_free)++ = (aint))
|
|
||||||
|
|
||||||
# define obstack_blank(OBSTACK,length) \
|
|
||||||
__extension__ \
|
|
||||||
({ struct obstack *__o = (OBSTACK); \
|
|
||||||
int __len = (length); \
|
|
||||||
if (__o->chunk_limit - __o->next_free < __len) \
|
|
||||||
_obstack_newchunk (__o, __len); \
|
|
||||||
__o->next_free += __len; \
|
|
||||||
(void) 0; })
|
|
||||||
|
|
||||||
# define obstack_alloc(OBSTACK,length) \
|
|
||||||
__extension__ \
|
|
||||||
({ struct obstack *__h = (OBSTACK); \
|
|
||||||
obstack_blank (__h, (length)); \
|
|
||||||
obstack_finish (__h); })
|
|
||||||
|
|
||||||
# define obstack_copy(OBSTACK,where,length) \
|
|
||||||
__extension__ \
|
|
||||||
({ struct obstack *__h = (OBSTACK); \
|
|
||||||
obstack_grow (__h, (where), (length)); \
|
|
||||||
obstack_finish (__h); })
|
|
||||||
|
|
||||||
# define obstack_copy0(OBSTACK,where,length) \
|
|
||||||
__extension__ \
|
|
||||||
({ struct obstack *__h = (OBSTACK); \
|
|
||||||
obstack_grow0 (__h, (where), (length)); \
|
|
||||||
obstack_finish (__h); })
|
|
||||||
|
|
||||||
/* The local variable is named __o1 to avoid a name conflict
|
|
||||||
when obstack_blank is called. */
|
|
||||||
# define obstack_finish(OBSTACK) \
|
|
||||||
__extension__ \
|
|
||||||
({ struct obstack *__o1 = (OBSTACK); \
|
|
||||||
void *value; \
|
|
||||||
value = (void *) __o1->object_base; \
|
|
||||||
if (__o1->next_free == value) \
|
|
||||||
__o1->maybe_empty_object = 1; \
|
|
||||||
__o1->next_free \
|
|
||||||
= __INT_TO_PTR ((__PTR_TO_INT (__o1->next_free)+__o1->alignment_mask)\
|
|
||||||
& ~ (__o1->alignment_mask)); \
|
|
||||||
if (__o1->next_free - (char *)__o1->chunk \
|
|
||||||
> __o1->chunk_limit - (char *)__o1->chunk) \
|
|
||||||
__o1->next_free = __o1->chunk_limit; \
|
|
||||||
__o1->object_base = __o1->next_free; \
|
|
||||||
value; })
|
|
||||||
|
|
||||||
# define obstack_free(OBSTACK, OBJ) \
|
|
||||||
__extension__ \
|
|
||||||
({ struct obstack *__o = (OBSTACK); \
|
|
||||||
void *__obj = (OBJ); \
|
|
||||||
if (__obj > (void *)__o->chunk && __obj < (void *)__o->chunk_limit) \
|
|
||||||
__o->next_free = __o->object_base = (char *)__obj; \
|
|
||||||
else (obstack_free) (__o, __obj); })
|
|
||||||
|
|
||||||
#else /* not __GNUC__ or not __STDC__ */
|
|
||||||
|
|
||||||
# define obstack_object_size(h) \
|
|
||||||
(unsigned) ((h)->next_free - (h)->object_base)
|
|
||||||
|
|
||||||
# define obstack_room(h) \
|
|
||||||
(unsigned) ((h)->chunk_limit - (h)->next_free)
|
|
||||||
|
|
||||||
# define obstack_empty_p(h) \
|
|
||||||
((h)->chunk->prev == 0 && (h)->next_free - (h)->chunk->contents == 0)
|
|
||||||
|
|
||||||
/* Note that the call to _obstack_newchunk is enclosed in (..., 0)
|
|
||||||
so that we can avoid having void expressions
|
|
||||||
in the arms of the conditional expression.
|
|
||||||
Casting the third operand to void was tried before,
|
|
||||||
but some compilers won't accept it. */
|
|
||||||
|
|
||||||
# define obstack_make_room(h,length) \
|
|
||||||
( (h)->temp = (length), \
|
|
||||||
(((h)->next_free + (h)->temp > (h)->chunk_limit) \
|
|
||||||
? (_obstack_newchunk ((h), (h)->temp), 0) : 0))
|
|
||||||
|
|
||||||
# define obstack_grow(h,where,length) \
|
|
||||||
( (h)->temp = (length), \
|
|
||||||
(((h)->next_free + (h)->temp > (h)->chunk_limit) \
|
|
||||||
? (_obstack_newchunk ((h), (h)->temp), 0) : 0), \
|
|
||||||
_obstack_memcpy ((h)->next_free, (where), (h)->temp), \
|
|
||||||
(h)->next_free += (h)->temp)
|
|
||||||
|
|
||||||
# define obstack_grow0(h,where,length) \
|
|
||||||
( (h)->temp = (length), \
|
|
||||||
(((h)->next_free + (h)->temp + 1 > (h)->chunk_limit) \
|
|
||||||
? (_obstack_newchunk ((h), (h)->temp + 1), 0) : 0), \
|
|
||||||
_obstack_memcpy ((h)->next_free, (where), (h)->temp), \
|
|
||||||
(h)->next_free += (h)->temp, \
|
|
||||||
*((h)->next_free)++ = 0)
|
|
||||||
|
|
||||||
# define obstack_1grow(h,datum) \
|
|
||||||
( (((h)->next_free + 1 > (h)->chunk_limit) \
|
|
||||||
? (_obstack_newchunk ((h), 1), 0) : 0), \
|
|
||||||
(*((h)->next_free)++ = (datum)))
|
|
||||||
|
|
||||||
# define obstack_ptr_grow(h,datum) \
|
|
||||||
( (((h)->next_free + sizeof (char *) > (h)->chunk_limit) \
|
|
||||||
? (_obstack_newchunk ((h), sizeof (char *)), 0) : 0), \
|
|
||||||
(*((const char **) (((h)->next_free+=sizeof(char *))-sizeof(char *))) = (datum)))
|
|
||||||
|
|
||||||
# define obstack_int_grow(h,datum) \
|
|
||||||
( (((h)->next_free + sizeof (int) > (h)->chunk_limit) \
|
|
||||||
? (_obstack_newchunk ((h), sizeof (int)), 0) : 0), \
|
|
||||||
(*((int *) (((h)->next_free+=sizeof(int))-sizeof(int))) = (datum)))
|
|
||||||
|
|
||||||
# define obstack_ptr_grow_fast(h,aptr) \
|
|
||||||
(*((const char **) (h)->next_free)++ = (aptr))
|
|
||||||
|
|
||||||
# define obstack_int_grow_fast(h,aint) \
|
|
||||||
(*((int *) (h)->next_free)++ = (aint))
|
|
||||||
|
|
||||||
# define obstack_blank(h,length) \
|
|
||||||
( (h)->temp = (length), \
|
|
||||||
(((h)->chunk_limit - (h)->next_free < (h)->temp) \
|
|
||||||
? (_obstack_newchunk ((h), (h)->temp), 0) : 0), \
|
|
||||||
((h)->next_free += (h)->temp))
|
|
||||||
|
|
||||||
# define obstack_alloc(h,length) \
|
|
||||||
(obstack_blank ((h), (length)), obstack_finish ((h)))
|
|
||||||
|
|
||||||
# define obstack_copy(h,where,length) \
|
|
||||||
(obstack_grow ((h), (where), (length)), obstack_finish ((h)))
|
|
||||||
|
|
||||||
# define obstack_copy0(h,where,length) \
|
|
||||||
(obstack_grow0 ((h), (where), (length)), obstack_finish ((h)))
|
|
||||||
|
|
||||||
# define obstack_finish(h) \
|
|
||||||
( ((h)->next_free == (h)->object_base \
|
|
||||||
? (((h)->maybe_empty_object = 1), 0) \
|
|
||||||
: 0), \
|
|
||||||
(h)->temp = __PTR_TO_INT ((h)->object_base), \
|
|
||||||
(h)->next_free \
|
|
||||||
= __INT_TO_PTR ((__PTR_TO_INT ((h)->next_free)+(h)->alignment_mask) \
|
|
||||||
& ~ ((h)->alignment_mask)), \
|
|
||||||
(((h)->next_free - (char *) (h)->chunk \
|
|
||||||
> (h)->chunk_limit - (char *) (h)->chunk) \
|
|
||||||
? ((h)->next_free = (h)->chunk_limit) : 0), \
|
|
||||||
(h)->object_base = (h)->next_free, \
|
|
||||||
__INT_TO_PTR ((h)->temp))
|
|
||||||
|
|
||||||
# if defined __STDC__ && __STDC__
|
|
||||||
# define obstack_free(h,obj) \
|
|
||||||
( (h)->temp = (char *) (obj) - (char *) (h)->chunk, \
|
|
||||||
(((h)->temp > 0 && (h)->temp < (h)->chunk_limit - (char *) (h)->chunk)\
|
|
||||||
? (int) ((h)->next_free = (h)->object_base \
|
|
||||||
= (h)->temp + (char *) (h)->chunk) \
|
|
||||||
: (((obstack_free) ((h), (h)->temp + (char *) (h)->chunk), 0), 0)))
|
|
||||||
# else
|
|
||||||
# define obstack_free(h,obj) \
|
|
||||||
( (h)->temp = (char *) (obj) - (char *) (h)->chunk, \
|
|
||||||
(((h)->temp > 0 && (h)->temp < (h)->chunk_limit - (char *) (h)->chunk)\
|
|
||||||
? (int) ((h)->next_free = (h)->object_base \
|
|
||||||
= (h)->temp + (char *) (h)->chunk) \
|
|
||||||
: (_obstack_free ((h), (h)->temp + (char *) (h)->chunk), 0)))
|
|
||||||
# endif
|
|
||||||
|
|
||||||
#endif /* not __GNUC__ or not __STDC__ */
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
|
||||||
} /* C++ */
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif /* obstack.h */
|
|
||||||
41
lib/quote.c
41
lib/quote.c
@@ -1,41 +0,0 @@
|
|||||||
/* quote.c - quote arguments for output
|
|
||||||
Copyright (C) 1998, 1999, 2000, 2001, 2003 Free Software Foundation, Inc.
|
|
||||||
|
|
||||||
This program is free software; you can 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. */
|
|
||||||
|
|
||||||
/* Written by Paul Eggert <eggert@twinsun.com> */
|
|
||||||
|
|
||||||
#if HAVE_CONFIG_H
|
|
||||||
# include <config.h>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#include "quotearg.h"
|
|
||||||
#include "quote.h"
|
|
||||||
|
|
||||||
/* Return an unambiguous printable representation of NAME,
|
|
||||||
allocated in slot N, suitable for diagnostics. */
|
|
||||||
char const *
|
|
||||||
quote_n (int n, char const *name)
|
|
||||||
{
|
|
||||||
return quotearg_n_style (n, locale_quoting_style, name);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Return an unambiguous printable representation of NAME,
|
|
||||||
suitable for diagnostics. */
|
|
||||||
char const *
|
|
||||||
quote (char const *name)
|
|
||||||
{
|
|
||||||
return quote_n (0, name);
|
|
||||||
}
|
|
||||||
28
lib/quote.h
28
lib/quote.h
@@ -1,28 +0,0 @@
|
|||||||
/* quote.h - prototypes for quote.c
|
|
||||||
Copyright (C) 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
|
|
||||||
|
|
||||||
This program is free software; you can 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. */
|
|
||||||
|
|
||||||
|
|
||||||
#ifndef PARAMS
|
|
||||||
# if defined PROTOTYPES || (defined __STDC__ && __STDC__)
|
|
||||||
# define PARAMS(Args) Args
|
|
||||||
# else
|
|
||||||
# define PARAMS(Args) ()
|
|
||||||
# endif
|
|
||||||
#endif
|
|
||||||
|
|
||||||
char const *quote_n PARAMS ((int n, char const *name));
|
|
||||||
char const *quote PARAMS ((char const *name));
|
|
||||||
630
lib/quotearg.c
630
lib/quotearg.c
@@ -1,630 +0,0 @@
|
|||||||
/* quotearg.c - quote arguments for output
|
|
||||||
Copyright (C) 1998, 1999, 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. */
|
|
||||||
|
|
||||||
/* Written by Paul Eggert <eggert@twinsun.com> */
|
|
||||||
|
|
||||||
#if HAVE_CONFIG_H
|
|
||||||
# include <config.h>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#include "quotearg.h"
|
|
||||||
|
|
||||||
#include "xalloc.h"
|
|
||||||
|
|
||||||
#include <ctype.h>
|
|
||||||
#include <errno.h>
|
|
||||||
#include <limits.h>
|
|
||||||
#include <stdlib.h>
|
|
||||||
#include <string.h>
|
|
||||||
|
|
||||||
#include "gettext.h"
|
|
||||||
#define _(msgid) gettext (msgid)
|
|
||||||
#define N_(msgid) msgid
|
|
||||||
|
|
||||||
#if HAVE_WCHAR_H
|
|
||||||
|
|
||||||
/* BSD/OS 4.1 wchar.h requires FILE and struct tm to be declared. */
|
|
||||||
# include <stdio.h>
|
|
||||||
# include <time.h>
|
|
||||||
|
|
||||||
# include <wchar.h>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if !HAVE_MBRTOWC
|
|
||||||
/* Disable multibyte processing entirely. Since MB_CUR_MAX is 1, the
|
|
||||||
other macros are defined only for documentation and to satisfy C
|
|
||||||
syntax. */
|
|
||||||
# undef MB_CUR_MAX
|
|
||||||
# define MB_CUR_MAX 1
|
|
||||||
# define mbrtowc(pwc, s, n, ps) ((*(pwc) = *(s)) != 0)
|
|
||||||
# define iswprint(wc) isprint ((unsigned char) (wc))
|
|
||||||
# undef HAVE_MBSINIT
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if !defined mbsinit && !HAVE_MBSINIT
|
|
||||||
# define mbsinit(ps) 1
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef iswprint
|
|
||||||
# if HAVE_WCTYPE_H
|
|
||||||
# include <wctype.h>
|
|
||||||
# endif
|
|
||||||
# if !defined iswprint && !HAVE_ISWPRINT
|
|
||||||
# define iswprint(wc) 1
|
|
||||||
# endif
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef SIZE_MAX
|
|
||||||
# define SIZE_MAX ((size_t) -1)
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#define INT_BITS (sizeof (int) * CHAR_BIT)
|
|
||||||
|
|
||||||
struct quoting_options
|
|
||||||
{
|
|
||||||
/* Basic quoting style. */
|
|
||||||
enum quoting_style style;
|
|
||||||
|
|
||||||
/* Quote the characters indicated by this bit vector even if the
|
|
||||||
quoting style would not normally require them to be quoted. */
|
|
||||||
int quote_these_too[(UCHAR_MAX / INT_BITS) + 1];
|
|
||||||
};
|
|
||||||
|
|
||||||
/* Names of quoting styles. */
|
|
||||||
char const *const quoting_style_args[] =
|
|
||||||
{
|
|
||||||
"literal",
|
|
||||||
"shell",
|
|
||||||
"shell-always",
|
|
||||||
"c",
|
|
||||||
"escape",
|
|
||||||
"locale",
|
|
||||||
"clocale",
|
|
||||||
0
|
|
||||||
};
|
|
||||||
|
|
||||||
/* Correspondences to quoting style names. */
|
|
||||||
enum quoting_style const quoting_style_vals[] =
|
|
||||||
{
|
|
||||||
literal_quoting_style,
|
|
||||||
shell_quoting_style,
|
|
||||||
shell_always_quoting_style,
|
|
||||||
c_quoting_style,
|
|
||||||
escape_quoting_style,
|
|
||||||
locale_quoting_style,
|
|
||||||
clocale_quoting_style
|
|
||||||
};
|
|
||||||
|
|
||||||
/* The default quoting options. */
|
|
||||||
static struct quoting_options default_quoting_options;
|
|
||||||
|
|
||||||
/* Allocate a new set of quoting options, with contents initially identical
|
|
||||||
to O if O is not null, or to the default if O is null.
|
|
||||||
It is the caller's responsibility to free the result. */
|
|
||||||
struct quoting_options *
|
|
||||||
clone_quoting_options (struct quoting_options *o)
|
|
||||||
{
|
|
||||||
int e = errno;
|
|
||||||
struct quoting_options *p = xmalloc (sizeof *p);
|
|
||||||
*p = *(o ? o : &default_quoting_options);
|
|
||||||
errno = e;
|
|
||||||
return p;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Get the value of O's quoting style. If O is null, use the default. */
|
|
||||||
enum quoting_style
|
|
||||||
get_quoting_style (struct quoting_options *o)
|
|
||||||
{
|
|
||||||
return (o ? o : &default_quoting_options)->style;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* In O (or in the default if O is null),
|
|
||||||
set the value of the quoting style to S. */
|
|
||||||
void
|
|
||||||
set_quoting_style (struct quoting_options *o, enum quoting_style s)
|
|
||||||
{
|
|
||||||
(o ? o : &default_quoting_options)->style = s;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* In O (or in the default if O is null),
|
|
||||||
set the value of the quoting options for character C to I.
|
|
||||||
Return the old value. Currently, the only values defined for I are
|
|
||||||
0 (the default) and 1 (which means to quote the character even if
|
|
||||||
it would not otherwise be quoted). */
|
|
||||||
int
|
|
||||||
set_char_quoting (struct quoting_options *o, char c, int i)
|
|
||||||
{
|
|
||||||
unsigned char uc = c;
|
|
||||||
int *p = (o ? o : &default_quoting_options)->quote_these_too + uc / INT_BITS;
|
|
||||||
int shift = uc % INT_BITS;
|
|
||||||
int r = (*p >> shift) & 1;
|
|
||||||
*p ^= ((i & 1) ^ r) << shift;
|
|
||||||
return r;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* MSGID approximates a quotation mark. Return its translation if it
|
|
||||||
has one; otherwise, return either it or "\"", depending on S. */
|
|
||||||
static char const *
|
|
||||||
gettext_quote (char const *msgid, enum quoting_style s)
|
|
||||||
{
|
|
||||||
char const *translation = _(msgid);
|
|
||||||
if (translation == msgid && s == clocale_quoting_style)
|
|
||||||
translation = "\"";
|
|
||||||
return translation;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Place into buffer BUFFER (of size BUFFERSIZE) a quoted version of
|
|
||||||
argument ARG (of size ARGSIZE), using QUOTING_STYLE and the
|
|
||||||
non-quoting-style part of O to control quoting.
|
|
||||||
Terminate the output with a null character, and return the written
|
|
||||||
size of the output, not counting the terminating null.
|
|
||||||
If BUFFERSIZE is too small to store the output string, return the
|
|
||||||
value that would have been returned had BUFFERSIZE been large enough.
|
|
||||||
If ARGSIZE is -1, use the string length of the argument for ARGSIZE.
|
|
||||||
|
|
||||||
This function acts like quotearg_buffer (BUFFER, BUFFERSIZE, ARG,
|
|
||||||
ARGSIZE, O), except it uses QUOTING_STYLE instead of the quoting
|
|
||||||
style specified by O, and O may not be null. */
|
|
||||||
|
|
||||||
static size_t
|
|
||||||
quotearg_buffer_restyled (char *buffer, size_t buffersize,
|
|
||||||
char const *arg, size_t argsize,
|
|
||||||
enum quoting_style quoting_style,
|
|
||||||
struct quoting_options const *o)
|
|
||||||
{
|
|
||||||
size_t i;
|
|
||||||
size_t len = 0;
|
|
||||||
char const *quote_string = 0;
|
|
||||||
size_t quote_string_len = 0;
|
|
||||||
int backslash_escapes = 0;
|
|
||||||
int unibyte_locale = MB_CUR_MAX == 1;
|
|
||||||
|
|
||||||
#define STORE(c) \
|
|
||||||
do \
|
|
||||||
{ \
|
|
||||||
if (len < buffersize) \
|
|
||||||
buffer[len] = (c); \
|
|
||||||
len++; \
|
|
||||||
} \
|
|
||||||
while (0)
|
|
||||||
|
|
||||||
switch (quoting_style)
|
|
||||||
{
|
|
||||||
case c_quoting_style:
|
|
||||||
STORE ('"');
|
|
||||||
backslash_escapes = 1;
|
|
||||||
quote_string = "\"";
|
|
||||||
quote_string_len = 1;
|
|
||||||
break;
|
|
||||||
|
|
||||||
case escape_quoting_style:
|
|
||||||
backslash_escapes = 1;
|
|
||||||
break;
|
|
||||||
|
|
||||||
case locale_quoting_style:
|
|
||||||
case clocale_quoting_style:
|
|
||||||
{
|
|
||||||
/* Get translations for open and closing quotation marks.
|
|
||||||
|
|
||||||
The message catalog should translate "`" to a left
|
|
||||||
quotation mark suitable for the locale, and similarly for
|
|
||||||
"'". If the catalog has no translation,
|
|
||||||
locale_quoting_style quotes `like this', and
|
|
||||||
clocale_quoting_style quotes "like this".
|
|
||||||
|
|
||||||
For example, an American English Unicode locale should
|
|
||||||
translate "`" to U+201C (LEFT DOUBLE QUOTATION MARK), and
|
|
||||||
should translate "'" to U+201D (RIGHT DOUBLE QUOTATION
|
|
||||||
MARK). A British English Unicode locale should instead
|
|
||||||
translate these to U+2018 (LEFT SINGLE QUOTATION MARK) and
|
|
||||||
U+2019 (RIGHT SINGLE QUOTATION MARK), respectively. */
|
|
||||||
|
|
||||||
char const *left = gettext_quote (N_("`"), quoting_style);
|
|
||||||
char const *right = gettext_quote (N_("'"), quoting_style);
|
|
||||||
for (quote_string = left; *quote_string; quote_string++)
|
|
||||||
STORE (*quote_string);
|
|
||||||
backslash_escapes = 1;
|
|
||||||
quote_string = right;
|
|
||||||
quote_string_len = strlen (quote_string);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
|
|
||||||
case shell_always_quoting_style:
|
|
||||||
STORE ('\'');
|
|
||||||
quote_string = "'";
|
|
||||||
quote_string_len = 1;
|
|
||||||
break;
|
|
||||||
|
|
||||||
default:
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
for (i = 0; ! (argsize == SIZE_MAX ? arg[i] == '\0' : i == argsize); i++)
|
|
||||||
{
|
|
||||||
unsigned char c;
|
|
||||||
unsigned char esc;
|
|
||||||
|
|
||||||
if (backslash_escapes
|
|
||||||
&& quote_string_len
|
|
||||||
&& i + quote_string_len <= argsize
|
|
||||||
&& memcmp (arg + i, quote_string, quote_string_len) == 0)
|
|
||||||
STORE ('\\');
|
|
||||||
|
|
||||||
c = arg[i];
|
|
||||||
switch (c)
|
|
||||||
{
|
|
||||||
case '\0':
|
|
||||||
if (backslash_escapes)
|
|
||||||
{
|
|
||||||
STORE ('\\');
|
|
||||||
STORE ('0');
|
|
||||||
STORE ('0');
|
|
||||||
c = '0';
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
|
|
||||||
case '?':
|
|
||||||
switch (quoting_style)
|
|
||||||
{
|
|
||||||
case shell_quoting_style:
|
|
||||||
goto use_shell_always_quoting_style;
|
|
||||||
|
|
||||||
case c_quoting_style:
|
|
||||||
if (i + 2 < argsize && arg[i + 1] == '?')
|
|
||||||
switch (arg[i + 2])
|
|
||||||
{
|
|
||||||
case '!': case '\'':
|
|
||||||
case '(': case ')': case '-': case '/':
|
|
||||||
case '<': case '=': case '>':
|
|
||||||
/* Escape the second '?' in what would otherwise be
|
|
||||||
a trigraph. */
|
|
||||||
c = arg[i + 2];
|
|
||||||
i += 2;
|
|
||||||
STORE ('?');
|
|
||||||
STORE ('\\');
|
|
||||||
STORE ('?');
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
|
|
||||||
default:
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
|
|
||||||
case '\a': esc = 'a'; goto c_escape;
|
|
||||||
case '\b': esc = 'b'; goto c_escape;
|
|
||||||
case '\f': esc = 'f'; goto c_escape;
|
|
||||||
case '\n': esc = 'n'; goto c_and_shell_escape;
|
|
||||||
case '\r': esc = 'r'; goto c_and_shell_escape;
|
|
||||||
case '\t': esc = 't'; goto c_and_shell_escape;
|
|
||||||
case '\v': esc = 'v'; goto c_escape;
|
|
||||||
case '\\': esc = c; goto c_and_shell_escape;
|
|
||||||
|
|
||||||
c_and_shell_escape:
|
|
||||||
if (quoting_style == shell_quoting_style)
|
|
||||||
goto use_shell_always_quoting_style;
|
|
||||||
c_escape:
|
|
||||||
if (backslash_escapes)
|
|
||||||
{
|
|
||||||
c = esc;
|
|
||||||
goto store_escape;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
|
|
||||||
case '#': case '~':
|
|
||||||
if (i != 0)
|
|
||||||
break;
|
|
||||||
/* Fall through. */
|
|
||||||
case ' ':
|
|
||||||
case '!': /* special in bash */
|
|
||||||
case '"': case '$': case '&':
|
|
||||||
case '(': case ')': case '*': case ';':
|
|
||||||
case '<': case '>': case '[':
|
|
||||||
case '^': /* special in old /bin/sh, e.g. SunOS 4.1.4 */
|
|
||||||
case '`': case '|':
|
|
||||||
/* A shell special character. In theory, '$' and '`' could
|
|
||||||
be the first bytes of multibyte characters, which means
|
|
||||||
we should check them with mbrtowc, but in practice this
|
|
||||||
doesn't happen so it's not worth worrying about. */
|
|
||||||
if (quoting_style == shell_quoting_style)
|
|
||||||
goto use_shell_always_quoting_style;
|
|
||||||
break;
|
|
||||||
|
|
||||||
case '\'':
|
|
||||||
switch (quoting_style)
|
|
||||||
{
|
|
||||||
case shell_quoting_style:
|
|
||||||
goto use_shell_always_quoting_style;
|
|
||||||
|
|
||||||
case shell_always_quoting_style:
|
|
||||||
STORE ('\'');
|
|
||||||
STORE ('\\');
|
|
||||||
STORE ('\'');
|
|
||||||
break;
|
|
||||||
|
|
||||||
default:
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
|
|
||||||
case '%': case '+': case ',': case '-': case '.': case '/':
|
|
||||||
case '0': case '1': case '2': case '3': case '4': case '5':
|
|
||||||
case '6': case '7': case '8': case '9': case ':': case '=':
|
|
||||||
case 'A': case 'B': case 'C': case 'D': case 'E': case 'F':
|
|
||||||
case 'G': case 'H': case 'I': case 'J': case 'K': case 'L':
|
|
||||||
case 'M': case 'N': case 'O': case 'P': case 'Q': case 'R':
|
|
||||||
case 'S': case 'T': case 'U': case 'V': case 'W': case 'X':
|
|
||||||
case 'Y': case 'Z': case ']': case '_': case 'a': case 'b':
|
|
||||||
case 'c': case 'd': case 'e': case 'f': case 'g': case 'h':
|
|
||||||
case 'i': case 'j': case 'k': case 'l': case 'm': case 'n':
|
|
||||||
case 'o': case 'p': case 'q': case 'r': case 's': case 't':
|
|
||||||
case 'u': case 'v': case 'w': case 'x': case 'y': case 'z':
|
|
||||||
case '{': case '}':
|
|
||||||
/* These characters don't cause problems, no matter what the
|
|
||||||
quoting style is. They cannot start multibyte sequences. */
|
|
||||||
break;
|
|
||||||
|
|
||||||
default:
|
|
||||||
/* If we have a multibyte sequence, copy it until we reach
|
|
||||||
its end, find an error, or come back to the initial shift
|
|
||||||
state. For C-like styles, if the sequence has
|
|
||||||
unprintable characters, escape the whole sequence, since
|
|
||||||
we can't easily escape single characters within it. */
|
|
||||||
{
|
|
||||||
/* Length of multibyte sequence found so far. */
|
|
||||||
size_t m;
|
|
||||||
|
|
||||||
int printable;
|
|
||||||
|
|
||||||
if (unibyte_locale)
|
|
||||||
{
|
|
||||||
m = 1;
|
|
||||||
printable = isprint (c);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
mbstate_t mbstate;
|
|
||||||
memset (&mbstate, 0, sizeof mbstate);
|
|
||||||
|
|
||||||
m = 0;
|
|
||||||
printable = 1;
|
|
||||||
if (argsize == SIZE_MAX)
|
|
||||||
argsize = strlen (arg);
|
|
||||||
|
|
||||||
do
|
|
||||||
{
|
|
||||||
wchar_t w;
|
|
||||||
size_t bytes = mbrtowc (&w, &arg[i + m],
|
|
||||||
argsize - (i + m), &mbstate);
|
|
||||||
if (bytes == 0)
|
|
||||||
break;
|
|
||||||
else if (bytes == (size_t) -1)
|
|
||||||
{
|
|
||||||
printable = 0;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
else if (bytes == (size_t) -2)
|
|
||||||
{
|
|
||||||
printable = 0;
|
|
||||||
while (i + m < argsize && arg[i + m])
|
|
||||||
m++;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
if (! iswprint (w))
|
|
||||||
printable = 0;
|
|
||||||
m += bytes;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
while (! mbsinit (&mbstate));
|
|
||||||
}
|
|
||||||
|
|
||||||
if (1 < m || (backslash_escapes && ! printable))
|
|
||||||
{
|
|
||||||
/* Output a multibyte sequence, or an escaped
|
|
||||||
unprintable unibyte character. */
|
|
||||||
size_t ilim = i + m;
|
|
||||||
|
|
||||||
for (;;)
|
|
||||||
{
|
|
||||||
if (backslash_escapes && ! printable)
|
|
||||||
{
|
|
||||||
STORE ('\\');
|
|
||||||
STORE ('0' + (c >> 6));
|
|
||||||
STORE ('0' + ((c >> 3) & 7));
|
|
||||||
c = '0' + (c & 7);
|
|
||||||
}
|
|
||||||
if (ilim <= i + 1)
|
|
||||||
break;
|
|
||||||
STORE (c);
|
|
||||||
c = arg[++i];
|
|
||||||
}
|
|
||||||
|
|
||||||
goto store_c;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (! (backslash_escapes
|
|
||||||
&& o->quote_these_too[c / INT_BITS] & (1 << (c % INT_BITS))))
|
|
||||||
goto store_c;
|
|
||||||
|
|
||||||
store_escape:
|
|
||||||
STORE ('\\');
|
|
||||||
|
|
||||||
store_c:
|
|
||||||
STORE (c);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (quote_string)
|
|
||||||
for (; *quote_string; quote_string++)
|
|
||||||
STORE (*quote_string);
|
|
||||||
|
|
||||||
if (len < buffersize)
|
|
||||||
buffer[len] = '\0';
|
|
||||||
return len;
|
|
||||||
|
|
||||||
use_shell_always_quoting_style:
|
|
||||||
return quotearg_buffer_restyled (buffer, buffersize, arg, argsize,
|
|
||||||
shell_always_quoting_style, o);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Place into buffer BUFFER (of size BUFFERSIZE) a quoted version of
|
|
||||||
argument ARG (of size ARGSIZE), using O to control quoting.
|
|
||||||
If O is null, use the default.
|
|
||||||
Terminate the output with a null character, and return the written
|
|
||||||
size of the output, not counting the terminating null.
|
|
||||||
If BUFFERSIZE is too small to store the output string, return the
|
|
||||||
value that would have been returned had BUFFERSIZE been large enough.
|
|
||||||
If ARGSIZE is -1, use the string length of the argument for ARGSIZE. */
|
|
||||||
size_t
|
|
||||||
quotearg_buffer (char *buffer, size_t buffersize,
|
|
||||||
char const *arg, size_t argsize,
|
|
||||||
struct quoting_options const *o)
|
|
||||||
{
|
|
||||||
struct quoting_options const *p = o ? o : &default_quoting_options;
|
|
||||||
int e = errno;
|
|
||||||
size_t r = quotearg_buffer_restyled (buffer, buffersize, arg, argsize,
|
|
||||||
p->style, p);
|
|
||||||
errno = e;
|
|
||||||
return r;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Use storage slot N to return a quoted version of argument ARG.
|
|
||||||
ARG is of size ARGSIZE, but if that is -1, ARG is a null-terminated string.
|
|
||||||
OPTIONS specifies the quoting options.
|
|
||||||
The returned value points to static storage that can be
|
|
||||||
reused by the next call to this function with the same value of N.
|
|
||||||
N must be nonnegative. N is deliberately declared with type "int"
|
|
||||||
to allow for future extensions (using negative values). */
|
|
||||||
static char *
|
|
||||||
quotearg_n_options (int n, char const *arg, size_t argsize,
|
|
||||||
struct quoting_options const *options)
|
|
||||||
{
|
|
||||||
int e = errno;
|
|
||||||
|
|
||||||
/* Preallocate a slot 0 buffer, so that the caller can always quote
|
|
||||||
one small component of a "memory exhausted" message in slot 0. */
|
|
||||||
static char slot0[256];
|
|
||||||
static unsigned int nslots = 1;
|
|
||||||
unsigned int n0 = n;
|
|
||||||
struct slotvec
|
|
||||||
{
|
|
||||||
size_t size;
|
|
||||||
char *val;
|
|
||||||
};
|
|
||||||
static struct slotvec slotvec0 = {sizeof slot0, slot0};
|
|
||||||
static struct slotvec *slotvec = &slotvec0;
|
|
||||||
|
|
||||||
if (n < 0)
|
|
||||||
abort ();
|
|
||||||
|
|
||||||
if (nslots <= n0)
|
|
||||||
{
|
|
||||||
unsigned int n1 = n0 + 1;
|
|
||||||
size_t s = n1 * sizeof *slotvec;
|
|
||||||
|
|
||||||
if (SIZE_MAX / UINT_MAX <= sizeof *slotvec
|
|
||||||
&& n1 != s / sizeof *slotvec)
|
|
||||||
xalloc_die ();
|
|
||||||
|
|
||||||
if (slotvec == &slotvec0)
|
|
||||||
{
|
|
||||||
slotvec = xmalloc (sizeof *slotvec);
|
|
||||||
*slotvec = slotvec0;
|
|
||||||
}
|
|
||||||
slotvec = xrealloc (slotvec, s);
|
|
||||||
memset (slotvec + nslots, 0, (n1 - nslots) * sizeof *slotvec);
|
|
||||||
nslots = n1;
|
|
||||||
}
|
|
||||||
|
|
||||||
{
|
|
||||||
size_t size = slotvec[n].size;
|
|
||||||
char *val = slotvec[n].val;
|
|
||||||
size_t qsize = quotearg_buffer (val, size, arg, argsize, options);
|
|
||||||
|
|
||||||
if (size <= qsize)
|
|
||||||
{
|
|
||||||
slotvec[n].size = size = qsize + 1;
|
|
||||||
slotvec[n].val = val = xrealloc (val == slot0 ? 0 : val, size);
|
|
||||||
quotearg_buffer (val, size, arg, argsize, options);
|
|
||||||
}
|
|
||||||
|
|
||||||
errno = e;
|
|
||||||
return val;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
char *
|
|
||||||
quotearg_n (int n, char const *arg)
|
|
||||||
{
|
|
||||||
return quotearg_n_options (n, arg, SIZE_MAX, &default_quoting_options);
|
|
||||||
}
|
|
||||||
|
|
||||||
char *
|
|
||||||
quotearg (char const *arg)
|
|
||||||
{
|
|
||||||
return quotearg_n (0, arg);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Return quoting options for STYLE, with no extra quoting. */
|
|
||||||
static struct quoting_options
|
|
||||||
quoting_options_from_style (enum quoting_style style)
|
|
||||||
{
|
|
||||||
struct quoting_options o;
|
|
||||||
o.style = style;
|
|
||||||
memset (o.quote_these_too, 0, sizeof o.quote_these_too);
|
|
||||||
return o;
|
|
||||||
}
|
|
||||||
|
|
||||||
char *
|
|
||||||
quotearg_n_style (int n, enum quoting_style s, char const *arg)
|
|
||||||
{
|
|
||||||
struct quoting_options const o = quoting_options_from_style (s);
|
|
||||||
return quotearg_n_options (n, arg, SIZE_MAX, &o);
|
|
||||||
}
|
|
||||||
|
|
||||||
char *
|
|
||||||
quotearg_n_style_mem (int n, enum quoting_style s,
|
|
||||||
char const *arg, size_t argsize)
|
|
||||||
{
|
|
||||||
struct quoting_options const o = quoting_options_from_style (s);
|
|
||||||
return quotearg_n_options (n, arg, argsize, &o);
|
|
||||||
}
|
|
||||||
|
|
||||||
char *
|
|
||||||
quotearg_style (enum quoting_style s, char const *arg)
|
|
||||||
{
|
|
||||||
return quotearg_n_style (0, s, arg);
|
|
||||||
}
|
|
||||||
|
|
||||||
char *
|
|
||||||
quotearg_char (char const *arg, char ch)
|
|
||||||
{
|
|
||||||
struct quoting_options options;
|
|
||||||
options = default_quoting_options;
|
|
||||||
set_char_quoting (&options, ch, 1);
|
|
||||||
return quotearg_n_options (0, arg, SIZE_MAX, &options);
|
|
||||||
}
|
|
||||||
|
|
||||||
char *
|
|
||||||
quotearg_colon (char const *arg)
|
|
||||||
{
|
|
||||||
return quotearg_char (arg, ':');
|
|
||||||
}
|
|
||||||
114
lib/quotearg.h
114
lib/quotearg.h
@@ -1,114 +0,0 @@
|
|||||||
/* quotearg.h - quote arguments for output
|
|
||||||
|
|
||||||
Copyright (C) 1998, 1999, 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. */
|
|
||||||
|
|
||||||
/* Written by Paul Eggert <eggert@twinsun.com> */
|
|
||||||
|
|
||||||
#ifndef QUOTEARG_H_
|
|
||||||
# define QUOTEARG_H_ 1
|
|
||||||
|
|
||||||
# include <stddef.h>
|
|
||||||
|
|
||||||
/* Basic quoting styles. */
|
|
||||||
enum quoting_style
|
|
||||||
{
|
|
||||||
literal_quoting_style, /* --quoting-style=literal */
|
|
||||||
shell_quoting_style, /* --quoting-style=shell */
|
|
||||||
shell_always_quoting_style, /* --quoting-style=shell-always */
|
|
||||||
c_quoting_style, /* --quoting-style=c */
|
|
||||||
escape_quoting_style, /* --quoting-style=escape */
|
|
||||||
locale_quoting_style, /* --quoting-style=locale */
|
|
||||||
clocale_quoting_style /* --quoting-style=clocale */
|
|
||||||
};
|
|
||||||
|
|
||||||
/* For now, --quoting-style=literal is the default, but this may change. */
|
|
||||||
# ifndef DEFAULT_QUOTING_STYLE
|
|
||||||
# define DEFAULT_QUOTING_STYLE literal_quoting_style
|
|
||||||
# endif
|
|
||||||
|
|
||||||
/* Names of quoting styles and their corresponding values. */
|
|
||||||
extern char const *const quoting_style_args[];
|
|
||||||
extern enum quoting_style const quoting_style_vals[];
|
|
||||||
|
|
||||||
struct quoting_options;
|
|
||||||
|
|
||||||
/* The functions listed below set and use a hidden variable
|
|
||||||
that contains the default quoting style options. */
|
|
||||||
|
|
||||||
/* Allocate a new set of quoting options, with contents initially identical
|
|
||||||
to O if O is not null, or to the default if O is null.
|
|
||||||
It is the caller's responsibility to free the result. */
|
|
||||||
struct quoting_options *clone_quoting_options (struct quoting_options *o);
|
|
||||||
|
|
||||||
/* Get the value of O's quoting style. If O is null, use the default. */
|
|
||||||
enum quoting_style get_quoting_style (struct quoting_options *o);
|
|
||||||
|
|
||||||
/* In O (or in the default if O is null),
|
|
||||||
set the value of the quoting style to S. */
|
|
||||||
void set_quoting_style (struct quoting_options *o, enum quoting_style s);
|
|
||||||
|
|
||||||
/* In O (or in the default if O is null),
|
|
||||||
set the value of the quoting options for character C to I.
|
|
||||||
Return the old value. Currently, the only values defined for I are
|
|
||||||
0 (the default) and 1 (which means to quote the character even if
|
|
||||||
it would not otherwise be quoted). */
|
|
||||||
int set_char_quoting (struct quoting_options *o, char c, int i);
|
|
||||||
|
|
||||||
/* Place into buffer BUFFER (of size BUFFERSIZE) a quoted version of
|
|
||||||
argument ARG (of size ARGSIZE), using O to control quoting.
|
|
||||||
If O is null, use the default.
|
|
||||||
Terminate the output with a null character, and return the written
|
|
||||||
size of the output, not counting the terminating null.
|
|
||||||
If BUFFERSIZE is too small to store the output string, return the
|
|
||||||
value that would have been returned had BUFFERSIZE been large enough.
|
|
||||||
If ARGSIZE is -1, use the string length of the argument for ARGSIZE. */
|
|
||||||
size_t quotearg_buffer (char *buffer, size_t buffersize,
|
|
||||||
char const *arg, size_t argsize,
|
|
||||||
struct quoting_options const *o);
|
|
||||||
|
|
||||||
/* Use storage slot N to return a quoted version of the string ARG.
|
|
||||||
Use the default quoting options.
|
|
||||||
The returned value points to static storage that can be
|
|
||||||
reused by the next call to this function with the same value of N.
|
|
||||||
N must be nonnegative. */
|
|
||||||
char *quotearg_n (int n, char const *arg);
|
|
||||||
|
|
||||||
/* Equivalent to quotearg_n (0, ARG). */
|
|
||||||
char *quotearg (char const *arg);
|
|
||||||
|
|
||||||
/* Use style S and storage slot N to return a quoted version of the string ARG.
|
|
||||||
This is like quotearg_n (N, ARG), except that it uses S with no other
|
|
||||||
options to specify the quoting method. */
|
|
||||||
char *quotearg_n_style (int n, enum quoting_style s, char const *arg);
|
|
||||||
|
|
||||||
/* Use style S and storage slot N to return a quoted version of the
|
|
||||||
argument ARG of size ARGSIZE. This is like quotearg_n_style
|
|
||||||
(N, S, ARG), except it can quote null bytes. */
|
|
||||||
char *quotearg_n_style_mem (int n, enum quoting_style s,
|
|
||||||
char const *arg, size_t argsize);
|
|
||||||
|
|
||||||
/* Equivalent to quotearg_n_style (0, S, ARG). */
|
|
||||||
char *quotearg_style (enum quoting_style s, char const *arg);
|
|
||||||
|
|
||||||
/* Like quotearg (ARG), except also quote any instances of CH. */
|
|
||||||
char *quotearg_char (char const *arg, char ch);
|
|
||||||
|
|
||||||
/* Equivalent to quotearg_char (ARG, ':'). */
|
|
||||||
char *quotearg_colon (char const *arg);
|
|
||||||
|
|
||||||
#endif /* !QUOTEARG_H_ */
|
|
||||||
@@ -1,44 +0,0 @@
|
|||||||
/* Work around bug on some systems where realloc (NULL, 0) fails.
|
|
||||||
Copyright (C) 1997 Free Software Foundation, Inc.
|
|
||||||
|
|
||||||
This program is free software; you can 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. */
|
|
||||||
|
|
||||||
/* written by Jim Meyering */
|
|
||||||
|
|
||||||
#if HAVE_CONFIG_H
|
|
||||||
# include <config.h>
|
|
||||||
#endif
|
|
||||||
#undef realloc
|
|
||||||
|
|
||||||
#include <stddef.h>
|
|
||||||
|
|
||||||
char *malloc ();
|
|
||||||
char *realloc ();
|
|
||||||
|
|
||||||
/* Change the size of an allocated block of memory P to N bytes,
|
|
||||||
with error checking. If N is zero, change it to 1. If P is NULL,
|
|
||||||
use malloc. */
|
|
||||||
|
|
||||||
char *
|
|
||||||
rpl_realloc (p, n)
|
|
||||||
char *p;
|
|
||||||
size_t n;
|
|
||||||
{
|
|
||||||
if (n == 0)
|
|
||||||
n = 1;
|
|
||||||
if (p == 0)
|
|
||||||
return malloc (n);
|
|
||||||
return realloc (p, n);
|
|
||||||
}
|
|
||||||
@@ -1,47 +0,0 @@
|
|||||||
/* Copyright (C) 2001-2002 Free Software Foundation, Inc.
|
|
||||||
Written by Bruno Haible <haible@clisp.cons.org>, 2001.
|
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
|
||||||
it under the terms of the GNU General Public License as published by
|
|
||||||
the Free Software Foundation; either version 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. */
|
|
||||||
|
|
||||||
#ifndef _STDBOOL_H
|
|
||||||
#define _STDBOOL_H
|
|
||||||
|
|
||||||
/* ISO C 99 <stdbool.h> for platforms that lack it. */
|
|
||||||
|
|
||||||
/* 7.16. Boolean type and values */
|
|
||||||
|
|
||||||
/* BeOS <sys/socket.h> already #defines false 0, true 1. We use the same
|
|
||||||
definitions below, but temporarily we have to #undef them. */
|
|
||||||
#ifdef __BEOS__
|
|
||||||
# undef false
|
|
||||||
# undef true
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* For the sake of symbolic names in gdb, define _Bool as an enum type. */
|
|
||||||
#ifndef __cplusplus
|
|
||||||
# if !@HAVE__BOOL@
|
|
||||||
typedef enum { false = 0, true = 1 } _Bool;
|
|
||||||
# endif
|
|
||||||
#else
|
|
||||||
typedef bool _Bool;
|
|
||||||
#endif
|
|
||||||
#define bool _Bool
|
|
||||||
|
|
||||||
/* The other macros must be usable in preprocessor directives. */
|
|
||||||
#define false 0
|
|
||||||
#define true 1
|
|
||||||
#define __bool_true_false_are_defined 1
|
|
||||||
|
|
||||||
#endif /* _STDBOOL_H */
|
|
||||||
50
lib/stpcpy.c
50
lib/stpcpy.c
@@ -1,50 +0,0 @@
|
|||||||
/* stpcpy.c -- copy a string and return pointer to end of new string
|
|
||||||
Copyright (C) 1992, 1995, 1997, 1998 Free Software Foundation, Inc.
|
|
||||||
|
|
||||||
NOTE: The canonical source of this file is maintained with the GNU C Library.
|
|
||||||
Bugs can be reported to bug-glibc@prep.ai.mit.edu.
|
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify it
|
|
||||||
under the terms of the GNU General Public License as published by the
|
|
||||||
Free Software Foundation; either version 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. */
|
|
||||||
|
|
||||||
#ifdef HAVE_CONFIG_H
|
|
||||||
# include <config.h>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#include <string.h>
|
|
||||||
|
|
||||||
#undef __stpcpy
|
|
||||||
#undef stpcpy
|
|
||||||
|
|
||||||
#ifndef weak_alias
|
|
||||||
# define __stpcpy stpcpy
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* Copy SRC to DEST, returning the address of the terminating '\0' in DEST. */
|
|
||||||
char *
|
|
||||||
__stpcpy (char *dest, const char *src)
|
|
||||||
{
|
|
||||||
register char *d = dest;
|
|
||||||
register const char *s = src;
|
|
||||||
|
|
||||||
do
|
|
||||||
*d++ = *s;
|
|
||||||
while (*s++ != '\0');
|
|
||||||
|
|
||||||
return d - 1;
|
|
||||||
}
|
|
||||||
#ifdef weak_alias
|
|
||||||
weak_alias (__stpcpy, stpcpy)
|
|
||||||
#endif
|
|
||||||
@@ -1,66 +0,0 @@
|
|||||||
/* strcasecmp.c -- case insensitive string comparator
|
|
||||||
Copyright (C) 1998, 1999 Free Software Foundation, Inc.
|
|
||||||
|
|
||||||
This program is free software; you can 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. */
|
|
||||||
|
|
||||||
#if HAVE_CONFIG_H
|
|
||||||
# include <config.h>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef LENGTH_LIMIT
|
|
||||||
# define STRXCASECMP_FUNCTION strncasecmp
|
|
||||||
# define STRXCASECMP_DECLARE_N , size_t n
|
|
||||||
# define LENGTH_LIMIT_EXPR(Expr) Expr
|
|
||||||
#else
|
|
||||||
# define STRXCASECMP_FUNCTION strcasecmp
|
|
||||||
# define STRXCASECMP_DECLARE_N /* empty */
|
|
||||||
# define LENGTH_LIMIT_EXPR(Expr) 0
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#include <stddef.h>
|
|
||||||
#include <ctype.h>
|
|
||||||
|
|
||||||
#define TOLOWER(Ch) (isupper (Ch) ? tolower (Ch) : (Ch))
|
|
||||||
|
|
||||||
/* Compare {{no more than N characters of }}strings S1 and S2,
|
|
||||||
ignoring case, returning less than, equal to or
|
|
||||||
greater than zero if S1 is lexicographically less
|
|
||||||
than, equal to or greater than S2. */
|
|
||||||
|
|
||||||
int
|
|
||||||
STRXCASECMP_FUNCTION (const char *s1, const char *s2 STRXCASECMP_DECLARE_N)
|
|
||||||
{
|
|
||||||
register const unsigned char *p1 = (const unsigned char *) s1;
|
|
||||||
register const unsigned char *p2 = (const unsigned char *) s2;
|
|
||||||
unsigned char c1, c2;
|
|
||||||
|
|
||||||
if (p1 == p2 || LENGTH_LIMIT_EXPR (n == 0))
|
|
||||||
return 0;
|
|
||||||
|
|
||||||
do
|
|
||||||
{
|
|
||||||
c1 = TOLOWER (*p1);
|
|
||||||
c2 = TOLOWER (*p2);
|
|
||||||
|
|
||||||
if (LENGTH_LIMIT_EXPR (--n == 0) || c1 == '\0')
|
|
||||||
break;
|
|
||||||
|
|
||||||
++p1;
|
|
||||||
++p2;
|
|
||||||
}
|
|
||||||
while (c1 == c2);
|
|
||||||
|
|
||||||
return c1 - c2;
|
|
||||||
}
|
|
||||||
31
lib/strchr.c
31
lib/strchr.c
@@ -1,31 +0,0 @@
|
|||||||
/* Copyright (C) 2001 Free Software Foundation, Inc.
|
|
||||||
|
|
||||||
This program is free software; you can 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. */
|
|
||||||
|
|
||||||
#if HAVE_CONFIG_H
|
|
||||||
# include <config.h>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if HAVE_STRING_H
|
|
||||||
# include <string.h>
|
|
||||||
#else
|
|
||||||
# include <strings.h>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
char *
|
|
||||||
strchr (const char *s, int c)
|
|
||||||
{
|
|
||||||
return index (s, c);
|
|
||||||
}
|
|
||||||
@@ -1,2 +0,0 @@
|
|||||||
#define LENGTH_LIMIT
|
|
||||||
#include "strcasecmp.c"
|
|
||||||
@@ -1,63 +0,0 @@
|
|||||||
/* Find the length of STRING, but scan at most MAXLEN characters.
|
|
||||||
Copyright (C) 1996, 1997, 1998, 2000-2003 Free Software Foundation, Inc.
|
|
||||||
This file is part of the GNU C Library.
|
|
||||||
|
|
||||||
The GNU C Library is free software; you can redistribute it and/or
|
|
||||||
modify it under the terms of the GNU Library General Public License as
|
|
||||||
published by the Free Software Foundation; either version 2 of the
|
|
||||||
License, or (at your option) any later version.
|
|
||||||
|
|
||||||
The GNU C Library is distributed in the hope that it will be useful,
|
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
||||||
Library General Public License for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU Library General Public
|
|
||||||
License along with the GNU C Library; see the file COPYING.LIB. If not,
|
|
||||||
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
|
||||||
Boston, MA 02111-1307, USA. */
|
|
||||||
|
|
||||||
#if HAVE_CONFIG_H
|
|
||||||
# include <config.h>
|
|
||||||
#endif
|
|
||||||
#undef strnlen
|
|
||||||
|
|
||||||
#if HAVE_STRING_H
|
|
||||||
# if !STDC_HEADERS && HAVE_MEMORY_H
|
|
||||||
# include <memory.h>
|
|
||||||
# endif
|
|
||||||
# include <string.h>
|
|
||||||
#else
|
|
||||||
# include <strings.h>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef HAVE_DECL_MEMCHR
|
|
||||||
"this configure-time declaration test was not run"
|
|
||||||
#endif
|
|
||||||
#if !HAVE_DECL_MEMCHR
|
|
||||||
char *memchr ();
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#undef __strnlen
|
|
||||||
#undef strnlen
|
|
||||||
|
|
||||||
#ifndef _LIBC
|
|
||||||
# define strnlen rpl_strnlen
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef weak_alias
|
|
||||||
# define __strnlen strnlen
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* Find the length of STRING, but scan at most MAXLEN characters.
|
|
||||||
If no '\0' terminator is found in that many characters, return MAXLEN. */
|
|
||||||
|
|
||||||
size_t
|
|
||||||
__strnlen (const char *string, size_t maxlen)
|
|
||||||
{
|
|
||||||
const char *end = memchr (string, '\0', maxlen);
|
|
||||||
return end ? (size_t) (end - string) : maxlen;
|
|
||||||
}
|
|
||||||
#ifdef weak_alias
|
|
||||||
weak_alias (__strnlen, strnlen)
|
|
||||||
#endif
|
|
||||||
@@ -1,30 +0,0 @@
|
|||||||
/* Portable version of strrchr().
|
|
||||||
This function is in the public domain. */
|
|
||||||
|
|
||||||
/*
|
|
||||||
|
|
||||||
@deftypefn Supplemental char* strrchr (const char *@var{s}, int @var{c})
|
|
||||||
|
|
||||||
Returns a pointer to the last occurrence of the character @var{c} in
|
|
||||||
the string @var{s}, or @code{NULL} if not found. If @var{c} is itself the
|
|
||||||
null character, the results are undefined.
|
|
||||||
|
|
||||||
@end deftypefn
|
|
||||||
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include <ansidecl.h>
|
|
||||||
|
|
||||||
char *
|
|
||||||
strrchr (s, c)
|
|
||||||
register const char *s;
|
|
||||||
int c;
|
|
||||||
{
|
|
||||||
char *rtnval = 0;
|
|
||||||
|
|
||||||
do {
|
|
||||||
if (*s == c)
|
|
||||||
rtnval = (char*) s;
|
|
||||||
} while (*s++);
|
|
||||||
return (rtnval);
|
|
||||||
}
|
|
||||||
58
lib/strspn.c
58
lib/strspn.c
@@ -1,58 +0,0 @@
|
|||||||
/* Copyright (C) 1991, 1997 Free Software Foundation, Inc.
|
|
||||||
|
|
||||||
NOTE: The canonical source of this file is maintained with the GNU
|
|
||||||
C Library. Bugs can be reported to bug-glibc@prep.ai.mit.edu.
|
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
|
||||||
it under the terms of the GNU General Public License as published by
|
|
||||||
the Free Software Foundation; either version 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. */
|
|
||||||
|
|
||||||
#if HAVE_CONFIG_H
|
|
||||||
# include <config.h>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined _LIBC || HAVE_STRING_H
|
|
||||||
# include <string.h>
|
|
||||||
#else
|
|
||||||
# include <strings.h>
|
|
||||||
# ifndef strchr
|
|
||||||
# define strchr index
|
|
||||||
# endif
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#undef strspn
|
|
||||||
|
|
||||||
/* Return the length of the maximum initial segment
|
|
||||||
of S which contains only characters in ACCEPT. */
|
|
||||||
size_t
|
|
||||||
strspn (s, accept)
|
|
||||||
const char *s;
|
|
||||||
const char *accept;
|
|
||||||
{
|
|
||||||
const char *p;
|
|
||||||
const char *a;
|
|
||||||
size_t count = 0;
|
|
||||||
|
|
||||||
for (p = s; *p != '\0'; ++p)
|
|
||||||
{
|
|
||||||
for (a = accept; *a != '\0'; ++a)
|
|
||||||
if (*p == *a)
|
|
||||||
break;
|
|
||||||
if (*a == '\0')
|
|
||||||
return count;
|
|
||||||
else
|
|
||||||
++count;
|
|
||||||
}
|
|
||||||
|
|
||||||
return count;
|
|
||||||
}
|
|
||||||
472
lib/strtol.c
472
lib/strtol.c
@@ -1,472 +0,0 @@
|
|||||||
/* Convert string representation of a number into an integer value.
|
|
||||||
Copyright (C) 1991, 92, 94, 95, 96, 97, 98, 99 Free Software Foundation, Inc.
|
|
||||||
NOTE: The canonical source of this file is maintained with the GNU C
|
|
||||||
Library. Bugs can be reported to bug-glibc@gnu.org.
|
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify it
|
|
||||||
under the terms of the GNU General Public License as published by the
|
|
||||||
Free Software Foundation; either version 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. */
|
|
||||||
|
|
||||||
#if HAVE_CONFIG_H
|
|
||||||
# include <config.h>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef _LIBC
|
|
||||||
# define USE_NUMBER_GROUPING
|
|
||||||
# define STDC_HEADERS
|
|
||||||
# define HAVE_LIMITS_H
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#include <ctype.h>
|
|
||||||
#include <errno.h>
|
|
||||||
#ifndef errno
|
|
||||||
extern int errno;
|
|
||||||
#endif
|
|
||||||
#ifndef __set_errno
|
|
||||||
# define __set_errno(Val) errno = (Val)
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef HAVE_LIMITS_H
|
|
||||||
# include <limits.h>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef STDC_HEADERS
|
|
||||||
# include <stddef.h>
|
|
||||||
# include <stdlib.h>
|
|
||||||
# include <string.h>
|
|
||||||
#else
|
|
||||||
# ifndef NULL
|
|
||||||
# define NULL 0
|
|
||||||
# endif
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef USE_NUMBER_GROUPING
|
|
||||||
# include "../locale/localeinfo.h"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* Nonzero if we are defining `strtoul' or `strtoull', operating on
|
|
||||||
unsigned integers. */
|
|
||||||
#ifndef UNSIGNED
|
|
||||||
# define UNSIGNED 0
|
|
||||||
# define INT LONG int
|
|
||||||
#else
|
|
||||||
# define INT unsigned LONG int
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* Determine the name. */
|
|
||||||
#ifdef USE_IN_EXTENDED_LOCALE_MODEL
|
|
||||||
# if UNSIGNED
|
|
||||||
# ifdef USE_WIDE_CHAR
|
|
||||||
# ifdef QUAD
|
|
||||||
# define strtol __wcstoull_l
|
|
||||||
# else
|
|
||||||
# define strtol __wcstoul_l
|
|
||||||
# endif
|
|
||||||
# else
|
|
||||||
# ifdef QUAD
|
|
||||||
# define strtol __strtoull_l
|
|
||||||
# else
|
|
||||||
# define strtol __strtoul_l
|
|
||||||
# endif
|
|
||||||
# endif
|
|
||||||
# else
|
|
||||||
# ifdef USE_WIDE_CHAR
|
|
||||||
# ifdef QUAD
|
|
||||||
# define strtol __wcstoll_l
|
|
||||||
# else
|
|
||||||
# define strtol __wcstol_l
|
|
||||||
# endif
|
|
||||||
# else
|
|
||||||
# ifdef QUAD
|
|
||||||
# define strtol __strtoll_l
|
|
||||||
# else
|
|
||||||
# define strtol __strtol_l
|
|
||||||
# endif
|
|
||||||
# endif
|
|
||||||
# endif
|
|
||||||
#else
|
|
||||||
# if UNSIGNED
|
|
||||||
# ifdef USE_WIDE_CHAR
|
|
||||||
# ifdef QUAD
|
|
||||||
# define strtol wcstoull
|
|
||||||
# else
|
|
||||||
# define strtol wcstoul
|
|
||||||
# endif
|
|
||||||
# else
|
|
||||||
# ifdef QUAD
|
|
||||||
# define strtol strtoull
|
|
||||||
# else
|
|
||||||
# define strtol strtoul
|
|
||||||
# endif
|
|
||||||
# endif
|
|
||||||
# else
|
|
||||||
# ifdef USE_WIDE_CHAR
|
|
||||||
# ifdef QUAD
|
|
||||||
# define strtol wcstoll
|
|
||||||
# else
|
|
||||||
# define strtol wcstol
|
|
||||||
# endif
|
|
||||||
# else
|
|
||||||
# ifdef QUAD
|
|
||||||
# define strtol strtoll
|
|
||||||
# endif
|
|
||||||
# endif
|
|
||||||
# endif
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* If QUAD is defined, we are defining `strtoll' or `strtoull',
|
|
||||||
operating on `long long int's. */
|
|
||||||
#ifdef QUAD
|
|
||||||
# define LONG long long
|
|
||||||
# define STRTOL_LONG_MIN LONG_LONG_MIN
|
|
||||||
# define STRTOL_LONG_MAX LONG_LONG_MAX
|
|
||||||
# define STRTOL_ULONG_MAX ULONG_LONG_MAX
|
|
||||||
|
|
||||||
/* The extra casts work around common compiler bugs,
|
|
||||||
e.g. Cray C 5.0.3.0 when t == time_t. */
|
|
||||||
# ifndef TYPE_SIGNED
|
|
||||||
# define TYPE_SIGNED(t) (! ((t) 0 < (t) -1))
|
|
||||||
# endif
|
|
||||||
# ifndef TYPE_MINIMUM
|
|
||||||
# define TYPE_MINIMUM(t) ((t) (TYPE_SIGNED (t) \
|
|
||||||
? ~ (t) 0 << (sizeof (t) * CHAR_BIT - 1) \
|
|
||||||
: (t) 0))
|
|
||||||
# endif
|
|
||||||
# ifndef TYPE_MAXIMUM
|
|
||||||
# define TYPE_MAXIMUM(t) ((t) (~ (t) 0 - TYPE_MINIMUM (t)))
|
|
||||||
# endif
|
|
||||||
|
|
||||||
# ifndef ULONG_LONG_MAX
|
|
||||||
# define ULONG_LONG_MAX TYPE_MAXIMUM (unsigned long long)
|
|
||||||
# endif
|
|
||||||
# ifndef LONG_LONG_MAX
|
|
||||||
# define LONG_LONG_MAX TYPE_MAXIMUM (long long int)
|
|
||||||
# endif
|
|
||||||
# ifndef LONG_LONG_MIN
|
|
||||||
# define LONG_LONG_MIN TYPE_MINIMUM (long long int)
|
|
||||||
# endif
|
|
||||||
|
|
||||||
# if __GNUC__ == 2 && __GNUC_MINOR__ < 7
|
|
||||||
/* Work around gcc bug with using this constant. */
|
|
||||||
static const unsigned long long int maxquad = ULONG_LONG_MAX;
|
|
||||||
# undef STRTOL_ULONG_MAX
|
|
||||||
# define STRTOL_ULONG_MAX maxquad
|
|
||||||
# endif
|
|
||||||
#else
|
|
||||||
# define LONG long
|
|
||||||
|
|
||||||
# ifndef ULONG_MAX
|
|
||||||
# define ULONG_MAX ((unsigned long) ~(unsigned long) 0)
|
|
||||||
# endif
|
|
||||||
# ifndef LONG_MAX
|
|
||||||
# define LONG_MAX ((long int) (ULONG_MAX >> 1))
|
|
||||||
# endif
|
|
||||||
# define STRTOL_LONG_MIN LONG_MIN
|
|
||||||
# define STRTOL_LONG_MAX LONG_MAX
|
|
||||||
# define STRTOL_ULONG_MAX ULONG_MAX
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
/* We use this code also for the extended locale handling where the
|
|
||||||
function gets as an additional argument the locale which has to be
|
|
||||||
used. To access the values we have to redefine the _NL_CURRENT
|
|
||||||
macro. */
|
|
||||||
#ifdef USE_IN_EXTENDED_LOCALE_MODEL
|
|
||||||
# undef _NL_CURRENT
|
|
||||||
# define _NL_CURRENT(category, item) \
|
|
||||||
(current->values[_NL_ITEM_INDEX (item)].string)
|
|
||||||
# define LOCALE_PARAM , loc
|
|
||||||
# define LOCALE_PARAM_DECL __locale_t loc;
|
|
||||||
#else
|
|
||||||
# define LOCALE_PARAM
|
|
||||||
# define LOCALE_PARAM_DECL
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined _LIBC || defined HAVE_WCHAR_H
|
|
||||||
# include <wchar.h>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef USE_WIDE_CHAR
|
|
||||||
# include <wctype.h>
|
|
||||||
# define L_(Ch) L##Ch
|
|
||||||
# define UCHAR_TYPE wint_t
|
|
||||||
# define STRING_TYPE wchar_t
|
|
||||||
# ifdef USE_IN_EXTENDED_LOCALE_MODEL
|
|
||||||
# define ISSPACE(Ch) __iswspace_l ((Ch), loc)
|
|
||||||
# define ISALPHA(Ch) __iswalpha_l ((Ch), loc)
|
|
||||||
# define TOUPPER(Ch) __towupper_l ((Ch), loc)
|
|
||||||
# else
|
|
||||||
# define ISSPACE(Ch) iswspace (Ch)
|
|
||||||
# define ISALPHA(Ch) iswalpha (Ch)
|
|
||||||
# define TOUPPER(Ch) towupper (Ch)
|
|
||||||
# endif
|
|
||||||
#else
|
|
||||||
# if defined STDC_HEADERS || (!defined isascii && !defined HAVE_ISASCII)
|
|
||||||
# define IN_CTYPE_DOMAIN(c) 1
|
|
||||||
# else
|
|
||||||
# define IN_CTYPE_DOMAIN(c) isascii(c)
|
|
||||||
# endif
|
|
||||||
# define L_(Ch) Ch
|
|
||||||
# define UCHAR_TYPE unsigned char
|
|
||||||
# define STRING_TYPE char
|
|
||||||
# ifdef USE_IN_EXTENDED_LOCALE_MODEL
|
|
||||||
# define ISSPACE(Ch) __isspace_l ((Ch), loc)
|
|
||||||
# define ISALPHA(Ch) __isalpha_l ((Ch), loc)
|
|
||||||
# define TOUPPER(Ch) __toupper_l ((Ch), loc)
|
|
||||||
# else
|
|
||||||
# define ISSPACE(Ch) (IN_CTYPE_DOMAIN (Ch) && isspace (Ch))
|
|
||||||
# define ISALPHA(Ch) (IN_CTYPE_DOMAIN (Ch) && isalpha (Ch))
|
|
||||||
# define TOUPPER(Ch) (IN_CTYPE_DOMAIN (Ch) ? toupper (Ch) : (Ch))
|
|
||||||
# endif
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* For compilers which are ansi but don't define __STDC__, like SGI
|
|
||||||
Irix-4.0.5 cc, also check whether PROTOTYPES is defined. */
|
|
||||||
#if defined (__STDC__) || defined (PROTOTYPES)
|
|
||||||
# define INTERNAL(X) INTERNAL1(X)
|
|
||||||
# define INTERNAL1(X) __##X##_internal
|
|
||||||
# define WEAKNAME(X) WEAKNAME1(X)
|
|
||||||
#else
|
|
||||||
# define INTERNAL(X) __/**/X/**/_internal
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef USE_NUMBER_GROUPING
|
|
||||||
/* This file defines a function to check for correct grouping. */
|
|
||||||
# include "grouping.h"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* Convert NPTR to an `unsigned long int' or `long int' in base BASE.
|
|
||||||
If BASE is 0 the base is determined by the presence of a leading
|
|
||||||
zero, indicating octal or a leading "0x" or "0X", indicating hexadecimal.
|
|
||||||
If BASE is < 2 or > 36, it is reset to 10.
|
|
||||||
If ENDPTR is not NULL, a pointer to the character after the last
|
|
||||||
one converted is stored in *ENDPTR. */
|
|
||||||
|
|
||||||
INT
|
|
||||||
INTERNAL (strtol) (nptr, endptr, base, group LOCALE_PARAM)
|
|
||||||
const STRING_TYPE *nptr;
|
|
||||||
STRING_TYPE **endptr;
|
|
||||||
int base;
|
|
||||||
int group;
|
|
||||||
LOCALE_PARAM_DECL
|
|
||||||
{
|
|
||||||
int negative;
|
|
||||||
register unsigned LONG int cutoff;
|
|
||||||
register unsigned int cutlim;
|
|
||||||
register unsigned LONG int i;
|
|
||||||
register const STRING_TYPE *s;
|
|
||||||
register UCHAR_TYPE c;
|
|
||||||
const STRING_TYPE *save, *end;
|
|
||||||
int overflow;
|
|
||||||
|
|
||||||
#ifdef USE_NUMBER_GROUPING
|
|
||||||
# ifdef USE_IN_EXTENDED_LOCALE_MODEL
|
|
||||||
struct locale_data *current = loc->__locales[LC_NUMERIC];
|
|
||||||
# endif
|
|
||||||
/* The thousands character of the current locale. */
|
|
||||||
wchar_t thousands = L'\0';
|
|
||||||
/* The numeric grouping specification of the current locale,
|
|
||||||
in the format described in <locale.h>. */
|
|
||||||
const char *grouping;
|
|
||||||
|
|
||||||
if (group)
|
|
||||||
{
|
|
||||||
grouping = _NL_CURRENT (LC_NUMERIC, GROUPING);
|
|
||||||
if (*grouping <= 0 || *grouping == CHAR_MAX)
|
|
||||||
grouping = NULL;
|
|
||||||
else
|
|
||||||
{
|
|
||||||
/* Figure out the thousands separator character. */
|
|
||||||
# if defined _LIBC || defined _HAVE_BTOWC
|
|
||||||
thousands = __btowc (*_NL_CURRENT (LC_NUMERIC, THOUSANDS_SEP));
|
|
||||||
if (thousands == WEOF)
|
|
||||||
thousands = L'\0';
|
|
||||||
# endif
|
|
||||||
if (thousands == L'\0')
|
|
||||||
grouping = NULL;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
grouping = NULL;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
if (base < 0 || base == 1 || base > 36)
|
|
||||||
{
|
|
||||||
__set_errno (EINVAL);
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
save = s = nptr;
|
|
||||||
|
|
||||||
/* Skip white space. */
|
|
||||||
while (ISSPACE (*s))
|
|
||||||
++s;
|
|
||||||
if (*s == L_('\0'))
|
|
||||||
goto noconv;
|
|
||||||
|
|
||||||
/* Check for a sign. */
|
|
||||||
if (*s == L_('-'))
|
|
||||||
{
|
|
||||||
negative = 1;
|
|
||||||
++s;
|
|
||||||
}
|
|
||||||
else if (*s == L_('+'))
|
|
||||||
{
|
|
||||||
negative = 0;
|
|
||||||
++s;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
negative = 0;
|
|
||||||
|
|
||||||
/* Recognize number prefix and if BASE is zero, figure it out ourselves. */
|
|
||||||
if (*s == L_('0'))
|
|
||||||
{
|
|
||||||
if ((base == 0 || base == 16) && TOUPPER (s[1]) == L_('X'))
|
|
||||||
{
|
|
||||||
s += 2;
|
|
||||||
base = 16;
|
|
||||||
}
|
|
||||||
else if (base == 0)
|
|
||||||
base = 8;
|
|
||||||
}
|
|
||||||
else if (base == 0)
|
|
||||||
base = 10;
|
|
||||||
|
|
||||||
/* Save the pointer so we can check later if anything happened. */
|
|
||||||
save = s;
|
|
||||||
|
|
||||||
#ifdef USE_NUMBER_GROUPING
|
|
||||||
if (group)
|
|
||||||
{
|
|
||||||
/* Find the end of the digit string and check its grouping. */
|
|
||||||
end = s;
|
|
||||||
for (c = *end; c != L_('\0'); c = *++end)
|
|
||||||
if ((wchar_t) c != thousands
|
|
||||||
&& ((wchar_t) c < L_('0') || (wchar_t) c > L_('9'))
|
|
||||||
&& (!ISALPHA (c) || (int) (TOUPPER (c) - L_('A') + 10) >= base))
|
|
||||||
break;
|
|
||||||
if (*s == thousands)
|
|
||||||
end = s;
|
|
||||||
else
|
|
||||||
end = correctly_grouped_prefix (s, end, thousands, grouping);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
#endif
|
|
||||||
end = NULL;
|
|
||||||
|
|
||||||
cutoff = STRTOL_ULONG_MAX / (unsigned LONG int) base;
|
|
||||||
cutlim = STRTOL_ULONG_MAX % (unsigned LONG int) base;
|
|
||||||
|
|
||||||
overflow = 0;
|
|
||||||
i = 0;
|
|
||||||
for (c = *s; c != L_('\0'); c = *++s)
|
|
||||||
{
|
|
||||||
if (s == end)
|
|
||||||
break;
|
|
||||||
if (c >= L_('0') && c <= L_('9'))
|
|
||||||
c -= L_('0');
|
|
||||||
else if (ISALPHA (c))
|
|
||||||
c = TOUPPER (c) - L_('A') + 10;
|
|
||||||
else
|
|
||||||
break;
|
|
||||||
if ((int) c >= base)
|
|
||||||
break;
|
|
||||||
/* Check for overflow. */
|
|
||||||
if (i > cutoff || (i == cutoff && c > cutlim))
|
|
||||||
overflow = 1;
|
|
||||||
else
|
|
||||||
{
|
|
||||||
i *= (unsigned LONG int) base;
|
|
||||||
i += c;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Check if anything actually happened. */
|
|
||||||
if (s == save)
|
|
||||||
goto noconv;
|
|
||||||
|
|
||||||
/* Store in ENDPTR the address of one character
|
|
||||||
past the last character we converted. */
|
|
||||||
if (endptr != NULL)
|
|
||||||
*endptr = (STRING_TYPE *) s;
|
|
||||||
|
|
||||||
#if !UNSIGNED
|
|
||||||
/* Check for a value that is within the range of
|
|
||||||
`unsigned LONG int', but outside the range of `LONG int'. */
|
|
||||||
if (overflow == 0
|
|
||||||
&& i > (negative
|
|
||||||
? -((unsigned LONG int) (STRTOL_LONG_MIN + 1)) + 1
|
|
||||||
: (unsigned LONG int) STRTOL_LONG_MAX))
|
|
||||||
overflow = 1;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
if (overflow)
|
|
||||||
{
|
|
||||||
__set_errno (ERANGE);
|
|
||||||
#if UNSIGNED
|
|
||||||
return STRTOL_ULONG_MAX;
|
|
||||||
#else
|
|
||||||
return negative ? STRTOL_LONG_MIN : STRTOL_LONG_MAX;
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Return the result of the appropriate sign. */
|
|
||||||
return negative ? -i : i;
|
|
||||||
|
|
||||||
noconv:
|
|
||||||
/* We must handle a special case here: the base is 0 or 16 and the
|
|
||||||
first two characters are '0' and 'x', but the rest are no
|
|
||||||
hexadecimal digits. This is no error case. We return 0 and
|
|
||||||
ENDPTR points to the `x`. */
|
|
||||||
if (endptr != NULL)
|
|
||||||
{
|
|
||||||
if (save - nptr >= 2 && TOUPPER (save[-1]) == L_('X')
|
|
||||||
&& save[-2] == L_('0'))
|
|
||||||
*endptr = (STRING_TYPE *) &save[-1];
|
|
||||||
else
|
|
||||||
/* There was no number to convert. */
|
|
||||||
*endptr = (STRING_TYPE *) nptr;
|
|
||||||
}
|
|
||||||
|
|
||||||
return 0L;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* External user entry point. */
|
|
||||||
|
|
||||||
#if _LIBC - 0 == 0
|
|
||||||
# undef PARAMS
|
|
||||||
# if defined (__STDC__) && __STDC__
|
|
||||||
# define PARAMS(Args) Args
|
|
||||||
# else
|
|
||||||
# define PARAMS(Args) ()
|
|
||||||
# endif
|
|
||||||
|
|
||||||
/* Prototype. */
|
|
||||||
INT strtol PARAMS ((const STRING_TYPE *nptr, STRING_TYPE **endptr, int base));
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
INT
|
|
||||||
#ifdef weak_function
|
|
||||||
weak_function
|
|
||||||
#endif
|
|
||||||
strtol (nptr, endptr, base LOCALE_PARAM)
|
|
||||||
const STRING_TYPE *nptr;
|
|
||||||
STRING_TYPE **endptr;
|
|
||||||
int base;
|
|
||||||
LOCALE_PARAM_DECL
|
|
||||||
{
|
|
||||||
return INTERNAL (strtol) (nptr, endptr, base, 0 LOCALE_PARAM);
|
|
||||||
}
|
|
||||||
@@ -1,22 +0,0 @@
|
|||||||
/* Copyright (C) 1991, 1999, 2001 Free Software Foundation, Inc.
|
|
||||||
|
|
||||||
NOTE: The canonical source of this file is maintained with the GNU C Library.
|
|
||||||
Bugs can be reported to bug-glibc@prep.ai.mit.edu.
|
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify it
|
|
||||||
under the terms of the GNU General Public License as published by the
|
|
||||||
Free Software Foundation; either version 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. */
|
|
||||||
|
|
||||||
#define UNSIGNED 1
|
|
||||||
|
|
||||||
#include "strtol.c"
|
|
||||||
@@ -1,90 +0,0 @@
|
|||||||
/* Prefer faster, non-thread-safe stdio functions if available.
|
|
||||||
|
|
||||||
Copyright (C) 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 Library 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
|
|
||||||
Library General Public License for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU Library 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. */
|
|
||||||
|
|
||||||
/* Written by Jim Meyering. */
|
|
||||||
|
|
||||||
#ifndef UNLOCKED_IO_H
|
|
||||||
# define UNLOCKED_IO_H 1
|
|
||||||
|
|
||||||
# ifndef USE_UNLOCKED_IO
|
|
||||||
# define USE_UNLOCKED_IO 1
|
|
||||||
# endif
|
|
||||||
|
|
||||||
# if USE_UNLOCKED_IO
|
|
||||||
|
|
||||||
/* These are wrappers for functions/macros from GNU libc.
|
|
||||||
The standard I/O functions are thread-safe. These *_unlocked ones are
|
|
||||||
more efficient but not thread-safe. That they're not thread-safe is
|
|
||||||
fine since all of the applications in this package are single threaded. */
|
|
||||||
|
|
||||||
# if HAVE_DECL_CLEARERR_UNLOCKED
|
|
||||||
# undef clearerr
|
|
||||||
# define clearerr(x) clearerr_unlocked (x)
|
|
||||||
# endif
|
|
||||||
# if HAVE_DECL_FEOF_UNLOCKED
|
|
||||||
# undef feof
|
|
||||||
# define feof(x) feof_unlocked (x)
|
|
||||||
# endif
|
|
||||||
# if HAVE_DECL_FERROR_UNLOCKED
|
|
||||||
# undef ferror
|
|
||||||
# define ferror(x) ferror_unlocked (x)
|
|
||||||
# endif
|
|
||||||
# if HAVE_DECL_FFLUSH_UNLOCKED
|
|
||||||
# undef fflush
|
|
||||||
# define fflush(x) fflush_unlocked (x)
|
|
||||||
# endif
|
|
||||||
# if HAVE_DECL_FGETS_UNLOCKED
|
|
||||||
# undef fgets
|
|
||||||
# define fgets(x,y,z) fgets_unlocked (x,y,z)
|
|
||||||
# endif
|
|
||||||
# if HAVE_DECL_FPUTC_UNLOCKED
|
|
||||||
# undef fputc
|
|
||||||
# define fputc(x,y) fputc_unlocked (x,y)
|
|
||||||
# endif
|
|
||||||
# if HAVE_DECL_FPUTS_UNLOCKED
|
|
||||||
# undef fputs
|
|
||||||
# define fputs(x,y) fputs_unlocked (x,y)
|
|
||||||
# endif
|
|
||||||
# if HAVE_DECL_FREAD_UNLOCKED
|
|
||||||
# undef fread
|
|
||||||
# define fread(w,x,y,z) fread_unlocked (w,x,y,z)
|
|
||||||
# endif
|
|
||||||
# if HAVE_DECL_FWRITE_UNLOCKED
|
|
||||||
# undef fwrite
|
|
||||||
# define fwrite(w,x,y,z) fwrite_unlocked (w,x,y,z)
|
|
||||||
# endif
|
|
||||||
# if HAVE_DECL_GETC_UNLOCKED
|
|
||||||
# undef getc
|
|
||||||
# define getc(x) getc_unlocked (x)
|
|
||||||
# endif
|
|
||||||
# if HAVE_DECL_GETCHAR_UNLOCKED
|
|
||||||
# undef getchar
|
|
||||||
# define getchar() getchar_unlocked ()
|
|
||||||
# endif
|
|
||||||
# if HAVE_DECL_PUTC_UNLOCKED
|
|
||||||
# undef putc
|
|
||||||
# define putc(x,y) putc_unlocked (x,y)
|
|
||||||
# endif
|
|
||||||
# if HAVE_DECL_PUTCHAR_UNLOCKED
|
|
||||||
# undef putchar
|
|
||||||
# define putchar(x) putchar_unlocked (x)
|
|
||||||
# endif
|
|
||||||
|
|
||||||
# endif /* USE_UNLOCKED_IO */
|
|
||||||
#endif /* UNLOCKED_IO_H */
|
|
||||||
89
lib/xalloc.h
89
lib/xalloc.h
@@ -1,89 +0,0 @@
|
|||||||
/* xalloc.h -- malloc with out-of-memory checking
|
|
||||||
Copyright (C) 1990-1998, 1999, 2000 Free Software Foundation, Inc.
|
|
||||||
|
|
||||||
This program is free software; you can 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. */
|
|
||||||
|
|
||||||
#ifndef XALLOC_H_
|
|
||||||
# define XALLOC_H_
|
|
||||||
|
|
||||||
# include <stddef.h>
|
|
||||||
|
|
||||||
# ifndef PARAMS
|
|
||||||
# if defined PROTOTYPES || (defined __STDC__ && __STDC__)
|
|
||||||
# define PARAMS(Args) Args
|
|
||||||
# else
|
|
||||||
# define PARAMS(Args) ()
|
|
||||||
# endif
|
|
||||||
# endif
|
|
||||||
|
|
||||||
# ifndef __attribute__
|
|
||||||
# if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 8) || __STRICT_ANSI__
|
|
||||||
# define __attribute__(x)
|
|
||||||
# endif
|
|
||||||
# endif
|
|
||||||
|
|
||||||
# ifndef ATTRIBUTE_NORETURN
|
|
||||||
# define ATTRIBUTE_NORETURN __attribute__ ((__noreturn__))
|
|
||||||
# endif
|
|
||||||
|
|
||||||
/* Exit value when the requested amount of memory is not available.
|
|
||||||
It is initialized to EXIT_FAILURE, but the caller may set it to
|
|
||||||
some other value. */
|
|
||||||
extern int xalloc_exit_failure;
|
|
||||||
|
|
||||||
/* If this pointer is non-zero, run the specified function upon each
|
|
||||||
allocation failure. It is initialized to zero. */
|
|
||||||
extern void (*xalloc_fail_func) PARAMS ((void));
|
|
||||||
|
|
||||||
/* If XALLOC_FAIL_FUNC is undefined or a function that returns, this
|
|
||||||
message is output. It is translated via gettext.
|
|
||||||
Its value is "memory exhausted". */
|
|
||||||
extern char const xalloc_msg_memory_exhausted[];
|
|
||||||
|
|
||||||
/* This function is always triggered when memory is exhausted. It is
|
|
||||||
in charge of honoring the three previous items. This is the
|
|
||||||
function to call when one wants the program to die because of a
|
|
||||||
memory allocation failure. */
|
|
||||||
extern void xalloc_die PARAMS ((void)) ATTRIBUTE_NORETURN;
|
|
||||||
|
|
||||||
void *xmalloc PARAMS ((size_t n));
|
|
||||||
void *xcalloc PARAMS ((size_t n, size_t s));
|
|
||||||
void *xrealloc PARAMS ((void *p, size_t n));
|
|
||||||
char *xstrdup PARAMS ((const char *str));
|
|
||||||
|
|
||||||
# define XMALLOC(Type, N_items) ((Type *) xmalloc (sizeof (Type) * (N_items)))
|
|
||||||
# define XCALLOC(Type, N_items) ((Type *) xcalloc (sizeof (Type), (N_items)))
|
|
||||||
# define XREALLOC(Ptr, Type, N_items) \
|
|
||||||
((Type *) xrealloc ((void *) (Ptr), sizeof (Type) * (N_items)))
|
|
||||||
|
|
||||||
/* Declare and alloc memory for VAR of type TYPE. */
|
|
||||||
# define NEW(Type, Var) Type *(Var) = XMALLOC (Type, 1)
|
|
||||||
|
|
||||||
/* Free VAR only if non NULL. */
|
|
||||||
# define XFREE(Var) \
|
|
||||||
do { \
|
|
||||||
if (Var) \
|
|
||||||
free (Var); \
|
|
||||||
} while (0)
|
|
||||||
|
|
||||||
/* Return a pointer to a malloc'ed copy of the array SRC of NUM elements. */
|
|
||||||
# define CCLONE(Src, Num) \
|
|
||||||
(memcpy (xmalloc (sizeof (*Src) * (Num)), (Src), sizeof (*Src) * (Num)))
|
|
||||||
|
|
||||||
/* Return a malloc'ed copy of SRC. */
|
|
||||||
# define CLONE(Src) CCLONE (Src, 1)
|
|
||||||
|
|
||||||
|
|
||||||
#endif /* !XALLOC_H_ */
|
|
||||||
113
lib/xmalloc.c
113
lib/xmalloc.c
@@ -1,113 +0,0 @@
|
|||||||
/* xmalloc.c -- malloc with out of memory checking
|
|
||||||
Copyright (C) 1990-1999, 2000, 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. */
|
|
||||||
|
|
||||||
#if HAVE_CONFIG_H
|
|
||||||
# include <config.h>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#include <sys/types.h>
|
|
||||||
|
|
||||||
#if STDC_HEADERS
|
|
||||||
# include <stdlib.h>
|
|
||||||
#else
|
|
||||||
void *calloc ();
|
|
||||||
void *malloc ();
|
|
||||||
void *realloc ();
|
|
||||||
void free ();
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#include "gettext.h"
|
|
||||||
#define _(msgid) gettext (msgid)
|
|
||||||
#define N_(msgid) msgid
|
|
||||||
|
|
||||||
#include "error.h"
|
|
||||||
#include "xalloc.h"
|
|
||||||
|
|
||||||
#ifndef EXIT_FAILURE
|
|
||||||
# define EXIT_FAILURE 1
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* The following tests require AC_PREREQ(2.54). */
|
|
||||||
|
|
||||||
#ifndef HAVE_MALLOC
|
|
||||||
"you must run the autoconf test for a GNU libc compatible malloc"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef HAVE_REALLOC
|
|
||||||
"you must run the autoconf test for a GNU libc compatible realloc"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* Exit value when the requested amount of memory is not available.
|
|
||||||
The caller may set it to some other value. */
|
|
||||||
int xalloc_exit_failure = EXIT_FAILURE;
|
|
||||||
|
|
||||||
/* If non NULL, call this function when memory is exhausted. */
|
|
||||||
void (*xalloc_fail_func) PARAMS ((void)) = 0;
|
|
||||||
|
|
||||||
/* If XALLOC_FAIL_FUNC is NULL, or does return, display this message
|
|
||||||
before exiting when memory is exhausted. Goes through gettext. */
|
|
||||||
char const xalloc_msg_memory_exhausted[] = N_("memory exhausted");
|
|
||||||
|
|
||||||
void
|
|
||||||
xalloc_die (void)
|
|
||||||
{
|
|
||||||
if (xalloc_fail_func)
|
|
||||||
(*xalloc_fail_func) ();
|
|
||||||
error (xalloc_exit_failure, 0, "%s", _(xalloc_msg_memory_exhausted));
|
|
||||||
/* The `noreturn' cannot be given to error, since it may return if
|
|
||||||
its first argument is 0. To help compilers understand the
|
|
||||||
xalloc_die does terminate, call exit. */
|
|
||||||
exit (EXIT_FAILURE);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Allocate N bytes of memory dynamically, with error checking. */
|
|
||||||
|
|
||||||
void *
|
|
||||||
xmalloc (size_t n)
|
|
||||||
{
|
|
||||||
void *p;
|
|
||||||
|
|
||||||
p = malloc (n);
|
|
||||||
if (p == 0)
|
|
||||||
xalloc_die ();
|
|
||||||
return p;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Change the size of an allocated block of memory P to N bytes,
|
|
||||||
with error checking. */
|
|
||||||
|
|
||||||
void *
|
|
||||||
xrealloc (void *p, size_t n)
|
|
||||||
{
|
|
||||||
p = realloc (p, n);
|
|
||||||
if (p == 0)
|
|
||||||
xalloc_die ();
|
|
||||||
return p;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Allocate memory for N elements of S bytes, with error checking. */
|
|
||||||
|
|
||||||
void *
|
|
||||||
xcalloc (size_t n, size_t s)
|
|
||||||
{
|
|
||||||
void *p;
|
|
||||||
|
|
||||||
p = calloc (n, s);
|
|
||||||
if (p == 0)
|
|
||||||
xalloc_die ();
|
|
||||||
return p;
|
|
||||||
}
|
|
||||||
@@ -1,38 +0,0 @@
|
|||||||
/* xstrdup.c -- copy a string with out of memory checking
|
|
||||||
Copyright (C) 1990, 1996, 1998, 2001 Free Software Foundation, Inc.
|
|
||||||
|
|
||||||
This program is free software; you can 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. */
|
|
||||||
|
|
||||||
#if HAVE_CONFIG_H
|
|
||||||
# include <config.h>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if STDC_HEADERS || HAVE_STRING_H
|
|
||||||
# include <string.h>
|
|
||||||
#else
|
|
||||||
# include <strings.h>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#include <sys/types.h>
|
|
||||||
|
|
||||||
#include "xalloc.h"
|
|
||||||
|
|
||||||
/* Return a newly allocated copy of STRING. */
|
|
||||||
|
|
||||||
char *
|
|
||||||
xstrdup (const char *string)
|
|
||||||
{
|
|
||||||
return strcpy (xmalloc (strlen (string) + 1), string);
|
|
||||||
}
|
|
||||||
@@ -1,51 +0,0 @@
|
|||||||
/* Copyright (C) 2001 Free Software Foundation, Inc.
|
|
||||||
|
|
||||||
This program is free software; you can 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. */
|
|
||||||
|
|
||||||
#if HAVE_CONFIG_H
|
|
||||||
# include <config.h>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if STDC_HEADERS || HAVE_STRING_H
|
|
||||||
# include <string.h>
|
|
||||||
#else
|
|
||||||
# include <strings.h>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#include <sys/types.h>
|
|
||||||
|
|
||||||
#include "xalloc.h"
|
|
||||||
|
|
||||||
#ifndef HAVE_DECL_STRNLEN
|
|
||||||
"this configure-time declaration test was not run"
|
|
||||||
#endif
|
|
||||||
#if !HAVE_DECL_STRNLEN
|
|
||||||
size_t strnlen ();
|
|
||||||
#endif
|
|
||||||
|
|
||||||
char *xstrndup (const char *s, size_t n);
|
|
||||||
|
|
||||||
char *
|
|
||||||
xstrndup (const char *s, size_t n)
|
|
||||||
{
|
|
||||||
size_t len = strnlen (s, n);
|
|
||||||
char *new = xmalloc (len + 1);
|
|
||||||
|
|
||||||
if (new == NULL)
|
|
||||||
return NULL;
|
|
||||||
|
|
||||||
new[len] = '\0';
|
|
||||||
return (char *) memcpy (new, s, len);
|
|
||||||
}
|
|
||||||
@@ -1,8 +1,12 @@
|
|||||||
Makefile
|
alloca.m4
|
||||||
Makefile.in
|
|
||||||
codeset.m4
|
codeset.m4
|
||||||
|
dirname.m4
|
||||||
|
dos.m4
|
||||||
|
error.m4
|
||||||
|
getopt.m4
|
||||||
gettext.m4
|
gettext.m4
|
||||||
glibc21.m4
|
glibc21.m4
|
||||||
|
hash.m4
|
||||||
iconv.m4
|
iconv.m4
|
||||||
intdiv0.m4
|
intdiv0.m4
|
||||||
inttypes-pri.m4
|
inttypes-pri.m4
|
||||||
@@ -13,9 +17,20 @@ lcmessage.m4
|
|||||||
lib-ld.m4
|
lib-ld.m4
|
||||||
lib-link.m4
|
lib-link.m4
|
||||||
lib-prefix.m4
|
lib-prefix.m4
|
||||||
|
mbrtowc.m4
|
||||||
|
mbswidth.m4
|
||||||
nls.m4
|
nls.m4
|
||||||
|
obstack.m4
|
||||||
|
onceonly.m4
|
||||||
po.m4
|
po.m4
|
||||||
progtest.m4
|
progtest.m4
|
||||||
|
quote.m4
|
||||||
|
quotearg.m4
|
||||||
|
stdbool.m4
|
||||||
stdint_h.m4
|
stdint_h.m4
|
||||||
|
stpcpy.m4
|
||||||
|
strnlen.m4
|
||||||
uintmax_t.m4
|
uintmax_t.m4
|
||||||
ulonglong.m4
|
ulonglong.m4
|
||||||
|
unlocked-io.m4
|
||||||
|
xalloc.m4
|
||||||
|
|||||||
@@ -1,13 +0,0 @@
|
|||||||
## Process this file with automake to produce Makefile.in -*-Makefile-*-
|
|
||||||
EXTRA_DIST = \
|
|
||||||
alloca.m4 dirname.m4 dmalloc.m4 dos.m4 error.m4 getopt.m4 hash.m4 \
|
|
||||||
m4.m4 malloc.m4 \
|
|
||||||
mbrtowc.m4 mbswidth.m4 memchr.m4 memcmp.m4 memrchr.m4 \
|
|
||||||
obstack.m4 onceonly.m4 \
|
|
||||||
prereq.m4 quote.m4 quotearg.m4 \
|
|
||||||
realloc.m4 stdbool.m4 \
|
|
||||||
stpcpy.m4 strnlen.m4 strtol.m4 strtoul.m4 \
|
|
||||||
subpipe.m4 timevar.m4 unlocked-io.m4 warning.m4 xalloc.m4 \
|
|
||||||
gettext.m4 iconv.m4 lib-ld.m4 lib-link.m4 lib-prefix.m4 progtest.m4 \
|
|
||||||
codeset.m4 glibc21.m4 intdiv0.m4 inttypes-pri.m4 inttypes.m4 inttypes_h.m4 \
|
|
||||||
isc-posix.m4 lcmessage.m4 nls.m4 po.m4 stdint_h.m4 uintmax_t.m4 ulonglong.m4
|
|
||||||
36
m4/alloca.m4
36
m4/alloca.m4
@@ -1,36 +0,0 @@
|
|||||||
# alloca.m4 serial 2 (gettext-0.12)
|
|
||||||
dnl Copyright (C) 2002-2003 Free Software Foundation, Inc.
|
|
||||||
dnl This file is free software, distributed under the terms of the GNU
|
|
||||||
dnl General Public License. As a special exception to the GNU General
|
|
||||||
dnl Public License, this file may be distributed as part of a program
|
|
||||||
dnl that contains a configuration script generated by Autoconf, under
|
|
||||||
dnl the same distribution terms as the rest of that program.
|
|
||||||
|
|
||||||
AC_DEFUN([gl_FUNC_ALLOCA],
|
|
||||||
[
|
|
||||||
dnl Work around a bug of AC_EGREP_CPP in autoconf-2.57.
|
|
||||||
AC_REQUIRE([AC_PROG_CPP])
|
|
||||||
AC_REQUIRE([AC_PROG_EGREP])
|
|
||||||
|
|
||||||
AC_REQUIRE([AC_FUNC_ALLOCA])
|
|
||||||
if test $ac_cv_func_alloca_works = no; then
|
|
||||||
gl_PREREQ_ALLOCA
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Define an additional variable used in the Makefile substitution.
|
|
||||||
|
|
||||||
AC_EGREP_CPP([Need own alloca], [
|
|
||||||
#if defined __GNUC__ || defined _MSC_VER || !HAVE_ALLOCA_H
|
|
||||||
Need own alloca
|
|
||||||
#endif
|
|
||||||
],
|
|
||||||
ALLOCA_H=alloca.h,
|
|
||||||
ALLOCA_H=)
|
|
||||||
AC_SUBST([ALLOCA_H])
|
|
||||||
])
|
|
||||||
|
|
||||||
# Prerequisites of lib/alloca.c.
|
|
||||||
# STACK_DIRECTION is already handled by AC_FUNC_ALLOCA.
|
|
||||||
AC_DEFUN([gl_PREREQ_ALLOCA], [
|
|
||||||
AC_CHECK_HEADERS_ONCE(stdlib.h string.h)
|
|
||||||
])
|
|
||||||
@@ -1,25 +0,0 @@
|
|||||||
# dirname.m4 serial 1
|
|
||||||
dnl Copyright (C) 2002 Free Software Foundation, Inc.
|
|
||||||
dnl This file is free software, distributed under the terms of the GNU
|
|
||||||
dnl General Public License. As a special exception to the GNU General
|
|
||||||
dnl Public License, this file may be distributed as part of a program
|
|
||||||
dnl that contains a configuration script generated by Autoconf, under
|
|
||||||
dnl the same distribution terms as the rest of that program.
|
|
||||||
|
|
||||||
AC_DEFUN([gl_DIRNAME],
|
|
||||||
[
|
|
||||||
dnl Prerequisites of lib/dirname.h.
|
|
||||||
AC_REQUIRE([jm_AC_DOS])
|
|
||||||
|
|
||||||
dnl Prerequisites of lib/dirname.c.
|
|
||||||
AC_REQUIRE([AC_HEADER_STDC])
|
|
||||||
AC_CHECK_HEADERS_ONCE(string.h)
|
|
||||||
|
|
||||||
dnl Prerequisites of lib/basename.c.
|
|
||||||
AC_REQUIRE([AC_HEADER_STDC])
|
|
||||||
AC_CHECK_HEADERS_ONCE(string.h)
|
|
||||||
|
|
||||||
dnl Prerequisites of lib/stripslash.c.
|
|
||||||
AC_REQUIRE([AC_HEADER_STDC])
|
|
||||||
AC_CHECK_HEADERS_ONCE(string.h)
|
|
||||||
])
|
|
||||||
53
m4/dos.m4
53
m4/dos.m4
@@ -1,53 +0,0 @@
|
|||||||
#serial 5
|
|
||||||
|
|
||||||
# Define some macros required for proper operation of code in lib/*.c
|
|
||||||
# on MSDOS/Windows systems.
|
|
||||||
|
|
||||||
# From Jim Meyering.
|
|
||||||
|
|
||||||
AC_DEFUN([jm_AC_DOS],
|
|
||||||
[
|
|
||||||
AC_CACHE_CHECK([whether system is Windows or MSDOS], [ac_cv_win_or_dos],
|
|
||||||
[
|
|
||||||
AC_TRY_COMPILE([],
|
|
||||||
[#if !defined _WIN32 && !defined __WIN32__ && !defined __MSDOS__
|
|
||||||
neither MSDOS nor Windows
|
|
||||||
#endif],
|
|
||||||
[ac_cv_win_or_dos=yes],
|
|
||||||
[ac_cv_win_or_dos=no])
|
|
||||||
])
|
|
||||||
|
|
||||||
if test x"$ac_cv_win_or_dos" = xyes; then
|
|
||||||
ac_fs_accepts_drive_letter_prefix=1
|
|
||||||
ac_fs_backslash_is_file_name_separator=1
|
|
||||||
else
|
|
||||||
ac_fs_accepts_drive_letter_prefix=0
|
|
||||||
ac_fs_backslash_is_file_name_separator=0
|
|
||||||
fi
|
|
||||||
|
|
||||||
AH_VERBATIM(FILESYSTEM_PREFIX_LEN,
|
|
||||||
[#if FILESYSTEM_ACCEPTS_DRIVE_LETTER_PREFIX
|
|
||||||
# define FILESYSTEM_PREFIX_LEN(Filename) \
|
|
||||||
((Filename)[0] && (Filename)[1] == ':' ? 2 : 0)
|
|
||||||
#else
|
|
||||||
# define FILESYSTEM_PREFIX_LEN(Filename) 0
|
|
||||||
#endif])
|
|
||||||
|
|
||||||
AC_DEFINE_UNQUOTED([FILESYSTEM_ACCEPTS_DRIVE_LETTER_PREFIX],
|
|
||||||
$ac_fs_accepts_drive_letter_prefix,
|
|
||||||
[Define on systems for which file names may have a so-called
|
|
||||||
`drive letter' prefix, define this to compute the length of that
|
|
||||||
prefix, including the colon.])
|
|
||||||
|
|
||||||
AH_VERBATIM(ISSLASH,
|
|
||||||
[#if FILESYSTEM_BACKSLASH_IS_FILE_NAME_SEPARATOR
|
|
||||||
# define ISSLASH(C) ((C) == '/' || (C) == '\\')
|
|
||||||
#else
|
|
||||||
# define ISSLASH(C) ((C) == '/')
|
|
||||||
#endif])
|
|
||||||
|
|
||||||
AC_DEFINE_UNQUOTED([FILESYSTEM_BACKSLASH_IS_FILE_NAME_SEPARATOR],
|
|
||||||
$ac_fs_backslash_is_file_name_separator,
|
|
||||||
[Define if the backslash character may also serve as a file name
|
|
||||||
component separator.])
|
|
||||||
])
|
|
||||||
18
m4/error.m4
18
m4/error.m4
@@ -1,18 +0,0 @@
|
|||||||
#serial 7
|
|
||||||
|
|
||||||
AC_DEFUN([gl_ERROR],
|
|
||||||
[
|
|
||||||
AC_FUNC_ERROR_AT_LINE
|
|
||||||
dnl Note: AC_FUNC_ERROR_AT_LINE does AC_LIBSOURCES([error.h, error.c]).
|
|
||||||
jm_PREREQ_ERROR
|
|
||||||
])
|
|
||||||
|
|
||||||
# Prerequisites of lib/error.c.
|
|
||||||
AC_DEFUN([jm_PREREQ_ERROR],
|
|
||||||
[
|
|
||||||
AC_REQUIRE([AC_HEADER_STDC])
|
|
||||||
AC_REQUIRE([AC_FUNC_VPRINTF])
|
|
||||||
AC_CHECK_FUNCS(strerror)
|
|
||||||
AC_CHECK_DECLS([strerror])
|
|
||||||
AC_FUNC_STRERROR_R
|
|
||||||
])
|
|
||||||
13
m4/getopt.m4
13
m4/getopt.m4
@@ -1,13 +0,0 @@
|
|||||||
# getopt.m4 serial 1
|
|
||||||
dnl Copyright (C) 2002 Free Software Foundation, Inc.
|
|
||||||
dnl This file is free software, distributed under the terms of the GNU
|
|
||||||
dnl General Public License. As a special exception to the GNU General
|
|
||||||
dnl Public License, this file may be distributed as part of a program
|
|
||||||
dnl that contains a configuration script generated by Autoconf, under
|
|
||||||
dnl the same distribution terms as the rest of that program.
|
|
||||||
|
|
||||||
AC_DEFUN([gl_GETOPT],
|
|
||||||
[
|
|
||||||
dnl Prerequisites of lib/getopt.c.
|
|
||||||
AC_CHECK_HEADERS_ONCE(string.h)
|
|
||||||
])
|
|
||||||
15
m4/hash.m4
15
m4/hash.m4
@@ -1,15 +0,0 @@
|
|||||||
# hash.m4 serial 1
|
|
||||||
dnl Copyright (C) 2002 Free Software Foundation, Inc.
|
|
||||||
dnl This file is free software, distributed under the terms of the GNU
|
|
||||||
dnl General Public License. As a special exception to the GNU General
|
|
||||||
dnl Public License, this file may be distributed as part of a program
|
|
||||||
dnl that contains a configuration script generated by Autoconf, under
|
|
||||||
dnl the same distribution terms as the rest of that program.
|
|
||||||
|
|
||||||
AC_DEFUN([gl_HASH],
|
|
||||||
[
|
|
||||||
dnl Prerequisites of lib/hash.c.
|
|
||||||
AC_CHECK_HEADERS_ONCE(stdlib.h)
|
|
||||||
AC_HEADER_STDBOOL
|
|
||||||
AC_CHECK_DECLS_ONCE(free malloc)
|
|
||||||
])
|
|
||||||
25
m4/malloc.m4
25
m4/malloc.m4
@@ -1,25 +0,0 @@
|
|||||||
# malloc.m4 serial 7
|
|
||||||
dnl Copyright (C) 2002 Free Software Foundation, Inc.
|
|
||||||
dnl This file is free software, distributed under the terms of the GNU
|
|
||||||
dnl General Public License. As a special exception to the GNU General
|
|
||||||
dnl Public License, this file may be distributed as part of a program
|
|
||||||
dnl that contains a configuration script generated by Autoconf, under
|
|
||||||
dnl the same distribution terms as the rest of that program.
|
|
||||||
|
|
||||||
dnl From Jim Meyering.
|
|
||||||
dnl Determine whether malloc accepts 0 as its argument.
|
|
||||||
dnl If it doesn't, arrange to use the replacement function.
|
|
||||||
|
|
||||||
AC_DEFUN([jm_FUNC_MALLOC],
|
|
||||||
[
|
|
||||||
AC_REQUIRE([AC_FUNC_MALLOC])
|
|
||||||
dnl autoconf < 2.57 used the symbol ac_cv_func_malloc_works.
|
|
||||||
if test X"$ac_cv_func_malloc_0_nonnull" = Xno || test X"$ac_cv_func_malloc_works" = Xno; then
|
|
||||||
gl_PREREQ_MALLOC
|
|
||||||
fi
|
|
||||||
])
|
|
||||||
|
|
||||||
# Prerequisites of lib/malloc.c.
|
|
||||||
AC_DEFUN([gl_PREREQ_MALLOC], [
|
|
||||||
:
|
|
||||||
])
|
|
||||||
@@ -1,27 +0,0 @@
|
|||||||
# mbrtowc.m4 serial 5
|
|
||||||
dnl Copyright (C) 2001-2002 Free Software Foundation, Inc.
|
|
||||||
dnl This file is free software, distributed under the terms of the GNU
|
|
||||||
dnl General Public License. As a special exception to the GNU General
|
|
||||||
dnl Public License, this file may be distributed as part of a program
|
|
||||||
dnl that contains a configuration script generated by Autoconf, under
|
|
||||||
dnl the same distribution terms as the rest of that program.
|
|
||||||
|
|
||||||
dnl From Paul Eggert
|
|
||||||
|
|
||||||
dnl This file can be removed, and jm_FUNC_MBRTOWC replaced with
|
|
||||||
dnl AC_FUNC_MBRTOWC, when autoconf 2.57 can be assumed everywhere.
|
|
||||||
|
|
||||||
AC_DEFUN([jm_FUNC_MBRTOWC],
|
|
||||||
[
|
|
||||||
AC_CACHE_CHECK([whether mbrtowc and mbstate_t are properly declared],
|
|
||||||
jm_cv_func_mbrtowc,
|
|
||||||
[AC_TRY_LINK(
|
|
||||||
[#include <wchar.h>],
|
|
||||||
[mbstate_t state; return ! (sizeof state && mbrtowc);],
|
|
||||||
jm_cv_func_mbrtowc=yes,
|
|
||||||
jm_cv_func_mbrtowc=no)])
|
|
||||||
if test $jm_cv_func_mbrtowc = yes; then
|
|
||||||
AC_DEFINE(HAVE_MBRTOWC, 1,
|
|
||||||
[Define to 1 if mbrtowc and mbstate_t are properly declared.])
|
|
||||||
fi
|
|
||||||
])
|
|
||||||
@@ -1,36 +0,0 @@
|
|||||||
#serial 9
|
|
||||||
|
|
||||||
dnl autoconf tests required for use of mbswidth.c
|
|
||||||
dnl From Bruno Haible.
|
|
||||||
|
|
||||||
AC_DEFUN([gl_MBSWIDTH],
|
|
||||||
[
|
|
||||||
AC_CHECK_HEADERS_ONCE(wchar.h wctype.h)
|
|
||||||
AC_CHECK_FUNCS_ONCE(isascii iswprint mbsinit)
|
|
||||||
AC_CHECK_FUNCS(iswcntrl wcwidth)
|
|
||||||
jm_FUNC_MBRTOWC
|
|
||||||
|
|
||||||
AC_CACHE_CHECK([whether wcwidth is declared], ac_cv_have_decl_wcwidth,
|
|
||||||
[AC_TRY_COMPILE([
|
|
||||||
/* AIX 3.2.5 declares wcwidth in <string.h>. */
|
|
||||||
#if HAVE_STRING_H
|
|
||||||
# include <string.h>
|
|
||||||
#endif
|
|
||||||
#if HAVE_WCHAR_H
|
|
||||||
# include <wchar.h>
|
|
||||||
#endif
|
|
||||||
], [
|
|
||||||
#ifndef wcwidth
|
|
||||||
char *p = (char *) wcwidth;
|
|
||||||
#endif
|
|
||||||
], ac_cv_have_decl_wcwidth=yes, ac_cv_have_decl_wcwidth=no)])
|
|
||||||
if test $ac_cv_have_decl_wcwidth = yes; then
|
|
||||||
ac_val=1
|
|
||||||
else
|
|
||||||
ac_val=0
|
|
||||||
fi
|
|
||||||
AC_DEFINE_UNQUOTED(HAVE_DECL_WCWIDTH, $ac_val,
|
|
||||||
[Define to 1 if you have the declaration of wcwidth(), and to 0 otherwise.])
|
|
||||||
|
|
||||||
AC_TYPE_MBSTATE_T
|
|
||||||
])
|
|
||||||
21
m4/memchr.m4
21
m4/memchr.m4
@@ -1,21 +0,0 @@
|
|||||||
# memchr.m4 serial 1
|
|
||||||
dnl Copyright (C) 2002 Free Software Foundation, Inc.
|
|
||||||
dnl This file is free software, distributed under the terms of the GNU
|
|
||||||
dnl General Public License. As a special exception to the GNU General
|
|
||||||
dnl Public License, this file may be distributed as part of a program
|
|
||||||
dnl that contains a configuration script generated by Autoconf, under
|
|
||||||
dnl the same distribution terms as the rest of that program.
|
|
||||||
|
|
||||||
AC_DEFUN([gl_FUNC_MEMCHR],
|
|
||||||
[
|
|
||||||
AC_REPLACE_FUNCS(memchr)
|
|
||||||
if test $ac_cv_func_memchr = no; then
|
|
||||||
jm_PREREQ_MEMCHR
|
|
||||||
fi
|
|
||||||
])
|
|
||||||
|
|
||||||
# Prerequisites of lib/memchr.c.
|
|
||||||
AC_DEFUN([jm_PREREQ_MEMCHR], [
|
|
||||||
AC_CHECK_HEADERS_ONCE(limits.h stdlib.h)
|
|
||||||
AC_CHECK_HEADERS(bp-sym.h)
|
|
||||||
])
|
|
||||||
22
m4/memcmp.m4
22
m4/memcmp.m4
@@ -1,22 +0,0 @@
|
|||||||
# memcmp.m4 serial 8
|
|
||||||
dnl Copyright (C) 2002 Free Software Foundation, Inc.
|
|
||||||
dnl This file is free software, distributed under the terms of the GNU
|
|
||||||
dnl General Public License. As a special exception to the GNU General
|
|
||||||
dnl Public License, this file may be distributed as part of a program
|
|
||||||
dnl that contains a configuration script generated by Autoconf, under
|
|
||||||
dnl the same distribution terms as the rest of that program.
|
|
||||||
|
|
||||||
AC_DEFUN([jm_FUNC_MEMCMP],
|
|
||||||
[
|
|
||||||
AC_REQUIRE([AC_FUNC_MEMCMP])
|
|
||||||
if test $ac_cv_func_memcmp_working = no; then
|
|
||||||
AC_DEFINE(memcmp, rpl_memcmp,
|
|
||||||
[Define to rpl_memcmp if the replacement function should be used.])
|
|
||||||
gl_PREREQ_MEMCMP
|
|
||||||
fi
|
|
||||||
])
|
|
||||||
|
|
||||||
# Prerequisites of lib/memcmp.c.
|
|
||||||
AC_DEFUN([gl_PREREQ_MEMCMP], [
|
|
||||||
AC_CHECK_HEADERS_ONCE(string.h)
|
|
||||||
])
|
|
||||||
@@ -1,23 +0,0 @@
|
|||||||
# memrchr.m4 serial 1
|
|
||||||
dnl Copyright (C) 2002 Free Software Foundation, Inc.
|
|
||||||
dnl This file is free software, distributed under the terms of the GNU
|
|
||||||
dnl General Public License. As a special exception to the GNU General
|
|
||||||
dnl Public License, this file may be distributed as part of a program
|
|
||||||
dnl that contains a configuration script generated by Autoconf, under
|
|
||||||
dnl the same distribution terms as the rest of that program.
|
|
||||||
|
|
||||||
AC_DEFUN([gl_FUNC_MEMRCHR],
|
|
||||||
[
|
|
||||||
dnl Persuade glibc <string.h> to declare memrchr().
|
|
||||||
AC_REQUIRE([AC_GNU_SOURCE])
|
|
||||||
|
|
||||||
AC_REPLACE_FUNCS(memrchr)
|
|
||||||
if test $ac_cv_func_memrchr = no; then
|
|
||||||
gl_PREREQ_MEMRCHR
|
|
||||||
fi
|
|
||||||
])
|
|
||||||
|
|
||||||
# Prerequisites of lib/memrchr.c.
|
|
||||||
AC_DEFUN([gl_PREREQ_MEMRCHR], [
|
|
||||||
AC_CHECK_HEADERS_ONCE(limits.h)
|
|
||||||
])
|
|
||||||
@@ -1,24 +0,0 @@
|
|||||||
# obstack.m4 serial 1
|
|
||||||
dnl Copyright (C) 2002 Free Software Foundation, Inc.
|
|
||||||
dnl This file is free software, distributed under the terms of the GNU
|
|
||||||
dnl General Public License. As a special exception to the GNU General
|
|
||||||
dnl Public License, this file may be distributed as part of a program
|
|
||||||
dnl that contains a configuration script generated by Autoconf, under
|
|
||||||
dnl the same distribution terms as the rest of that program.
|
|
||||||
|
|
||||||
AC_DEFUN([gl_OBSTACK],
|
|
||||||
[
|
|
||||||
dnl Prerequisites of lib/obstack.h.
|
|
||||||
AC_CHECK_HEADERS_ONCE(stddef.h string.h)
|
|
||||||
|
|
||||||
AC_FUNC_OBSTACK
|
|
||||||
dnl Note: AC_FUNC_OBSTACK does AC_LIBSOURCES([obstack.h, obstack.c]).
|
|
||||||
if test $ac_cv_func_obstack = no; then
|
|
||||||
gl_PREREQ_OBSTACK
|
|
||||||
fi
|
|
||||||
])
|
|
||||||
|
|
||||||
# Prerequisites of lib/obstack.c.
|
|
||||||
AC_DEFUN([gl_PREREQ_OBSTACK], [
|
|
||||||
AC_CHECK_HEADERS_ONCE(stdlib.h)
|
|
||||||
])
|
|
||||||
@@ -1,63 +0,0 @@
|
|||||||
# onceonly.m4 serial 3 (gettext-0.12)
|
|
||||||
dnl Copyright (C) 2002, 2003 Free Software Foundation, Inc.
|
|
||||||
dnl This file is free software, distributed under the terms of the GNU
|
|
||||||
dnl General Public License. As a special exception to the GNU General
|
|
||||||
dnl Public License, this file may be distributed as part of a program
|
|
||||||
dnl that contains a configuration script generated by Autoconf, under
|
|
||||||
dnl the same distribution terms as the rest of that program.
|
|
||||||
|
|
||||||
dnl This file defines some "once only" variants of standard autoconf macros.
|
|
||||||
dnl AC_CHECK_HEADERS_ONCE like AC_CHECK_HEADERS
|
|
||||||
dnl AC_CHECK_FUNCS_ONCE like AC_CHECK_FUNCS
|
|
||||||
dnl AC_CHECK_DECLS_ONCE like AC_CHECK_DECLS
|
|
||||||
dnl AC_REQUIRE([AC_HEADER_STDC]) like AC_HEADER_STDC
|
|
||||||
dnl The advantage is that the check for each of the headers/functions/decls
|
|
||||||
dnl will be put only once into the 'configure' file. It keeps the size of
|
|
||||||
dnl the 'configure' file down, and avoids redundant output when 'configure'
|
|
||||||
dnl is run.
|
|
||||||
dnl The drawback is that the checks cannot be conditionalized. If you write
|
|
||||||
dnl if some_condition; then gl_CHECK_HEADERS(stdlib.h); fi
|
|
||||||
dnl inside an AC_DEFUNed function, the gl_CHECK_HEADERS macro call expands to
|
|
||||||
dnl empty, and the check will be inserted before the body of the AC_DEFUNed
|
|
||||||
dnl function.
|
|
||||||
|
|
||||||
dnl Autoconf version 2.57 or newer is recommended.
|
|
||||||
AC_PREREQ(2.54)
|
|
||||||
|
|
||||||
# AC_CHECK_HEADERS_ONCE(HEADER1 HEADER2 ...) is a once-only variant of
|
|
||||||
# AC_CHECK_HEADERS(HEADER1 HEADER2 ...).
|
|
||||||
AC_DEFUN([AC_CHECK_HEADERS_ONCE], [
|
|
||||||
:
|
|
||||||
AC_FOREACH([gl_HEADER_NAME], [$1], [
|
|
||||||
AC_DEFUN([gl_CHECK_HEADER_]m4_quote(translit(m4_defn([gl_HEADER_NAME]),
|
|
||||||
[-./], [___])), [
|
|
||||||
AC_CHECK_HEADERS(gl_HEADER_NAME)
|
|
||||||
])
|
|
||||||
AC_REQUIRE([gl_CHECK_HEADER_]m4_quote(translit(gl_HEADER_NAME,
|
|
||||||
[-./], [___])))
|
|
||||||
])
|
|
||||||
])
|
|
||||||
|
|
||||||
# AC_CHECK_FUNCS_ONCE(FUNC1 FUNC2 ...) is a once-only variant of
|
|
||||||
# AC_CHECK_FUNCS(FUNC1 FUNC2 ...).
|
|
||||||
AC_DEFUN([AC_CHECK_FUNCS_ONCE], [
|
|
||||||
:
|
|
||||||
AC_FOREACH([gl_FUNC_NAME], [$1], [
|
|
||||||
AC_DEFUN([gl_CHECK_FUNC_]m4_defn([gl_FUNC_NAME]), [
|
|
||||||
AC_CHECK_FUNCS(m4_defn([gl_FUNC_NAME]))
|
|
||||||
])
|
|
||||||
AC_REQUIRE([gl_CHECK_FUNC_]m4_defn([gl_FUNC_NAME]))
|
|
||||||
])
|
|
||||||
])
|
|
||||||
|
|
||||||
# AC_CHECK_DECLS_ONCE(DECL1 DECL2 ...) is a once-only variant of
|
|
||||||
# AC_CHECK_DECLS(DECL1, DECL2, ...).
|
|
||||||
AC_DEFUN([AC_CHECK_DECLS_ONCE], [
|
|
||||||
:
|
|
||||||
AC_FOREACH([gl_DECL_NAME], [$1], [
|
|
||||||
AC_DEFUN([gl_CHECK_DECL_]m4_defn([gl_DECL_NAME]), [
|
|
||||||
AC_CHECK_DECLS(m4_defn([gl_DECL_NAME]))
|
|
||||||
])
|
|
||||||
AC_REQUIRE([gl_CHECK_DECL_]m4_defn([gl_DECL_NAME]))
|
|
||||||
])
|
|
||||||
])
|
|
||||||
63
m4/prereq.m4
63
m4/prereq.m4
@@ -1,63 +0,0 @@
|
|||||||
#serial 27
|
|
||||||
|
|
||||||
dnl These are the prerequisite macros for files in the lib/
|
|
||||||
dnl directories of the fileutils, sh-utils, and textutils packages.
|
|
||||||
|
|
||||||
AC_DEFUN([jm_PREREQ],
|
|
||||||
[
|
|
||||||
gl_BACKUPFILE
|
|
||||||
jm_PREREQ_C_STACK
|
|
||||||
gl_CANON_HOST
|
|
||||||
gl_DIRNAME
|
|
||||||
jm_PREREQ_ERROR
|
|
||||||
gl_EXCLUDE
|
|
||||||
gl_GETPAGESIZE
|
|
||||||
gl_HARD_LOCALE
|
|
||||||
gl_HASH
|
|
||||||
gl_HUMAN
|
|
||||||
gl_MBSWIDTH
|
|
||||||
gl_FUNC_MEMCHR
|
|
||||||
gl_PHYSMEM
|
|
||||||
gl_POSIXVER
|
|
||||||
gl_QUOTEARG
|
|
||||||
gl_READUTMP
|
|
||||||
gl_REGEX
|
|
||||||
jm_PREREQ_STAT
|
|
||||||
gl_FUNC_STRNLEN
|
|
||||||
gl_XGETCWD
|
|
||||||
gl_XREADLINK
|
|
||||||
])
|
|
||||||
|
|
||||||
AC_DEFUN([jm_PREREQ_STAT],
|
|
||||||
[
|
|
||||||
AC_CHECK_HEADERS(sys/sysmacros.h sys/statvfs.h sys/vfs.h inttypes.h)
|
|
||||||
AC_CHECK_HEADERS(sys/param.h sys/mount.h)
|
|
||||||
AC_CHECK_FUNCS(statvfs)
|
|
||||||
jm_AC_TYPE_LONG_LONG
|
|
||||||
|
|
||||||
statxfs_includes="\
|
|
||||||
$ac_includes_default
|
|
||||||
#if HAVE_SYS_STATVFS_H
|
|
||||||
# include <sys/statvfs.h>
|
|
||||||
#endif
|
|
||||||
#if HAVE_SYS_VFS_H
|
|
||||||
# include <sys/vfs.h>
|
|
||||||
#endif
|
|
||||||
#if ( ! HAVE_SYS_STATVFS_H && ! HAVE_SYS_VFS_H && HAVE_SYS_MOUNT_H && HAVE_SYS_PARAM_H )
|
|
||||||
/* NetBSD 1.5.2 needs these, for the declaration of struct statfs. */
|
|
||||||
# include <sys/param.h>
|
|
||||||
# include <sys/mount.h>
|
|
||||||
#endif
|
|
||||||
"
|
|
||||||
AC_CHECK_MEMBERS([struct statfs.f_basetype],,,[$statxfs_includes])
|
|
||||||
AC_CHECK_MEMBERS([struct statvfs.f_basetype],,,[$statxfs_includes])
|
|
||||||
AC_CHECK_MEMBERS([struct statfs.f_fstypename],,,[$statxfs_includes])
|
|
||||||
AC_CHECK_MEMBERS([struct statfs.f_type],,,[$statxfs_includes])
|
|
||||||
AC_CHECK_MEMBERS([struct statvfs.f_type],,,[$statxfs_includes])
|
|
||||||
AC_CHECK_MEMBERS([struct statfs.f_fsid.__val],,,[$statxfs_includes])
|
|
||||||
AC_CHECK_MEMBERS([struct statvfs.f_fsid.__val],,,[$statxfs_includes])
|
|
||||||
AC_CHECK_MEMBERS([struct statfs.f_namemax],,,[$statxfs_includes])
|
|
||||||
AC_CHECK_MEMBERS([struct statvfs.f_namemax],,,[$statxfs_includes])
|
|
||||||
AC_CHECK_MEMBERS([struct statfs.f_namelen],,,[$statxfs_includes])
|
|
||||||
AC_CHECK_MEMBERS([struct statvfs.f_namelen],,,[$statxfs_includes])
|
|
||||||
])
|
|
||||||
13
m4/quote.m4
13
m4/quote.m4
@@ -1,13 +0,0 @@
|
|||||||
# quote.m4 serial 2
|
|
||||||
dnl Copyright (C) 2002, 2003 Free Software Foundation, Inc.
|
|
||||||
dnl This file is free software, distributed under the terms of the GNU
|
|
||||||
dnl General Public License. As a special exception to the GNU General
|
|
||||||
dnl Public License, this file may be distributed as part of a program
|
|
||||||
dnl that contains a configuration script generated by Autoconf, under
|
|
||||||
dnl the same distribution terms as the rest of that program.
|
|
||||||
|
|
||||||
AC_DEFUN([gl_QUOTE],
|
|
||||||
[
|
|
||||||
dnl Prerequisites of lib/quote.c.
|
|
||||||
dnl (none)
|
|
||||||
])
|
|
||||||
@@ -1,16 +0,0 @@
|
|||||||
# quotearg.m4 serial 1
|
|
||||||
dnl Copyright (C) 2002 Free Software Foundation, Inc.
|
|
||||||
dnl This file is free software, distributed under the terms of the GNU
|
|
||||||
dnl General Public License. As a special exception to the GNU General
|
|
||||||
dnl Public License, this file may be distributed as part of a program
|
|
||||||
dnl that contains a configuration script generated by Autoconf, under
|
|
||||||
dnl the same distribution terms as the rest of that program.
|
|
||||||
|
|
||||||
AC_DEFUN([gl_QUOTEARG],
|
|
||||||
[
|
|
||||||
dnl Prerequisites of lib/quotearg.c.
|
|
||||||
AC_CHECK_HEADERS_ONCE(wchar.h wctype.h)
|
|
||||||
AC_CHECK_FUNCS_ONCE(iswprint mbsinit)
|
|
||||||
AC_TYPE_MBSTATE_T
|
|
||||||
jm_FUNC_MBRTOWC
|
|
||||||
])
|
|
||||||
@@ -1,25 +0,0 @@
|
|||||||
# realloc.m4 serial 7
|
|
||||||
dnl Copyright (C) 2002 Free Software Foundation, Inc.
|
|
||||||
dnl This file is free software, distributed under the terms of the GNU
|
|
||||||
dnl General Public License. As a special exception to the GNU General
|
|
||||||
dnl Public License, this file may be distributed as part of a program
|
|
||||||
dnl that contains a configuration script generated by Autoconf, under
|
|
||||||
dnl the same distribution terms as the rest of that program.
|
|
||||||
|
|
||||||
dnl From Jim Meyering.
|
|
||||||
dnl Determine whether realloc works when both arguments are 0.
|
|
||||||
dnl If it doesn't, arrange to use the replacement function.
|
|
||||||
|
|
||||||
AC_DEFUN([jm_FUNC_REALLOC],
|
|
||||||
[
|
|
||||||
AC_REQUIRE([AC_FUNC_REALLOC])
|
|
||||||
dnl autoconf < 2.57 used the symbol ac_cv_func_realloc_works.
|
|
||||||
if test X"$ac_cv_func_realloc_0_nonnull" = Xno || test X"$ac_cv_func_realloc_works" = Xno; then
|
|
||||||
gl_PREREQ_REALLOC
|
|
||||||
fi
|
|
||||||
])
|
|
||||||
|
|
||||||
# Prerequisites of lib/realloc.c.
|
|
||||||
AC_DEFUN([gl_PREREQ_REALLOC], [
|
|
||||||
:
|
|
||||||
])
|
|
||||||
@@ -1,89 +0,0 @@
|
|||||||
# Check for stdbool.h that conforms to C99.
|
|
||||||
|
|
||||||
# Copyright (C) 2002-2003 Free Software Foundation, Inc.
|
|
||||||
|
|
||||||
# This program is free software; you can 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.
|
|
||||||
|
|
||||||
# Prepare for substituting <stdbool.h> if it is not supported.
|
|
||||||
|
|
||||||
AC_DEFUN([AM_STDBOOL_H],
|
|
||||||
[
|
|
||||||
AC_REQUIRE([AC_HEADER_STDBOOL])
|
|
||||||
|
|
||||||
# Define two additional variables used in the Makefile substitution.
|
|
||||||
|
|
||||||
if test "$ac_cv_header_stdbool_h" = yes; then
|
|
||||||
STDBOOL_H=''
|
|
||||||
else
|
|
||||||
STDBOOL_H='stdbool.h'
|
|
||||||
fi
|
|
||||||
AC_SUBST([STDBOOL_H])
|
|
||||||
|
|
||||||
if test "$ac_cv_type__Bool" = yes; then
|
|
||||||
HAVE__BOOL=1
|
|
||||||
else
|
|
||||||
HAVE__BOOL=0
|
|
||||||
fi
|
|
||||||
AC_SUBST([HAVE__BOOL])
|
|
||||||
])
|
|
||||||
|
|
||||||
# This macro is only needed in autoconf <= 2.54. Newer versions of autoconf
|
|
||||||
# have this macro built-in.
|
|
||||||
|
|
||||||
AC_DEFUN([AC_HEADER_STDBOOL],
|
|
||||||
[AC_CACHE_CHECK([for stdbool.h that conforms to C99],
|
|
||||||
[ac_cv_header_stdbool_h],
|
|
||||||
[AC_TRY_COMPILE(
|
|
||||||
[
|
|
||||||
#include <stdbool.h>
|
|
||||||
#ifndef bool
|
|
||||||
"error: bool is not defined"
|
|
||||||
#endif
|
|
||||||
#ifndef false
|
|
||||||
"error: false is not defined"
|
|
||||||
#endif
|
|
||||||
#if false
|
|
||||||
"error: false is not 0"
|
|
||||||
#endif
|
|
||||||
#ifndef true
|
|
||||||
"error: false is not defined"
|
|
||||||
#endif
|
|
||||||
#if true != 1
|
|
||||||
"error: true is not 1"
|
|
||||||
#endif
|
|
||||||
#ifndef __bool_true_false_are_defined
|
|
||||||
"error: __bool_true_false_are_defined is not defined"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
struct s { _Bool s: 1; _Bool t; } s;
|
|
||||||
|
|
||||||
char a[true == 1 ? 1 : -1];
|
|
||||||
char b[false == 0 ? 1 : -1];
|
|
||||||
char c[__bool_true_false_are_defined == 1 ? 1 : -1];
|
|
||||||
char d[(bool) -0.5 == true ? 1 : -1];
|
|
||||||
bool e = &s;
|
|
||||||
char f[(_Bool) -0.0 == false ? 1 : -1];
|
|
||||||
char g[true];
|
|
||||||
char h[sizeof (_Bool)];
|
|
||||||
char i[sizeof s.t];
|
|
||||||
],
|
|
||||||
[ return !a + !b + !c + !d + !e + !f + !g + !h + !i; ],
|
|
||||||
[ac_cv_header_stdbool_h=yes],
|
|
||||||
[ac_cv_header_stdbool_h=no])])
|
|
||||||
AC_CHECK_TYPES([_Bool])
|
|
||||||
if test $ac_cv_header_stdbool_h = yes; then
|
|
||||||
AC_DEFINE(HAVE_STDBOOL_H, 1, [Define to 1 if stdbool.h conforms to C99.])
|
|
||||||
fi])
|
|
||||||
24
m4/stpcpy.m4
24
m4/stpcpy.m4
@@ -1,24 +0,0 @@
|
|||||||
# stpcpy.m4 serial 1
|
|
||||||
dnl Copyright (C) 2002 Free Software Foundation, Inc.
|
|
||||||
dnl This file is free software, distributed under the terms of the GNU
|
|
||||||
dnl General Public License. As a special exception to the GNU General
|
|
||||||
dnl Public License, this file may be distributed as part of a program
|
|
||||||
dnl that contains a configuration script generated by Autoconf, under
|
|
||||||
dnl the same distribution terms as the rest of that program.
|
|
||||||
|
|
||||||
AC_DEFUN([gl_FUNC_STPCPY],
|
|
||||||
[
|
|
||||||
dnl Persuade glibc <string.h> to declare stpcpy().
|
|
||||||
AC_REQUIRE([AC_GNU_SOURCE])
|
|
||||||
|
|
||||||
AC_REPLACE_FUNCS(stpcpy)
|
|
||||||
if test $ac_cv_func_stpcpy = no; then
|
|
||||||
gl_PREREQ_STPCPY
|
|
||||||
fi
|
|
||||||
])
|
|
||||||
|
|
||||||
# Prerequisites of lib/stpcpy.c.
|
|
||||||
AC_DEFUN([gl_PREREQ_STPCPY], [
|
|
||||||
:
|
|
||||||
])
|
|
||||||
|
|
||||||
@@ -1,32 +0,0 @@
|
|||||||
# strnlen.m4 serial 2
|
|
||||||
dnl Copyright (C) 2002-2003 Free Software Foundation, Inc.
|
|
||||||
dnl This file is free software, distributed under the terms of the GNU
|
|
||||||
dnl General Public License. As a special exception to the GNU General
|
|
||||||
dnl Public License, this file may be distributed as part of a program
|
|
||||||
dnl that contains a configuration script generated by Autoconf, under
|
|
||||||
dnl the same distribution terms as the rest of that program.
|
|
||||||
|
|
||||||
AC_DEFUN([gl_FUNC_STRNLEN],
|
|
||||||
[
|
|
||||||
dnl Persuade glibc <string.h> to declare strnlen().
|
|
||||||
AC_REQUIRE([AC_GNU_SOURCE])
|
|
||||||
|
|
||||||
AC_FUNC_STRNLEN
|
|
||||||
if test $ac_cv_func_strnlen_working = no; then
|
|
||||||
# This is necessary because automake-1.6.1 doens't understand
|
|
||||||
# that the above use of AC_FUNC_STRNLEN means we may have to use
|
|
||||||
# lib/strnlen.c.
|
|
||||||
#AC_LIBOBJ(strnlen)
|
|
||||||
AC_DEFINE(strnlen, rpl_strnlen,
|
|
||||||
[Define to rpl_strnlen if the replacement function should be used.])
|
|
||||||
gl_PREREQ_STRNLEN
|
|
||||||
fi
|
|
||||||
])
|
|
||||||
|
|
||||||
# Prerequisites of lib/strnlen.c.
|
|
||||||
AC_DEFUN([gl_PREREQ_STRNLEN], [
|
|
||||||
AC_REQUIRE([AC_HEADER_STDC])
|
|
||||||
AC_CHECK_HEADERS_ONCE(memory.h string.h)
|
|
||||||
AC_CHECK_DECLS(memchr)
|
|
||||||
])
|
|
||||||
|
|
||||||
22
m4/strtol.m4
22
m4/strtol.m4
@@ -1,22 +0,0 @@
|
|||||||
# strtol.m4 serial 1
|
|
||||||
dnl Copyright (C) 2002 Free Software Foundation, Inc.
|
|
||||||
dnl This file is free software, distributed under the terms of the GNU
|
|
||||||
dnl General Public License. As a special exception to the GNU General
|
|
||||||
dnl Public License, this file may be distributed as part of a program
|
|
||||||
dnl that contains a configuration script generated by Autoconf, under
|
|
||||||
dnl the same distribution terms as the rest of that program.
|
|
||||||
|
|
||||||
AC_DEFUN([gl_FUNC_STRTOL],
|
|
||||||
[
|
|
||||||
AC_REPLACE_FUNCS(strtol)
|
|
||||||
if test $ac_cv_func_strtol = no; then
|
|
||||||
gl_PREREQ_STRTOL
|
|
||||||
fi
|
|
||||||
])
|
|
||||||
|
|
||||||
# Prerequisites of lib/strtol.c.
|
|
||||||
AC_DEFUN([gl_PREREQ_STRTOL], [
|
|
||||||
AC_REQUIRE([AC_HEADER_STDC])
|
|
||||||
AC_CHECK_HEADERS_ONCE(limits.h)
|
|
||||||
AC_CHECK_FUNCS_ONCE(isascii)
|
|
||||||
])
|
|
||||||
@@ -1,20 +0,0 @@
|
|||||||
# strtoul.m4 serial 1
|
|
||||||
dnl Copyright (C) 2002 Free Software Foundation, Inc.
|
|
||||||
dnl This file is free software, distributed under the terms of the GNU
|
|
||||||
dnl General Public License. As a special exception to the GNU General
|
|
||||||
dnl Public License, this file may be distributed as part of a program
|
|
||||||
dnl that contains a configuration script generated by Autoconf, under
|
|
||||||
dnl the same distribution terms as the rest of that program.
|
|
||||||
|
|
||||||
AC_DEFUN([gl_FUNC_STRTOUL],
|
|
||||||
[
|
|
||||||
AC_REPLACE_FUNCS(strtoul)
|
|
||||||
if test $ac_cv_func_strtoul = no; then
|
|
||||||
gl_PREREQ_STRTOUL
|
|
||||||
fi
|
|
||||||
])
|
|
||||||
|
|
||||||
# Prerequisites of lib/strtoul.c.
|
|
||||||
AC_DEFUN([gl_PREREQ_STRTOUL], [
|
|
||||||
gl_PREREQ_STRTOL
|
|
||||||
])
|
|
||||||
@@ -1,22 +0,0 @@
|
|||||||
#serial 7 -*- autoconf -*-
|
|
||||||
|
|
||||||
dnl From Jim Meyering.
|
|
||||||
dnl
|
|
||||||
dnl See if the glibc *_unlocked I/O macros or functions are available.
|
|
||||||
dnl Use only those *_unlocked macros or functions that are declared
|
|
||||||
dnl (because some of them were declared in Solaris 2.5.1 but were removed
|
|
||||||
dnl in Solaris 2.6, whereas we want binaries built on Solaris 2.5.1 to run
|
|
||||||
dnl on Solaris 2.6).
|
|
||||||
|
|
||||||
AC_DEFUN([jm_FUNC_GLIBC_UNLOCKED_IO],
|
|
||||||
[
|
|
||||||
dnl Persuade glibc <stdio.h> to declare fgets_unlocked(), fputs_unlocked()
|
|
||||||
dnl etc.
|
|
||||||
AC_REQUIRE([AC_GNU_SOURCE])
|
|
||||||
|
|
||||||
AC_CHECK_DECLS_ONCE(
|
|
||||||
[clearerr_unlocked feof_unlocked ferror_unlocked
|
|
||||||
fflush_unlocked fgets_unlocked fputc_unlocked fputs_unlocked
|
|
||||||
fread_unlocked fwrite_unlocked getc_unlocked
|
|
||||||
getchar_unlocked putc_unlocked putchar_unlocked])
|
|
||||||
])
|
|
||||||
26
m4/xalloc.m4
26
m4/xalloc.m4
@@ -1,26 +0,0 @@
|
|||||||
# xalloc.m4 serial 1
|
|
||||||
dnl Copyright (C) 2002 Free Software Foundation, Inc.
|
|
||||||
dnl This file is free software, distributed under the terms of the GNU
|
|
||||||
dnl General Public License. As a special exception to the GNU General
|
|
||||||
dnl Public License, this file may be distributed as part of a program
|
|
||||||
dnl that contains a configuration script generated by Autoconf, under
|
|
||||||
dnl the same distribution terms as the rest of that program.
|
|
||||||
|
|
||||||
AC_DEFUN([gl_XALLOC],
|
|
||||||
[
|
|
||||||
gl_PREREQ_XMALLOC
|
|
||||||
gl_PREREQ_XSTRDUP
|
|
||||||
])
|
|
||||||
|
|
||||||
# Prerequisites of lib/xmalloc.c.
|
|
||||||
AC_DEFUN([gl_PREREQ_XMALLOC], [
|
|
||||||
AC_REQUIRE([AC_HEADER_STDC])
|
|
||||||
AC_REQUIRE([jm_FUNC_MALLOC])
|
|
||||||
AC_REQUIRE([jm_FUNC_REALLOC])
|
|
||||||
])
|
|
||||||
|
|
||||||
# Prerequisites of lib/xstrdup.c.
|
|
||||||
AC_DEFUN([gl_PREREQ_XSTRDUP], [
|
|
||||||
AC_REQUIRE([AC_HEADER_STDC])
|
|
||||||
AC_CHECK_HEADERS_ONCE(string.h)
|
|
||||||
])
|
|
||||||
@@ -1,13 +1,14 @@
|
|||||||
ChangeLog
|
*.gmo
|
||||||
|
*.po
|
||||||
|
LINGUAS
|
||||||
Makefile
|
Makefile
|
||||||
Makefile.in
|
Makefile.in
|
||||||
|
Makefile.in.in
|
||||||
|
Makevars
|
||||||
Makevars.template
|
Makevars.template
|
||||||
POTFILES
|
POTFILES
|
||||||
bison.pot
|
|
||||||
stamp-po
|
|
||||||
*.gmo
|
|
||||||
Makefile.in
|
|
||||||
Rules-quot
|
Rules-quot
|
||||||
|
bison.pot
|
||||||
boldquot.sed
|
boldquot.sed
|
||||||
en@boldquot.header
|
en@boldquot.header
|
||||||
en@quot.header
|
en@quot.header
|
||||||
@@ -15,3 +16,4 @@ insert-header.sin
|
|||||||
quot.sed
|
quot.sed
|
||||||
remove-potcdate.sed
|
remove-potcdate.sed
|
||||||
remove-potcdate.sin
|
remove-potcdate.sin
|
||||||
|
stamp-po
|
||||||
|
|||||||
70
po/ChangeLog
70
po/ChangeLog
@@ -1,70 +0,0 @@
|
|||||||
2002-08-08 gettextize <bug-gnu-gettext@gnu.org>
|
|
||||||
|
|
||||||
* Rules-quot: New file, from gettext-0.11.5.
|
|
||||||
* boldquot.sed: New file, from gettext-0.11.5.
|
|
||||||
* en@boldquot.header: New file, from gettext-0.11.5.
|
|
||||||
* en@quot.header: New file, from gettext-0.11.5.
|
|
||||||
* insert-header.sin: New file, from gettext-0.11.5.
|
|
||||||
* quot.sed: New file, from gettext-0.11.5.
|
|
||||||
* remove-potcdate.sin: New file, from gettext-0.11.5.
|
|
||||||
|
|
||||||
2001-10-10 gettextize <bug-gnu-utils@gnu.org>
|
|
||||||
|
|
||||||
* Makefile.in.in: Upgrade to gettext-0.10.40.
|
|
||||||
* cat-id-tbl.c: Remove file.
|
|
||||||
|
|
||||||
2001-10-08 gettextize <bug-gnu-utils@gnu.org>
|
|
||||||
|
|
||||||
* Makefile.in.in: Upgrade to gettext-0.10.40.
|
|
||||||
|
|
||||||
2001-10-04 gettextize <bug-gnu-utils@gnu.org>
|
|
||||||
|
|
||||||
* Makefile.in.in: Upgrade to gettext-0.10.40.
|
|
||||||
* cat-id-tbl.c: Remove file.
|
|
||||||
|
|
||||||
2001-09-27 gettextize <bug-gnu-utils@gnu.org>
|
|
||||||
|
|
||||||
* Makefile.in.in: Upgrade to gettext-0.10.40.
|
|
||||||
* cat-id-tbl.c: Remove file.
|
|
||||||
|
|
||||||
2001-08-03 gettextize <bug-gnu-utils@gnu.org>
|
|
||||||
|
|
||||||
* Makefile.in.in: Upgrade to gettext-0.10.39.
|
|
||||||
* cat-id-tbl.c: Remove file.
|
|
||||||
|
|
||||||
2001-07-14 gettextize <bug-gnu-utils@gnu.org>
|
|
||||||
|
|
||||||
* Makefile.in.in: Upgrade to gettext-0.10.38.
|
|
||||||
* cat-id-tbl.c: Remove file.
|
|
||||||
* stamp-cat-id: Remove file.
|
|
||||||
|
|
||||||
2000-11-02 Akim Demaille <akim@epita.fr>
|
|
||||||
|
|
||||||
* POTFILES.in: Adjust.
|
|
||||||
|
|
||||||
1999-07-26 Jesse Thilo <jthilo@gnu.org>
|
|
||||||
|
|
||||||
* po/ru.po: Added Russian translation.
|
|
||||||
|
|
||||||
1999-06-14 Jesse Thilo <jthilo@gnu.org>
|
|
||||||
|
|
||||||
* po/POTFILES.in: Got rid of version.c.
|
|
||||||
|
|
||||||
1999-04-18 Jesse Thilo <jthilo@gnu.org>
|
|
||||||
|
|
||||||
* po/de.po, po/es.po, po/fr.po, po/nl.po, po/POTFILES.in:
|
|
||||||
Adjusted paths to reflect directory reorganization.
|
|
||||||
|
|
||||||
1999-03-23 Jesse Thilo <jthilo@gnu.org>
|
|
||||||
|
|
||||||
* po/.cvsignore: Added i18n support.
|
|
||||||
|
|
||||||
1999-03-15 Jesse Thilo <jthilo@gnu.org>
|
|
||||||
|
|
||||||
* po/es.po, po/fr.po, po/nl.po, po/de.po:
|
|
||||||
Added PO files from Translation Project.
|
|
||||||
|
|
||||||
1999-02-05 Jesse Thilo <jthilo@gnu.org>
|
|
||||||
|
|
||||||
* po/Makefile.in.in, po/POTFILES.in:
|
|
||||||
Add `po' directory skeleton.
|
|
||||||
16
po/LINGUAS
16
po/LINGUAS
@@ -1,16 +0,0 @@
|
|||||||
da
|
|
||||||
de
|
|
||||||
es
|
|
||||||
et
|
|
||||||
fr
|
|
||||||
hr
|
|
||||||
id
|
|
||||||
it
|
|
||||||
ja
|
|
||||||
ms
|
|
||||||
nl
|
|
||||||
pt_BR
|
|
||||||
ro
|
|
||||||
ru
|
|
||||||
sv
|
|
||||||
tr
|
|
||||||
@@ -1,353 +0,0 @@
|
|||||||
# Makefile for PO directory in any package using GNU gettext.
|
|
||||||
# Copyright (C) 1995-1997, 2000-2003 by Ulrich Drepper <drepper@gnu.ai.mit.edu>
|
|
||||||
#
|
|
||||||
# This file can be copied and used freely without restrictions. It can
|
|
||||||
# be used in projects which are not available under the GNU General Public
|
|
||||||
# License but which still want to provide support for the GNU gettext
|
|
||||||
# functionality.
|
|
||||||
# Please note that the actual code of GNU gettext is covered by the GNU
|
|
||||||
# General Public License and is *not* in the public domain.
|
|
||||||
|
|
||||||
PACKAGE = @PACKAGE@
|
|
||||||
VERSION = @VERSION@
|
|
||||||
|
|
||||||
SHELL = /bin/sh
|
|
||||||
@SET_MAKE@
|
|
||||||
|
|
||||||
srcdir = @srcdir@
|
|
||||||
top_srcdir = @top_srcdir@
|
|
||||||
VPATH = @srcdir@
|
|
||||||
|
|
||||||
prefix = @prefix@
|
|
||||||
exec_prefix = @exec_prefix@
|
|
||||||
datadir = @datadir@
|
|
||||||
localedir = $(datadir)/locale
|
|
||||||
gettextsrcdir = $(datadir)/gettext/po
|
|
||||||
|
|
||||||
INSTALL = @INSTALL@
|
|
||||||
INSTALL_DATA = @INSTALL_DATA@
|
|
||||||
MKINSTALLDIRS = @MKINSTALLDIRS@
|
|
||||||
mkinstalldirs = $(SHELL) $(MKINSTALLDIRS)
|
|
||||||
|
|
||||||
GMSGFMT = @GMSGFMT@
|
|
||||||
MSGFMT = @MSGFMT@
|
|
||||||
XGETTEXT = @XGETTEXT@
|
|
||||||
MSGMERGE = msgmerge
|
|
||||||
MSGMERGE_UPDATE = @MSGMERGE@ --update
|
|
||||||
MSGINIT = msginit
|
|
||||||
MSGCONV = msgconv
|
|
||||||
MSGFILTER = msgfilter
|
|
||||||
|
|
||||||
POFILES = @POFILES@
|
|
||||||
GMOFILES = @GMOFILES@
|
|
||||||
UPDATEPOFILES = @UPDATEPOFILES@
|
|
||||||
DUMMYPOFILES = @DUMMYPOFILES@
|
|
||||||
DISTFILES.common = Makefile.in.in remove-potcdate.sin \
|
|
||||||
$(DISTFILES.common.extra1) $(DISTFILES.common.extra2) $(DISTFILES.common.extra3)
|
|
||||||
DISTFILES = $(DISTFILES.common) Makevars POTFILES.in $(DOMAIN).pot stamp-po \
|
|
||||||
$(POFILES) $(GMOFILES) \
|
|
||||||
$(DISTFILES.extra1) $(DISTFILES.extra2) $(DISTFILES.extra3)
|
|
||||||
|
|
||||||
POTFILES = \
|
|
||||||
|
|
||||||
CATALOGS = @CATALOGS@
|
|
||||||
|
|
||||||
# Makevars gets inserted here. (Don't remove this line!)
|
|
||||||
|
|
||||||
.SUFFIXES:
|
|
||||||
.SUFFIXES: .po .gmo .mo .sed .sin .nop .po-update
|
|
||||||
|
|
||||||
.po.mo:
|
|
||||||
@echo "$(MSGFMT) -c -o $@ $<"; \
|
|
||||||
$(MSGFMT) -c -o t-$@ $< && mv t-$@ $@
|
|
||||||
|
|
||||||
.po.gmo:
|
|
||||||
@lang=`echo $* | sed -e 's,.*/,,'`; \
|
|
||||||
test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \
|
|
||||||
echo "$${cdcmd}rm -f $${lang}.gmo && $(GMSGFMT) -c --statistics -o $${lang}.gmo $${lang}.po"; \
|
|
||||||
cd $(srcdir) && rm -f $${lang}.gmo && $(GMSGFMT) -c --statistics -o t-$${lang}.gmo $${lang}.po && mv t-$${lang}.gmo $${lang}.gmo
|
|
||||||
|
|
||||||
.sin.sed:
|
|
||||||
sed -e '/^#/d' $< > t-$@
|
|
||||||
mv t-$@ $@
|
|
||||||
|
|
||||||
|
|
||||||
all: all-@USE_NLS@
|
|
||||||
|
|
||||||
all-yes: stamp-po
|
|
||||||
all-no:
|
|
||||||
|
|
||||||
# stamp-po is a timestamp denoting the last time at which the CATALOGS have
|
|
||||||
# been loosely updated. Its purpose is that when a developer or translator
|
|
||||||
# checks out the package via CVS, and the $(DOMAIN).pot file is not in CVS,
|
|
||||||
# "make" will update the $(DOMAIN).pot and the $(CATALOGS), but subsequent
|
|
||||||
# invocations of "make" will do nothing. This timestamp would not be necessary
|
|
||||||
# if updating the $(CATALOGS) would always touch them; however, the rule for
|
|
||||||
# $(POFILES) has been designed to not touch files that don't need to be
|
|
||||||
# changed.
|
|
||||||
stamp-po: $(srcdir)/$(DOMAIN).pot
|
|
||||||
test -z "$(CATALOGS)" || $(MAKE) $(CATALOGS)
|
|
||||||
@echo "touch stamp-po"
|
|
||||||
@echo timestamp > stamp-poT
|
|
||||||
@mv stamp-poT stamp-po
|
|
||||||
|
|
||||||
# Note: Target 'all' must not depend on target '$(DOMAIN).pot-update',
|
|
||||||
# otherwise packages like GCC can not be built if only parts of the source
|
|
||||||
# have been downloaded.
|
|
||||||
|
|
||||||
# This target rebuilds $(DOMAIN).pot; it is an expensive operation.
|
|
||||||
# Note that $(DOMAIN).pot is not touched if it doesn't need to be changed.
|
|
||||||
$(DOMAIN).pot-update: $(POTFILES) $(srcdir)/POTFILES.in remove-potcdate.sed
|
|
||||||
$(XGETTEXT) --default-domain=$(DOMAIN) --directory=$(top_srcdir) \
|
|
||||||
--add-comments=TRANSLATORS: $(XGETTEXT_OPTIONS) \
|
|
||||||
--files-from=$(srcdir)/POTFILES.in \
|
|
||||||
--copyright-holder='$(COPYRIGHT_HOLDER)' \
|
|
||||||
--msgid-bugs-address='$(MSGID_BUGS_ADDRESS)'
|
|
||||||
test ! -f $(DOMAIN).po || { \
|
|
||||||
if test -f $(srcdir)/$(DOMAIN).pot; then \
|
|
||||||
sed -f remove-potcdate.sed < $(srcdir)/$(DOMAIN).pot > $(DOMAIN).1po && \
|
|
||||||
sed -f remove-potcdate.sed < $(DOMAIN).po > $(DOMAIN).2po && \
|
|
||||||
if cmp $(DOMAIN).1po $(DOMAIN).2po >/dev/null 2>&1; then \
|
|
||||||
rm -f $(DOMAIN).1po $(DOMAIN).2po $(DOMAIN).po; \
|
|
||||||
else \
|
|
||||||
rm -f $(DOMAIN).1po $(DOMAIN).2po $(srcdir)/$(DOMAIN).pot && \
|
|
||||||
mv $(DOMAIN).po $(srcdir)/$(DOMAIN).pot; \
|
|
||||||
fi; \
|
|
||||||
else \
|
|
||||||
mv $(DOMAIN).po $(srcdir)/$(DOMAIN).pot; \
|
|
||||||
fi; \
|
|
||||||
}
|
|
||||||
|
|
||||||
# This rule has no dependencies: we don't need to update $(DOMAIN).pot at
|
|
||||||
# every "make" invocation, only create it when it is missing.
|
|
||||||
# Only "make $(DOMAIN).pot-update" or "make dist" will force an update.
|
|
||||||
$(srcdir)/$(DOMAIN).pot:
|
|
||||||
$(MAKE) $(DOMAIN).pot-update
|
|
||||||
|
|
||||||
# This target rebuilds a PO file if $(DOMAIN).pot has changed.
|
|
||||||
# Note that a PO file is not touched if it doesn't need to be changed.
|
|
||||||
$(POFILES): $(srcdir)/$(DOMAIN).pot
|
|
||||||
@lang=`echo $@ | sed -e 's,.*/,,' -e 's/\.po$$//'`; \
|
|
||||||
test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \
|
|
||||||
echo "$${cdcmd}$(MSGMERGE_UPDATE) $${lang}.po $(DOMAIN).pot"; \
|
|
||||||
cd $(srcdir) && $(MSGMERGE_UPDATE) $${lang}.po $(DOMAIN).pot
|
|
||||||
|
|
||||||
|
|
||||||
install: install-exec install-data
|
|
||||||
install-exec:
|
|
||||||
install-data: install-data-@USE_NLS@
|
|
||||||
if test "$(PACKAGE)" = "gettext-tools"; then \
|
|
||||||
$(mkinstalldirs) $(DESTDIR)$(gettextsrcdir); \
|
|
||||||
for file in $(DISTFILES.common) Makevars.template; do \
|
|
||||||
$(INSTALL_DATA) $(srcdir)/$$file \
|
|
||||||
$(DESTDIR)$(gettextsrcdir)/$$file; \
|
|
||||||
done; \
|
|
||||||
for file in Makevars; do \
|
|
||||||
rm -f $(DESTDIR)$(gettextsrcdir)/$$file; \
|
|
||||||
done; \
|
|
||||||
else \
|
|
||||||
: ; \
|
|
||||||
fi
|
|
||||||
install-data-no: all
|
|
||||||
install-data-yes: all
|
|
||||||
$(mkinstalldirs) $(DESTDIR)$(datadir)
|
|
||||||
@catalogs='$(CATALOGS)'; \
|
|
||||||
for cat in $$catalogs; do \
|
|
||||||
cat=`basename $$cat`; \
|
|
||||||
lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \
|
|
||||||
dir=$(localedir)/$$lang/LC_MESSAGES; \
|
|
||||||
$(mkinstalldirs) $(DESTDIR)$$dir; \
|
|
||||||
if test -r $$cat; then realcat=$$cat; else realcat=$(srcdir)/$$cat; fi; \
|
|
||||||
$(INSTALL_DATA) $$realcat $(DESTDIR)$$dir/$(DOMAIN).mo; \
|
|
||||||
echo "installing $$realcat as $(DESTDIR)$$dir/$(DOMAIN).mo"; \
|
|
||||||
for lc in '' $(EXTRA_LOCALE_CATEGORIES); do \
|
|
||||||
if test -n "$$lc"; then \
|
|
||||||
if (cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc 2>/dev/null) | grep ' -> ' >/dev/null; then \
|
|
||||||
link=`cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc | sed -e 's/^.* -> //'`; \
|
|
||||||
mv $(DESTDIR)$(localedir)/$$lang/$$lc $(DESTDIR)$(localedir)/$$lang/$$lc.old; \
|
|
||||||
mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \
|
|
||||||
(cd $(DESTDIR)$(localedir)/$$lang/$$lc.old && \
|
|
||||||
for file in *; do \
|
|
||||||
if test -f $$file; then \
|
|
||||||
ln -s ../$$link/$$file $(DESTDIR)$(localedir)/$$lang/$$lc/$$file; \
|
|
||||||
fi; \
|
|
||||||
done); \
|
|
||||||
rm -f $(DESTDIR)$(localedir)/$$lang/$$lc.old; \
|
|
||||||
else \
|
|
||||||
if test -d $(DESTDIR)$(localedir)/$$lang/$$lc; then \
|
|
||||||
:; \
|
|
||||||
else \
|
|
||||||
rm -f $(DESTDIR)$(localedir)/$$lang/$$lc; \
|
|
||||||
mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \
|
|
||||||
fi; \
|
|
||||||
fi; \
|
|
||||||
rm -f $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \
|
|
||||||
ln -s ../LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo 2>/dev/null || \
|
|
||||||
ln $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo 2>/dev/null || \
|
|
||||||
cp -p $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \
|
|
||||||
echo "installing $$realcat link as $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo"; \
|
|
||||||
fi; \
|
|
||||||
done; \
|
|
||||||
done
|
|
||||||
|
|
||||||
install-strip: install
|
|
||||||
|
|
||||||
installdirs: installdirs-exec installdirs-data
|
|
||||||
installdirs-exec:
|
|
||||||
installdirs-data: installdirs-data-@USE_NLS@
|
|
||||||
if test "$(PACKAGE)" = "gettext-tools"; then \
|
|
||||||
$(mkinstalldirs) $(DESTDIR)$(gettextsrcdir); \
|
|
||||||
else \
|
|
||||||
: ; \
|
|
||||||
fi
|
|
||||||
installdirs-data-no:
|
|
||||||
installdirs-data-yes:
|
|
||||||
$(mkinstalldirs) $(DESTDIR)$(datadir)
|
|
||||||
@catalogs='$(CATALOGS)'; \
|
|
||||||
for cat in $$catalogs; do \
|
|
||||||
cat=`basename $$cat`; \
|
|
||||||
lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \
|
|
||||||
dir=$(localedir)/$$lang/LC_MESSAGES; \
|
|
||||||
$(mkinstalldirs) $(DESTDIR)$$dir; \
|
|
||||||
for lc in '' $(EXTRA_LOCALE_CATEGORIES); do \
|
|
||||||
if test -n "$$lc"; then \
|
|
||||||
if (cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc 2>/dev/null) | grep ' -> ' >/dev/null; then \
|
|
||||||
link=`cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc | sed -e 's/^.* -> //'`; \
|
|
||||||
mv $(DESTDIR)$(localedir)/$$lang/$$lc $(DESTDIR)$(localedir)/$$lang/$$lc.old; \
|
|
||||||
mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \
|
|
||||||
(cd $(DESTDIR)$(localedir)/$$lang/$$lc.old && \
|
|
||||||
for file in *; do \
|
|
||||||
if test -f $$file; then \
|
|
||||||
ln -s ../$$link/$$file $(DESTDIR)$(localedir)/$$lang/$$lc/$$file; \
|
|
||||||
fi; \
|
|
||||||
done); \
|
|
||||||
rm -f $(DESTDIR)$(localedir)/$$lang/$$lc.old; \
|
|
||||||
else \
|
|
||||||
if test -d $(DESTDIR)$(localedir)/$$lang/$$lc; then \
|
|
||||||
:; \
|
|
||||||
else \
|
|
||||||
rm -f $(DESTDIR)$(localedir)/$$lang/$$lc; \
|
|
||||||
mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \
|
|
||||||
fi; \
|
|
||||||
fi; \
|
|
||||||
fi; \
|
|
||||||
done; \
|
|
||||||
done
|
|
||||||
|
|
||||||
# Define this as empty until I found a useful application.
|
|
||||||
installcheck:
|
|
||||||
|
|
||||||
uninstall: uninstall-exec uninstall-data
|
|
||||||
uninstall-exec:
|
|
||||||
uninstall-data: uninstall-data-@USE_NLS@
|
|
||||||
if test "$(PACKAGE)" = "gettext-tools"; then \
|
|
||||||
for file in $(DISTFILES.common) Makevars.template; do \
|
|
||||||
rm -f $(DESTDIR)$(gettextsrcdir)/$$file; \
|
|
||||||
done; \
|
|
||||||
else \
|
|
||||||
: ; \
|
|
||||||
fi
|
|
||||||
uninstall-data-no:
|
|
||||||
uninstall-data-yes:
|
|
||||||
catalogs='$(CATALOGS)'; \
|
|
||||||
for cat in $$catalogs; do \
|
|
||||||
cat=`basename $$cat`; \
|
|
||||||
lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \
|
|
||||||
for lc in LC_MESSAGES $(EXTRA_LOCALE_CATEGORIES); do \
|
|
||||||
rm -f $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \
|
|
||||||
done; \
|
|
||||||
done
|
|
||||||
|
|
||||||
check: all
|
|
||||||
|
|
||||||
info dvi ps pdf html tags TAGS ctags CTAGS ID:
|
|
||||||
|
|
||||||
mostlyclean:
|
|
||||||
rm -f remove-potcdate.sed
|
|
||||||
rm -f stamp-poT
|
|
||||||
rm -f core core.* $(DOMAIN).po $(DOMAIN).1po $(DOMAIN).2po *.new.po
|
|
||||||
rm -fr *.o
|
|
||||||
|
|
||||||
clean: mostlyclean
|
|
||||||
|
|
||||||
distclean: clean
|
|
||||||
rm -f Makefile Makefile.in POTFILES *.mo
|
|
||||||
|
|
||||||
maintainer-clean: distclean
|
|
||||||
@echo "This command is intended for maintainers to use;"
|
|
||||||
@echo "it deletes files that may require special tools to rebuild."
|
|
||||||
rm -f stamp-po $(GMOFILES)
|
|
||||||
|
|
||||||
distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
|
|
||||||
dist distdir:
|
|
||||||
$(MAKE) update-po
|
|
||||||
@$(MAKE) dist2
|
|
||||||
# This is a separate target because 'update-po' must be executed before.
|
|
||||||
dist2: $(DISTFILES)
|
|
||||||
dists="$(DISTFILES)"; \
|
|
||||||
if test "$(PACKAGE)" = "gettext-tools"; then \
|
|
||||||
dists="$$dists Makevars.template"; \
|
|
||||||
fi; \
|
|
||||||
if test -f $(srcdir)/ChangeLog; then \
|
|
||||||
dists="$$dists ChangeLog"; \
|
|
||||||
fi; \
|
|
||||||
for i in 0 1 2 3 4 5 6 7 8 9; do \
|
|
||||||
if test -f $(srcdir)/ChangeLog.$$i; then \
|
|
||||||
dists="$$dists ChangeLog.$$i"; \
|
|
||||||
fi; \
|
|
||||||
done; \
|
|
||||||
if test -f $(srcdir)/LINGUAS; then dists="$$dists LINGUAS"; fi; \
|
|
||||||
for file in $$dists; do \
|
|
||||||
if test -f $$file; then \
|
|
||||||
cp -p $$file $(distdir); \
|
|
||||||
else \
|
|
||||||
cp -p $(srcdir)/$$file $(distdir); \
|
|
||||||
fi; \
|
|
||||||
done
|
|
||||||
|
|
||||||
update-po: Makefile
|
|
||||||
$(MAKE) $(DOMAIN).pot-update
|
|
||||||
test -z "$(UPDATEPOFILES)" || $(MAKE) $(UPDATEPOFILES)
|
|
||||||
$(MAKE) update-gmo
|
|
||||||
|
|
||||||
# General rule for updating PO files.
|
|
||||||
|
|
||||||
.nop.po-update:
|
|
||||||
@lang=`echo $@ | sed -e 's/\.po-update$$//'`; \
|
|
||||||
if test "$(PACKAGE)" = "gettext-tools"; then PATH=`pwd`/../src:$$PATH; fi; \
|
|
||||||
tmpdir=`pwd`; \
|
|
||||||
echo "$$lang:"; \
|
|
||||||
test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \
|
|
||||||
echo "$${cdcmd}$(MSGMERGE) $$lang.po $(DOMAIN).pot -o $$lang.new.po"; \
|
|
||||||
cd $(srcdir); \
|
|
||||||
if $(MSGMERGE) $$lang.po $(DOMAIN).pot -o $$tmpdir/$$lang.new.po; then \
|
|
||||||
if cmp $$lang.po $$tmpdir/$$lang.new.po >/dev/null 2>&1; then \
|
|
||||||
rm -f $$tmpdir/$$lang.new.po; \
|
|
||||||
else \
|
|
||||||
if mv -f $$tmpdir/$$lang.new.po $$lang.po; then \
|
|
||||||
:; \
|
|
||||||
else \
|
|
||||||
echo "msgmerge for $$lang.po failed: cannot move $$tmpdir/$$lang.new.po to $$lang.po" 1>&2; \
|
|
||||||
exit 1; \
|
|
||||||
fi; \
|
|
||||||
fi; \
|
|
||||||
else \
|
|
||||||
echo "msgmerge for $$lang.po failed!" 1>&2; \
|
|
||||||
rm -f $$tmpdir/$$lang.new.po; \
|
|
||||||
fi
|
|
||||||
|
|
||||||
$(DUMMYPOFILES):
|
|
||||||
|
|
||||||
update-gmo: Makefile $(GMOFILES)
|
|
||||||
@:
|
|
||||||
|
|
||||||
Makefile: Makefile.in.in $(top_builddir)/config.status @POMAKEFILEDEPS@
|
|
||||||
cd $(top_builddir) \
|
|
||||||
&& CONFIG_FILES=$(subdir)/$@.in CONFIG_HEADERS= \
|
|
||||||
$(SHELL) ./config.status
|
|
||||||
|
|
||||||
force:
|
|
||||||
|
|
||||||
# Tell versions [3.59,3.63) of GNU make not to export all variables.
|
|
||||||
# Otherwise a system limit (for SysV at least) may be exceeded.
|
|
||||||
.NOEXPORT:
|
|
||||||
41
po/Makevars
41
po/Makevars
@@ -1,41 +0,0 @@
|
|||||||
# Makefile variables for PO directory in any package using GNU gettext.
|
|
||||||
|
|
||||||
# Usually the message domain is the same as the package name.
|
|
||||||
DOMAIN = $(PACKAGE)
|
|
||||||
|
|
||||||
# These two variables depend on the location of this directory.
|
|
||||||
subdir = po
|
|
||||||
top_builddir = ..
|
|
||||||
|
|
||||||
# These options get passed to xgettext.
|
|
||||||
XGETTEXT_OPTIONS = --keyword=_ --keyword=N_
|
|
||||||
|
|
||||||
# This is the copyright holder that gets inserted into the header of the
|
|
||||||
# $(DOMAIN).pot file. Set this to the copyright holder of the surrounding
|
|
||||||
# package. (Note that the msgstr strings, extracted from the package's
|
|
||||||
# sources, belong to the copyright holder of the package.) Translators are
|
|
||||||
# expected to transfer the copyright for their translations to this person
|
|
||||||
# or entity, or to disclaim their copyright. The empty string stands for
|
|
||||||
# the public domain; in this case the translators are expected to disclaim
|
|
||||||
# their copyright.
|
|
||||||
COPYRIGHT_HOLDER = Free Software Foundation, Inc.
|
|
||||||
|
|
||||||
# This is the email address or URL to which the translators shall report
|
|
||||||
# bugs in the untranslated strings:
|
|
||||||
# - Strings which are not entire sentences, see the maintainer guidelines
|
|
||||||
# in the GNU gettext documentation, section 'Preparing Strings'.
|
|
||||||
# - Strings which use unclear terms or require additional context to be
|
|
||||||
# understood.
|
|
||||||
# - Strings which make invalid assumptions about notation of date, time or
|
|
||||||
# money.
|
|
||||||
# - Pluralisation problems.
|
|
||||||
# - Incorrect English spelling.
|
|
||||||
# - Incorrect formatting.
|
|
||||||
# It can be your email address, or a mailing list address where translators
|
|
||||||
# can write to without being subscribed, or the URL of a web page through
|
|
||||||
# which the translators can contact you.
|
|
||||||
MSGID_BUGS_ADDRESS = bug-bison@gnu.org
|
|
||||||
|
|
||||||
# This is the list of locale categories, beyond LC_MESSAGES, for which the
|
|
||||||
# message catalogs shall be used. It is usually empty.
|
|
||||||
EXTRA_LOCALE_CATEGORIES =
|
|
||||||
710
po/da.po
710
po/da.po
@@ -1,710 +0,0 @@
|
|||||||
# Danish messages for bison.
|
|
||||||
# Copyright © 2001, 2002 Free Software Foundation, Inc.
|
|
||||||
# Keld Simonsen <keld@dkuug.dk>, 2002.
|
|
||||||
# Byrial Ole Jensen <byrial@image.dk>, 2002-2003.
|
|
||||||
#
|
|
||||||
msgid ""
|
|
||||||
msgstr ""
|
|
||||||
"Project-Id-Version: bison 1.875a\n"
|
|
||||||
"Report-Msgid-Bugs-To: bug-bison@gnu.org\n"
|
|
||||||
"POT-Creation-Date: 2003-08-25 17:14+0200\n"
|
|
||||||
"PO-Revision-Date: 2003-04-12 22:57+0200\n"
|
|
||||||
"Last-Translator: Byrial Ole Jensen <byrial@image.dk>\n"
|
|
||||||
"Language-Team: Danish <dansk@klid.dk>\n"
|
|
||||||
"MIME-Version: 1.0\n"
|
|
||||||
"Content-Type: text/plain; charset=iso-8859-1\n"
|
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
|
||||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
|
||||||
|
|
||||||
#: src/complain.c:56 lib/error.c:135 lib/error.c:163
|
|
||||||
msgid "Unknown system error"
|
|
||||||
msgstr "Ukendt systemfejl"
|
|
||||||
|
|
||||||
#: src/complain.c:79 src/complain.c:94
|
|
||||||
msgid "warning: "
|
|
||||||
msgstr "advarsel: "
|
|
||||||
|
|
||||||
#: src/complain.c:150 src/complain.c:166
|
|
||||||
msgid "fatal error: "
|
|
||||||
msgstr "fatal fejl: "
|
|
||||||
|
|
||||||
#: src/conflicts.c:75
|
|
||||||
#, c-format
|
|
||||||
msgid " Conflict between rule %d and token %s resolved as shift"
|
|
||||||
msgstr " Konflikt mellem regel %d og element %s løstes som skift"
|
|
||||||
|
|
||||||
#: src/conflicts.c:83
|
|
||||||
#, c-format
|
|
||||||
msgid " Conflict between rule %d and token %s resolved as reduce"
|
|
||||||
msgstr " Konflikt mellem regel %d og element %s løstes som reducér"
|
|
||||||
|
|
||||||
#: src/conflicts.c:90
|
|
||||||
#, c-format
|
|
||||||
msgid " Conflict between rule %d and token %s resolved as an error"
|
|
||||||
msgstr " Konflikt mellem regel %d og element %s løstes som en fejl"
|
|
||||||
|
|
||||||
#: src/conflicts.c:398
|
|
||||||
#, c-format
|
|
||||||
msgid "conflicts: %d shift/reduce, %d reduce/reduce\n"
|
|
||||||
msgstr "konflikter: %d skift/reducér, %d reducér/reducér\n"
|
|
||||||
|
|
||||||
#: src/conflicts.c:401
|
|
||||||
#, c-format
|
|
||||||
msgid "conflicts: %d shift/reduce\n"
|
|
||||||
msgstr "konflikter: %d skift/reducér\n"
|
|
||||||
|
|
||||||
#: src/conflicts.c:403
|
|
||||||
#, c-format
|
|
||||||
msgid "conflicts: %d reduce/reduce\n"
|
|
||||||
msgstr "konflikter: %d reducér/reducér\n"
|
|
||||||
|
|
||||||
#: src/conflicts.c:421
|
|
||||||
#, c-format
|
|
||||||
msgid "State %d "
|
|
||||||
msgstr "Tilstand %d "
|
|
||||||
|
|
||||||
#: src/conflicts.c:498
|
|
||||||
#, c-format
|
|
||||||
msgid "expected %d shift/reduce conflict"
|
|
||||||
msgid_plural "expected %d shift/reduce conflicts"
|
|
||||||
msgstr[0] "forventede %d skift/reducér-konflikt"
|
|
||||||
msgstr[1] "forventede %d skift/reducér-konflikter"
|
|
||||||
|
|
||||||
#: src/conflicts.c:503
|
|
||||||
msgid "expected 0 reduce/reduce conflicts"
|
|
||||||
msgstr "forventede 0 reducér/reducér-konflikter"
|
|
||||||
|
|
||||||
#: src/files.c:99
|
|
||||||
#, c-format
|
|
||||||
msgid "cannot open file `%s'"
|
|
||||||
msgstr "kan ikke åbne filen \"%s\""
|
|
||||||
|
|
||||||
#: src/files.c:115
|
|
||||||
msgid "I/O error"
|
|
||||||
msgstr "Fejl ved ind- eller udlæsning"
|
|
||||||
|
|
||||||
#: src/files.c:118
|
|
||||||
msgid "cannot close file"
|
|
||||||
msgstr "kan ikke lukke fil"
|
|
||||||
|
|
||||||
#: src/files.c:336
|
|
||||||
#, c-format
|
|
||||||
msgid "conflicting outputs to file %s"
|
|
||||||
msgstr "konfliktende uddata til filen %s"
|
|
||||||
|
|
||||||
#: src/getargs.c:186
|
|
||||||
#, c-format
|
|
||||||
msgid "Try `%s --help' for more information.\n"
|
|
||||||
msgstr "Prøv med \"%s --help\" for mere information.\n"
|
|
||||||
|
|
||||||
#: src/getargs.c:192
|
|
||||||
msgid "GNU bison generates parsers for LALR(1) grammars.\n"
|
|
||||||
msgstr "GNU bison genererer fortolkere til LALR(1)-grammatiker.\n"
|
|
||||||
|
|
||||||
#: src/getargs.c:196
|
|
||||||
#, c-format
|
|
||||||
msgid "Usage: %s [OPTION]... FILE\n"
|
|
||||||
msgstr "Brug: %s [FLAG]... FIL\n"
|
|
||||||
|
|
||||||
#: src/getargs.c:200
|
|
||||||
msgid ""
|
|
||||||
"If a long option shows an argument as mandatory, then it is mandatory\n"
|
|
||||||
"for the equivalent short option also. Similarly for optional arguments.\n"
|
|
||||||
msgstr ""
|
|
||||||
"Hvis et lang flag viser et argument som obligatorisk, er det også\n"
|
|
||||||
"obligatorisk for det tilsvarende korte flag. Tilsvarende\n"
|
|
||||||
"for valgfrie argumenter.\n"
|
|
||||||
|
|
||||||
#: src/getargs.c:206
|
|
||||||
msgid ""
|
|
||||||
"Operation modes:\n"
|
|
||||||
" -h, --help display this help and exit\n"
|
|
||||||
" -V, --version output version information and exit\n"
|
|
||||||
" -y, --yacc emulate POSIX yacc\n"
|
|
||||||
msgstr ""
|
|
||||||
"Arbejdstilstande:\n"
|
|
||||||
" -h, --help vis denne hjælpetekst og afslut\n"
|
|
||||||
" -V, --version vis versionsinformation og afslut\n"
|
|
||||||
" -y, --yacc emulér POSIX-yacc\n"
|
|
||||||
|
|
||||||
#: src/getargs.c:213
|
|
||||||
msgid ""
|
|
||||||
"Parser:\n"
|
|
||||||
" -S, --skeleton=FILE specify the skeleton to use\n"
|
|
||||||
" -t, --debug instrument the parser for debugging\n"
|
|
||||||
" --locations enable locations computation\n"
|
|
||||||
" -p, --name-prefix=PREFIX prepend PREFIX to the external symbols\n"
|
|
||||||
" -l, --no-lines don't generate `#line' directives\n"
|
|
||||||
" -n, --no-parser generate the tables only\n"
|
|
||||||
" -k, --token-table include a table of token names\n"
|
|
||||||
msgstr ""
|
|
||||||
"Fortolker:\n"
|
|
||||||
" -S, --skeleton=FIL angiv skeletfilen som skal bruges\n"
|
|
||||||
" -t, --debug instrumentér fortolkeren for fejlsøgning\n"
|
|
||||||
" --locations aktivér tilstandsberegning\n"
|
|
||||||
" -p, --name-prefix=PRÆFIKS tilføj PRÆFIKS for eksterne symboler\n"
|
|
||||||
" -l, --no-lines generér ikke \"#line\"-direktiver\n"
|
|
||||||
" -n, --no-parser generér kun tabellerne\n"
|
|
||||||
" -k, --token-table inkludér en tabel over elementnavne\n"
|
|
||||||
|
|
||||||
#: src/getargs.c:225
|
|
||||||
msgid ""
|
|
||||||
"Output:\n"
|
|
||||||
" -d, --defines also produce a header file\n"
|
|
||||||
" -r, --report=THINGS also produce details on the automaton\n"
|
|
||||||
" -v, --verbose same as `--report=state'\n"
|
|
||||||
" -b, --file-prefix=PREFIX specify a PREFIX for output files\n"
|
|
||||||
" -o, --output=FILE leave output to FILE\n"
|
|
||||||
" -g, --graph also produce a VCG description of the "
|
|
||||||
"automaton\n"
|
|
||||||
msgstr ""
|
|
||||||
"Uddata:\n"
|
|
||||||
" -d, --defines lav også en hovedfil\n"
|
|
||||||
" -r, --report=SAGER lav også detaljer om automaten\n"
|
|
||||||
" -v, --verbose samme som \"--report=state\"\n"
|
|
||||||
" -b, --file-prefix=PRÆFIKS angiv et PRÆFIKS for uddatafiler\n"
|
|
||||||
" -o, --output=FIL læg uddata i FIL\n"
|
|
||||||
" -g, --graph lav også en VCG-beskrivelse af automaten\n"
|
|
||||||
|
|
||||||
#: src/getargs.c:236
|
|
||||||
msgid ""
|
|
||||||
"THINGS is a list of comma separated words that can include:\n"
|
|
||||||
" `state' describe the states\n"
|
|
||||||
" `itemset' complete the core item sets with their closure\n"
|
|
||||||
" `lookahead' explicitly associate lookaheads to items\n"
|
|
||||||
" `solved' describe shift/reduce conflicts solving\n"
|
|
||||||
" `all' include all the above information\n"
|
|
||||||
" `none' disable the report\n"
|
|
||||||
msgstr ""
|
|
||||||
"TING er en liste med kommaseparerede ord som kan indeholde:\n"
|
|
||||||
" \"state\" beskriv tilstandene\n"
|
|
||||||
" \"itemset\" komplettér kerneobjektmængderne med deres afslutninger\n"
|
|
||||||
" \"lookahead\" kobl udtrykkeligt fremadkig til objekter\n"
|
|
||||||
" \"solved\" beskriv løsninger af skift/reducér-konflikter\n"
|
|
||||||
" \"all\" inkludér al ovenstående information\n"
|
|
||||||
" \"none\" deaktivér rapporten\n"
|
|
||||||
|
|
||||||
#: src/getargs.c:247
|
|
||||||
msgid "Report bugs to <bug-bison@gnu.org>.\n"
|
|
||||||
msgstr ""
|
|
||||||
"Rapportér fejl til <bug-bison@gnu.org>.\n"
|
|
||||||
"Rapportér synpunkter om oversættelsen til <dansk@klid.dk>.\n"
|
|
||||||
|
|
||||||
#: src/getargs.c:264
|
|
||||||
#, c-format
|
|
||||||
msgid "bison (GNU Bison) %s"
|
|
||||||
msgstr "bison (GNU Bison) %s"
|
|
||||||
|
|
||||||
#: src/getargs.c:266
|
|
||||||
msgid "Written by Robert Corbett and Richard Stallman.\n"
|
|
||||||
msgstr "Skrevet af Robert Corbett og Richard Stallman.\n"
|
|
||||||
|
|
||||||
#: src/getargs.c:270
|
|
||||||
#, c-format
|
|
||||||
msgid "Copyright (C) %d Free Software Foundation, Inc.\n"
|
|
||||||
msgstr "Copyright © %d Free Software Foundation, Inc.\n"
|
|
||||||
|
|
||||||
#: src/getargs.c:272
|
|
||||||
msgid ""
|
|
||||||
"This is free software; see the source for copying conditions. There is NO\n"
|
|
||||||
"warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n"
|
|
||||||
msgstr ""
|
|
||||||
"Dette er frit programmel, se kildekoden for kopieringsbetingelser. Der\n"
|
|
||||||
"gives INGEN garanti, endog ikke for SALGBARHED eller EGNETHED FOR NOGET\n"
|
|
||||||
"BESTEMT FORMÅL.\n"
|
|
||||||
|
|
||||||
#: src/getargs.c:438
|
|
||||||
#, c-format
|
|
||||||
msgid "missing operand after `%s'"
|
|
||||||
msgstr "manglende operand efter \"%s\""
|
|
||||||
|
|
||||||
#: src/getargs.c:440
|
|
||||||
#, c-format
|
|
||||||
msgid "extra operand `%s'"
|
|
||||||
msgstr "overtallig operand \"%s\""
|
|
||||||
|
|
||||||
#: src/gram.c:139
|
|
||||||
msgid "empty"
|
|
||||||
msgstr "tom"
|
|
||||||
|
|
||||||
#: src/gram.c:233
|
|
||||||
msgid "Grammar"
|
|
||||||
msgstr "Grammatik"
|
|
||||||
|
|
||||||
#: src/gram.c:321 src/reduce.c:394
|
|
||||||
msgid "warning"
|
|
||||||
msgstr "advarsel"
|
|
||||||
|
|
||||||
#: src/main.c:124
|
|
||||||
msgid "rule never reduced because of conflicts"
|
|
||||||
msgstr "regel aldrig reduceret på grund af konflikter"
|
|
||||||
|
|
||||||
#: src/parse-gram.y:353
|
|
||||||
msgid "POSIX forbids declarations in the grammar"
|
|
||||||
msgstr "POSIX forbyder deklarationer i grammatikken"
|
|
||||||
|
|
||||||
#: src/parse-gram.y:476
|
|
||||||
msgid "missing identifier in parameter declaration"
|
|
||||||
msgstr "manglende identifikator i parameterdeklaration"
|
|
||||||
|
|
||||||
#: src/print.c:49
|
|
||||||
#, c-format
|
|
||||||
msgid " type %d is %s\n"
|
|
||||||
msgstr " type %d er %s\n"
|
|
||||||
|
|
||||||
#: src/print.c:165
|
|
||||||
#, c-format
|
|
||||||
msgid "shift, and go to state %d\n"
|
|
||||||
msgstr "skift, og gå til tilstand %d\n"
|
|
||||||
|
|
||||||
#: src/print.c:167
|
|
||||||
#, c-format
|
|
||||||
msgid "go to state %d\n"
|
|
||||||
msgstr "gå til tilstand %d\n"
|
|
||||||
|
|
||||||
#: src/print.c:204
|
|
||||||
msgid "error (nonassociative)\n"
|
|
||||||
msgstr "fejl (ikke-associativ)\n"
|
|
||||||
|
|
||||||
#: src/print.c:292
|
|
||||||
#, c-format
|
|
||||||
msgid "reduce using rule %d (%s)"
|
|
||||||
msgstr "reducér med regel %d (%s)"
|
|
||||||
|
|
||||||
#: src/print.c:294
|
|
||||||
msgid "accept"
|
|
||||||
msgstr "acceptér"
|
|
||||||
|
|
||||||
#: src/print.c:325 src/print.c:391
|
|
||||||
msgid "$default"
|
|
||||||
msgstr "$default"
|
|
||||||
|
|
||||||
#: src/print.c:420
|
|
||||||
#, c-format
|
|
||||||
msgid "state %d"
|
|
||||||
msgstr "tilstand %d"
|
|
||||||
|
|
||||||
#: src/print.c:456
|
|
||||||
msgid "Terminals, with rules where they appear"
|
|
||||||
msgstr "Terminaler, med regler hvor de forekommer"
|
|
||||||
|
|
||||||
#: src/print.c:483
|
|
||||||
msgid "Nonterminals, with rules where they appear"
|
|
||||||
msgstr "Ikke-terminaler, med regler hvor de forekommer"
|
|
||||||
|
|
||||||
#: src/print.c:512
|
|
||||||
msgid " on left:"
|
|
||||||
msgstr " til venstre:"
|
|
||||||
|
|
||||||
#: src/print.c:527
|
|
||||||
msgid " on right:"
|
|
||||||
msgstr " til højre:"
|
|
||||||
|
|
||||||
#: src/print.c:555
|
|
||||||
msgid "Rules never reduced"
|
|
||||||
msgstr "Aldrig reducerede regler"
|
|
||||||
|
|
||||||
#: src/reader.c:53
|
|
||||||
#, c-format
|
|
||||||
msgid "multiple %s declarations"
|
|
||||||
msgstr "flere %s-deklarationer"
|
|
||||||
|
|
||||||
#: src/reader.c:115
|
|
||||||
#, c-format
|
|
||||||
msgid "result type clash on merge function %s: <%s> != <%s>"
|
|
||||||
msgstr "resultattypekonflikt ved sammenfletningsfunktion %s: <%s> != <%s>"
|
|
||||||
|
|
||||||
#: src/reader.c:213
|
|
||||||
#, c-format
|
|
||||||
msgid "rule given for %s, which is a token"
|
|
||||||
msgstr "regel givet for %s som er et element"
|
|
||||||
|
|
||||||
#: src/reader.c:242
|
|
||||||
#, c-format
|
|
||||||
msgid "type clash on default action: <%s> != <%s>"
|
|
||||||
msgstr "typekonflikt for standardhandling: <%s> != <%s>"
|
|
||||||
|
|
||||||
#: src/reader.c:248
|
|
||||||
msgid "empty rule for typed nonterminal, and no action"
|
|
||||||
msgstr "tom regel for typet ikke-terminal, og ingen handling"
|
|
||||||
|
|
||||||
#: src/reader.c:318 src/reader.c:332 src/reader.c:345
|
|
||||||
#, c-format
|
|
||||||
msgid "only one %s allowed per rule"
|
|
||||||
msgstr "kun en %s tilladt per regel"
|
|
||||||
|
|
||||||
#: src/reader.c:328 src/reader.c:343
|
|
||||||
#, c-format
|
|
||||||
msgid "%s affects only GLR parsers"
|
|
||||||
msgstr "%s påvirker kun GLR-fortolkere"
|
|
||||||
|
|
||||||
#: src/reader.c:330
|
|
||||||
#, c-format
|
|
||||||
msgid "%s must be followed by positive number"
|
|
||||||
msgstr "%s skal følges af et positivt tal"
|
|
||||||
|
|
||||||
#: src/reader.c:487
|
|
||||||
msgid "no rules in the input grammar"
|
|
||||||
msgstr "ingen regler i inddatagrammatikken"
|
|
||||||
|
|
||||||
#: src/reduce.c:242
|
|
||||||
msgid "useless rule"
|
|
||||||
msgstr "ubrugelig regel"
|
|
||||||
|
|
||||||
#: src/reduce.c:303
|
|
||||||
#, c-format
|
|
||||||
msgid "useless nonterminal: %s"
|
|
||||||
msgstr "ubrugelig ikke-terminal: %s"
|
|
||||||
|
|
||||||
#: src/reduce.c:351
|
|
||||||
msgid "Useless nonterminals"
|
|
||||||
msgstr "Ubrugelige ikke-terminaler"
|
|
||||||
|
|
||||||
#: src/reduce.c:364
|
|
||||||
msgid "Terminals which are not used"
|
|
||||||
msgstr "Terminaler som ikke bruges"
|
|
||||||
|
|
||||||
#: src/reduce.c:373
|
|
||||||
msgid "Useless rules"
|
|
||||||
msgstr "Ubrugelige regler"
|
|
||||||
|
|
||||||
#: src/reduce.c:389
|
|
||||||
#, c-format
|
|
||||||
msgid "%d rule never reduced\n"
|
|
||||||
msgid_plural "%d rules never reduced\n"
|
|
||||||
msgstr[0] "%d regel reduceres aldrig\n"
|
|
||||||
msgstr[1] "%d regler reduceres aldrig\n"
|
|
||||||
|
|
||||||
#: src/reduce.c:397
|
|
||||||
#, c-format
|
|
||||||
msgid "%d useless nonterminal"
|
|
||||||
msgid_plural "%d useless nonterminals"
|
|
||||||
msgstr[0] "%d ubrugelig ikke-terminal"
|
|
||||||
msgstr[1] "%d ubrugelige ikke-terminaler"
|
|
||||||
|
|
||||||
#: src/reduce.c:403
|
|
||||||
msgid " and "
|
|
||||||
msgstr " og "
|
|
||||||
|
|
||||||
#: src/reduce.c:406
|
|
||||||
#, c-format
|
|
||||||
msgid "%d useless rule"
|
|
||||||
msgid_plural "%d useless rules"
|
|
||||||
msgstr[0] "%d ubrugelig regel"
|
|
||||||
msgstr[1] "%d ubrugelige regler"
|
|
||||||
|
|
||||||
#: src/reduce.c:436
|
|
||||||
#, c-format
|
|
||||||
msgid "start symbol %s does not derive any sentence"
|
|
||||||
msgstr "startsymbolet %s genererer ingen sætninger"
|
|
||||||
|
|
||||||
#: src/scan-gram.l:160
|
|
||||||
msgid "stray `,' treated as white space"
|
|
||||||
msgstr "Malplaceret \",\" behandlet som blanktegn"
|
|
||||||
|
|
||||||
#: src/scan-gram.l:221
|
|
||||||
#, c-format
|
|
||||||
msgid "invalid directive: %s"
|
|
||||||
msgstr "ugyldigt direktiv: %s"
|
|
||||||
|
|
||||||
#: src/scan-gram.l:241 src/scan-gram.l:804 src/scan-gram.l:873
|
|
||||||
#, c-format
|
|
||||||
msgid "integer out of range: %s"
|
|
||||||
msgstr "heltal uden for gyldigshedsområdet: %s"
|
|
||||||
|
|
||||||
#: src/scan-gram.l:283
|
|
||||||
#, c-format
|
|
||||||
msgid "invalid character: %s"
|
|
||||||
msgstr "ugyldigt tegn: %s"
|
|
||||||
|
|
||||||
#: src/scan-gram.l:412 src/scan-gram.l:422 src/scan-gram.l:441
|
|
||||||
#, c-format
|
|
||||||
msgid "invalid escape sequence: %s"
|
|
||||||
msgstr "ugyldig undvigesekvens: %s"
|
|
||||||
|
|
||||||
#: src/scan-gram.l:446
|
|
||||||
#, c-format
|
|
||||||
msgid "unrecognized escape sequence: %s"
|
|
||||||
msgstr "ukendt undvigesekvens: %s"
|
|
||||||
|
|
||||||
#: src/scan-gram.l:534
|
|
||||||
#, c-format
|
|
||||||
msgid "missing `{' in `%s'"
|
|
||||||
msgstr "manglende \"{\" i \"%s\""
|
|
||||||
|
|
||||||
#: src/scan-gram.l:774
|
|
||||||
#, c-format
|
|
||||||
msgid "$$ of `%s' has no declared type"
|
|
||||||
msgstr "$$ for \"%s\" har ingen erklæret type"
|
|
||||||
|
|
||||||
#: src/scan-gram.l:795
|
|
||||||
#, c-format
|
|
||||||
msgid "$%d of `%s' has no declared type"
|
|
||||||
msgstr "$%d for \"%s\" har ingen erklæret type"
|
|
||||||
|
|
||||||
#: src/scan-gram.l:840 src/scan-gram.l:908
|
|
||||||
#, c-format
|
|
||||||
msgid "invalid value: %s"
|
|
||||||
msgstr "fejlagtig værdi: %s"
|
|
||||||
|
|
||||||
#: src/scan-gram.l:996
|
|
||||||
#, c-format
|
|
||||||
msgid "missing `%s' at end of file"
|
|
||||||
msgstr "manglende \"%s\" ved slutningen af filen"
|
|
||||||
|
|
||||||
#: src/symlist.c:97 src/symlist.c:108
|
|
||||||
msgid "invalid $ value"
|
|
||||||
msgstr "fejlagtig $-værdi"
|
|
||||||
|
|
||||||
#: src/symtab.c:84
|
|
||||||
#, c-format
|
|
||||||
msgid "type redeclaration for %s"
|
|
||||||
msgstr "gentagen typeerklæring for %s"
|
|
||||||
|
|
||||||
#: src/symtab.c:101 src/symtab.c:119
|
|
||||||
#, c-format
|
|
||||||
msgid "%s redeclaration for %s"
|
|
||||||
msgstr "gentagen %s-erklæring for %s"
|
|
||||||
|
|
||||||
#: src/symtab.c:138
|
|
||||||
#, c-format
|
|
||||||
msgid "redefining precedence of %s"
|
|
||||||
msgstr "redefinition af præcedens for %s"
|
|
||||||
|
|
||||||
#: src/symtab.c:156
|
|
||||||
#, c-format
|
|
||||||
msgid "symbol %s redefined"
|
|
||||||
msgstr "symbol %s redefineret"
|
|
||||||
|
|
||||||
#: src/symtab.c:179
|
|
||||||
#, c-format
|
|
||||||
msgid "redefining user token number of %s"
|
|
||||||
msgstr "redefinition af elementnummer for %s"
|
|
||||||
|
|
||||||
#: src/symtab.c:206
|
|
||||||
#, c-format
|
|
||||||
msgid "symbol %s is used, but is not defined as a token and has no rules"
|
|
||||||
msgstr ""
|
|
||||||
"symbol %s bruges, men er ikke defineret som et element og har ingen regler"
|
|
||||||
|
|
||||||
#: src/symtab.c:231
|
|
||||||
#, c-format
|
|
||||||
msgid "symbol `%s' used more than once as a literal string"
|
|
||||||
msgstr "symbol \"%s\" bruges mere end en gang som en bogstavelig streng"
|
|
||||||
|
|
||||||
#: src/symtab.c:234
|
|
||||||
#, c-format
|
|
||||||
msgid "symbol `%s' given more than one literal string"
|
|
||||||
msgstr "symbol \"%s\" har fået mere end én bogstavelig streng"
|
|
||||||
|
|
||||||
#: src/symtab.c:270
|
|
||||||
#, c-format
|
|
||||||
msgid "conflicting precedences for %s and %s"
|
|
||||||
msgstr "modstridige præcedenser mellem %s og %s"
|
|
||||||
|
|
||||||
#: src/symtab.c:282
|
|
||||||
#, c-format
|
|
||||||
msgid "conflicting associativities for %s (%s) and %s (%s)"
|
|
||||||
msgstr "modstridige associativiteter for %s (%s) og %s (%s)"
|
|
||||||
|
|
||||||
#: src/symtab.c:367
|
|
||||||
#, c-format
|
|
||||||
msgid "tokens %s and %s both assigned number %d"
|
|
||||||
msgstr "elementerne %s og %s har begge fået nummer %d"
|
|
||||||
|
|
||||||
#: src/symtab.c:590
|
|
||||||
#, c-format
|
|
||||||
msgid "the start symbol %s is undefined"
|
|
||||||
msgstr "startsymbolet %s er udefineret"
|
|
||||||
|
|
||||||
#: src/symtab.c:594
|
|
||||||
#, c-format
|
|
||||||
msgid "the start symbol %s is a token"
|
|
||||||
msgstr "startsymbolet %s er et element"
|
|
||||||
|
|
||||||
#: lib/argmatch.c:135
|
|
||||||
#, c-format
|
|
||||||
msgid "invalid argument %s for %s"
|
|
||||||
msgstr "ugyldigt argument %s til %s"
|
|
||||||
|
|
||||||
#: lib/argmatch.c:136
|
|
||||||
#, c-format
|
|
||||||
msgid "ambiguous argument %s for %s"
|
|
||||||
msgstr "flertydigt argument %s til %s"
|
|
||||||
|
|
||||||
#: lib/argmatch.c:155
|
|
||||||
msgid "Valid arguments are:"
|
|
||||||
msgstr "Gyldige argumenter er:"
|
|
||||||
|
|
||||||
#: lib/bitset_stats.c:179
|
|
||||||
#, c-format
|
|
||||||
msgid "%u bitset_allocs, %u freed (%.2f%%).\n"
|
|
||||||
msgstr "%u bitmængdeallokeringer, %u frigjort (%.2f%%).\n"
|
|
||||||
|
|
||||||
#: lib/bitset_stats.c:182
|
|
||||||
#, c-format
|
|
||||||
msgid "%u bitset_sets, %u cached (%.2f%%)\n"
|
|
||||||
msgstr "%u bitmængdeindstillinger, %u cachede (%.2f%%)\n"
|
|
||||||
|
|
||||||
#: lib/bitset_stats.c:185
|
|
||||||
#, c-format
|
|
||||||
msgid "%u bitset_resets, %u cached (%.2f%%)\n"
|
|
||||||
msgstr "%u bitmængdenulstillinger, %u cachede (%.2f%%)\n"
|
|
||||||
|
|
||||||
#: lib/bitset_stats.c:188
|
|
||||||
#, c-format
|
|
||||||
msgid "%u bitset_tests, %u cached (%.2f%%)\n"
|
|
||||||
msgstr "%u bitmængdetest, %u cachede (%.2f%%)\n"
|
|
||||||
|
|
||||||
#: lib/bitset_stats.c:192
|
|
||||||
#, c-format
|
|
||||||
msgid "%u bitset_lists\n"
|
|
||||||
msgstr "%u bitmængdelister\n"
|
|
||||||
|
|
||||||
#: lib/bitset_stats.c:194
|
|
||||||
msgid "count log histogram\n"
|
|
||||||
msgstr "kaldsloghistogram\n"
|
|
||||||
|
|
||||||
#: lib/bitset_stats.c:197
|
|
||||||
msgid "size log histogram\n"
|
|
||||||
msgstr "størrelsesloghistogram\n"
|
|
||||||
|
|
||||||
#: lib/bitset_stats.c:200
|
|
||||||
msgid "density histogram\n"
|
|
||||||
msgstr "densitetshistogram\n"
|
|
||||||
|
|
||||||
#: lib/bitset_stats.c:214
|
|
||||||
msgid ""
|
|
||||||
"Bitset statistics:\n"
|
|
||||||
"\n"
|
|
||||||
msgstr ""
|
|
||||||
"Bitmængdestatistik:\n"
|
|
||||||
"\n"
|
|
||||||
|
|
||||||
#: lib/bitset_stats.c:217
|
|
||||||
#, c-format
|
|
||||||
msgid "Accumulated runs = %u\n"
|
|
||||||
msgstr "Akkumulerede kørsler = %u\n"
|
|
||||||
|
|
||||||
#: lib/bitset_stats.c:261 lib/bitset_stats.c:266
|
|
||||||
msgid "Could not read stats file."
|
|
||||||
msgstr "Kunne ikke læse statistikfil."
|
|
||||||
|
|
||||||
#: lib/bitset_stats.c:263
|
|
||||||
msgid "Bad stats file size.\n"
|
|
||||||
msgstr "Dårlig statistikfilstørrelse.\n"
|
|
||||||
|
|
||||||
#: lib/bitset_stats.c:289 lib/bitset_stats.c:291
|
|
||||||
msgid "Could not write stats file."
|
|
||||||
msgstr "Kunne ikke skrive statistikfil."
|
|
||||||
|
|
||||||
#: lib/bitset_stats.c:294
|
|
||||||
msgid "Could not open stats file for writing."
|
|
||||||
msgstr "Kunne ikke åbne statistikfil for skrivning."
|
|
||||||
|
|
||||||
#: lib/getopt.c:688 lib/getopt.c:700
|
|
||||||
#, c-format
|
|
||||||
msgid "%s: option `%s' is ambiguous\n"
|
|
||||||
msgstr "%s: flaget \"%s\" er flertydigt\n"
|
|
||||||
|
|
||||||
#: lib/getopt.c:733 lib/getopt.c:737
|
|
||||||
#, c-format
|
|
||||||
msgid "%s: option `--%s' doesn't allow an argument\n"
|
|
||||||
msgstr "%s: flaget \"--%s\" tager intet argument\n"
|
|
||||||
|
|
||||||
#: lib/getopt.c:746 lib/getopt.c:751
|
|
||||||
#, c-format
|
|
||||||
msgid "%s: option `%c%s' doesn't allow an argument\n"
|
|
||||||
msgstr "%s: flaget \"%c%s\" tager intet argument\n"
|
|
||||||
|
|
||||||
#: lib/getopt.c:787 lib/getopt.c:800 lib/getopt.c:1089 lib/getopt.c:1102
|
|
||||||
#, c-format
|
|
||||||
msgid "%s: option `%s' requires an argument\n"
|
|
||||||
msgstr "%s: flaget \"%s\" behøver et argument\n"
|
|
||||||
|
|
||||||
#: lib/getopt.c:838 lib/getopt.c:841
|
|
||||||
#, c-format
|
|
||||||
msgid "%s: unrecognized option `--%s'\n"
|
|
||||||
msgstr "%s: ukendt flag \"--%s\"\n"
|
|
||||||
|
|
||||||
#: lib/getopt.c:849 lib/getopt.c:852
|
|
||||||
#, c-format
|
|
||||||
msgid "%s: unrecognized option `%c%s'\n"
|
|
||||||
msgstr "%s: ukendt flag \"%c%s\"\n"
|
|
||||||
|
|
||||||
#: lib/getopt.c:899 lib/getopt.c:902
|
|
||||||
#, c-format
|
|
||||||
msgid "%s: illegal option -- %c\n"
|
|
||||||
msgstr "%s: ikke tilladt flag -- %c\n"
|
|
||||||
|
|
||||||
#: lib/getopt.c:908 lib/getopt.c:911
|
|
||||||
#, c-format
|
|
||||||
msgid "%s: invalid option -- %c\n"
|
|
||||||
msgstr "%s: ugyldigt flag --%c\n"
|
|
||||||
|
|
||||||
#: lib/getopt.c:958 lib/getopt.c:969 lib/getopt.c:1155 lib/getopt.c:1168
|
|
||||||
#, c-format
|
|
||||||
msgid "%s: option requires an argument -- %c\n"
|
|
||||||
msgstr "%s: flaget behøver et argument -- %c\n"
|
|
||||||
|
|
||||||
#: lib/getopt.c:1021 lib/getopt.c:1032
|
|
||||||
#, c-format
|
|
||||||
msgid "%s: option `-W %s' is ambiguous\n"
|
|
||||||
msgstr "%s: flaget \"-W %s\" er flertydigt\n"
|
|
||||||
|
|
||||||
#: lib/getopt.c:1056 lib/getopt.c:1068
|
|
||||||
#, c-format
|
|
||||||
msgid "%s: option `-W %s' doesn't allow an argument\n"
|
|
||||||
msgstr "%s: flaget \"-W %s\" tager intet argument\n"
|
|
||||||
|
|
||||||
#: lib/obstack.c:487 lib/obstack.c:490 lib/xmalloc.c:63
|
|
||||||
msgid "memory exhausted"
|
|
||||||
msgstr "hukommelsen opbrugt"
|
|
||||||
|
|
||||||
# Når vi går over til Unicode mere allmænt måske vi bør oversættta båda disse
|
|
||||||
# med U+201D (RIGHT DOUBLE QUOTATION MARK) på svenska. Eller?
|
|
||||||
#
|
|
||||||
#: lib/quotearg.c:236
|
|
||||||
msgid "`"
|
|
||||||
msgstr "\""
|
|
||||||
|
|
||||||
#: lib/quotearg.c:237
|
|
||||||
msgid "'"
|
|
||||||
msgstr "\""
|
|
||||||
|
|
||||||
#: lib/subpipe.c:187
|
|
||||||
#, c-format
|
|
||||||
msgid "subsidiary program `%s' could not be invoked"
|
|
||||||
msgstr "hjælpeprogrammet \"%s\" kunne ikke startes"
|
|
||||||
|
|
||||||
#: lib/subpipe.c:189
|
|
||||||
#, c-format
|
|
||||||
msgid "subsidiary program `%s' not found"
|
|
||||||
msgstr "hjælpeprogrammet \"%s\" ikke fundet"
|
|
||||||
|
|
||||||
#: lib/subpipe.c:191
|
|
||||||
#, c-format
|
|
||||||
msgid "subsidiary program `%s' failed"
|
|
||||||
msgstr "hjælpeprogrammet \"%s\" fejlede"
|
|
||||||
|
|
||||||
#: lib/subpipe.c:192
|
|
||||||
#, c-format
|
|
||||||
msgid "subsidiary program `%s' failed (exit status %d)"
|
|
||||||
msgstr "hjælpeprogrammet \"%s\" fejlede med afslutningskode %d"
|
|
||||||
|
|
||||||
#: lib/timevar.c:476
|
|
||||||
msgid ""
|
|
||||||
"\n"
|
|
||||||
"Execution times (seconds)\n"
|
|
||||||
msgstr ""
|
|
||||||
"\n"
|
|
||||||
"Udførelsestider (sekunder)\n"
|
|
||||||
|
|
||||||
#: lib/timevar.c:526
|
|
||||||
msgid " TOTAL :"
|
|
||||||
msgstr " TOTALT :"
|
|
||||||
|
|
||||||
#: lib/timevar.c:562
|
|
||||||
#, c-format
|
|
||||||
msgid "time in %s: %ld.%06ld (%ld%%)\n"
|
|
||||||
msgstr "tid i %s: %ld.%06ld (%ld%%)\n"
|
|
||||||
704
po/et.po
704
po/et.po
@@ -1,704 +0,0 @@
|
|||||||
# Estonian translations for bison.
|
|
||||||
# Copyright (C) 2001 Free Software Foundation, Inc.
|
|
||||||
# Toomas Soome <tsoome@ut.ee>, 2002.
|
|
||||||
#
|
|
||||||
msgid ""
|
|
||||||
msgstr ""
|
|
||||||
"Project-Id-Version: bison 1.875\n"
|
|
||||||
"Report-Msgid-Bugs-To: bug-bison@gnu.org\n"
|
|
||||||
"POT-Creation-Date: 2003-08-25 17:14+0200\n"
|
|
||||||
"PO-Revision-Date: 2003-01-02 11:59+0200\n"
|
|
||||||
"Last-Translator: Toomas Soome <Toomas.Soome@microlink.ee>\n"
|
|
||||||
"Language-Team: Estonian <et@li.org>\n"
|
|
||||||
"MIME-Version: 1.0\n"
|
|
||||||
"Content-Type: text/plain; charset=ISO-8859-15\n"
|
|
||||||
"Content-Transfer-Encoding: 8-bit\n"
|
|
||||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
|
||||||
|
|
||||||
#: src/complain.c:56 lib/error.c:135 lib/error.c:163
|
|
||||||
msgid "Unknown system error"
|
|
||||||
msgstr "Tundmatu süsteemi viga"
|
|
||||||
|
|
||||||
#: src/complain.c:79 src/complain.c:94
|
|
||||||
msgid "warning: "
|
|
||||||
msgstr "hoiatus: "
|
|
||||||
|
|
||||||
#: src/complain.c:150 src/complain.c:166
|
|
||||||
msgid "fatal error: "
|
|
||||||
msgstr "fataalne viga: "
|
|
||||||
|
|
||||||
#: src/conflicts.c:75
|
|
||||||
#, c-format
|
|
||||||
msgid " Conflict between rule %d and token %s resolved as shift"
|
|
||||||
msgstr " Konflikt reegli %d ja märgi %s vahel lahendatud nihkega"
|
|
||||||
|
|
||||||
#: src/conflicts.c:83
|
|
||||||
#, c-format
|
|
||||||
msgid " Conflict between rule %d and token %s resolved as reduce"
|
|
||||||
msgstr " Konflikt reegli %d ja märgi %s vahel lahendatud redutseerimisega"
|
|
||||||
|
|
||||||
#: src/conflicts.c:90
|
|
||||||
#, c-format
|
|
||||||
msgid " Conflict between rule %d and token %s resolved as an error"
|
|
||||||
msgstr " Konflikt reegli %d ja märgi %s vahel lahendatud veana"
|
|
||||||
|
|
||||||
#: src/conflicts.c:398
|
|
||||||
#, c-format
|
|
||||||
msgid "conflicts: %d shift/reduce, %d reduce/reduce\n"
|
|
||||||
msgstr ""
|
|
||||||
"konfliktid: %d nihutamine/redutseerimine, %d redutseerimine/redutseerimine\n"
|
|
||||||
|
|
||||||
#: src/conflicts.c:401
|
|
||||||
#, c-format
|
|
||||||
msgid "conflicts: %d shift/reduce\n"
|
|
||||||
msgstr "konfliktid: %d nihutamine/redutseerimine\n"
|
|
||||||
|
|
||||||
#: src/conflicts.c:403
|
|
||||||
#, c-format
|
|
||||||
msgid "conflicts: %d reduce/reduce\n"
|
|
||||||
msgstr "konfliktid: %d redutseerimine/redutseerimine\n"
|
|
||||||
|
|
||||||
#: src/conflicts.c:421
|
|
||||||
#, c-format
|
|
||||||
msgid "State %d "
|
|
||||||
msgstr "Olek %d "
|
|
||||||
|
|
||||||
#: src/conflicts.c:498
|
|
||||||
#, c-format
|
|
||||||
msgid "expected %d shift/reduce conflict"
|
|
||||||
msgid_plural "expected %d shift/reduce conflicts"
|
|
||||||
msgstr[0] "eeldasime %d nihutamine/redutseerimine konflikti"
|
|
||||||
msgstr[1] "eeldasime %d nihutamine/redutseerimine konflikti"
|
|
||||||
|
|
||||||
#: src/conflicts.c:503
|
|
||||||
msgid "expected 0 reduce/reduce conflicts"
|
|
||||||
msgstr "eeldasin 0 redutseerimine/redutseerimine konflikti"
|
|
||||||
|
|
||||||
#: src/files.c:99
|
|
||||||
#, c-format
|
|
||||||
msgid "cannot open file `%s'"
|
|
||||||
msgstr "faili `%s' ei saa avada"
|
|
||||||
|
|
||||||
#: src/files.c:115
|
|
||||||
msgid "I/O error"
|
|
||||||
msgstr "S/V viga"
|
|
||||||
|
|
||||||
#: src/files.c:118
|
|
||||||
msgid "cannot close file"
|
|
||||||
msgstr "faili ei õnnestu sulgeda"
|
|
||||||
|
|
||||||
#: src/files.c:336
|
|
||||||
#, c-format
|
|
||||||
msgid "conflicting outputs to file %s"
|
|
||||||
msgstr "konfliktsed väljundid faili %s"
|
|
||||||
|
|
||||||
#: src/getargs.c:186
|
|
||||||
#, c-format
|
|
||||||
msgid "Try `%s --help' for more information.\n"
|
|
||||||
msgstr "Lisainfo saamiseks proovige `%s --help'.\n"
|
|
||||||
|
|
||||||
#: src/getargs.c:192
|
|
||||||
msgid "GNU bison generates parsers for LALR(1) grammars.\n"
|
|
||||||
msgstr "GNU bison genereerib parsereid LALR(1) grammatikatele.\n"
|
|
||||||
|
|
||||||
#: src/getargs.c:196
|
|
||||||
#, c-format
|
|
||||||
msgid "Usage: %s [OPTION]... FILE\n"
|
|
||||||
msgstr "Kasuta: %s [VÕTI]...FAIL\n"
|
|
||||||
|
|
||||||
#: src/getargs.c:200
|
|
||||||
msgid ""
|
|
||||||
"If a long option shows an argument as mandatory, then it is mandatory\n"
|
|
||||||
"for the equivalent short option also. Similarly for optional arguments.\n"
|
|
||||||
msgstr ""
|
|
||||||
"Kui pikk võti näitab, et argument on kohustuslik, siis on see kohustuslik \n"
|
|
||||||
"ka lühikese võtme korral. Sama ka vabalt valitavate võtmete korral.\n"
|
|
||||||
|
|
||||||
#: src/getargs.c:206
|
|
||||||
msgid ""
|
|
||||||
"Operation modes:\n"
|
|
||||||
" -h, --help display this help and exit\n"
|
|
||||||
" -V, --version output version information and exit\n"
|
|
||||||
" -y, --yacc emulate POSIX yacc\n"
|
|
||||||
msgstr ""
|
|
||||||
"Töömoodid:\n"
|
|
||||||
" -h, --help esita see abiinfo ja lõpeta töö\n"
|
|
||||||
" -V, --version esita versiooniinfo ja lõpeta töö\n"
|
|
||||||
" -y, --yacc emuleeri POSIX yacc\n"
|
|
||||||
|
|
||||||
#: src/getargs.c:213
|
|
||||||
msgid ""
|
|
||||||
"Parser:\n"
|
|
||||||
" -S, --skeleton=FILE specify the skeleton to use\n"
|
|
||||||
" -t, --debug instrument the parser for debugging\n"
|
|
||||||
" --locations enable locations computation\n"
|
|
||||||
" -p, --name-prefix=PREFIX prepend PREFIX to the external symbols\n"
|
|
||||||
" -l, --no-lines don't generate `#line' directives\n"
|
|
||||||
" -n, --no-parser generate the tables only\n"
|
|
||||||
" -k, --token-table include a table of token names\n"
|
|
||||||
msgstr ""
|
|
||||||
"Parser:\n"
|
|
||||||
" -S, --skeleton=FAIL kasutatava skeleti kirjeldus\n"
|
|
||||||
" -t, --debug varusta parser silumisinfoga\n"
|
|
||||||
" --locations luba asukohtade arvestamine\n"
|
|
||||||
" -p, --name-prefix=PREFIKS lisa välissümbolite nimedele PREFIKS\n"
|
|
||||||
" -l, --no-lines ära genereeri `#line' direktiive\n"
|
|
||||||
" -n, --no-parser genereeri ainult tabelid\n"
|
|
||||||
" -k, --token-table lisa ka sümbolite nimede tabel\n"
|
|
||||||
|
|
||||||
#: src/getargs.c:225
|
|
||||||
msgid ""
|
|
||||||
"Output:\n"
|
|
||||||
" -d, --defines also produce a header file\n"
|
|
||||||
" -r, --report=THINGS also produce details on the automaton\n"
|
|
||||||
" -v, --verbose same as `--report=state'\n"
|
|
||||||
" -b, --file-prefix=PREFIX specify a PREFIX for output files\n"
|
|
||||||
" -o, --output=FILE leave output to FILE\n"
|
|
||||||
" -g, --graph also produce a VCG description of the "
|
|
||||||
"automaton\n"
|
|
||||||
msgstr ""
|
|
||||||
"Väljund:\n"
|
|
||||||
" -d, --defines loo ka päisfail\n"
|
|
||||||
" -r, --report=ASJAD väljasta automaadi kohta selgitusi\n"
|
|
||||||
" -v, --verbose sama, kui `--report=state'\n"
|
|
||||||
" -b, --file-prefix=PREFIKS kasuta väljundfailide nimedes PREFIKSit\n"
|
|
||||||
" -o, --output-file=FAIL jäta väljund FAILi\n"
|
|
||||||
" -g, --graph loo automaadi kirjeldus VCG graafina\n"
|
|
||||||
|
|
||||||
#: src/getargs.c:236
|
|
||||||
msgid ""
|
|
||||||
"THINGS is a list of comma separated words that can include:\n"
|
|
||||||
" `state' describe the states\n"
|
|
||||||
" `itemset' complete the core item sets with their closure\n"
|
|
||||||
" `lookahead' explicitly associate lookaheads to items\n"
|
|
||||||
" `solved' describe shift/reduce conflicts solving\n"
|
|
||||||
" `all' include all the above information\n"
|
|
||||||
" `none' disable the report\n"
|
|
||||||
msgstr ""
|
|
||||||
"ASJAD on loend komadega eraldatud järgnevaid sõnu:\n"
|
|
||||||
" `state' olekute kirjeldus\n"
|
|
||||||
" `itemset' täienda põhilisi elemente nende sulunditega\n"
|
|
||||||
" `lookahead' seo ettevaatamised elementidega\n"
|
|
||||||
" `solved' kirjelda nihuta/redutseeri konfliktide lahendamisi\n"
|
|
||||||
" `all' kogu ülaltoodud info\n"
|
|
||||||
" `none' blokeeri raport\n"
|
|
||||||
|
|
||||||
#: src/getargs.c:247
|
|
||||||
msgid "Report bugs to <bug-bison@gnu.org>.\n"
|
|
||||||
msgstr "Teatage palun vigadest aadressil <bug-bison@gnu.org>.\n"
|
|
||||||
|
|
||||||
#: src/getargs.c:264
|
|
||||||
#, c-format
|
|
||||||
msgid "bison (GNU Bison) %s"
|
|
||||||
msgstr "bison (GNU Bison) %s"
|
|
||||||
|
|
||||||
#: src/getargs.c:266
|
|
||||||
msgid "Written by Robert Corbett and Richard Stallman.\n"
|
|
||||||
msgstr "Kirjutanud Robert Corbett ja Richard Stallman.\n"
|
|
||||||
|
|
||||||
#: src/getargs.c:270
|
|
||||||
#, c-format
|
|
||||||
msgid "Copyright (C) %d Free Software Foundation, Inc.\n"
|
|
||||||
msgstr "Autoriõigus © %d Free Software Foundation, Inc.\n"
|
|
||||||
|
|
||||||
#: src/getargs.c:272
|
|
||||||
msgid ""
|
|
||||||
"This is free software; see the source for copying conditions. There is NO\n"
|
|
||||||
"warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n"
|
|
||||||
msgstr ""
|
|
||||||
"See on vaba tarkvara; kopeerimistingimused leiate lähtetekstidest. Garantii\n"
|
|
||||||
"PUUDUB; ka müügiks või mingil eesmärgil kasutamiseks.\n"
|
|
||||||
|
|
||||||
#: src/getargs.c:438
|
|
||||||
#, c-format
|
|
||||||
msgid "missing operand after `%s'"
|
|
||||||
msgstr "`%s' järel puudub operand"
|
|
||||||
|
|
||||||
#: src/getargs.c:440
|
|
||||||
#, c-format
|
|
||||||
msgid "extra operand `%s'"
|
|
||||||
msgstr "Liigne operand `%s'"
|
|
||||||
|
|
||||||
#: src/gram.c:139
|
|
||||||
msgid "empty"
|
|
||||||
msgstr "tühi"
|
|
||||||
|
|
||||||
#: src/gram.c:233
|
|
||||||
msgid "Grammar"
|
|
||||||
msgstr "Grammatika"
|
|
||||||
|
|
||||||
#: src/gram.c:321 src/reduce.c:394
|
|
||||||
msgid "warning"
|
|
||||||
msgstr "hoiatus"
|
|
||||||
|
|
||||||
#: src/main.c:124
|
|
||||||
msgid "rule never reduced because of conflicts"
|
|
||||||
msgstr "reeglit ei redutseerita konfliktide tõttu kunagi"
|
|
||||||
|
|
||||||
#: src/parse-gram.y:353
|
|
||||||
msgid "POSIX forbids declarations in the grammar"
|
|
||||||
msgstr "POSIX keelab deklareerimised grammatikas"
|
|
||||||
|
|
||||||
#: src/parse-gram.y:476
|
|
||||||
msgid "missing identifier in parameter declaration"
|
|
||||||
msgstr "parameetri deklaratsioonis puudub identifikaator"
|
|
||||||
|
|
||||||
#: src/print.c:49
|
|
||||||
#, c-format
|
|
||||||
msgid " type %d is %s\n"
|
|
||||||
msgstr " tüüp %d on %s\n"
|
|
||||||
|
|
||||||
#: src/print.c:165
|
|
||||||
#, c-format
|
|
||||||
msgid "shift, and go to state %d\n"
|
|
||||||
msgstr "nihuta ja liigu olekule %d\n"
|
|
||||||
|
|
||||||
#: src/print.c:167
|
|
||||||
#, c-format
|
|
||||||
msgid "go to state %d\n"
|
|
||||||
msgstr "liigu olekule %d\n"
|
|
||||||
|
|
||||||
#: src/print.c:204
|
|
||||||
msgid "error (nonassociative)\n"
|
|
||||||
msgstr "viga (mitteassotsiatiivne)\n"
|
|
||||||
|
|
||||||
#: src/print.c:292
|
|
||||||
#, c-format
|
|
||||||
msgid "reduce using rule %d (%s)"
|
|
||||||
msgstr "redutseerin kasutades reeglit %d (%s)"
|
|
||||||
|
|
||||||
#: src/print.c:294
|
|
||||||
msgid "accept"
|
|
||||||
msgstr "nõustun"
|
|
||||||
|
|
||||||
#: src/print.c:325 src/print.c:391
|
|
||||||
msgid "$default"
|
|
||||||
msgstr "$default"
|
|
||||||
|
|
||||||
#: src/print.c:420
|
|
||||||
#, c-format
|
|
||||||
msgid "state %d"
|
|
||||||
msgstr "olek %d"
|
|
||||||
|
|
||||||
#: src/print.c:456
|
|
||||||
msgid "Terminals, with rules where they appear"
|
|
||||||
msgstr "Terminalid, koos reeglitega kus nad ilmuvad"
|
|
||||||
|
|
||||||
#: src/print.c:483
|
|
||||||
msgid "Nonterminals, with rules where they appear"
|
|
||||||
msgstr "Mitteterminalid, koos reeglitega kus nad ilmuvad"
|
|
||||||
|
|
||||||
#: src/print.c:512
|
|
||||||
msgid " on left:"
|
|
||||||
msgstr " vasakul:"
|
|
||||||
|
|
||||||
#: src/print.c:527
|
|
||||||
msgid " on right:"
|
|
||||||
msgstr " paremal:"
|
|
||||||
|
|
||||||
#: src/print.c:555
|
|
||||||
msgid "Rules never reduced"
|
|
||||||
msgstr "Mitteredutseeruvad reeglid"
|
|
||||||
|
|
||||||
#: src/reader.c:53
|
|
||||||
#, c-format
|
|
||||||
msgid "multiple %s declarations"
|
|
||||||
msgstr "korduvad %s deklaratsioonid"
|
|
||||||
|
|
||||||
#: src/reader.c:115
|
|
||||||
#, c-format
|
|
||||||
msgid "result type clash on merge function %s: <%s> != <%s>"
|
|
||||||
msgstr "tulemuse tüübikonflikt mestimise funktsioonis %s: <%s> != <%s>"
|
|
||||||
|
|
||||||
#: src/reader.c:213
|
|
||||||
#, c-format
|
|
||||||
msgid "rule given for %s, which is a token"
|
|
||||||
msgstr "%s jaoks on antud reegel, aga see on märk"
|
|
||||||
|
|
||||||
#: src/reader.c:242
|
|
||||||
#, c-format
|
|
||||||
msgid "type clash on default action: <%s> != <%s>"
|
|
||||||
msgstr "vaikimisi tegevuse tüübikonflikt: <%s> != <%s>"
|
|
||||||
|
|
||||||
#: src/reader.c:248
|
|
||||||
msgid "empty rule for typed nonterminal, and no action"
|
|
||||||
msgstr "tüübiga mitteterminalil on tühi reegel ja puudub tegevus"
|
|
||||||
|
|
||||||
#: src/reader.c:318 src/reader.c:332 src/reader.c:345
|
|
||||||
#, c-format
|
|
||||||
msgid "only one %s allowed per rule"
|
|
||||||
msgstr "reeglis on lubatud ainult üks %s"
|
|
||||||
|
|
||||||
#: src/reader.c:328 src/reader.c:343
|
|
||||||
#, c-format
|
|
||||||
msgid "%s affects only GLR parsers"
|
|
||||||
msgstr "%s puudutab ainult GLR parsereid"
|
|
||||||
|
|
||||||
#: src/reader.c:330
|
|
||||||
#, c-format
|
|
||||||
msgid "%s must be followed by positive number"
|
|
||||||
msgstr "%s järel peab olema positiivne number"
|
|
||||||
|
|
||||||
#: src/reader.c:487
|
|
||||||
msgid "no rules in the input grammar"
|
|
||||||
msgstr "sisendgrammatikas pole reegleid"
|
|
||||||
|
|
||||||
#: src/reduce.c:242
|
|
||||||
msgid "useless rule"
|
|
||||||
msgstr "kasutamata reegel"
|
|
||||||
|
|
||||||
#: src/reduce.c:303
|
|
||||||
#, c-format
|
|
||||||
msgid "useless nonterminal: %s"
|
|
||||||
msgstr "kasutamata mitteterminal: %s"
|
|
||||||
|
|
||||||
#: src/reduce.c:351
|
|
||||||
msgid "Useless nonterminals"
|
|
||||||
msgstr "Kasutamata mitteterminalid"
|
|
||||||
|
|
||||||
#: src/reduce.c:364
|
|
||||||
msgid "Terminals which are not used"
|
|
||||||
msgstr "Terminalid, mida ei kasutatud"
|
|
||||||
|
|
||||||
#: src/reduce.c:373
|
|
||||||
msgid "Useless rules"
|
|
||||||
msgstr "Kasutamata reeglid"
|
|
||||||
|
|
||||||
#: src/reduce.c:389
|
|
||||||
#, c-format
|
|
||||||
msgid "%d rule never reduced\n"
|
|
||||||
msgid_plural "%d rules never reduced\n"
|
|
||||||
msgstr[0] "%d reegel ei redutseeru\n"
|
|
||||||
msgstr[1] "%d reeglit ei redutseeru\n"
|
|
||||||
|
|
||||||
#: src/reduce.c:397
|
|
||||||
#, c-format
|
|
||||||
msgid "%d useless nonterminal"
|
|
||||||
msgid_plural "%d useless nonterminals"
|
|
||||||
msgstr[0] "%d kasutamata mitteterminal"
|
|
||||||
msgstr[1] "%d kasutamata mitteterminali"
|
|
||||||
|
|
||||||
#: src/reduce.c:403
|
|
||||||
msgid " and "
|
|
||||||
msgstr " ja "
|
|
||||||
|
|
||||||
#: src/reduce.c:406
|
|
||||||
#, c-format
|
|
||||||
msgid "%d useless rule"
|
|
||||||
msgid_plural "%d useless rules"
|
|
||||||
msgstr[0] "%d kasutamata reegel"
|
|
||||||
msgstr[1] "%d kasutamata reeglit"
|
|
||||||
|
|
||||||
#: src/reduce.c:436
|
|
||||||
#, c-format
|
|
||||||
msgid "start symbol %s does not derive any sentence"
|
|
||||||
msgstr "stardisümbolist %s ei tuletata ühtegi lauset"
|
|
||||||
|
|
||||||
#: src/scan-gram.l:160
|
|
||||||
msgid "stray `,' treated as white space"
|
|
||||||
msgstr "käsitlen juhuslikku `,' kui tühikut"
|
|
||||||
|
|
||||||
#: src/scan-gram.l:221
|
|
||||||
#, c-format
|
|
||||||
msgid "invalid directive: %s"
|
|
||||||
msgstr "vigane juhus: %s"
|
|
||||||
|
|
||||||
#: src/scan-gram.l:241 src/scan-gram.l:804 src/scan-gram.l:873
|
|
||||||
#, c-format
|
|
||||||
msgid "integer out of range: %s"
|
|
||||||
msgstr "number piiridest väljas: %s"
|
|
||||||
|
|
||||||
#: src/scan-gram.l:283
|
|
||||||
#, c-format
|
|
||||||
msgid "invalid character: %s"
|
|
||||||
msgstr "vigased sümbolid: %s"
|
|
||||||
|
|
||||||
#: src/scan-gram.l:412 src/scan-gram.l:422 src/scan-gram.l:441
|
|
||||||
#, c-format
|
|
||||||
msgid "invalid escape sequence: %s"
|
|
||||||
msgstr "vigane paojada: %s"
|
|
||||||
|
|
||||||
#: src/scan-gram.l:446
|
|
||||||
#, c-format
|
|
||||||
msgid "unrecognized escape sequence: %s"
|
|
||||||
msgstr "tundmatu paojada: %s"
|
|
||||||
|
|
||||||
#: src/scan-gram.l:534
|
|
||||||
#, c-format
|
|
||||||
msgid "missing `{' in `%s'"
|
|
||||||
msgstr "`%s' juures puudub `{'"
|
|
||||||
|
|
||||||
#: src/scan-gram.l:774
|
|
||||||
#, c-format
|
|
||||||
msgid "$$ of `%s' has no declared type"
|
|
||||||
msgstr "`%s' $$ ei oma deklareeritud tüüpi"
|
|
||||||
|
|
||||||
#: src/scan-gram.l:795
|
|
||||||
#, c-format
|
|
||||||
msgid "$%d of `%s' has no declared type"
|
|
||||||
msgstr "$%d `%s' ei oma deklareeritud tüüpi"
|
|
||||||
|
|
||||||
#: src/scan-gram.l:840 src/scan-gram.l:908
|
|
||||||
#, c-format
|
|
||||||
msgid "invalid value: %s"
|
|
||||||
msgstr "vigane väärtus: %s"
|
|
||||||
|
|
||||||
#: src/scan-gram.l:996
|
|
||||||
#, c-format
|
|
||||||
msgid "missing `%s' at end of file"
|
|
||||||
msgstr "faili lõpus puudub `%s'"
|
|
||||||
|
|
||||||
#: src/symlist.c:97 src/symlist.c:108
|
|
||||||
msgid "invalid $ value"
|
|
||||||
msgstr "vigane $ väärtus"
|
|
||||||
|
|
||||||
#: src/symtab.c:84
|
|
||||||
#, c-format
|
|
||||||
msgid "type redeclaration for %s"
|
|
||||||
msgstr "%s tüübi uuesti deklareerimine"
|
|
||||||
|
|
||||||
#: src/symtab.c:101 src/symtab.c:119
|
|
||||||
#, c-format
|
|
||||||
msgid "%s redeclaration for %s"
|
|
||||||
msgstr "%s uuesti deklareerimine %s jaoks"
|
|
||||||
|
|
||||||
#: src/symtab.c:138
|
|
||||||
#, c-format
|
|
||||||
msgid "redefining precedence of %s"
|
|
||||||
msgstr "%s prioriteedi uus definitsioon"
|
|
||||||
|
|
||||||
#: src/symtab.c:156
|
|
||||||
#, c-format
|
|
||||||
msgid "symbol %s redefined"
|
|
||||||
msgstr "sümbol %s on uuesti defineeritud"
|
|
||||||
|
|
||||||
#: src/symtab.c:179
|
|
||||||
#, c-format
|
|
||||||
msgid "redefining user token number of %s"
|
|
||||||
msgstr "%s kasutaja märgi numbri uuesti defineerimine"
|
|
||||||
|
|
||||||
#: src/symtab.c:206
|
|
||||||
#, c-format
|
|
||||||
msgid "symbol %s is used, but is not defined as a token and has no rules"
|
|
||||||
msgstr ""
|
|
||||||
"kasutatakse sümbolit %s, mis ei ole defineeritud märgina ja millel puuduvad "
|
|
||||||
"reeglid"
|
|
||||||
|
|
||||||
#: src/symtab.c:231
|
|
||||||
#, c-format
|
|
||||||
msgid "symbol `%s' used more than once as a literal string"
|
|
||||||
msgstr "sümbolit `%s' on kasutatud enam kui kord literaal sõnena"
|
|
||||||
|
|
||||||
#: src/symtab.c:234
|
|
||||||
#, c-format
|
|
||||||
msgid "symbol `%s' given more than one literal string"
|
|
||||||
msgstr "sümbolile `%s' on antud enam kui üks literaal sõne"
|
|
||||||
|
|
||||||
#: src/symtab.c:270
|
|
||||||
#, c-format
|
|
||||||
msgid "conflicting precedences for %s and %s"
|
|
||||||
msgstr "%s ja %s omavad konfliktseid prioriteete"
|
|
||||||
|
|
||||||
#: src/symtab.c:282
|
|
||||||
#, c-format
|
|
||||||
msgid "conflicting associativities for %s (%s) and %s (%s)"
|
|
||||||
msgstr "%s (%s) ja %s (%s) omavad konfliktseid assotsiatiivseid väärtuseid"
|
|
||||||
|
|
||||||
#: src/symtab.c:367
|
|
||||||
#, c-format
|
|
||||||
msgid "tokens %s and %s both assigned number %d"
|
|
||||||
msgstr "märkidele %s ja %s on mõlemale omistatud number %d"
|
|
||||||
|
|
||||||
#: src/symtab.c:590
|
|
||||||
#, c-format
|
|
||||||
msgid "the start symbol %s is undefined"
|
|
||||||
msgstr "stardisümbol %s ei ole defineeritud"
|
|
||||||
|
|
||||||
#: src/symtab.c:594
|
|
||||||
#, c-format
|
|
||||||
msgid "the start symbol %s is a token"
|
|
||||||
msgstr "stardisümbol %s on märk"
|
|
||||||
|
|
||||||
#: lib/argmatch.c:135
|
|
||||||
#, c-format
|
|
||||||
msgid "invalid argument %s for %s"
|
|
||||||
msgstr "vigane argument %s %s'le"
|
|
||||||
|
|
||||||
#: lib/argmatch.c:136
|
|
||||||
#, c-format
|
|
||||||
msgid "ambiguous argument %s for %s"
|
|
||||||
msgstr "segane argument %s %s'le"
|
|
||||||
|
|
||||||
#: lib/argmatch.c:155
|
|
||||||
msgid "Valid arguments are:"
|
|
||||||
msgstr "Lubatud argumendid on:"
|
|
||||||
|
|
||||||
#: lib/bitset_stats.c:179
|
|
||||||
#, c-format
|
|
||||||
msgid "%u bitset_allocs, %u freed (%.2f%%).\n"
|
|
||||||
msgstr "%u bitset_allocs, %u vabastatud (%.2f%%).\n"
|
|
||||||
|
|
||||||
#: lib/bitset_stats.c:182
|
|
||||||
#, c-format
|
|
||||||
msgid "%u bitset_sets, %u cached (%.2f%%)\n"
|
|
||||||
msgstr "%u bitset_sets, %u puhverdatud (%.2f%%)\n"
|
|
||||||
|
|
||||||
#: lib/bitset_stats.c:185
|
|
||||||
#, c-format
|
|
||||||
msgid "%u bitset_resets, %u cached (%.2f%%)\n"
|
|
||||||
msgstr "%u bitset_resets, %u puhverdatud (%.2f%%)\n"
|
|
||||||
|
|
||||||
#: lib/bitset_stats.c:188
|
|
||||||
#, c-format
|
|
||||||
msgid "%u bitset_tests, %u cached (%.2f%%)\n"
|
|
||||||
msgstr "%u bitset_tests, %u puhverdatud (%.2f%%)\n"
|
|
||||||
|
|
||||||
#: lib/bitset_stats.c:192
|
|
||||||
#, c-format
|
|
||||||
msgid "%u bitset_lists\n"
|
|
||||||
msgstr "%u bitset_lists\n"
|
|
||||||
|
|
||||||
#: lib/bitset_stats.c:194
|
|
||||||
msgid "count log histogram\n"
|
|
||||||
msgstr "loenduri logi histogramm\n"
|
|
||||||
|
|
||||||
#: lib/bitset_stats.c:197
|
|
||||||
msgid "size log histogram\n"
|
|
||||||
msgstr "suuruste logi histogramm\n"
|
|
||||||
|
|
||||||
#: lib/bitset_stats.c:200
|
|
||||||
msgid "density histogram\n"
|
|
||||||
msgstr "tiheduse histogramm\n"
|
|
||||||
|
|
||||||
#: lib/bitset_stats.c:214
|
|
||||||
msgid ""
|
|
||||||
"Bitset statistics:\n"
|
|
||||||
"\n"
|
|
||||||
msgstr ""
|
|
||||||
"Bitset statistika:\n"
|
|
||||||
"\n"
|
|
||||||
|
|
||||||
#: lib/bitset_stats.c:217
|
|
||||||
#, c-format
|
|
||||||
msgid "Accumulated runs = %u\n"
|
|
||||||
msgstr "Salvestatud läbimisi = %u\n"
|
|
||||||
|
|
||||||
#: lib/bitset_stats.c:261 lib/bitset_stats.c:266
|
|
||||||
msgid "Could not read stats file."
|
|
||||||
msgstr "Statistika faili ei saa lugeda."
|
|
||||||
|
|
||||||
#: lib/bitset_stats.c:263
|
|
||||||
msgid "Bad stats file size.\n"
|
|
||||||
msgstr "Vigane statistika faili suurus.\n"
|
|
||||||
|
|
||||||
#: lib/bitset_stats.c:289 lib/bitset_stats.c:291
|
|
||||||
msgid "Could not write stats file."
|
|
||||||
msgstr "Statistika faili ei saa kirjutada."
|
|
||||||
|
|
||||||
#: lib/bitset_stats.c:294
|
|
||||||
msgid "Could not open stats file for writing."
|
|
||||||
msgstr "Statistika faili ei saa kirjutamiseks avada."
|
|
||||||
|
|
||||||
#: lib/getopt.c:688 lib/getopt.c:700
|
|
||||||
#, c-format
|
|
||||||
msgid "%s: option `%s' is ambiguous\n"
|
|
||||||
msgstr "%s: võti `%s' on segane\n"
|
|
||||||
|
|
||||||
#: lib/getopt.c:733 lib/getopt.c:737
|
|
||||||
#, c-format
|
|
||||||
msgid "%s: option `--%s' doesn't allow an argument\n"
|
|
||||||
msgstr "%s: võti `--%s' ei luba argumenti\n"
|
|
||||||
|
|
||||||
#: lib/getopt.c:746 lib/getopt.c:751
|
|
||||||
#, c-format
|
|
||||||
msgid "%s: option `%c%s' doesn't allow an argument\n"
|
|
||||||
msgstr "%s: võti `%c%s' ei luba argumenti\n"
|
|
||||||
|
|
||||||
#: lib/getopt.c:787 lib/getopt.c:800 lib/getopt.c:1089 lib/getopt.c:1102
|
|
||||||
#, c-format
|
|
||||||
msgid "%s: option `%s' requires an argument\n"
|
|
||||||
msgstr "%s: võti `%s' nõuab argumenti\n"
|
|
||||||
|
|
||||||
#: lib/getopt.c:838 lib/getopt.c:841
|
|
||||||
#, c-format
|
|
||||||
msgid "%s: unrecognized option `--%s'\n"
|
|
||||||
msgstr "%s: tundmatu võti `--%s'\n"
|
|
||||||
|
|
||||||
#: lib/getopt.c:849 lib/getopt.c:852
|
|
||||||
#, c-format
|
|
||||||
msgid "%s: unrecognized option `%c%s'\n"
|
|
||||||
msgstr "%s: tundmatu võti `%c%s'\n"
|
|
||||||
|
|
||||||
#: lib/getopt.c:899 lib/getopt.c:902
|
|
||||||
#, c-format
|
|
||||||
msgid "%s: illegal option -- %c\n"
|
|
||||||
msgstr "%s: lubamatu võti -- %c\n"
|
|
||||||
|
|
||||||
#: lib/getopt.c:908 lib/getopt.c:911
|
|
||||||
#, c-format
|
|
||||||
msgid "%s: invalid option -- %c\n"
|
|
||||||
msgstr "%s: vigane võti -- %c\n"
|
|
||||||
|
|
||||||
#: lib/getopt.c:958 lib/getopt.c:969 lib/getopt.c:1155 lib/getopt.c:1168
|
|
||||||
#, c-format
|
|
||||||
msgid "%s: option requires an argument -- %c\n"
|
|
||||||
msgstr "%s: võti nõuab argumenti -- %c\n"
|
|
||||||
|
|
||||||
#: lib/getopt.c:1021 lib/getopt.c:1032
|
|
||||||
#, c-format
|
|
||||||
msgid "%s: option `-W %s' is ambiguous\n"
|
|
||||||
msgstr "%s: võti `-W %s' on segane\n"
|
|
||||||
|
|
||||||
#: lib/getopt.c:1056 lib/getopt.c:1068
|
|
||||||
#, c-format
|
|
||||||
msgid "%s: option `-W %s' doesn't allow an argument\n"
|
|
||||||
msgstr "%s: võti `-W %s' ei luba argumenti\n"
|
|
||||||
|
|
||||||
#: lib/obstack.c:487 lib/obstack.c:490 lib/xmalloc.c:63
|
|
||||||
msgid "memory exhausted"
|
|
||||||
msgstr "mälu on otsas"
|
|
||||||
|
|
||||||
#: lib/quotearg.c:236
|
|
||||||
msgid "`"
|
|
||||||
msgstr "`"
|
|
||||||
|
|
||||||
#: lib/quotearg.c:237
|
|
||||||
msgid "'"
|
|
||||||
msgstr "'"
|
|
||||||
|
|
||||||
#: lib/subpipe.c:187
|
|
||||||
#, c-format
|
|
||||||
msgid "subsidiary program `%s' could not be invoked"
|
|
||||||
msgstr "abiprogrammi `%s' ei saa käivitada"
|
|
||||||
|
|
||||||
#: lib/subpipe.c:189
|
|
||||||
#, c-format
|
|
||||||
msgid "subsidiary program `%s' not found"
|
|
||||||
msgstr "ei leia abiprogrammi `%s'"
|
|
||||||
|
|
||||||
#: lib/subpipe.c:191
|
|
||||||
#, c-format
|
|
||||||
msgid "subsidiary program `%s' failed"
|
|
||||||
msgstr "abiprogramm `%s' ebaõnnestus"
|
|
||||||
|
|
||||||
#: lib/subpipe.c:192
|
|
||||||
#, c-format
|
|
||||||
msgid "subsidiary program `%s' failed (exit status %d)"
|
|
||||||
msgstr "abiprogramm `%s' ebaõnnestus (lõpetamise kood %d)"
|
|
||||||
|
|
||||||
#: lib/timevar.c:476
|
|
||||||
msgid ""
|
|
||||||
"\n"
|
|
||||||
"Execution times (seconds)\n"
|
|
||||||
msgstr ""
|
|
||||||
"\n"
|
|
||||||
"Täitmise ajad (sekundites)\n"
|
|
||||||
|
|
||||||
#: lib/timevar.c:526
|
|
||||||
msgid " TOTAL :"
|
|
||||||
msgstr " KOKKU :"
|
|
||||||
|
|
||||||
#: lib/timevar.c:562
|
|
||||||
#, c-format
|
|
||||||
msgid "time in %s: %ld.%06ld (%ld%%)\n"
|
|
||||||
msgstr "aeg %s: %ld.%06ld (%ld%%)\n"
|
|
||||||
896
po/hr.po
896
po/hr.po
@@ -1,896 +0,0 @@
|
|||||||
# Translation of bision to Croatian
|
|
||||||
# Copyright (C) 2002 Free Software Foundation, Inc.
|
|
||||||
# Denis Lackovic <delacko@fly.srk.fer.hr>, 2002.
|
|
||||||
# This file is distributed under the same license as the bison package.
|
|
||||||
# Denis Lackovic <delacko@fly.srk.fer.hr>, 2002.
|
|
||||||
#
|
|
||||||
msgid ""
|
|
||||||
msgstr ""
|
|
||||||
"Project-Id-Version: bison 1.34a\n"
|
|
||||||
"Report-Msgid-Bugs-To: bug-bison@gnu.org\n"
|
|
||||||
"POT-Creation-Date: 2003-08-25 17:14+0200\n"
|
|
||||||
"PO-Revision-Date: 2002-04-10 22:20+01\n"
|
|
||||||
"Last-Translator: Denis Lackovic <delacko@fly.srk.fer.hr>\n"
|
|
||||||
"Language-Team: Croatian <lokalizacija@linux.hr>\n"
|
|
||||||
"MIME-Version: 1.0\n"
|
|
||||||
"Content-Type: text/plain; charset=iso-8859-2\n"
|
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
|
||||||
"Plural-Forms: nplurals=2; plural=(n==1 ? 0 : 1);\n"
|
|
||||||
|
|
||||||
#: src/complain.c:56 lib/error.c:135 lib/error.c:163
|
|
||||||
msgid "Unknown system error"
|
|
||||||
msgstr "Nepoznata sistemska gre¹ka"
|
|
||||||
|
|
||||||
#: src/complain.c:79 src/complain.c:94
|
|
||||||
msgid "warning: "
|
|
||||||
msgstr "upozorenje:"
|
|
||||||
|
|
||||||
#: src/complain.c:150 src/complain.c:166
|
|
||||||
msgid "fatal error: "
|
|
||||||
msgstr "fatalna gre¹ka:"
|
|
||||||
|
|
||||||
#: src/conflicts.c:75
|
|
||||||
#, fuzzy, c-format
|
|
||||||
msgid " Conflict between rule %d and token %s resolved as shift"
|
|
||||||
msgstr "Konflikt u stanju %d izmeðu pravila %d i znaka %s razrije¹en kao %s.\n"
|
|
||||||
|
|
||||||
#: src/conflicts.c:83
|
|
||||||
#, fuzzy, c-format
|
|
||||||
msgid " Conflict between rule %d and token %s resolved as reduce"
|
|
||||||
msgstr "Konflikt u stanju %d izmeðu pravila %d i znaka %s razrije¹en kao %s.\n"
|
|
||||||
|
|
||||||
#: src/conflicts.c:90
|
|
||||||
#, fuzzy, c-format
|
|
||||||
msgid " Conflict between rule %d and token %s resolved as an error"
|
|
||||||
msgstr "Konflikt u stanju %d izmeðu pravila %d i znaka %s razrije¹en kao %s.\n"
|
|
||||||
|
|
||||||
#: src/conflicts.c:398
|
|
||||||
#, c-format
|
|
||||||
msgid "conflicts: %d shift/reduce, %d reduce/reduce\n"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: src/conflicts.c:401
|
|
||||||
#, fuzzy, c-format
|
|
||||||
msgid "conflicts: %d shift/reduce\n"
|
|
||||||
msgstr " %d pomakni/reduciraj"
|
|
||||||
|
|
||||||
#: src/conflicts.c:403
|
|
||||||
#, fuzzy, c-format
|
|
||||||
msgid "conflicts: %d reduce/reduce\n"
|
|
||||||
msgstr " %d reduviraj/reduciraj"
|
|
||||||
|
|
||||||
#: src/conflicts.c:421
|
|
||||||
#, fuzzy, c-format
|
|
||||||
msgid "State %d "
|
|
||||||
msgstr "stanje %d"
|
|
||||||
|
|
||||||
#: src/conflicts.c:498
|
|
||||||
#, fuzzy, c-format
|
|
||||||
msgid "expected %d shift/reduce conflict"
|
|
||||||
msgid_plural "expected %d shift/reduce conflicts"
|
|
||||||
msgstr[0] "oèekujem %d pomakni/reduciraj konflikt\n"
|
|
||||||
msgstr[1] "oèekujem %d pomakni/reduciraj konflikata\n"
|
|
||||||
|
|
||||||
#: src/conflicts.c:503
|
|
||||||
#, fuzzy
|
|
||||||
msgid "expected 0 reduce/reduce conflicts"
|
|
||||||
msgstr "%d reduciraj/reduciraj konflikt"
|
|
||||||
|
|
||||||
#: src/files.c:99
|
|
||||||
#, c-format
|
|
||||||
msgid "cannot open file `%s'"
|
|
||||||
msgstr "ne mogu otvoriti datoteku `%s'"
|
|
||||||
|
|
||||||
#: src/files.c:115
|
|
||||||
#, fuzzy
|
|
||||||
msgid "I/O error"
|
|
||||||
msgstr "gre¹ka"
|
|
||||||
|
|
||||||
#: src/files.c:118
|
|
||||||
msgid "cannot close file"
|
|
||||||
msgstr "ne mogu zatvoriti datoteku"
|
|
||||||
|
|
||||||
#: src/files.c:336
|
|
||||||
#, fuzzy, c-format
|
|
||||||
msgid "conflicting outputs to file %s"
|
|
||||||
msgstr "konfliktne asocijativne vrijednosti za %s i %s"
|
|
||||||
|
|
||||||
#: src/getargs.c:186
|
|
||||||
#, c-format
|
|
||||||
msgid "Try `%s --help' for more information.\n"
|
|
||||||
msgstr "Poku¹aj `%s --help' za vi¹e informacija.\n"
|
|
||||||
|
|
||||||
#: src/getargs.c:192
|
|
||||||
msgid "GNU bison generates parsers for LALR(1) grammars.\n"
|
|
||||||
msgstr "GNU bison generira parsere za LALR(1) gramatike.\n"
|
|
||||||
|
|
||||||
#: src/getargs.c:196
|
|
||||||
#, c-format
|
|
||||||
msgid "Usage: %s [OPTION]... FILE\n"
|
|
||||||
msgstr "Kori¹tenje: %s [OPCIJA]... DATOTEKA\n"
|
|
||||||
|
|
||||||
#: src/getargs.c:200
|
|
||||||
msgid ""
|
|
||||||
"If a long option shows an argument as mandatory, then it is mandatory\n"
|
|
||||||
"for the equivalent short option also. Similarly for optional arguments.\n"
|
|
||||||
msgstr ""
|
|
||||||
"Ako duga opcija ka¾e da je argument obavezan, tada je on obavezan\n"
|
|
||||||
"i za ekvivalentnu kratku opciju. Slièno je i za opcionalne argumente.\n"
|
|
||||||
|
|
||||||
#: src/getargs.c:206
|
|
||||||
msgid ""
|
|
||||||
"Operation modes:\n"
|
|
||||||
" -h, --help display this help and exit\n"
|
|
||||||
" -V, --version output version information and exit\n"
|
|
||||||
" -y, --yacc emulate POSIX yacc\n"
|
|
||||||
msgstr ""
|
|
||||||
"Naèini rada:\n"
|
|
||||||
" -h, --help prika¾i ovu pomoæ i izaði\n"
|
|
||||||
" -V, --version prika¾i verziju i izaði\n"
|
|
||||||
" -y, --yacc emuliraj POSIX yacc\n"
|
|
||||||
|
|
||||||
#: src/getargs.c:213
|
|
||||||
msgid ""
|
|
||||||
"Parser:\n"
|
|
||||||
" -S, --skeleton=FILE specify the skeleton to use\n"
|
|
||||||
" -t, --debug instrument the parser for debugging\n"
|
|
||||||
" --locations enable locations computation\n"
|
|
||||||
" -p, --name-prefix=PREFIX prepend PREFIX to the external symbols\n"
|
|
||||||
" -l, --no-lines don't generate `#line' directives\n"
|
|
||||||
" -n, --no-parser generate the tables only\n"
|
|
||||||
" -k, --token-table include a table of token names\n"
|
|
||||||
msgstr ""
|
|
||||||
"Parser:\n"
|
|
||||||
" -S, --skeleton=DATOTEKA specificiraj kostur za uporabu\n"
|
|
||||||
" -t, --debug pripremi parser za deugiranje\n"
|
|
||||||
" --locations omoguæi izraèunavanje lokacija\n"
|
|
||||||
" -p, --name-prefix=PREFIKS stavi PREFIX ispred vanjskih simbola\n"
|
|
||||||
" -l, --no-lines ne eneriraj `#line' direktive\n"
|
|
||||||
" -n, --no-parser generiraj samo tablice\n"
|
|
||||||
" -k, --token-table ukljuèi tablicu imena znakova\n"
|
|
||||||
|
|
||||||
#: src/getargs.c:225
|
|
||||||
#, fuzzy
|
|
||||||
msgid ""
|
|
||||||
"Output:\n"
|
|
||||||
" -d, --defines also produce a header file\n"
|
|
||||||
" -r, --report=THINGS also produce details on the automaton\n"
|
|
||||||
" -v, --verbose same as `--report=state'\n"
|
|
||||||
" -b, --file-prefix=PREFIX specify a PREFIX for output files\n"
|
|
||||||
" -o, --output=FILE leave output to FILE\n"
|
|
||||||
" -g, --graph also produce a VCG description of the "
|
|
||||||
"automaton\n"
|
|
||||||
msgstr ""
|
|
||||||
"Izlaz:\n"
|
|
||||||
" -d, --defines takoðer proizvedi header datoteku\n"
|
|
||||||
" -v, --verbose takoðer proizvedi obja¹njenje automata\n"
|
|
||||||
" -b, --file-prefix=PREFIKS specificiraj PREFIKS za izlazne datoteke\n"
|
|
||||||
" -o, --output=DATOTEKA ispi¹i izlaz u DATOTEKU\n"
|
|
||||||
" -g, --graph takoðer proizvedi VCG opis automata\n"
|
|
||||||
|
|
||||||
#: src/getargs.c:236
|
|
||||||
msgid ""
|
|
||||||
"THINGS is a list of comma separated words that can include:\n"
|
|
||||||
" `state' describe the states\n"
|
|
||||||
" `itemset' complete the core item sets with their closure\n"
|
|
||||||
" `lookahead' explicitly associate lookaheads to items\n"
|
|
||||||
" `solved' describe shift/reduce conflicts solving\n"
|
|
||||||
" `all' include all the above information\n"
|
|
||||||
" `none' disable the report\n"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: src/getargs.c:247
|
|
||||||
msgid "Report bugs to <bug-bison@gnu.org>.\n"
|
|
||||||
msgstr "Izvjesti o bugovima na <bug-bison@gnu.org>.\n"
|
|
||||||
|
|
||||||
#: src/getargs.c:264
|
|
||||||
#, c-format
|
|
||||||
msgid "bison (GNU Bison) %s"
|
|
||||||
msgstr "bison (GNU Bison) %s"
|
|
||||||
|
|
||||||
#: src/getargs.c:266
|
|
||||||
msgid "Written by Robert Corbett and Richard Stallman.\n"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: src/getargs.c:270
|
|
||||||
#, fuzzy, c-format
|
|
||||||
msgid "Copyright (C) %d Free Software Foundation, Inc.\n"
|
|
||||||
msgstr ""
|
|
||||||
"Copyright 1984, 1986, 1989, 1992, 2000, 2001, 2002\n"
|
|
||||||
"Free Software Foundation, Inc.\n"
|
|
||||||
|
|
||||||
#: src/getargs.c:272
|
|
||||||
msgid ""
|
|
||||||
"This is free software; see the source for copying conditions. There is NO\n"
|
|
||||||
"warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n"
|
|
||||||
msgstr ""
|
|
||||||
"Ovo je slobodni softver; pogledajte kod kako biste doznali uvjete "
|
|
||||||
"kopiranja. NEMA\n"
|
|
||||||
"garancije; èak ni tvrdnje o ISPLATIVOSTI ili POGODNOSTI ZA NEKU SVRHU.\n"
|
|
||||||
|
|
||||||
#: src/getargs.c:438
|
|
||||||
#, c-format
|
|
||||||
msgid "missing operand after `%s'"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: src/getargs.c:440
|
|
||||||
#, c-format
|
|
||||||
msgid "extra operand `%s'"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: src/gram.c:139
|
|
||||||
msgid "empty"
|
|
||||||
msgstr "prazno"
|
|
||||||
|
|
||||||
#: src/gram.c:233
|
|
||||||
msgid "Grammar"
|
|
||||||
msgstr "Gramatika"
|
|
||||||
|
|
||||||
#: src/gram.c:321 src/reduce.c:394
|
|
||||||
#, fuzzy
|
|
||||||
msgid "warning"
|
|
||||||
msgstr "upozorenje:"
|
|
||||||
|
|
||||||
#: src/main.c:124
|
|
||||||
msgid "rule never reduced because of conflicts"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: src/parse-gram.y:353
|
|
||||||
msgid "POSIX forbids declarations in the grammar"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: src/parse-gram.y:476
|
|
||||||
msgid "missing identifier in parameter declaration"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: src/print.c:49
|
|
||||||
#, c-format
|
|
||||||
msgid " type %d is %s\n"
|
|
||||||
msgstr " tip %d je %s\n"
|
|
||||||
|
|
||||||
#: src/print.c:165
|
|
||||||
#, fuzzy, c-format
|
|
||||||
msgid "shift, and go to state %d\n"
|
|
||||||
msgstr " %-4s\tpomakni i idi u stanje %d\n"
|
|
||||||
|
|
||||||
#: src/print.c:167
|
|
||||||
#, fuzzy, c-format
|
|
||||||
msgid "go to state %d\n"
|
|
||||||
msgstr " $ \tidu u stanje %d\n"
|
|
||||||
|
|
||||||
#: src/print.c:204
|
|
||||||
#, fuzzy
|
|
||||||
msgid "error (nonassociative)\n"
|
|
||||||
msgstr "%-4s\tgre¹ka (nonassociative)"
|
|
||||||
|
|
||||||
#: src/print.c:292
|
|
||||||
#, fuzzy, c-format
|
|
||||||
msgid "reduce using rule %d (%s)"
|
|
||||||
msgstr "$default\treduciraj koristeæi pravilo %d (%s)"
|
|
||||||
|
|
||||||
#: src/print.c:294
|
|
||||||
msgid "accept"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: src/print.c:325 src/print.c:391
|
|
||||||
msgid "$default"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: src/print.c:420
|
|
||||||
#, c-format
|
|
||||||
msgid "state %d"
|
|
||||||
msgstr "stanje %d"
|
|
||||||
|
|
||||||
#: src/print.c:456
|
|
||||||
msgid "Terminals, with rules where they appear"
|
|
||||||
msgstr "Zavr¹ni znakovi, sa pravilima gdje se pojavljuju"
|
|
||||||
|
|
||||||
#: src/print.c:483
|
|
||||||
msgid "Nonterminals, with rules where they appear"
|
|
||||||
msgstr "Nezavr¹ni znakovi, sa pravilima gdje se pojavljuju"
|
|
||||||
|
|
||||||
#: src/print.c:512
|
|
||||||
msgid " on left:"
|
|
||||||
msgstr "s lijeva:"
|
|
||||||
|
|
||||||
#: src/print.c:527
|
|
||||||
msgid " on right:"
|
|
||||||
msgstr "s desna:"
|
|
||||||
|
|
||||||
#: src/print.c:555
|
|
||||||
#, fuzzy
|
|
||||||
msgid "Rules never reduced"
|
|
||||||
msgstr "%d pravilo nije nikad reducirano\n"
|
|
||||||
|
|
||||||
#: src/reader.c:53
|
|
||||||
#, c-format
|
|
||||||
msgid "multiple %s declarations"
|
|
||||||
msgstr "vi¹estruke %s deklaracije"
|
|
||||||
|
|
||||||
#: src/reader.c:115
|
|
||||||
#, c-format
|
|
||||||
msgid "result type clash on merge function %s: <%s> != <%s>"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: src/reader.c:213
|
|
||||||
#, c-format
|
|
||||||
msgid "rule given for %s, which is a token"
|
|
||||||
msgstr "pravilo dato za %s, a to je znak"
|
|
||||||
|
|
||||||
#: src/reader.c:242
|
|
||||||
#, fuzzy, c-format
|
|
||||||
msgid "type clash on default action: <%s> != <%s>"
|
|
||||||
msgstr "sudar tipova (`%s' `%s') na deaultnoj akciji"
|
|
||||||
|
|
||||||
#: src/reader.c:248
|
|
||||||
msgid "empty rule for typed nonterminal, and no action"
|
|
||||||
msgstr "prazno pravilo za nezavr¹ni znak, i nema akcije"
|
|
||||||
|
|
||||||
#: src/reader.c:318 src/reader.c:332 src/reader.c:345
|
|
||||||
#, c-format
|
|
||||||
msgid "only one %s allowed per rule"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: src/reader.c:328 src/reader.c:343
|
|
||||||
#, c-format
|
|
||||||
msgid "%s affects only GLR parsers"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: src/reader.c:330
|
|
||||||
#, c-format
|
|
||||||
msgid "%s must be followed by positive number"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: src/reader.c:487
|
|
||||||
msgid "no rules in the input grammar"
|
|
||||||
msgstr "nema pravila u ulaznoj gramatici"
|
|
||||||
|
|
||||||
#: src/reduce.c:242
|
|
||||||
#, fuzzy
|
|
||||||
msgid "useless rule"
|
|
||||||
msgstr "%d beskorisno pravilo"
|
|
||||||
|
|
||||||
#: src/reduce.c:303
|
|
||||||
#, fuzzy, c-format
|
|
||||||
msgid "useless nonterminal: %s"
|
|
||||||
msgstr "Beskorisni nezavr¹ni znakovi:"
|
|
||||||
|
|
||||||
#: src/reduce.c:351
|
|
||||||
#, fuzzy
|
|
||||||
msgid "Useless nonterminals"
|
|
||||||
msgstr "Beskorisni nezavr¹ni znakovi:"
|
|
||||||
|
|
||||||
#: src/reduce.c:364
|
|
||||||
#, fuzzy
|
|
||||||
msgid "Terminals which are not used"
|
|
||||||
msgstr "Zavr¹ni znakovi koji nisu kori¹teni:"
|
|
||||||
|
|
||||||
#: src/reduce.c:373
|
|
||||||
#, fuzzy
|
|
||||||
msgid "Useless rules"
|
|
||||||
msgstr "Beskorisna pravila:"
|
|
||||||
|
|
||||||
#: src/reduce.c:389
|
|
||||||
#, c-format
|
|
||||||
msgid "%d rule never reduced\n"
|
|
||||||
msgid_plural "%d rules never reduced\n"
|
|
||||||
msgstr[0] "%d pravilo nije nikad reducirano\n"
|
|
||||||
msgstr[1] "%d pravila nisu nikad reducirana\n"
|
|
||||||
|
|
||||||
#: src/reduce.c:397
|
|
||||||
#, c-format
|
|
||||||
msgid "%d useless nonterminal"
|
|
||||||
msgid_plural "%d useless nonterminals"
|
|
||||||
msgstr[0] "%d beskorisan nezavr¹ni znak"
|
|
||||||
msgstr[1] "%d beskorisnih nezavr¹nih znakova"
|
|
||||||
|
|
||||||
#: src/reduce.c:403
|
|
||||||
msgid " and "
|
|
||||||
msgstr " i"
|
|
||||||
|
|
||||||
#: src/reduce.c:406
|
|
||||||
#, c-format
|
|
||||||
msgid "%d useless rule"
|
|
||||||
msgid_plural "%d useless rules"
|
|
||||||
msgstr[0] "%d beskorisno pravilo"
|
|
||||||
msgstr[1] "%d beskorisnih pravila"
|
|
||||||
|
|
||||||
#: src/reduce.c:436
|
|
||||||
#, fuzzy, c-format
|
|
||||||
msgid "start symbol %s does not derive any sentence"
|
|
||||||
msgstr "Poèetni simbol %s ne daje niti jednu reèenicu"
|
|
||||||
|
|
||||||
#: src/scan-gram.l:160
|
|
||||||
msgid "stray `,' treated as white space"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: src/scan-gram.l:221
|
|
||||||
#, fuzzy, c-format
|
|
||||||
msgid "invalid directive: %s"
|
|
||||||
msgstr "nedozvoljeni ulaz: %s"
|
|
||||||
|
|
||||||
#: src/scan-gram.l:241 src/scan-gram.l:804 src/scan-gram.l:873
|
|
||||||
#, c-format
|
|
||||||
msgid "integer out of range: %s"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: src/scan-gram.l:283
|
|
||||||
#, fuzzy, c-format
|
|
||||||
msgid "invalid character: %s"
|
|
||||||
msgstr "nepoznati znak: %s"
|
|
||||||
|
|
||||||
#: src/scan-gram.l:412 src/scan-gram.l:422 src/scan-gram.l:441
|
|
||||||
#, fuzzy, c-format
|
|
||||||
msgid "invalid escape sequence: %s"
|
|
||||||
msgstr "nedozvoljeni ulaz: %s"
|
|
||||||
|
|
||||||
#: src/scan-gram.l:446
|
|
||||||
#, fuzzy, c-format
|
|
||||||
msgid "unrecognized escape sequence: %s"
|
|
||||||
msgstr "neprepoznati: %s"
|
|
||||||
|
|
||||||
#: src/scan-gram.l:534
|
|
||||||
#, c-format
|
|
||||||
msgid "missing `{' in `%s'"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: src/scan-gram.l:774
|
|
||||||
#, c-format
|
|
||||||
msgid "$$ of `%s' has no declared type"
|
|
||||||
msgstr "$$ od `%s' nema deklarirani tip"
|
|
||||||
|
|
||||||
#: src/scan-gram.l:795
|
|
||||||
#, c-format
|
|
||||||
msgid "$%d of `%s' has no declared type"
|
|
||||||
msgstr "$%d od `%s' nema deklarirani tip"
|
|
||||||
|
|
||||||
#: src/scan-gram.l:840 src/scan-gram.l:908
|
|
||||||
#, fuzzy, c-format
|
|
||||||
msgid "invalid value: %s"
|
|
||||||
msgstr "nedozvoljena $ vrijednost"
|
|
||||||
|
|
||||||
#: src/scan-gram.l:996
|
|
||||||
#, fuzzy, c-format
|
|
||||||
msgid "missing `%s' at end of file"
|
|
||||||
msgstr "nezavr¹eni znakovni niz na kraju datoteke"
|
|
||||||
|
|
||||||
#: src/symlist.c:97 src/symlist.c:108
|
|
||||||
msgid "invalid $ value"
|
|
||||||
msgstr "nedozvoljena $ vrijednost"
|
|
||||||
|
|
||||||
#: src/symtab.c:84
|
|
||||||
#, c-format
|
|
||||||
msgid "type redeclaration for %s"
|
|
||||||
msgstr "ponovna deklaracija za %s"
|
|
||||||
|
|
||||||
#: src/symtab.c:101 src/symtab.c:119
|
|
||||||
#, fuzzy, c-format
|
|
||||||
msgid "%s redeclaration for %s"
|
|
||||||
msgstr "ponovna deklaracija za %s"
|
|
||||||
|
|
||||||
#: src/symtab.c:138
|
|
||||||
#, c-format
|
|
||||||
msgid "redefining precedence of %s"
|
|
||||||
msgstr "ponovno definiran prethodnik od %s"
|
|
||||||
|
|
||||||
#: src/symtab.c:156
|
|
||||||
#, c-format
|
|
||||||
msgid "symbol %s redefined"
|
|
||||||
msgstr "simbol %s ponovo definiran"
|
|
||||||
|
|
||||||
#: src/symtab.c:179
|
|
||||||
#, fuzzy, c-format
|
|
||||||
msgid "redefining user token number of %s"
|
|
||||||
msgstr "ponovno definiran prethodnik od %s"
|
|
||||||
|
|
||||||
#: src/symtab.c:206
|
|
||||||
#, c-format
|
|
||||||
msgid "symbol %s is used, but is not defined as a token and has no rules"
|
|
||||||
msgstr "simbol %s je kori¹ten, ali nije definiran kao znak i nema pravila"
|
|
||||||
|
|
||||||
#: src/symtab.c:231
|
|
||||||
#, c-format
|
|
||||||
msgid "symbol `%s' used more than once as a literal string"
|
|
||||||
msgstr "simbol `%s' kori¹ten vi¹e puta kao znakovni niz"
|
|
||||||
|
|
||||||
#: src/symtab.c:234
|
|
||||||
#, c-format
|
|
||||||
msgid "symbol `%s' given more than one literal string"
|
|
||||||
msgstr "simbolz `%s' dat vi¹e od jednog znakovnog niza"
|
|
||||||
|
|
||||||
#: src/symtab.c:270
|
|
||||||
#, c-format
|
|
||||||
msgid "conflicting precedences for %s and %s"
|
|
||||||
msgstr "konflikt u prethodnici za %s and %s"
|
|
||||||
|
|
||||||
#: src/symtab.c:282
|
|
||||||
#, fuzzy, c-format
|
|
||||||
msgid "conflicting associativities for %s (%s) and %s (%s)"
|
|
||||||
msgstr "konfliktne asocijativne vrijednosti za %s i %s"
|
|
||||||
|
|
||||||
#: src/symtab.c:367
|
|
||||||
#, c-format
|
|
||||||
msgid "tokens %s and %s both assigned number %d"
|
|
||||||
msgstr "objema znakovima %s i %s je pridru¾en broj %d"
|
|
||||||
|
|
||||||
#: src/symtab.c:590
|
|
||||||
#, c-format
|
|
||||||
msgid "the start symbol %s is undefined"
|
|
||||||
msgstr "poèetni simbol %s nije definiran"
|
|
||||||
|
|
||||||
#: src/symtab.c:594
|
|
||||||
#, c-format
|
|
||||||
msgid "the start symbol %s is a token"
|
|
||||||
msgstr "poèetni simbol %s je znak"
|
|
||||||
|
|
||||||
#: lib/argmatch.c:135
|
|
||||||
#, fuzzy, c-format
|
|
||||||
msgid "invalid argument %s for %s"
|
|
||||||
msgstr "nedozvoljeni ulaz: %s"
|
|
||||||
|
|
||||||
#: lib/argmatch.c:136
|
|
||||||
#, c-format
|
|
||||||
msgid "ambiguous argument %s for %s"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: lib/argmatch.c:155
|
|
||||||
msgid "Valid arguments are:"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: lib/bitset_stats.c:179
|
|
||||||
#, c-format
|
|
||||||
msgid "%u bitset_allocs, %u freed (%.2f%%).\n"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: lib/bitset_stats.c:182
|
|
||||||
#, c-format
|
|
||||||
msgid "%u bitset_sets, %u cached (%.2f%%)\n"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: lib/bitset_stats.c:185
|
|
||||||
#, c-format
|
|
||||||
msgid "%u bitset_resets, %u cached (%.2f%%)\n"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: lib/bitset_stats.c:188
|
|
||||||
#, c-format
|
|
||||||
msgid "%u bitset_tests, %u cached (%.2f%%)\n"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: lib/bitset_stats.c:192
|
|
||||||
#, c-format
|
|
||||||
msgid "%u bitset_lists\n"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: lib/bitset_stats.c:194
|
|
||||||
msgid "count log histogram\n"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: lib/bitset_stats.c:197
|
|
||||||
msgid "size log histogram\n"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: lib/bitset_stats.c:200
|
|
||||||
msgid "density histogram\n"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: lib/bitset_stats.c:214
|
|
||||||
msgid ""
|
|
||||||
"Bitset statistics:\n"
|
|
||||||
"\n"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: lib/bitset_stats.c:217
|
|
||||||
#, c-format
|
|
||||||
msgid "Accumulated runs = %u\n"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: lib/bitset_stats.c:261 lib/bitset_stats.c:266
|
|
||||||
msgid "Could not read stats file."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: lib/bitset_stats.c:263
|
|
||||||
msgid "Bad stats file size.\n"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: lib/bitset_stats.c:289 lib/bitset_stats.c:291
|
|
||||||
msgid "Could not write stats file."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: lib/bitset_stats.c:294
|
|
||||||
msgid "Could not open stats file for writing."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: lib/getopt.c:688 lib/getopt.c:700
|
|
||||||
#, c-format
|
|
||||||
msgid "%s: option `%s' is ambiguous\n"
|
|
||||||
msgstr "%s: opcija `%s' je nejednoznaèna\n"
|
|
||||||
|
|
||||||
#: lib/getopt.c:733 lib/getopt.c:737
|
|
||||||
#, c-format
|
|
||||||
msgid "%s: option `--%s' doesn't allow an argument\n"
|
|
||||||
msgstr "%s: opcija `--%s' ne dopu¹ta argument\n"
|
|
||||||
|
|
||||||
#: lib/getopt.c:746 lib/getopt.c:751
|
|
||||||
#, c-format
|
|
||||||
msgid "%s: option `%c%s' doesn't allow an argument\n"
|
|
||||||
msgstr "%s: opcija `%c%s' ne dopu¹ta argument\n"
|
|
||||||
|
|
||||||
#: lib/getopt.c:787 lib/getopt.c:800 lib/getopt.c:1089 lib/getopt.c:1102
|
|
||||||
#, c-format
|
|
||||||
msgid "%s: option `%s' requires an argument\n"
|
|
||||||
msgstr "%s: opcija `%s' zahtijeva argument\n"
|
|
||||||
|
|
||||||
#: lib/getopt.c:838 lib/getopt.c:841
|
|
||||||
#, c-format
|
|
||||||
msgid "%s: unrecognized option `--%s'\n"
|
|
||||||
msgstr "%s: neprepoznata opcija `--%s'\n"
|
|
||||||
|
|
||||||
#: lib/getopt.c:849 lib/getopt.c:852
|
|
||||||
#, c-format
|
|
||||||
msgid "%s: unrecognized option `%c%s'\n"
|
|
||||||
msgstr "%s: neprepoznata opcija `%c%s'\n"
|
|
||||||
|
|
||||||
#: lib/getopt.c:899 lib/getopt.c:902
|
|
||||||
#, c-format
|
|
||||||
msgid "%s: illegal option -- %c\n"
|
|
||||||
msgstr "%s: nedozvoljena opcija -- %c\n"
|
|
||||||
|
|
||||||
#: lib/getopt.c:908 lib/getopt.c:911
|
|
||||||
#, c-format
|
|
||||||
msgid "%s: invalid option -- %c\n"
|
|
||||||
msgstr "%s: nedozvoljena opcija -- %c\n"
|
|
||||||
|
|
||||||
#: lib/getopt.c:958 lib/getopt.c:969 lib/getopt.c:1155 lib/getopt.c:1168
|
|
||||||
#, c-format
|
|
||||||
msgid "%s: option requires an argument -- %c\n"
|
|
||||||
msgstr "%s: opcija zahtijeva argument -- %c\n"
|
|
||||||
|
|
||||||
#: lib/getopt.c:1021 lib/getopt.c:1032
|
|
||||||
#, c-format
|
|
||||||
msgid "%s: option `-W %s' is ambiguous\n"
|
|
||||||
msgstr "%s: opcija `-W %s' je nejednoznaèna\n"
|
|
||||||
|
|
||||||
#: lib/getopt.c:1056 lib/getopt.c:1068
|
|
||||||
#, c-format
|
|
||||||
msgid "%s: option `-W %s' doesn't allow an argument\n"
|
|
||||||
msgstr "%s: opcija `-W %s' ne dopu¹ta argument\n"
|
|
||||||
|
|
||||||
#: lib/obstack.c:487 lib/obstack.c:490 lib/xmalloc.c:63
|
|
||||||
msgid "memory exhausted"
|
|
||||||
msgstr "iscrpljeni memorijski resursi"
|
|
||||||
|
|
||||||
#: lib/quotearg.c:236
|
|
||||||
msgid "`"
|
|
||||||
msgstr "`"
|
|
||||||
|
|
||||||
#: lib/quotearg.c:237
|
|
||||||
msgid "'"
|
|
||||||
msgstr "'"
|
|
||||||
|
|
||||||
#: lib/subpipe.c:187
|
|
||||||
#, c-format
|
|
||||||
msgid "subsidiary program `%s' could not be invoked"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: lib/subpipe.c:189
|
|
||||||
#, c-format
|
|
||||||
msgid "subsidiary program `%s' not found"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: lib/subpipe.c:191
|
|
||||||
#, c-format
|
|
||||||
msgid "subsidiary program `%s' failed"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: lib/subpipe.c:192
|
|
||||||
#, c-format
|
|
||||||
msgid "subsidiary program `%s' failed (exit status %d)"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: lib/timevar.c:476
|
|
||||||
msgid ""
|
|
||||||
"\n"
|
|
||||||
"Execution times (seconds)\n"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: lib/timevar.c:526
|
|
||||||
msgid " TOTAL :"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: lib/timevar.c:562
|
|
||||||
#, c-format
|
|
||||||
msgid "time in %s: %ld.%06ld (%ld%%)\n"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#~ msgid "too many states (max %d)"
|
|
||||||
#~ msgstr "previ¹e stanja (maks %d)"
|
|
||||||
|
|
||||||
#~ msgid "reduce"
|
|
||||||
#~ msgstr "reduciraj"
|
|
||||||
|
|
||||||
#~ msgid "shift"
|
|
||||||
#~ msgstr "pomakni"
|
|
||||||
|
|
||||||
#~ msgid "%d shift/reduce conflict"
|
|
||||||
#~ msgid_plural "%d shift/reduce conflicts"
|
|
||||||
#~ msgstr[0] "%d pomakni/reduciraj konflikat"
|
|
||||||
#~ msgstr[1] "%d pomakni/reduciraj konflikata"
|
|
||||||
|
|
||||||
#~ msgid "and"
|
|
||||||
#~ msgstr "i"
|
|
||||||
|
|
||||||
#~ msgid "State %d contains "
|
|
||||||
#~ msgstr "Stanje %d sadr¾i"
|
|
||||||
|
|
||||||
#~ msgid "conflicts: "
|
|
||||||
#~ msgstr "konflikt:"
|
|
||||||
|
|
||||||
#~ msgid "%s contains "
|
|
||||||
#~ msgstr "%s sadr¾i"
|
|
||||||
|
|
||||||
#~ msgid " %-4s\t[reduce using rule %d (%s)]\n"
|
|
||||||
#~ msgstr " %-4s\t[reduciraj koristeæi pravilo %d (%s)]\n"
|
|
||||||
|
|
||||||
#~ msgid ""
|
|
||||||
#~ " $default\treduce using rule %d (%s)\n"
|
|
||||||
#~ "\n"
|
|
||||||
#~ msgstr ""
|
|
||||||
#~ " $default\treduciraj koristeæi pravilo %d (%s)\n"
|
|
||||||
#~ "\n"
|
|
||||||
|
|
||||||
#~ msgid " %-4s\treduce using rule %d (%s)\n"
|
|
||||||
#~ msgstr " %-4s\treduciraj koristeæi pravilo %d (%s)\n"
|
|
||||||
|
|
||||||
#~ msgid " $default\treduce using rule %d (%s)\n"
|
|
||||||
#~ msgstr " $default\treduciraj koristeæi pravilo %d (%s)\n"
|
|
||||||
|
|
||||||
#~ msgid "`%s' is no longer supported"
|
|
||||||
#~ msgstr "`%s' vi¹e nije podr¾ano"
|
|
||||||
|
|
||||||
#~ msgid "%s: no grammar file given\n"
|
|
||||||
#~ msgstr "%s: nije data datoteka sa gramatikom\n"
|
|
||||||
|
|
||||||
#~ msgid "%s: extra arguments ignored after `%s'\n"
|
|
||||||
#~ msgstr "%s: dodatni argumenti se ignoriraju nakon `%s'\n"
|
|
||||||
|
|
||||||
#~ msgid "too many gotos (max %d)"
|
|
||||||
#~ msgstr "previ¹e goto-a (maksimalno %d)"
|
|
||||||
|
|
||||||
#~ msgid "unexpected `/' found and ignored"
|
|
||||||
#~ msgstr "neoèekivan `/' naðen i zanemaren"
|
|
||||||
|
|
||||||
#~ msgid "unterminated comment"
|
|
||||||
#~ msgstr "nezavr¹eni komentar"
|
|
||||||
|
|
||||||
#~ msgid "unexpected end of file"
|
|
||||||
#~ msgstr "neoèekivan kraj datoteke"
|
|
||||||
|
|
||||||
#~ msgid "unescaped newline in constant"
|
|
||||||
#~ msgstr "neoèekivan znak za novu liniju u konstanti"
|
|
||||||
|
|
||||||
#~ msgid "octal value outside range 0...255: `\\%o'"
|
|
||||||
#~ msgstr "oktalna vrijednost izvan dosega 0...255: `\\%o'"
|
|
||||||
|
|
||||||
#~ msgid "hexadecimal value above 255: `\\x%x'"
|
|
||||||
#~ msgstr "heksadecimalna vrijednost vi¹a od 255: `\\x%x'"
|
|
||||||
|
|
||||||
#~ msgid "unknown escape sequence: `\\' followed by `%s'"
|
|
||||||
#~ msgstr "nepoznata escape sekvenca: `\\' koju slijedi `%s'"
|
|
||||||
|
|
||||||
#~ msgid "unterminated type name at end of file"
|
|
||||||
#~ msgstr "nezavr¹eno ime tipa pri kraju datoteke"
|
|
||||||
|
|
||||||
#~ msgid "unterminated type name"
|
|
||||||
#~ msgstr "nezavr¹eno ime tipa"
|
|
||||||
|
|
||||||
#~ msgid "use \"...\" for multi-character literal tokens"
|
|
||||||
#~ msgstr "koristi \"...\" za vi¹ebajtne znakove"
|
|
||||||
|
|
||||||
#~ msgid "`%s' supports no argument: %s"
|
|
||||||
#~ msgstr "`%s' ne podr¾ava argument: %s"
|
|
||||||
|
|
||||||
#~ msgid "`%s' requires an argument"
|
|
||||||
#~ msgstr "`%s' zahtijeva argument"
|
|
||||||
|
|
||||||
#~ msgid "maximum table size (%d) exceeded"
|
|
||||||
#~ msgstr "maksimalna velièina tablice (%d) prekoraèena"
|
|
||||||
|
|
||||||
#~ msgid " (rule %d)"
|
|
||||||
#~ msgstr " (pravilo %d)"
|
|
||||||
|
|
||||||
#~ msgid " $default\taccept\n"
|
|
||||||
#~ msgstr " $default\tprihvati\n"
|
|
||||||
|
|
||||||
#~ msgid " NO ACTIONS\n"
|
|
||||||
#~ msgstr " NEMA AKCIJA\n"
|
|
||||||
|
|
||||||
#~ msgid " %-4s\terror (nonassociative)\n"
|
|
||||||
#~ msgstr " %-4s\tgre¹ka (nonassociative)\n"
|
|
||||||
|
|
||||||
#~ msgid " %-4s\tgo to state %d\n"
|
|
||||||
#~ msgstr " %-4s\tidu u stanje %d\n"
|
|
||||||
|
|
||||||
#~ msgid "Number, Line, Rule"
|
|
||||||
#~ msgstr "Broj, Linija, Pravilo"
|
|
||||||
|
|
||||||
#~ msgid " %3d %3d %s ->"
|
|
||||||
#~ msgstr " %3d %3d %s ->"
|
|
||||||
|
|
||||||
#~ msgid " Skipping to next \\n"
|
|
||||||
#~ msgstr " Preskaèem na slijedeæe \\n"
|
|
||||||
|
|
||||||
#~ msgid " Skipping to next %c"
|
|
||||||
#~ msgstr " Preskaèem na slijedeæi %c"
|
|
||||||
|
|
||||||
#~ msgid "unterminated string"
|
|
||||||
#~ msgstr "nezavr¹eni znakovni niz"
|
|
||||||
|
|
||||||
#~ msgid "invalid @ value"
|
|
||||||
#~ msgstr "nedozvoljena @ vrijednost"
|
|
||||||
|
|
||||||
#~ msgid "%s is invalid"
|
|
||||||
#~ msgstr "%s je nedozvoljeno"
|
|
||||||
|
|
||||||
#~ msgid "unterminated `%{' definition"
|
|
||||||
#~ msgstr "nezavr¹ena `%{' definicija"
|
|
||||||
|
|
||||||
#~ msgid "Premature EOF after %s"
|
|
||||||
#~ msgstr "Preuranjeni EOF nakon %s"
|
|
||||||
|
|
||||||
#~ msgid "`%s' is invalid in %s"
|
|
||||||
#~ msgstr "`%s' je nedozvoljen u %s"
|
|
||||||
|
|
||||||
#~ msgid "invalid %s declaration"
|
|
||||||
#~ msgstr "nedozvoljena %s deklaracija"
|
|
||||||
|
|
||||||
#~ msgid "%type declaration has no <typename>"
|
|
||||||
#~ msgstr "%type deklaracija nema <typename>"
|
|
||||||
|
|
||||||
#~ msgid "invalid %%type declaration due to item: %s"
|
|
||||||
#~ msgstr "nedozvoljena %%type deklaracija zbog: %s"
|
|
||||||
|
|
||||||
#~ msgid "invalid text (%s) - number should be after identifier"
|
|
||||||
#~ msgstr "nedozvoljeno tekst (%s) - broj bi trebao biti nakon identifikatora"
|
|
||||||
|
|
||||||
#~ msgid "unexpected item: %s"
|
|
||||||
#~ msgstr "neoèekivani: %s"
|
|
||||||
|
|
||||||
#~ msgid "unmatched %s"
|
|
||||||
#~ msgstr "nije pronaðen %s"
|
|
||||||
|
|
||||||
#~ msgid "argument of %%expect is not an integer"
|
|
||||||
#~ msgstr "argument od %%expect nije cijeli broj"
|
|
||||||
|
|
||||||
#~ msgid "unrecognized item %s, expected an identifier"
|
|
||||||
#~ msgstr "neprepoznati %s, oèekivan nakon identifikatora"
|
|
||||||
|
|
||||||
#~ msgid "expected string constant instead of %s"
|
|
||||||
#~ msgstr "oèekivana znakovna konstana umjesto %s"
|
|
||||||
|
|
||||||
#~ msgid "no input grammar"
|
|
||||||
#~ msgstr "nema ulazne gramatike"
|
|
||||||
|
|
||||||
#~ msgid "unterminated %guard clause"
|
|
||||||
#~ msgstr "nezavr¹ena %guard klauzula"
|
|
||||||
|
|
||||||
#~ msgid "ill-formed rule: initial symbol not followed by colon"
|
|
||||||
#~ msgstr "lo¹e pravilo: zarez ne bi trebao slijediti poèetni simbol"
|
|
||||||
|
|
||||||
#~ msgid "grammar starts with vertical bar"
|
|
||||||
#~ msgstr "gramatika poèinje sa okomitom crtom"
|
|
||||||
|
|
||||||
#~ msgid "previous rule lacks an ending `;'"
|
|
||||||
#~ msgstr "prethodnom pravilu nedostaje zavr¹etak `;'"
|
|
||||||
|
|
||||||
#~ msgid "two @prec's in a row"
|
|
||||||
#~ msgstr "dva @prec's u retku"
|
|
||||||
|
|
||||||
#~ msgid "%%guard present but %%semantic_parser not specified"
|
|
||||||
#~ msgstr "%%guard prisutan ali %%semantic_parser nije specificiran"
|
|
||||||
|
|
||||||
#~ msgid "two actions at end of one rule"
|
|
||||||
#~ msgstr "dvije akcije pri kraju jednog pravila"
|
|
||||||
|
|
||||||
#~ msgid "too many symbols (tokens plus nonterminals); maximum %d"
|
|
||||||
#~ msgstr "previ¹e simbola (znakovi plus nezavr¹ni znakovi); maksimalno %d"
|
|
||||||
721
po/id.po
721
po/id.po
@@ -1,721 +0,0 @@
|
|||||||
# bison 1.875 (Indonesian)
|
|
||||||
# Copyright (C) 2002 Free Software Foundation, Inc.
|
|
||||||
# This file is distributed under the same license as the bison 1.50 package.
|
|
||||||
# Tedi Heriyanto <tedi_h@gmx.net>, 2002, 2003
|
|
||||||
#
|
|
||||||
msgid ""
|
|
||||||
msgstr ""
|
|
||||||
"Project-Id-Version: bison 1.875\n"
|
|
||||||
"Report-Msgid-Bugs-To: bug-bison@gnu.org\n"
|
|
||||||
"POT-Creation-Date: 2003-08-25 17:14+0200\n"
|
|
||||||
"PO-Revision-Date: 2003-01-07 13:25GMT+0700\n"
|
|
||||||
"Last-Translator: Tedi Heriyanto <tedi_h@gmx.net>\n"
|
|
||||||
"Language-Team: Indonesian <translation-team-id@lists.sourceforge.net>\n"
|
|
||||||
"MIME-Version: 1.0\n"
|
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
|
||||||
"Plural-Forms: nplurals=1; plural=0;\n"
|
|
||||||
"X-Generator: KBabel 0.9.6\n"
|
|
||||||
|
|
||||||
#: src/complain.c:56 lib/error.c:135 lib/error.c:163
|
|
||||||
msgid "Unknown system error"
|
|
||||||
msgstr "Kesalahan sistem tidak dikenal"
|
|
||||||
|
|
||||||
#: src/complain.c:79 src/complain.c:94
|
|
||||||
msgid "warning: "
|
|
||||||
msgstr "peringatan: "
|
|
||||||
|
|
||||||
#: src/complain.c:150 src/complain.c:166
|
|
||||||
msgid "fatal error: "
|
|
||||||
msgstr "kesalahan fatal: "
|
|
||||||
|
|
||||||
#: src/conflicts.c:75
|
|
||||||
#, c-format
|
|
||||||
msgid " Conflict between rule %d and token %s resolved as shift"
|
|
||||||
msgstr " Konflik antara aturan %d dan token %s diselesaikan sebagai shift"
|
|
||||||
|
|
||||||
#: src/conflicts.c:83
|
|
||||||
#, c-format
|
|
||||||
msgid " Conflict between rule %d and token %s resolved as reduce"
|
|
||||||
msgstr " Konflik antara aturan %d dan token %s diselesaikan sebagai reduce"
|
|
||||||
|
|
||||||
#: src/conflicts.c:90
|
|
||||||
#, c-format
|
|
||||||
msgid " Conflict between rule %d and token %s resolved as an error"
|
|
||||||
msgstr ""
|
|
||||||
" Konflik antara aturan %d dan token %s diselesaikan sebagai kesalahan"
|
|
||||||
|
|
||||||
#: src/conflicts.c:398
|
|
||||||
#, c-format
|
|
||||||
msgid "conflicts: %d shift/reduce, %d reduce/reduce\n"
|
|
||||||
msgstr "konflik: %d geser/kurangi, %d kurangi/kurangi\n"
|
|
||||||
|
|
||||||
#: src/conflicts.c:401
|
|
||||||
#, c-format
|
|
||||||
msgid "conflicts: %d shift/reduce\n"
|
|
||||||
msgstr "konflik: %d geser/kurangi\n"
|
|
||||||
|
|
||||||
#: src/conflicts.c:403
|
|
||||||
#, c-format
|
|
||||||
msgid "conflicts: %d reduce/reduce\n"
|
|
||||||
msgstr "konflik: %d kurangi/kurangi\n"
|
|
||||||
|
|
||||||
#: src/conflicts.c:421
|
|
||||||
#, c-format
|
|
||||||
msgid "State %d "
|
|
||||||
msgstr "State %d "
|
|
||||||
|
|
||||||
#: src/conflicts.c:498
|
|
||||||
#, c-format
|
|
||||||
msgid "expected %d shift/reduce conflict"
|
|
||||||
msgid_plural "expected %d shift/reduce conflicts"
|
|
||||||
msgstr[0] "mengharapkan %d shift/reduce konflik"
|
|
||||||
msgstr[1] "mengharapkan %d shift/reduce konflik"
|
|
||||||
|
|
||||||
#: src/conflicts.c:503
|
|
||||||
msgid "expected 0 reduce/reduce conflicts"
|
|
||||||
msgstr "diharapkan 0 kurangi/kurangi konflik"
|
|
||||||
|
|
||||||
#: src/files.c:99
|
|
||||||
#, c-format
|
|
||||||
msgid "cannot open file `%s'"
|
|
||||||
msgstr "tidak dapat membuka file `%s'"
|
|
||||||
|
|
||||||
#: src/files.c:115
|
|
||||||
msgid "I/O error"
|
|
||||||
msgstr "Kesalahan I/O"
|
|
||||||
|
|
||||||
#: src/files.c:118
|
|
||||||
msgid "cannot close file"
|
|
||||||
msgstr "tidak dapat menutup file"
|
|
||||||
|
|
||||||
#: src/files.c:336
|
|
||||||
#, c-format
|
|
||||||
msgid "conflicting outputs to file %s"
|
|
||||||
msgstr "output konflik ke file %s"
|
|
||||||
|
|
||||||
#: src/getargs.c:186
|
|
||||||
#, c-format
|
|
||||||
msgid "Try `%s --help' for more information.\n"
|
|
||||||
msgstr "Coba `%s --help' untuk informasi lebih lanjut.\n"
|
|
||||||
|
|
||||||
#: src/getargs.c:192
|
|
||||||
msgid "GNU bison generates parsers for LALR(1) grammars.\n"
|
|
||||||
msgstr "GNU bison generates parsers for LALR(1) grammars.\n"
|
|
||||||
|
|
||||||
#: src/getargs.c:196
|
|
||||||
#, c-format
|
|
||||||
msgid "Usage: %s [OPTION]... FILE\n"
|
|
||||||
msgstr "Penggunaan: %s [OPTION]... FILE\n"
|
|
||||||
|
|
||||||
#: src/getargs.c:200
|
|
||||||
msgid ""
|
|
||||||
"If a long option shows an argument as mandatory, then it is mandatory\n"
|
|
||||||
"for the equivalent short option also. Similarly for optional arguments.\n"
|
|
||||||
msgstr ""
|
|
||||||
"Jika option panjang menyatakan argumen sebagai mandatori, maka ia mandatori "
|
|
||||||
"juga\n"
|
|
||||||
"untuk option pendek. Hal yang sama untuk argumen opsional.\n"
|
|
||||||
|
|
||||||
#: src/getargs.c:206
|
|
||||||
msgid ""
|
|
||||||
"Operation modes:\n"
|
|
||||||
" -h, --help display this help and exit\n"
|
|
||||||
" -V, --version output version information and exit\n"
|
|
||||||
" -y, --yacc emulate POSIX yacc\n"
|
|
||||||
msgstr ""
|
|
||||||
"Mode Operasi:\n"
|
|
||||||
" -h, --help tampilkan bantuan ini dan keluar\n"
|
|
||||||
" -V, --version tampilkan informasi versi dan keluar\n"
|
|
||||||
" -y, --yacc emulasikan POSIX yacc\n"
|
|
||||||
|
|
||||||
#: src/getargs.c:213
|
|
||||||
msgid ""
|
|
||||||
"Parser:\n"
|
|
||||||
" -S, --skeleton=FILE specify the skeleton to use\n"
|
|
||||||
" -t, --debug instrument the parser for debugging\n"
|
|
||||||
" --locations enable locations computation\n"
|
|
||||||
" -p, --name-prefix=PREFIX prepend PREFIX to the external symbols\n"
|
|
||||||
" -l, --no-lines don't generate `#line' directives\n"
|
|
||||||
" -n, --no-parser generate the tables only\n"
|
|
||||||
" -k, --token-table include a table of token names\n"
|
|
||||||
msgstr ""
|
|
||||||
"Parser:\n"
|
|
||||||
" -S, --skeleton=FILE specifikasikan rangka yang akan digunakan\n"
|
|
||||||
" -t, --debug instrumen parser untuk debugging\n"
|
|
||||||
" --locations aktifkan lokasi perhitungan\n"
|
|
||||||
" -p, --name-prefix=PREFIX tambahkan PREFIX ke simbol eksternal\n"
|
|
||||||
" -l, --no-lines jangan hasilkan direktiv `#line'\n"
|
|
||||||
" -n, --no-parser hasilkan hanya tabel\n"
|
|
||||||
" -k, --token-table sertakan tabel nama token\n"
|
|
||||||
|
|
||||||
#: src/getargs.c:225
|
|
||||||
msgid ""
|
|
||||||
"Output:\n"
|
|
||||||
" -d, --defines also produce a header file\n"
|
|
||||||
" -r, --report=THINGS also produce details on the automaton\n"
|
|
||||||
" -v, --verbose same as `--report=state'\n"
|
|
||||||
" -b, --file-prefix=PREFIX specify a PREFIX for output files\n"
|
|
||||||
" -o, --output=FILE leave output to FILE\n"
|
|
||||||
" -g, --graph also produce a VCG description of the "
|
|
||||||
"automaton\n"
|
|
||||||
msgstr ""
|
|
||||||
"Output:\n"
|
|
||||||
" -d, --defines juga hasilkan file header\n"
|
|
||||||
" -r, --report=THINGS juga hasilkan detil tentang otomaton\n"
|
|
||||||
" -v, --verbose sama seperti `--report=state'\n"
|
|
||||||
" -b, --file-prefix=PREFIX spesifikasikan PREFIX untuk file output\n"
|
|
||||||
" -o, --output=FILE simpan output ke FILE\n"
|
|
||||||
" -g, --graph juga hasilkan deskripsi VCG automaton\n"
|
|
||||||
|
|
||||||
#: src/getargs.c:236
|
|
||||||
msgid ""
|
|
||||||
"THINGS is a list of comma separated words that can include:\n"
|
|
||||||
" `state' describe the states\n"
|
|
||||||
" `itemset' complete the core item sets with their closure\n"
|
|
||||||
" `lookahead' explicitly associate lookaheads to items\n"
|
|
||||||
" `solved' describe shift/reduce conflicts solving\n"
|
|
||||||
" `all' include all the above information\n"
|
|
||||||
" `none' disable the report\n"
|
|
||||||
msgstr ""
|
|
||||||
"THINGS adalah daftar kata yang dipisahkan koma termasuk:\n"
|
|
||||||
" `state' menggambarkan state\n"
|
|
||||||
" `itemset' lengkapi himpunan item inti dengan klosurnya\n"
|
|
||||||
" `lookahead' asosiasikan lookaheads ke items secara eksplisit\n"
|
|
||||||
" `solved' gambarkan penyelesaian konflik shift/reduce\n"
|
|
||||||
" `all' sertakan semua informasi di atas\n"
|
|
||||||
" `none' tiadakan laporan\n"
|
|
||||||
|
|
||||||
#: src/getargs.c:247
|
|
||||||
msgid "Report bugs to <bug-bison@gnu.org>.\n"
|
|
||||||
msgstr "Laporkan kesalahan ke <bug-bison@gnu.org>.\n"
|
|
||||||
|
|
||||||
#: src/getargs.c:264
|
|
||||||
#, c-format
|
|
||||||
msgid "bison (GNU Bison) %s"
|
|
||||||
msgstr "bison (GNU Bison) %s"
|
|
||||||
|
|
||||||
#: src/getargs.c:266
|
|
||||||
msgid "Written by Robert Corbett and Richard Stallman.\n"
|
|
||||||
msgstr "Written by Robert Corbett and Richard Stallman.\n"
|
|
||||||
|
|
||||||
#: src/getargs.c:270
|
|
||||||
#, c-format
|
|
||||||
msgid "Copyright (C) %d Free Software Foundation, Inc.\n"
|
|
||||||
msgstr "Copyright (C) %d Free Software Foundation, Inc.\n"
|
|
||||||
|
|
||||||
#: src/getargs.c:272
|
|
||||||
msgid ""
|
|
||||||
"This is free software; see the source for copying conditions. There is NO\n"
|
|
||||||
"warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n"
|
|
||||||
msgstr ""
|
|
||||||
"This is free software; see the source for copying conditions. There is NO\n"
|
|
||||||
"warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n"
|
|
||||||
|
|
||||||
#: src/getargs.c:438
|
|
||||||
#, c-format
|
|
||||||
msgid "missing operand after `%s'"
|
|
||||||
msgstr "operand hilang setelah `%s'"
|
|
||||||
|
|
||||||
#: src/getargs.c:440
|
|
||||||
#, c-format
|
|
||||||
msgid "extra operand `%s'"
|
|
||||||
msgstr "operand ekstra `%s'"
|
|
||||||
|
|
||||||
#: src/gram.c:139
|
|
||||||
msgid "empty"
|
|
||||||
msgstr "kosong"
|
|
||||||
|
|
||||||
#: src/gram.c:233
|
|
||||||
msgid "Grammar"
|
|
||||||
msgstr "Grammar"
|
|
||||||
|
|
||||||
#: src/gram.c:321 src/reduce.c:394
|
|
||||||
msgid "warning"
|
|
||||||
msgstr "peringatan"
|
|
||||||
|
|
||||||
#: src/main.c:124
|
|
||||||
msgid "rule never reduced because of conflicts"
|
|
||||||
msgstr "aturan tidak pernah dikurangi karena konflik"
|
|
||||||
|
|
||||||
#: src/parse-gram.y:353
|
|
||||||
msgid "POSIX forbids declarations in the grammar"
|
|
||||||
msgstr "POSIX melarang deklarasi dalam grammar"
|
|
||||||
|
|
||||||
#: src/parse-gram.y:476
|
|
||||||
msgid "missing identifier in parameter declaration"
|
|
||||||
msgstr "identifier tidak ada dalam deklarasi parameter"
|
|
||||||
|
|
||||||
#: src/print.c:49
|
|
||||||
#, c-format
|
|
||||||
msgid " type %d is %s\n"
|
|
||||||
msgstr " tipe %d adalah %s\n"
|
|
||||||
|
|
||||||
#: src/print.c:165
|
|
||||||
#, c-format
|
|
||||||
msgid "shift, and go to state %d\n"
|
|
||||||
msgstr "geser, dan ke state %d\n"
|
|
||||||
|
|
||||||
#: src/print.c:167
|
|
||||||
#, c-format
|
|
||||||
msgid "go to state %d\n"
|
|
||||||
msgstr "ke state %d\n"
|
|
||||||
|
|
||||||
#: src/print.c:204
|
|
||||||
msgid "error (nonassociative)\n"
|
|
||||||
msgstr "kesalahan(nonasosiatif)\n"
|
|
||||||
|
|
||||||
#: src/print.c:292
|
|
||||||
#, c-format
|
|
||||||
msgid "reduce using rule %d (%s)"
|
|
||||||
msgstr "kurangi gunakan aturan %d (%s)"
|
|
||||||
|
|
||||||
#: src/print.c:294
|
|
||||||
msgid "accept"
|
|
||||||
msgstr "terima"
|
|
||||||
|
|
||||||
#: src/print.c:325 src/print.c:391
|
|
||||||
msgid "$default"
|
|
||||||
msgstr "$default"
|
|
||||||
|
|
||||||
#: src/print.c:420
|
|
||||||
#, c-format
|
|
||||||
msgid "state %d"
|
|
||||||
msgstr "state %d"
|
|
||||||
|
|
||||||
#: src/print.c:456
|
|
||||||
msgid "Terminals, with rules where they appear"
|
|
||||||
msgstr "Terminal, dengan aturan tempat mereka muncul"
|
|
||||||
|
|
||||||
#: src/print.c:483
|
|
||||||
msgid "Nonterminals, with rules where they appear"
|
|
||||||
msgstr "Nonterminal, dengan aturan tempat mereka muncul"
|
|
||||||
|
|
||||||
#: src/print.c:512
|
|
||||||
msgid " on left:"
|
|
||||||
msgstr " di kiri:"
|
|
||||||
|
|
||||||
#: src/print.c:527
|
|
||||||
msgid " on right:"
|
|
||||||
msgstr " di kanan:"
|
|
||||||
|
|
||||||
#: src/print.c:555
|
|
||||||
msgid "Rules never reduced"
|
|
||||||
msgstr "Aturan tidak pernah dikurangi"
|
|
||||||
|
|
||||||
#: src/reader.c:53
|
|
||||||
#, c-format
|
|
||||||
msgid "multiple %s declarations"
|
|
||||||
msgstr "deklarasi ganda %s"
|
|
||||||
|
|
||||||
#: src/reader.c:115
|
|
||||||
#, c-format
|
|
||||||
msgid "result type clash on merge function %s: <%s> != <%s>"
|
|
||||||
msgstr "tipe hasil bentrok pada fungsi merge %s: <%s> != <%s>"
|
|
||||||
|
|
||||||
#: src/reader.c:213
|
|
||||||
#, c-format
|
|
||||||
msgid "rule given for %s, which is a token"
|
|
||||||
msgstr "aturan diberikan untuk %s, yang merupakan sebuah token"
|
|
||||||
|
|
||||||
#: src/reader.c:242
|
|
||||||
#, c-format
|
|
||||||
msgid "type clash on default action: <%s> != <%s>"
|
|
||||||
msgstr "bentrokan tipe pada aksi baku: <%s> != <%s>"
|
|
||||||
|
|
||||||
#: src/reader.c:248
|
|
||||||
msgid "empty rule for typed nonterminal, and no action"
|
|
||||||
msgstr "aturan kosong untuk nonterminal typed, dan tidak ada aksi"
|
|
||||||
|
|
||||||
#: src/reader.c:318 src/reader.c:332 src/reader.c:345
|
|
||||||
#, c-format
|
|
||||||
msgid "only one %s allowed per rule"
|
|
||||||
msgstr "hanya satu %s yang dibolehkan per aturan"
|
|
||||||
|
|
||||||
#: src/reader.c:328 src/reader.c:343
|
|
||||||
#, c-format
|
|
||||||
msgid "%s affects only GLR parsers"
|
|
||||||
msgstr "%s hanya mempengaruhi parser GLR"
|
|
||||||
|
|
||||||
#: src/reader.c:330
|
|
||||||
#, c-format
|
|
||||||
msgid "%s must be followed by positive number"
|
|
||||||
msgstr "%s harus diikuti angka positif"
|
|
||||||
|
|
||||||
#: src/reader.c:487
|
|
||||||
msgid "no rules in the input grammar"
|
|
||||||
msgstr "tidak ada aturan dalam grammar input"
|
|
||||||
|
|
||||||
#: src/reduce.c:242
|
|
||||||
msgid "useless rule"
|
|
||||||
msgstr "aturan tidak berguna"
|
|
||||||
|
|
||||||
#: src/reduce.c:303
|
|
||||||
#, c-format
|
|
||||||
msgid "useless nonterminal: %s"
|
|
||||||
msgstr "nonterminal tidak berguna: %s"
|
|
||||||
|
|
||||||
#: src/reduce.c:351
|
|
||||||
msgid "Useless nonterminals"
|
|
||||||
msgstr "Nonterminal tidak berguna"
|
|
||||||
|
|
||||||
#: src/reduce.c:364
|
|
||||||
msgid "Terminals which are not used"
|
|
||||||
msgstr "Terminal yang tidak digunakan"
|
|
||||||
|
|
||||||
#: src/reduce.c:373
|
|
||||||
msgid "Useless rules"
|
|
||||||
msgstr "Useless rules"
|
|
||||||
|
|
||||||
#: src/reduce.c:389
|
|
||||||
#, c-format
|
|
||||||
msgid "%d rule never reduced\n"
|
|
||||||
msgid_plural "%d rules never reduced\n"
|
|
||||||
msgstr[0] "Aturan %d tidak pernah dikurangi\n"
|
|
||||||
msgstr[1] "Aturan %d tidak pernah dikurangi\n"
|
|
||||||
|
|
||||||
#: src/reduce.c:397
|
|
||||||
#, c-format
|
|
||||||
msgid "%d useless nonterminal"
|
|
||||||
msgid_plural "%d useless nonterminals"
|
|
||||||
msgstr[0] "nonterminal tidak berguna %d"
|
|
||||||
msgstr[1] "nonterminal tidak berguna %d"
|
|
||||||
|
|
||||||
#: src/reduce.c:403
|
|
||||||
msgid " and "
|
|
||||||
msgstr " dan "
|
|
||||||
|
|
||||||
#: src/reduce.c:406
|
|
||||||
#, c-format
|
|
||||||
msgid "%d useless rule"
|
|
||||||
msgid_plural "%d useless rules"
|
|
||||||
msgstr[0] "aturan tidak berguna %d"
|
|
||||||
msgstr[1] "aturan tidak berguna %d"
|
|
||||||
|
|
||||||
#: src/reduce.c:436
|
|
||||||
#, c-format
|
|
||||||
msgid "start symbol %s does not derive any sentence"
|
|
||||||
msgstr "simbol awal %s tidak melahirkan kalimat"
|
|
||||||
|
|
||||||
#: src/scan-gram.l:160
|
|
||||||
msgid "stray `,' treated as white space"
|
|
||||||
msgstr "stray `,' dianggap sebagai white space"
|
|
||||||
|
|
||||||
#: src/scan-gram.l:221
|
|
||||||
#, c-format
|
|
||||||
msgid "invalid directive: %s"
|
|
||||||
msgstr "direktif tidak valid: %s"
|
|
||||||
|
|
||||||
#: src/scan-gram.l:241 src/scan-gram.l:804 src/scan-gram.l:873
|
|
||||||
#, c-format
|
|
||||||
msgid "integer out of range: %s"
|
|
||||||
msgstr "integer ke luar batas: %s"
|
|
||||||
|
|
||||||
#: src/scan-gram.l:283
|
|
||||||
#, c-format
|
|
||||||
msgid "invalid character: %s"
|
|
||||||
msgstr "karakter tidak valid: %s"
|
|
||||||
|
|
||||||
#: src/scan-gram.l:412 src/scan-gram.l:422 src/scan-gram.l:441
|
|
||||||
#, c-format
|
|
||||||
msgid "invalid escape sequence: %s"
|
|
||||||
msgstr "urutan escape tidak valid: %s"
|
|
||||||
|
|
||||||
#: src/scan-gram.l:446
|
|
||||||
#, c-format
|
|
||||||
msgid "unrecognized escape sequence: %s"
|
|
||||||
msgstr "urutan escape tidak dikenal: %s"
|
|
||||||
|
|
||||||
#: src/scan-gram.l:534
|
|
||||||
#, c-format
|
|
||||||
msgid "missing `{' in `%s'"
|
|
||||||
msgstr "hilang `{' dalam `%s'"
|
|
||||||
|
|
||||||
#: src/scan-gram.l:774
|
|
||||||
#, c-format
|
|
||||||
msgid "$$ of `%s' has no declared type"
|
|
||||||
msgstr "$$ dari `%s' tidak memiliki tipe yang terdeklarasi"
|
|
||||||
|
|
||||||
#: src/scan-gram.l:795
|
|
||||||
#, c-format
|
|
||||||
msgid "$%d of `%s' has no declared type"
|
|
||||||
msgstr "$%d dari `%s' tidak memiliki tipe terdeklarasi"
|
|
||||||
|
|
||||||
#: src/scan-gram.l:840 src/scan-gram.l:908
|
|
||||||
#, c-format
|
|
||||||
msgid "invalid value: %s"
|
|
||||||
msgstr "nilai tidak valid: %s"
|
|
||||||
|
|
||||||
#: src/scan-gram.l:996
|
|
||||||
#, c-format
|
|
||||||
msgid "missing `%s' at end of file"
|
|
||||||
msgstr "`%s' hilang di akhir file"
|
|
||||||
|
|
||||||
#: src/symlist.c:97 src/symlist.c:108
|
|
||||||
msgid "invalid $ value"
|
|
||||||
msgstr "nilai $ tidak valid"
|
|
||||||
|
|
||||||
#: src/symtab.c:84
|
|
||||||
#, c-format
|
|
||||||
msgid "type redeclaration for %s"
|
|
||||||
msgstr "redeklarasi tipe untuk %s"
|
|
||||||
|
|
||||||
#: src/symtab.c:101 src/symtab.c:119
|
|
||||||
#, c-format
|
|
||||||
msgid "%s redeclaration for %s"
|
|
||||||
msgstr "%s redeklarasi untuk %s"
|
|
||||||
|
|
||||||
#: src/symtab.c:138
|
|
||||||
#, c-format
|
|
||||||
msgid "redefining precedence of %s"
|
|
||||||
msgstr "mendefinisikan kembali presedens %s"
|
|
||||||
|
|
||||||
#: src/symtab.c:156
|
|
||||||
#, c-format
|
|
||||||
msgid "symbol %s redefined"
|
|
||||||
msgstr "simbol %s didefinisikan ulang"
|
|
||||||
|
|
||||||
#: src/symtab.c:179
|
|
||||||
#, c-format
|
|
||||||
msgid "redefining user token number of %s"
|
|
||||||
msgstr "mendefinisikan ulang nomor token user %s"
|
|
||||||
|
|
||||||
#: src/symtab.c:206
|
|
||||||
#, c-format
|
|
||||||
msgid "symbol %s is used, but is not defined as a token and has no rules"
|
|
||||||
msgstr ""
|
|
||||||
"simbol %s digunakan, namun tidak didefinisikan sebagai token dan tidak "
|
|
||||||
"memiliki aturan"
|
|
||||||
|
|
||||||
#: src/symtab.c:231
|
|
||||||
#, c-format
|
|
||||||
msgid "symbol `%s' used more than once as a literal string"
|
|
||||||
msgstr "simbol `%s' digunakan lebih dari satu kali sebagai string literal"
|
|
||||||
|
|
||||||
#: src/symtab.c:234
|
|
||||||
#, c-format
|
|
||||||
msgid "symbol `%s' given more than one literal string"
|
|
||||||
msgstr "simbol `%s' diberikan lebih dari satu string literal"
|
|
||||||
|
|
||||||
#: src/symtab.c:270
|
|
||||||
#, c-format
|
|
||||||
msgid "conflicting precedences for %s and %s"
|
|
||||||
msgstr "presenden konflik untuk %s dan %s"
|
|
||||||
|
|
||||||
#: src/symtab.c:282
|
|
||||||
#, c-format
|
|
||||||
msgid "conflicting associativities for %s (%s) and %s (%s)"
|
|
||||||
msgstr "asosiatif konflik untuk %s (%s) dan %s (%s)"
|
|
||||||
|
|
||||||
#: src/symtab.c:367
|
|
||||||
#, c-format
|
|
||||||
msgid "tokens %s and %s both assigned number %d"
|
|
||||||
msgstr "token %s dan %s keduanya memiliki angka %d"
|
|
||||||
|
|
||||||
#: src/symtab.c:590
|
|
||||||
#, c-format
|
|
||||||
msgid "the start symbol %s is undefined"
|
|
||||||
msgstr "simbol awal %s tidak didefinisikan"
|
|
||||||
|
|
||||||
#: src/symtab.c:594
|
|
||||||
#, c-format
|
|
||||||
msgid "the start symbol %s is a token"
|
|
||||||
msgstr "simbol awal %s adalah sebuah token"
|
|
||||||
|
|
||||||
#: lib/argmatch.c:135
|
|
||||||
#, c-format
|
|
||||||
msgid "invalid argument %s for %s"
|
|
||||||
msgstr "argument %s tidak valid untuk %s"
|
|
||||||
|
|
||||||
#: lib/argmatch.c:136
|
|
||||||
#, c-format
|
|
||||||
msgid "ambiguous argument %s for %s"
|
|
||||||
msgstr "argumen %s ambigu untuk %s"
|
|
||||||
|
|
||||||
#: lib/argmatch.c:155
|
|
||||||
msgid "Valid arguments are:"
|
|
||||||
msgstr "Argumen valid adalah:"
|
|
||||||
|
|
||||||
#: lib/bitset_stats.c:179
|
|
||||||
#, c-format
|
|
||||||
msgid "%u bitset_allocs, %u freed (%.2f%%).\n"
|
|
||||||
msgstr "%u bitset_allocs, %u freed (%.2f%%).\n"
|
|
||||||
|
|
||||||
#: lib/bitset_stats.c:182
|
|
||||||
#, c-format
|
|
||||||
msgid "%u bitset_sets, %u cached (%.2f%%)\n"
|
|
||||||
msgstr "%u bitset_sets, %u cached (%.2f%%)\n"
|
|
||||||
|
|
||||||
#: lib/bitset_stats.c:185
|
|
||||||
#, c-format
|
|
||||||
msgid "%u bitset_resets, %u cached (%.2f%%)\n"
|
|
||||||
msgstr "%u bitset_resets, %u cached (%.2f%%)\n"
|
|
||||||
|
|
||||||
#: lib/bitset_stats.c:188
|
|
||||||
#, c-format
|
|
||||||
msgid "%u bitset_tests, %u cached (%.2f%%)\n"
|
|
||||||
msgstr "%u bitset_tests, %u cached (%.2f%%)\n"
|
|
||||||
|
|
||||||
#: lib/bitset_stats.c:192
|
|
||||||
#, c-format
|
|
||||||
msgid "%u bitset_lists\n"
|
|
||||||
msgstr "%u bitset_lists\n"
|
|
||||||
|
|
||||||
#: lib/bitset_stats.c:194
|
|
||||||
msgid "count log histogram\n"
|
|
||||||
msgstr "hitung log histogram\n"
|
|
||||||
|
|
||||||
#: lib/bitset_stats.c:197
|
|
||||||
msgid "size log histogram\n"
|
|
||||||
msgstr "ukuran log histogram\n"
|
|
||||||
|
|
||||||
#: lib/bitset_stats.c:200
|
|
||||||
msgid "density histogram\n"
|
|
||||||
msgstr "kepadatan histogram\n"
|
|
||||||
|
|
||||||
#: lib/bitset_stats.c:214
|
|
||||||
msgid ""
|
|
||||||
"Bitset statistics:\n"
|
|
||||||
"\n"
|
|
||||||
msgstr ""
|
|
||||||
"Statistik bitset:\n"
|
|
||||||
"\n"
|
|
||||||
|
|
||||||
#: lib/bitset_stats.c:217
|
|
||||||
#, c-format
|
|
||||||
msgid "Accumulated runs = %u\n"
|
|
||||||
msgstr "Run terakumulasi = %u\n"
|
|
||||||
|
|
||||||
#: lib/bitset_stats.c:261 lib/bitset_stats.c:266
|
|
||||||
msgid "Could not read stats file."
|
|
||||||
msgstr "Tidak dapat membaca file stat."
|
|
||||||
|
|
||||||
#: lib/bitset_stats.c:263
|
|
||||||
msgid "Bad stats file size.\n"
|
|
||||||
msgstr "Ukuran file stat buruk.\n"
|
|
||||||
|
|
||||||
#: lib/bitset_stats.c:289 lib/bitset_stats.c:291
|
|
||||||
msgid "Could not write stats file."
|
|
||||||
msgstr "Tidak dapat menulis file stat."
|
|
||||||
|
|
||||||
#: lib/bitset_stats.c:294
|
|
||||||
msgid "Could not open stats file for writing."
|
|
||||||
msgstr "Tidak dapat membuka file stat untuk ditulisi."
|
|
||||||
|
|
||||||
#: lib/getopt.c:688 lib/getopt.c:700
|
|
||||||
#, c-format
|
|
||||||
msgid "%s: option `%s' is ambiguous\n"
|
|
||||||
msgstr "%s: option `%s' ambigu\n"
|
|
||||||
|
|
||||||
#: lib/getopt.c:733 lib/getopt.c:737
|
|
||||||
#, c-format
|
|
||||||
msgid "%s: option `--%s' doesn't allow an argument\n"
|
|
||||||
msgstr "%s: option `--%s' tidak membolehkan sebuah argumen\n"
|
|
||||||
|
|
||||||
#: lib/getopt.c:746 lib/getopt.c:751
|
|
||||||
#, c-format
|
|
||||||
msgid "%s: option `%c%s' doesn't allow an argument\n"
|
|
||||||
msgstr "%s: option `%c%s' tidak membolehkan sebuah argumen\n"
|
|
||||||
|
|
||||||
#: lib/getopt.c:787 lib/getopt.c:800 lib/getopt.c:1089 lib/getopt.c:1102
|
|
||||||
#, c-format
|
|
||||||
msgid "%s: option `%s' requires an argument\n"
|
|
||||||
msgstr "%s: option `%s' membutuhkan sebuah argumen\n"
|
|
||||||
|
|
||||||
#: lib/getopt.c:838 lib/getopt.c:841
|
|
||||||
#, c-format
|
|
||||||
msgid "%s: unrecognized option `--%s'\n"
|
|
||||||
msgstr "%s: option tidak dikenal `--%s'\n"
|
|
||||||
|
|
||||||
#: lib/getopt.c:849 lib/getopt.c:852
|
|
||||||
#, c-format
|
|
||||||
msgid "%s: unrecognized option `%c%s'\n"
|
|
||||||
msgstr "%s: option tidak dikenal `%c%s'\n"
|
|
||||||
|
|
||||||
#: lib/getopt.c:899 lib/getopt.c:902
|
|
||||||
#, c-format
|
|
||||||
msgid "%s: illegal option -- %c\n"
|
|
||||||
msgstr "%s: option ilegal -- %c\n"
|
|
||||||
|
|
||||||
#: lib/getopt.c:908 lib/getopt.c:911
|
|
||||||
#, c-format
|
|
||||||
msgid "%s: invalid option -- %c\n"
|
|
||||||
msgstr "%s: option tidak valid -- %c\n"
|
|
||||||
|
|
||||||
#: lib/getopt.c:958 lib/getopt.c:969 lib/getopt.c:1155 lib/getopt.c:1168
|
|
||||||
#, c-format
|
|
||||||
msgid "%s: option requires an argument -- %c\n"
|
|
||||||
msgstr "%s: option membutuhkan sebuah argumen -- %c\n"
|
|
||||||
|
|
||||||
#: lib/getopt.c:1021 lib/getopt.c:1032
|
|
||||||
#, c-format
|
|
||||||
msgid "%s: option `-W %s' is ambiguous\n"
|
|
||||||
msgstr "%s: option `-W %s' ambigu\n"
|
|
||||||
|
|
||||||
#: lib/getopt.c:1056 lib/getopt.c:1068
|
|
||||||
#, c-format
|
|
||||||
msgid "%s: option `-W %s' doesn't allow an argument\n"
|
|
||||||
msgstr "%s: option `-W %s' tidak membolehkan sebuah argumen\n"
|
|
||||||
|
|
||||||
#: lib/obstack.c:487 lib/obstack.c:490 lib/xmalloc.c:63
|
|
||||||
msgid "memory exhausted"
|
|
||||||
msgstr "memori habis"
|
|
||||||
|
|
||||||
#: lib/quotearg.c:236
|
|
||||||
msgid "`"
|
|
||||||
msgstr "`"
|
|
||||||
|
|
||||||
#: lib/quotearg.c:237
|
|
||||||
msgid "'"
|
|
||||||
msgstr "'"
|
|
||||||
|
|
||||||
#: lib/subpipe.c:187
|
|
||||||
#, c-format
|
|
||||||
msgid "subsidiary program `%s' could not be invoked"
|
|
||||||
msgstr "program subsider `%s' tidak dapat dipanggil"
|
|
||||||
|
|
||||||
#: lib/subpipe.c:189
|
|
||||||
#, c-format
|
|
||||||
msgid "subsidiary program `%s' not found"
|
|
||||||
msgstr "program subsider `%s' tidak ditemukan"
|
|
||||||
|
|
||||||
#: lib/subpipe.c:191
|
|
||||||
#, c-format
|
|
||||||
msgid "subsidiary program `%s' failed"
|
|
||||||
msgstr "program subsider `%s' gagal"
|
|
||||||
|
|
||||||
#: lib/subpipe.c:192
|
|
||||||
#, c-format
|
|
||||||
msgid "subsidiary program `%s' failed (exit status %d)"
|
|
||||||
msgstr "program subsider `%s' gagal (status kegagalan %d)"
|
|
||||||
|
|
||||||
#: lib/timevar.c:476
|
|
||||||
msgid ""
|
|
||||||
"\n"
|
|
||||||
"Execution times (seconds)\n"
|
|
||||||
msgstr ""
|
|
||||||
"\n"
|
|
||||||
"Waktu eksekusi (detik)\n"
|
|
||||||
|
|
||||||
#: lib/timevar.c:526
|
|
||||||
msgid " TOTAL :"
|
|
||||||
msgstr " TOTAL :"
|
|
||||||
|
|
||||||
#: lib/timevar.c:562
|
|
||||||
#, c-format
|
|
||||||
msgid "time in %s: %ld.%06ld (%ld%%)\n"
|
|
||||||
msgstr "waktu dalam %s: %ld.%06ld (%ld%%)\n"
|
|
||||||
|
|
||||||
#~ msgid "%d shift/reduce conflict"
|
|
||||||
#~ msgid_plural "%d shift/reduce conflicts"
|
|
||||||
#~ msgstr[0] "%d geser/kurangi konflik"
|
|
||||||
#~ msgstr[1] "%d geser/kurangi konflik"
|
|
||||||
|
|
||||||
#~ msgid "and"
|
|
||||||
#~ msgstr "dan"
|
|
||||||
|
|
||||||
#~ msgid "conflicts: "
|
|
||||||
#~ msgstr "konflik: "
|
|
||||||
|
|
||||||
#~ msgid "State %d contains "
|
|
||||||
#~ msgstr "State %d berisi "
|
|
||||||
761
po/it.po
761
po/it.po
@@ -1,761 +0,0 @@
|
|||||||
# Italian translation for message of GNU bison.
|
|
||||||
# Copyright (C) 2002 Free Software Foundation, Inc.
|
|
||||||
# Paolo Bonzini <bonzini@gnu.org>, 2002.
|
|
||||||
#
|
|
||||||
msgid ""
|
|
||||||
msgstr ""
|
|
||||||
"Project-Id-Version: bison 1.50\n"
|
|
||||||
"Report-Msgid-Bugs-To: bug-bison@gnu.org\n"
|
|
||||||
"POT-Creation-Date: 2003-08-25 17:14+0200\n"
|
|
||||||
"PO-Revision-Date: 2002-10-17 14:37+0100\n"
|
|
||||||
"Last-Translator: Paolo Bonzini <bonzini@gnu.org>\n"
|
|
||||||
"Language-Team: Italian <tp@lists.linux.it>\n"
|
|
||||||
"MIME-Version: 1.0\n"
|
|
||||||
"Content-Type: text/plain; charset=ISO-8859-1\n"
|
|
||||||
"Content-Transfer-Encoding: 8-bit\n"
|
|
||||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
|
||||||
|
|
||||||
#: src/complain.c:56 lib/error.c:135 lib/error.c:163
|
|
||||||
msgid "Unknown system error"
|
|
||||||
msgstr "Errore di sistema sconosciuto"
|
|
||||||
|
|
||||||
#: src/complain.c:79 src/complain.c:94
|
|
||||||
msgid "warning: "
|
|
||||||
msgstr "attenzione: "
|
|
||||||
|
|
||||||
#: src/complain.c:150 src/complain.c:166
|
|
||||||
msgid "fatal error: "
|
|
||||||
msgstr "errore fatale: "
|
|
||||||
|
|
||||||
#: src/conflicts.c:75
|
|
||||||
#, c-format
|
|
||||||
msgid " Conflict between rule %d and token %s resolved as shift"
|
|
||||||
msgstr " Conflitto tra la regola %d e il token %s risolto come shift"
|
|
||||||
|
|
||||||
#: src/conflicts.c:83
|
|
||||||
#, c-format
|
|
||||||
msgid " Conflict between rule %d and token %s resolved as reduce"
|
|
||||||
msgstr " Conflitto tra la regola %d e il token %s risolto come riduzione"
|
|
||||||
|
|
||||||
#: src/conflicts.c:90
|
|
||||||
#, c-format
|
|
||||||
msgid " Conflict between rule %d and token %s resolved as an error"
|
|
||||||
msgstr " Conflitto tra la regola %d e il token %s risolto come errore"
|
|
||||||
|
|
||||||
#: src/conflicts.c:398
|
|
||||||
#, c-format
|
|
||||||
msgid "conflicts: %d shift/reduce, %d reduce/reduce\n"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: src/conflicts.c:401
|
|
||||||
#, fuzzy, c-format
|
|
||||||
msgid "conflicts: %d shift/reduce\n"
|
|
||||||
msgstr " %d shift/riduzione"
|
|
||||||
|
|
||||||
#: src/conflicts.c:403
|
|
||||||
#, fuzzy, c-format
|
|
||||||
msgid "conflicts: %d reduce/reduce\n"
|
|
||||||
msgstr " %d riduzione/riduzione"
|
|
||||||
|
|
||||||
#: src/conflicts.c:421
|
|
||||||
#, fuzzy, c-format
|
|
||||||
msgid "State %d "
|
|
||||||
msgstr "stato %d"
|
|
||||||
|
|
||||||
#: src/conflicts.c:498
|
|
||||||
#, c-format
|
|
||||||
msgid "expected %d shift/reduce conflict"
|
|
||||||
msgid_plural "expected %d shift/reduce conflicts"
|
|
||||||
msgstr[0] "atteso %d conflitto shift/riduzione"
|
|
||||||
msgstr[1] "attesi %d conflitti shift/riduzione"
|
|
||||||
|
|
||||||
#: src/conflicts.c:503
|
|
||||||
#, fuzzy
|
|
||||||
msgid "expected 0 reduce/reduce conflicts"
|
|
||||||
msgstr "%d conflitto riduzione/riduzione"
|
|
||||||
|
|
||||||
#: src/files.c:99
|
|
||||||
#, c-format
|
|
||||||
msgid "cannot open file `%s'"
|
|
||||||
msgstr "impossibile aprire il file `%s'"
|
|
||||||
|
|
||||||
#: src/files.c:115
|
|
||||||
msgid "I/O error"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: src/files.c:118
|
|
||||||
msgid "cannot close file"
|
|
||||||
msgstr "impossibile chiudere il file `%s'"
|
|
||||||
|
|
||||||
#: src/files.c:336
|
|
||||||
#, c-format
|
|
||||||
msgid "conflicting outputs to file %s"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: src/getargs.c:186
|
|
||||||
#, c-format
|
|
||||||
msgid "Try `%s --help' for more information.\n"
|
|
||||||
msgstr "Provare `%s --help' per ulteriori informazioni.\n"
|
|
||||||
|
|
||||||
#: src/getargs.c:192
|
|
||||||
msgid "GNU bison generates parsers for LALR(1) grammars.\n"
|
|
||||||
msgstr "GNU bison genera parser per grammatiche LALR(1).\n"
|
|
||||||
|
|
||||||
#: src/getargs.c:196
|
|
||||||
#, c-format
|
|
||||||
msgid "Usage: %s [OPTION]... FILE\n"
|
|
||||||
msgstr "Utilizzo: %s [OPZIONE]... FILE\n"
|
|
||||||
|
|
||||||
#: src/getargs.c:200
|
|
||||||
msgid ""
|
|
||||||
"If a long option shows an argument as mandatory, then it is mandatory\n"
|
|
||||||
"for the equivalent short option also. Similarly for optional arguments.\n"
|
|
||||||
msgstr ""
|
|
||||||
"Se un argomento è indicato come obbligatorio in un'opzione lunga, allora\n"
|
|
||||||
"è obbligatorio anche per l'equivalente opzione corta. Analogamente per\n"
|
|
||||||
"gli argomenti opzionali.\n"
|
|
||||||
|
|
||||||
#: src/getargs.c:206
|
|
||||||
msgid ""
|
|
||||||
"Operation modes:\n"
|
|
||||||
" -h, --help display this help and exit\n"
|
|
||||||
" -V, --version output version information and exit\n"
|
|
||||||
" -y, --yacc emulate POSIX yacc\n"
|
|
||||||
msgstr ""
|
|
||||||
"Modalità operative:\n"
|
|
||||||
" -h, --help mostra questo aiuto ed esce\n"
|
|
||||||
" -V, --version mostra informazioni sulla versione ed esce\n"
|
|
||||||
" -y, --yacc emula il comportamento di POSIX yacc\n"
|
|
||||||
|
|
||||||
#: src/getargs.c:213
|
|
||||||
msgid ""
|
|
||||||
"Parser:\n"
|
|
||||||
" -S, --skeleton=FILE specify the skeleton to use\n"
|
|
||||||
" -t, --debug instrument the parser for debugging\n"
|
|
||||||
" --locations enable locations computation\n"
|
|
||||||
" -p, --name-prefix=PREFIX prepend PREFIX to the external symbols\n"
|
|
||||||
" -l, --no-lines don't generate `#line' directives\n"
|
|
||||||
" -n, --no-parser generate the tables only\n"
|
|
||||||
" -k, --token-table include a table of token names\n"
|
|
||||||
msgstr ""
|
|
||||||
" -S, --skeleton=FILE specifica lo scheletro da usare\n"
|
|
||||||
" -t, --debug aggiunge informazioni di debug al parser\n"
|
|
||||||
" --locations abilita il calcolo delle locazioni (@N)\n"
|
|
||||||
" -p, --name-prefix=PREFIX prepone PREFIX ai simboli globali\n"
|
|
||||||
" -l, --no-lines non genera direttive `#line'\n"
|
|
||||||
" -n, --no-parser genera le sole tabelle\n"
|
|
||||||
" -k, --token-table include una tabella di nomi dei token\n"
|
|
||||||
|
|
||||||
#: src/getargs.c:225
|
|
||||||
msgid ""
|
|
||||||
"Output:\n"
|
|
||||||
" -d, --defines also produce a header file\n"
|
|
||||||
" -r, --report=THINGS also produce details on the automaton\n"
|
|
||||||
" -v, --verbose same as `--report=state'\n"
|
|
||||||
" -b, --file-prefix=PREFIX specify a PREFIX for output files\n"
|
|
||||||
" -o, --output=FILE leave output to FILE\n"
|
|
||||||
" -g, --graph also produce a VCG description of the "
|
|
||||||
"automaton\n"
|
|
||||||
msgstr ""
|
|
||||||
"Output:\n"
|
|
||||||
" -d, --defines produce anche uno header\n"
|
|
||||||
" -r, --report=THINGS produce anche dettagli sull'automa\n"
|
|
||||||
" -v, --verbose produce anche una spiegazione dell'automa\n"
|
|
||||||
" -b, --file-prefix=PREFIX specifica un prefisso per il file di output\n"
|
|
||||||
" -o, --output=FILE lascia l'output in FILE\n"
|
|
||||||
" -g, --graph produce anche una descrizione VCG dell'automa\n"
|
|
||||||
|
|
||||||
#: src/getargs.c:236
|
|
||||||
msgid ""
|
|
||||||
"THINGS is a list of comma separated words that can include:\n"
|
|
||||||
" `state' describe the states\n"
|
|
||||||
" `itemset' complete the core item sets with their closure\n"
|
|
||||||
" `lookahead' explicitly associate lookaheads to items\n"
|
|
||||||
" `solved' describe shift/reduce conflicts solving\n"
|
|
||||||
" `all' include all the above information\n"
|
|
||||||
" `none' disable the report\n"
|
|
||||||
msgstr ""
|
|
||||||
"THINGS è un elenco di parole separate da virgola scelte tra:\n"
|
|
||||||
" `state' descrive gli stati\n"
|
|
||||||
" `itemset' completa gli insiemi dei simboli con la loro chiusura "
|
|
||||||
"transitiva\n"
|
|
||||||
" `lookahead' associa i token di prospezione ai simboli\n"
|
|
||||||
" `solved' descrive la riduzione dei conflitti shift/riduzione\n"
|
|
||||||
" `all' include tutte queste informazioni\n"
|
|
||||||
" `none' disabilita la produzione del rapporto\n"
|
|
||||||
|
|
||||||
#: src/getargs.c:247
|
|
||||||
msgid "Report bugs to <bug-bison@gnu.org>.\n"
|
|
||||||
msgstr "Segnalare eventuali bug a <bug-bison@gnu.org>.\n"
|
|
||||||
|
|
||||||
#: src/getargs.c:264
|
|
||||||
#, c-format
|
|
||||||
msgid "bison (GNU Bison) %s"
|
|
||||||
msgstr "bison (GNU Bison) %s"
|
|
||||||
|
|
||||||
#: src/getargs.c:266
|
|
||||||
msgid "Written by Robert Corbett and Richard Stallman.\n"
|
|
||||||
msgstr "Scritto da Robert Corbett e Richard Stallman.\n"
|
|
||||||
|
|
||||||
#: src/getargs.c:270
|
|
||||||
#, c-format
|
|
||||||
msgid "Copyright (C) %d Free Software Foundation, Inc.\n"
|
|
||||||
msgstr "Copyright (C) %d Free Software Foundation, Inc.\n"
|
|
||||||
|
|
||||||
#: src/getargs.c:272
|
|
||||||
msgid ""
|
|
||||||
"This is free software; see the source for copying conditions. There is NO\n"
|
|
||||||
"warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n"
|
|
||||||
msgstr ""
|
|
||||||
"Questo e' software libero; vedere il sorgente per le condizioni cui e'\n"
|
|
||||||
"sottoposta la copia. NON c'è ALCUNA garanzia, neanche di\n"
|
|
||||||
"COMMERCIABILITA` o di ADEGUATEZZA AD UN PARTICOLARE SCOPO.\n"
|
|
||||||
|
|
||||||
#: src/getargs.c:438
|
|
||||||
#, c-format
|
|
||||||
msgid "missing operand after `%s'"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: src/getargs.c:440
|
|
||||||
#, c-format
|
|
||||||
msgid "extra operand `%s'"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: src/gram.c:139
|
|
||||||
msgid "empty"
|
|
||||||
msgstr "vuoto"
|
|
||||||
|
|
||||||
#: src/gram.c:233
|
|
||||||
msgid "Grammar"
|
|
||||||
msgstr "Grammatica"
|
|
||||||
|
|
||||||
#: src/gram.c:321 src/reduce.c:394
|
|
||||||
msgid "warning"
|
|
||||||
msgstr "attenzione"
|
|
||||||
|
|
||||||
#: src/main.c:124
|
|
||||||
msgid "rule never reduced because of conflicts"
|
|
||||||
msgstr "regola mai ridotta a causa dei conflitti"
|
|
||||||
|
|
||||||
#: src/parse-gram.y:353
|
|
||||||
msgid "POSIX forbids declarations in the grammar"
|
|
||||||
msgstr "POSIX proibisce l'uso di dichiarazioni interne alla grammatica"
|
|
||||||
|
|
||||||
#: src/parse-gram.y:476
|
|
||||||
msgid "missing identifier in parameter declaration"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: src/print.c:49
|
|
||||||
#, c-format
|
|
||||||
msgid " type %d is %s\n"
|
|
||||||
msgstr " il tipo %d è %s\n"
|
|
||||||
|
|
||||||
#: src/print.c:165
|
|
||||||
#, c-format
|
|
||||||
msgid "shift, and go to state %d\n"
|
|
||||||
msgstr "shift e prosecuzione allo stato %d\n"
|
|
||||||
|
|
||||||
#: src/print.c:167
|
|
||||||
#, c-format
|
|
||||||
msgid "go to state %d\n"
|
|
||||||
msgstr "prosecuzione allo stato %d\n"
|
|
||||||
|
|
||||||
#: src/print.c:204
|
|
||||||
msgid "error (nonassociative)\n"
|
|
||||||
msgstr "errore (non associativo)\n"
|
|
||||||
|
|
||||||
#: src/print.c:292
|
|
||||||
#, c-format
|
|
||||||
msgid "reduce using rule %d (%s)"
|
|
||||||
msgstr "riduzione con la regola %d (%s)"
|
|
||||||
|
|
||||||
#: src/print.c:294
|
|
||||||
msgid "accept"
|
|
||||||
msgstr "accetta"
|
|
||||||
|
|
||||||
#: src/print.c:325 src/print.c:391
|
|
||||||
msgid "$default"
|
|
||||||
msgstr "$default"
|
|
||||||
|
|
||||||
#: src/print.c:420
|
|
||||||
#, c-format
|
|
||||||
msgid "state %d"
|
|
||||||
msgstr "stato %d"
|
|
||||||
|
|
||||||
#: src/print.c:456
|
|
||||||
msgid "Terminals, with rules where they appear"
|
|
||||||
msgstr "Simboli terminali e regole in cui appaiono"
|
|
||||||
|
|
||||||
#: src/print.c:483
|
|
||||||
msgid "Nonterminals, with rules where they appear"
|
|
||||||
msgstr "Simboli nonterminali e regole in cui appaiono"
|
|
||||||
|
|
||||||
#: src/print.c:512
|
|
||||||
msgid " on left:"
|
|
||||||
msgstr " nel primo membro:"
|
|
||||||
|
|
||||||
#: src/print.c:527
|
|
||||||
msgid " on right:"
|
|
||||||
msgstr " nel secondo membro:"
|
|
||||||
|
|
||||||
#: src/print.c:555
|
|
||||||
msgid "Rules never reduced"
|
|
||||||
msgstr "Regole mai ridotte"
|
|
||||||
|
|
||||||
#: src/reader.c:53
|
|
||||||
#, c-format
|
|
||||||
msgid "multiple %s declarations"
|
|
||||||
msgstr "dichiarazioni multiple per %s"
|
|
||||||
|
|
||||||
#: src/reader.c:115
|
|
||||||
#, fuzzy, c-format
|
|
||||||
msgid "result type clash on merge function %s: <%s> != <%s>"
|
|
||||||
msgstr ""
|
|
||||||
"conflitto nei tipi del risultato della funzione di merge %s: `%s' e `%s'"
|
|
||||||
|
|
||||||
#: src/reader.c:213
|
|
||||||
#, c-format
|
|
||||||
msgid "rule given for %s, which is a token"
|
|
||||||
msgstr "fornita una regola per il token %s"
|
|
||||||
|
|
||||||
#: src/reader.c:242
|
|
||||||
#, fuzzy, c-format
|
|
||||||
msgid "type clash on default action: <%s> != <%s>"
|
|
||||||
msgstr "conflitto di tipo (`%s' e `%s') nell'azione di default"
|
|
||||||
|
|
||||||
#: src/reader.c:248
|
|
||||||
msgid "empty rule for typed nonterminal, and no action"
|
|
||||||
msgstr "regola vuota e nessuna azione per un nonterminale con tipo"
|
|
||||||
|
|
||||||
#: src/reader.c:318 src/reader.c:332 src/reader.c:345
|
|
||||||
#, fuzzy, c-format
|
|
||||||
msgid "only one %s allowed per rule"
|
|
||||||
msgstr "solo un %%merge è permesso in una regola"
|
|
||||||
|
|
||||||
#: src/reader.c:328 src/reader.c:343
|
|
||||||
#, fuzzy, c-format
|
|
||||||
msgid "%s affects only GLR parsers"
|
|
||||||
msgstr "%%merge considerato solo nei parser GLR"
|
|
||||||
|
|
||||||
#: src/reader.c:330
|
|
||||||
#, fuzzy, c-format
|
|
||||||
msgid "%s must be followed by positive number"
|
|
||||||
msgstr "%%dprec deve essere seguito da un intero positivo"
|
|
||||||
|
|
||||||
#: src/reader.c:487
|
|
||||||
msgid "no rules in the input grammar"
|
|
||||||
msgstr "nessuna regola nella grammatica di input"
|
|
||||||
|
|
||||||
#: src/reduce.c:242
|
|
||||||
msgid "useless rule"
|
|
||||||
msgstr "regola inutile"
|
|
||||||
|
|
||||||
#: src/reduce.c:303
|
|
||||||
#, fuzzy, c-format
|
|
||||||
msgid "useless nonterminal: %s"
|
|
||||||
msgstr "simbolo nonterminale inutilizzato"
|
|
||||||
|
|
||||||
#: src/reduce.c:351
|
|
||||||
msgid "Useless nonterminals"
|
|
||||||
msgstr "Simboli nonterminali inutili"
|
|
||||||
|
|
||||||
#: src/reduce.c:364
|
|
||||||
msgid "Terminals which are not used"
|
|
||||||
msgstr "Simboli terminali inutilizzati"
|
|
||||||
|
|
||||||
#: src/reduce.c:373
|
|
||||||
msgid "Useless rules"
|
|
||||||
msgstr "Regole inutili"
|
|
||||||
|
|
||||||
#: src/reduce.c:389
|
|
||||||
#, c-format
|
|
||||||
msgid "%d rule never reduced\n"
|
|
||||||
msgid_plural "%d rules never reduced\n"
|
|
||||||
msgstr[0] "%d regola non applicata\n"
|
|
||||||
msgstr[1] "%d regole non applicate\n"
|
|
||||||
|
|
||||||
#: src/reduce.c:397
|
|
||||||
#, c-format
|
|
||||||
msgid "%d useless nonterminal"
|
|
||||||
msgid_plural "%d useless nonterminals"
|
|
||||||
msgstr[0] "%d simbolo nonterminale inutilizzato"
|
|
||||||
msgstr[1] "%d simboli nonterminali inutilizzati"
|
|
||||||
|
|
||||||
#: src/reduce.c:403
|
|
||||||
msgid " and "
|
|
||||||
msgstr " e "
|
|
||||||
|
|
||||||
#: src/reduce.c:406
|
|
||||||
#, c-format
|
|
||||||
msgid "%d useless rule"
|
|
||||||
msgid_plural "%d useless rules"
|
|
||||||
msgstr[0] "%d regola inutile"
|
|
||||||
msgstr[1] "%d regole inutili"
|
|
||||||
|
|
||||||
#: src/reduce.c:436
|
|
||||||
#, c-format
|
|
||||||
msgid "start symbol %s does not derive any sentence"
|
|
||||||
msgstr "dal simbolo iniziale %s non deriva alcuna frase"
|
|
||||||
|
|
||||||
#: src/scan-gram.l:160
|
|
||||||
msgid "stray `,' treated as white space"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: src/scan-gram.l:221
|
|
||||||
#, fuzzy, c-format
|
|
||||||
msgid "invalid directive: %s"
|
|
||||||
msgstr ": escape non valido: %s\n"
|
|
||||||
|
|
||||||
#: src/scan-gram.l:241 src/scan-gram.l:804 src/scan-gram.l:873
|
|
||||||
#, c-format
|
|
||||||
msgid "integer out of range: %s"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: src/scan-gram.l:283
|
|
||||||
#, fuzzy, c-format
|
|
||||||
msgid "invalid character: %s"
|
|
||||||
msgstr ": carattere non valido: `%c'\n"
|
|
||||||
|
|
||||||
#: src/scan-gram.l:412 src/scan-gram.l:422 src/scan-gram.l:441
|
|
||||||
#, fuzzy, c-format
|
|
||||||
msgid "invalid escape sequence: %s"
|
|
||||||
msgstr ": escape non valido: %s\n"
|
|
||||||
|
|
||||||
#: src/scan-gram.l:446
|
|
||||||
#, fuzzy, c-format
|
|
||||||
msgid "unrecognized escape sequence: %s"
|
|
||||||
msgstr ": escape non riconosciuto: %s\n"
|
|
||||||
|
|
||||||
#: src/scan-gram.l:534
|
|
||||||
#, c-format
|
|
||||||
msgid "missing `{' in `%s'"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: src/scan-gram.l:774
|
|
||||||
#, c-format
|
|
||||||
msgid "$$ of `%s' has no declared type"
|
|
||||||
msgstr "Manca una dichiarazione di tipo per $$ di `%s'"
|
|
||||||
|
|
||||||
#: src/scan-gram.l:795
|
|
||||||
#, c-format
|
|
||||||
msgid "$%d of `%s' has no declared type"
|
|
||||||
msgstr "Manca una dichiarazione di tipo per $%d di `%s'"
|
|
||||||
|
|
||||||
#: src/scan-gram.l:840 src/scan-gram.l:908
|
|
||||||
#, fuzzy, c-format
|
|
||||||
msgid "invalid value: %s"
|
|
||||||
msgstr "valore non valido: %s%d"
|
|
||||||
|
|
||||||
#: src/scan-gram.l:996
|
|
||||||
#, c-format
|
|
||||||
msgid "missing `%s' at end of file"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: src/symlist.c:97 src/symlist.c:108
|
|
||||||
msgid "invalid $ value"
|
|
||||||
msgstr "valore $ non valido"
|
|
||||||
|
|
||||||
#: src/symtab.c:84
|
|
||||||
#, c-format
|
|
||||||
msgid "type redeclaration for %s"
|
|
||||||
msgstr "tipo dichiarato due volte per %s"
|
|
||||||
|
|
||||||
#: src/symtab.c:101 src/symtab.c:119
|
|
||||||
#, c-format
|
|
||||||
msgid "%s redeclaration for %s"
|
|
||||||
msgstr "dichiarazione due volte di %s per %s"
|
|
||||||
|
|
||||||
#: src/symtab.c:138
|
|
||||||
#, c-format
|
|
||||||
msgid "redefining precedence of %s"
|
|
||||||
msgstr "precedenza di `%s' definita due volte"
|
|
||||||
|
|
||||||
#: src/symtab.c:156
|
|
||||||
#, c-format
|
|
||||||
msgid "symbol %s redefined"
|
|
||||||
msgstr "simbolo %s ridefinito"
|
|
||||||
|
|
||||||
#: src/symtab.c:179
|
|
||||||
#, c-format
|
|
||||||
msgid "redefining user token number of %s"
|
|
||||||
msgstr "numero di token definito dall'utente specificato due volte per %s"
|
|
||||||
|
|
||||||
#: src/symtab.c:206
|
|
||||||
#, c-format
|
|
||||||
msgid "symbol %s is used, but is not defined as a token and has no rules"
|
|
||||||
msgstr "usato il simbolo %s, ma non è un token e non ha regole"
|
|
||||||
|
|
||||||
#: src/symtab.c:231
|
|
||||||
#, c-format
|
|
||||||
msgid "symbol `%s' used more than once as a literal string"
|
|
||||||
msgstr "simbolo `%s' usato più di una volta in una stringa letterale"
|
|
||||||
|
|
||||||
#: src/symtab.c:234
|
|
||||||
#, c-format
|
|
||||||
msgid "symbol `%s' given more than one literal string"
|
|
||||||
msgstr "il simbolo `%s' dà pi` di una stringa letterale"
|
|
||||||
|
|
||||||
#: src/symtab.c:270
|
|
||||||
#, c-format
|
|
||||||
msgid "conflicting precedences for %s and %s"
|
|
||||||
msgstr "precedenze in conflitto per %s und %s"
|
|
||||||
|
|
||||||
#: src/symtab.c:282
|
|
||||||
#, c-format
|
|
||||||
msgid "conflicting associativities for %s (%s) and %s (%s)"
|
|
||||||
msgstr "associatività in conflitto per %s (%s) e %s (%s)"
|
|
||||||
|
|
||||||
#: src/symtab.c:367
|
|
||||||
#, c-format
|
|
||||||
msgid "tokens %s and %s both assigned number %d"
|
|
||||||
msgstr "i token %s e %s hanno lo stesso numero %d"
|
|
||||||
|
|
||||||
#: src/symtab.c:590
|
|
||||||
#, c-format
|
|
||||||
msgid "the start symbol %s is undefined"
|
|
||||||
msgstr "simbolo iniziale %s non definito"
|
|
||||||
|
|
||||||
#: src/symtab.c:594
|
|
||||||
#, c-format
|
|
||||||
msgid "the start symbol %s is a token"
|
|
||||||
msgstr "specificato il token %s come simbolo iniziale"
|
|
||||||
|
|
||||||
#: lib/argmatch.c:135
|
|
||||||
#, c-format
|
|
||||||
msgid "invalid argument %s for %s"
|
|
||||||
msgstr "argomento non valido %s per %s"
|
|
||||||
|
|
||||||
#: lib/argmatch.c:136
|
|
||||||
#, c-format
|
|
||||||
msgid "ambiguous argument %s for %s"
|
|
||||||
msgstr "argomento ambiguo %s per %s"
|
|
||||||
|
|
||||||
#: lib/argmatch.c:155
|
|
||||||
msgid "Valid arguments are:"
|
|
||||||
msgstr "Gli argomenti validi sono:"
|
|
||||||
|
|
||||||
#: lib/bitset_stats.c:179
|
|
||||||
#, c-format
|
|
||||||
msgid "%u bitset_allocs, %u freed (%.2f%%).\n"
|
|
||||||
msgstr "%u bitset_alloc, %u liberati (%.2f%%).\n"
|
|
||||||
|
|
||||||
#: lib/bitset_stats.c:182
|
|
||||||
#, c-format
|
|
||||||
msgid "%u bitset_sets, %u cached (%.2f%%)\n"
|
|
||||||
msgstr "%u bitset_set, %u in cache (%.2f%%)\n"
|
|
||||||
|
|
||||||
#: lib/bitset_stats.c:185
|
|
||||||
#, c-format
|
|
||||||
msgid "%u bitset_resets, %u cached (%.2f%%)\n"
|
|
||||||
msgstr "%u bitset_reset, %u in cache (%.2f%%)\n"
|
|
||||||
|
|
||||||
#: lib/bitset_stats.c:188
|
|
||||||
#, c-format
|
|
||||||
msgid "%u bitset_tests, %u cached (%.2f%%)\n"
|
|
||||||
msgstr "%u bitset_test, %u in cache (%.2f%%)\n"
|
|
||||||
|
|
||||||
#: lib/bitset_stats.c:192
|
|
||||||
#, c-format
|
|
||||||
msgid "%u bitset_lists\n"
|
|
||||||
msgstr "%u bitset_list\n"
|
|
||||||
|
|
||||||
#: lib/bitset_stats.c:194
|
|
||||||
msgid "count log histogram\n"
|
|
||||||
msgstr "istogramma dei conteggi\n"
|
|
||||||
|
|
||||||
#: lib/bitset_stats.c:197
|
|
||||||
msgid "size log histogram\n"
|
|
||||||
msgstr "istogramma delle dimensioni\n"
|
|
||||||
|
|
||||||
#: lib/bitset_stats.c:200
|
|
||||||
msgid "density histogram\n"
|
|
||||||
msgstr "istogranna delle densità\n"
|
|
||||||
|
|
||||||
#: lib/bitset_stats.c:214
|
|
||||||
msgid ""
|
|
||||||
"Bitset statistics:\n"
|
|
||||||
"\n"
|
|
||||||
msgstr ""
|
|
||||||
"Statistiche dei bitset:\n"
|
|
||||||
"\n"
|
|
||||||
|
|
||||||
#: lib/bitset_stats.c:217
|
|
||||||
#, c-format
|
|
||||||
msgid "Accumulated runs = %u\n"
|
|
||||||
msgstr "Esecuzioni accumulate = %u\n"
|
|
||||||
|
|
||||||
#: lib/bitset_stats.c:261 lib/bitset_stats.c:266
|
|
||||||
msgid "Could not read stats file."
|
|
||||||
msgstr "Impossibile leggere il file delle statistiche."
|
|
||||||
|
|
||||||
#: lib/bitset_stats.c:263
|
|
||||||
msgid "Bad stats file size.\n"
|
|
||||||
msgstr "Dimensione errata del file delle statistiche.\n"
|
|
||||||
|
|
||||||
#: lib/bitset_stats.c:289 lib/bitset_stats.c:291
|
|
||||||
msgid "Could not write stats file."
|
|
||||||
msgstr "Impossibile scrivere il file delle statistiche."
|
|
||||||
|
|
||||||
#: lib/bitset_stats.c:294
|
|
||||||
msgid "Could not open stats file for writing."
|
|
||||||
msgstr "Impossibile aprire in scrittura il file delle statistiche."
|
|
||||||
|
|
||||||
#: lib/getopt.c:688 lib/getopt.c:700
|
|
||||||
#, c-format
|
|
||||||
msgid "%s: option `%s' is ambiguous\n"
|
|
||||||
msgstr "%s: l'opzione `%s' è ambigua\n"
|
|
||||||
|
|
||||||
#: lib/getopt.c:733 lib/getopt.c:737
|
|
||||||
#, c-format
|
|
||||||
msgid "%s: option `--%s' doesn't allow an argument\n"
|
|
||||||
msgstr "%s: l'opzione `--%s' non ammette argomenti\n"
|
|
||||||
|
|
||||||
#: lib/getopt.c:746 lib/getopt.c:751
|
|
||||||
#, c-format
|
|
||||||
msgid "%s: option `%c%s' doesn't allow an argument\n"
|
|
||||||
msgstr "%s: l'opzione `%c%s' non ammette argomenti\n"
|
|
||||||
|
|
||||||
#: lib/getopt.c:787 lib/getopt.c:800 lib/getopt.c:1089 lib/getopt.c:1102
|
|
||||||
#, c-format
|
|
||||||
msgid "%s: option `%s' requires an argument\n"
|
|
||||||
msgstr "%s: l'opzione `%s' richiede un argomento\n"
|
|
||||||
|
|
||||||
#: lib/getopt.c:838 lib/getopt.c:841
|
|
||||||
#, c-format
|
|
||||||
msgid "%s: unrecognized option `--%s'\n"
|
|
||||||
msgstr "%s: opzione sconosciuta `--%s'\n"
|
|
||||||
|
|
||||||
#: lib/getopt.c:849 lib/getopt.c:852
|
|
||||||
#, c-format
|
|
||||||
msgid "%s: unrecognized option `%c%s'\n"
|
|
||||||
msgstr "%s: opzione sconosciuta `%c%s'\n"
|
|
||||||
|
|
||||||
#: lib/getopt.c:899 lib/getopt.c:902
|
|
||||||
#, c-format
|
|
||||||
msgid "%s: illegal option -- %c\n"
|
|
||||||
msgstr "%s: opzione non valida -- %c\n"
|
|
||||||
|
|
||||||
#: lib/getopt.c:908 lib/getopt.c:911
|
|
||||||
#, c-format
|
|
||||||
msgid "%s: invalid option -- %c\n"
|
|
||||||
msgstr "%s: opzione non valida -- %c\n"
|
|
||||||
|
|
||||||
#: lib/getopt.c:958 lib/getopt.c:969 lib/getopt.c:1155 lib/getopt.c:1168
|
|
||||||
#, c-format
|
|
||||||
msgid "%s: option requires an argument -- %c\n"
|
|
||||||
msgstr "%s: l'opzione richiede un argomento -- %c\n"
|
|
||||||
|
|
||||||
#: lib/getopt.c:1021 lib/getopt.c:1032
|
|
||||||
#, c-format
|
|
||||||
msgid "%s: option `-W %s' is ambiguous\n"
|
|
||||||
msgstr "%s: l'opzione `-W %s' è ambigua\n"
|
|
||||||
|
|
||||||
#: lib/getopt.c:1056 lib/getopt.c:1068
|
|
||||||
#, c-format
|
|
||||||
msgid "%s: option `-W %s' doesn't allow an argument\n"
|
|
||||||
msgstr "%s: l'opzione `-W %s' non ammette un argomento\n"
|
|
||||||
|
|
||||||
#: lib/obstack.c:487 lib/obstack.c:490 lib/xmalloc.c:63
|
|
||||||
msgid "memory exhausted"
|
|
||||||
msgstr "memoria esaurita"
|
|
||||||
|
|
||||||
#: lib/quotearg.c:236
|
|
||||||
msgid "`"
|
|
||||||
msgstr "`"
|
|
||||||
|
|
||||||
#: lib/quotearg.c:237
|
|
||||||
msgid "'"
|
|
||||||
msgstr "'"
|
|
||||||
|
|
||||||
#: lib/subpipe.c:187
|
|
||||||
#, c-format
|
|
||||||
msgid "subsidiary program `%s' could not be invoked"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: lib/subpipe.c:189
|
|
||||||
#, c-format
|
|
||||||
msgid "subsidiary program `%s' not found"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: lib/subpipe.c:191
|
|
||||||
#, c-format
|
|
||||||
msgid "subsidiary program `%s' failed"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: lib/subpipe.c:192
|
|
||||||
#, c-format
|
|
||||||
msgid "subsidiary program `%s' failed (exit status %d)"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: lib/timevar.c:476
|
|
||||||
msgid ""
|
|
||||||
"\n"
|
|
||||||
"Execution times (seconds)\n"
|
|
||||||
msgstr ""
|
|
||||||
"\n"
|
|
||||||
"Tempo di esecuzione (in secondi)\n"
|
|
||||||
|
|
||||||
#: lib/timevar.c:526
|
|
||||||
msgid " TOTAL :"
|
|
||||||
msgstr " TOTALE :"
|
|
||||||
|
|
||||||
#: lib/timevar.c:562
|
|
||||||
#, c-format
|
|
||||||
msgid "time in %s: %ld.%06ld (%ld%%)\n"
|
|
||||||
msgstr "tempo in %s: %ld.%06ld (%ld%%)\n"
|
|
||||||
|
|
||||||
#~ msgid "%d shift/reduce conflict"
|
|
||||||
#~ msgid_plural "%d shift/reduce conflicts"
|
|
||||||
#~ msgstr[0] "%d conflitto shift/riduzione"
|
|
||||||
#~ msgstr[1] "%d conflitti shift/riduzione"
|
|
||||||
|
|
||||||
#~ msgid "and"
|
|
||||||
#~ msgstr "e"
|
|
||||||
|
|
||||||
#~ msgid "conflicts: "
|
|
||||||
#~ msgstr "conflitti: "
|
|
||||||
|
|
||||||
#~ msgid "State %d contains "
|
|
||||||
#~ msgstr "Lo stato %d contiene"
|
|
||||||
|
|
||||||
#~ msgid "%s: no grammar file given\n"
|
|
||||||
#~ msgstr "%s: nessun file grammatica specificato\n"
|
|
||||||
|
|
||||||
#~ msgid "%s: extra arguments ignored after `%s'\n"
|
|
||||||
#~ msgstr "%s: ignorati gli argomenti successivi a `%s'\n"
|
|
||||||
|
|
||||||
#~ msgid "too many gotos (max %d)"
|
|
||||||
#~ msgstr "troppi goto (max %d)"
|
|
||||||
|
|
||||||
#~ msgid "two @prec's in a row"
|
|
||||||
#~ msgstr "due @prec di seguito"
|
|
||||||
|
|
||||||
#~ msgid "%%dprec affects only GLR parsers"
|
|
||||||
#~ msgstr "%%dprec considerato solo nei parser GLR"
|
|
||||||
|
|
||||||
#~ msgid "only one %%dprec allowed per rule"
|
|
||||||
#~ msgstr "solo un %%dprec è permesso in una regola"
|
|
||||||
|
|
||||||
#~ msgid "too many symbols (tokens plus nonterminals); maximum %d"
|
|
||||||
#~ msgstr "troppi simboli (token e nonterminali); il massimo è %d"
|
|
||||||
|
|
||||||
#~ msgid ": unexpected end of file in a comment\n"
|
|
||||||
#~ msgstr ": fine del file inattesa in un commento\n"
|
|
||||||
|
|
||||||
#~ msgid ": unexpected end of file in a string\n"
|
|
||||||
#~ msgstr ": fine del file inattesa in una stringa\n"
|
|
||||||
|
|
||||||
#~ msgid ": unexpected end of file in a character\n"
|
|
||||||
#~ msgstr ": fine del file inattesa in un carattere\n"
|
|
||||||
|
|
||||||
#~ msgid ": unexpected end of file in a braced code\n"
|
|
||||||
#~ msgstr ": fine del file inattesa in codice (tra parentesi graffe)\n"
|
|
||||||
|
|
||||||
#~ msgid ": unexpected end of file in a prologue\n"
|
|
||||||
#~ msgstr ": fine del file inattesa nel prologo\n"
|
|
||||||
|
|
||||||
#~ msgid "%s is invalid"
|
|
||||||
#~ msgstr "%s non è valido"
|
|
||||||
|
|
||||||
#~ msgid "too many states (max %d)"
|
|
||||||
#~ msgstr "troppi stati (massimo %d)"
|
|
||||||
709
po/ms.po
709
po/ms.po
@@ -1,709 +0,0 @@
|
|||||||
# Bison Bahasa Melayu (Malay) (ms).
|
|
||||||
# Copyright (C) 2003 Free Software Foundation, Inc.
|
|
||||||
# This file is distributed under the same license as the Bison package.
|
|
||||||
# Sharuzzaman Ahmat Raslan <sharuzzaman@myrealbox.com>, 2003.
|
|
||||||
#
|
|
||||||
msgid ""
|
|
||||||
msgstr ""
|
|
||||||
"Project-Id-Version: bison 1.875\n"
|
|
||||||
"Report-Msgid-Bugs-To: bug-bison@gnu.org\n"
|
|
||||||
"POT-Creation-Date: 2003-08-25 17:14+0200\n"
|
|
||||||
"PO-Revision-Date: 2003-01-26 22:43GMT+8\n"
|
|
||||||
"Last-Translator: Sharuzzaman Ahmat Raslan <sharuzzaman@myrealbox.com>\n"
|
|
||||||
"Language-Team: Malay <translation-team-ms@lists.sourceforge.net>\n"
|
|
||||||
"MIME-Version: 1.0\n"
|
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
|
||||||
"Plural-Forms: nplurals=1; plural=0;\n"
|
|
||||||
"X-Generator: KBabel 0.9.5\n"
|
|
||||||
|
|
||||||
#: src/complain.c:56 lib/error.c:135 lib/error.c:163
|
|
||||||
msgid "Unknown system error"
|
|
||||||
msgstr "Ralat sistem tidak diketahui"
|
|
||||||
|
|
||||||
#: src/complain.c:79 src/complain.c:94
|
|
||||||
msgid "warning: "
|
|
||||||
msgstr "amaran: "
|
|
||||||
|
|
||||||
#: src/complain.c:150 src/complain.c:166
|
|
||||||
msgid "fatal error: "
|
|
||||||
msgstr "ralat maut: "
|
|
||||||
|
|
||||||
#: src/conflicts.c:75
|
|
||||||
#, c-format
|
|
||||||
msgid " Conflict between rule %d and token %s resolved as shift"
|
|
||||||
msgstr " Konflik antara hukum %d dan token %s diselesaikan sebagai pindahan"
|
|
||||||
|
|
||||||
#: src/conflicts.c:83
|
|
||||||
#, c-format
|
|
||||||
msgid " Conflict between rule %d and token %s resolved as reduce"
|
|
||||||
msgstr ""
|
|
||||||
" Konflik antara hukum %d dan token %s diselesaikan sebagai pengurangan"
|
|
||||||
|
|
||||||
#: src/conflicts.c:90
|
|
||||||
#, c-format
|
|
||||||
msgid " Conflict between rule %d and token %s resolved as an error"
|
|
||||||
msgstr " Konflik antara hukum %d dan token %s diselesaikan sebagai ralat"
|
|
||||||
|
|
||||||
#: src/conflicts.c:398
|
|
||||||
#, c-format
|
|
||||||
msgid "conflicts: %d shift/reduce, %d reduce/reduce\n"
|
|
||||||
msgstr "konflik: %d pemindahan/pengurangan, %d pengurangan/pengurangan\n"
|
|
||||||
|
|
||||||
#: src/conflicts.c:401
|
|
||||||
#, c-format
|
|
||||||
msgid "conflicts: %d shift/reduce\n"
|
|
||||||
msgstr "konflik: %d pemindahan/pengurangan\n"
|
|
||||||
|
|
||||||
#: src/conflicts.c:403
|
|
||||||
#, c-format
|
|
||||||
msgid "conflicts: %d reduce/reduce\n"
|
|
||||||
msgstr "konflik: %d pengurangan/pengurangan\n"
|
|
||||||
|
|
||||||
#: src/conflicts.c:421
|
|
||||||
#, c-format
|
|
||||||
msgid "State %d "
|
|
||||||
msgstr "Keadaan %d "
|
|
||||||
|
|
||||||
#: src/conflicts.c:498
|
|
||||||
#, c-format
|
|
||||||
msgid "expected %d shift/reduce conflict"
|
|
||||||
msgid_plural "expected %d shift/reduce conflicts"
|
|
||||||
msgstr[0] "jangkaan %d konflik pemindahan/pengurangan"
|
|
||||||
msgstr[1] "jangkaan %d konflik pemindahan/pengurangan"
|
|
||||||
|
|
||||||
#: src/conflicts.c:503
|
|
||||||
msgid "expected 0 reduce/reduce conflicts"
|
|
||||||
msgstr "jangkaan 0 konflik pengurangan/pengurangan"
|
|
||||||
|
|
||||||
#: src/files.c:99
|
|
||||||
#, c-format
|
|
||||||
msgid "cannot open file `%s'"
|
|
||||||
msgstr "tidak dapat membuka fail `%s'"
|
|
||||||
|
|
||||||
#: src/files.c:115
|
|
||||||
msgid "I/O error"
|
|
||||||
msgstr "Ralat I/O"
|
|
||||||
|
|
||||||
#: src/files.c:118
|
|
||||||
msgid "cannot close file"
|
|
||||||
msgstr "tidak dapat menutup fail"
|
|
||||||
|
|
||||||
#: src/files.c:336
|
|
||||||
#, c-format
|
|
||||||
msgid "conflicting outputs to file %s"
|
|
||||||
msgstr "keluaran berkonflik kepada fail %s"
|
|
||||||
|
|
||||||
#: src/getargs.c:186
|
|
||||||
#, c-format
|
|
||||||
msgid "Try `%s --help' for more information.\n"
|
|
||||||
msgstr "Cuba `%s --help' untuk lebih maklumat.\n"
|
|
||||||
|
|
||||||
#: src/getargs.c:192
|
|
||||||
msgid "GNU bison generates parsers for LALR(1) grammars.\n"
|
|
||||||
msgstr "GNU bison menjanakan penghurai untuk tatabahasa LALR(1).\n"
|
|
||||||
|
|
||||||
#: src/getargs.c:196
|
|
||||||
#, c-format
|
|
||||||
msgid "Usage: %s [OPTION]... FILE\n"
|
|
||||||
msgstr "Penggunaan: %s [PILIHAN]... FAIL\n"
|
|
||||||
|
|
||||||
#: src/getargs.c:200
|
|
||||||
msgid ""
|
|
||||||
"If a long option shows an argument as mandatory, then it is mandatory\n"
|
|
||||||
"for the equivalent short option also. Similarly for optional arguments.\n"
|
|
||||||
msgstr ""
|
|
||||||
"Jika satu pilihan panjang menunjukkan satu hujah sebagai mandatori, oleh itu "
|
|
||||||
"ia\n"
|
|
||||||
"mandatori untuk pilihan pendek sepadan juga. Serupa juga dengan hujah tidak "
|
|
||||||
"wajib.\n"
|
|
||||||
|
|
||||||
#: src/getargs.c:206
|
|
||||||
msgid ""
|
|
||||||
"Operation modes:\n"
|
|
||||||
" -h, --help display this help and exit\n"
|
|
||||||
" -V, --version output version information and exit\n"
|
|
||||||
" -y, --yacc emulate POSIX yacc\n"
|
|
||||||
msgstr ""
|
|
||||||
"Mod operasi:\n"
|
|
||||||
" -h, --help papar bantuan ini dan keluar\n"
|
|
||||||
" -V, --version keluarkan maklumat versi dan keluar\n"
|
|
||||||
" -y, --yacc tiru POSIX yacc\n"
|
|
||||||
|
|
||||||
#: src/getargs.c:213
|
|
||||||
msgid ""
|
|
||||||
"Parser:\n"
|
|
||||||
" -S, --skeleton=FILE specify the skeleton to use\n"
|
|
||||||
" -t, --debug instrument the parser for debugging\n"
|
|
||||||
" --locations enable locations computation\n"
|
|
||||||
" -p, --name-prefix=PREFIX prepend PREFIX to the external symbols\n"
|
|
||||||
" -l, --no-lines don't generate `#line' directives\n"
|
|
||||||
" -n, --no-parser generate the tables only\n"
|
|
||||||
" -k, --token-table include a table of token names\n"
|
|
||||||
msgstr ""
|
|
||||||
"Parser:\n"
|
|
||||||
" -S, --skeleton=FAIL nyatakan rangka untuk digunakan\n"
|
|
||||||
" -t, --debug peralatan parser untuk nyahpepijat\n"
|
|
||||||
" --locations hidupkan pengiraan lokasi\n"
|
|
||||||
" -p, --name-prefix=AWALAN tambah AWALAN kepada simbol luaran\n"
|
|
||||||
" -l, --no-lines jangan jana arahan `#line'\n"
|
|
||||||
" -n, --no-parser jana jadual sahaja\n"
|
|
||||||
" -k, --token-table sertakan jadual nama token\n"
|
|
||||||
|
|
||||||
#: src/getargs.c:225
|
|
||||||
msgid ""
|
|
||||||
"Output:\n"
|
|
||||||
" -d, --defines also produce a header file\n"
|
|
||||||
" -r, --report=THINGS also produce details on the automaton\n"
|
|
||||||
" -v, --verbose same as `--report=state'\n"
|
|
||||||
" -b, --file-prefix=PREFIX specify a PREFIX for output files\n"
|
|
||||||
" -o, --output=FILE leave output to FILE\n"
|
|
||||||
" -g, --graph also produce a VCG description of the "
|
|
||||||
"automaton\n"
|
|
||||||
msgstr ""
|
|
||||||
"Keluaran:\n"
|
|
||||||
" -d, --defines juga hasilkan fail header\n"
|
|
||||||
" -r, --report=PERKARA juga hasilkan butir terperinci bagi automaton\n"
|
|
||||||
" -v, --verbose sama seperti `--report=state'\n"
|
|
||||||
" -b, --file-prefix=AWALAN nyatakan AWALAN untuk fail keluaran\n"
|
|
||||||
" -o, --output=FAIL biarkan keluaran kepada FAIL\n"
|
|
||||||
" -g, --graph juga hasilkan huraian VCG bagi automaton\n"
|
|
||||||
|
|
||||||
#: src/getargs.c:236
|
|
||||||
msgid ""
|
|
||||||
"THINGS is a list of comma separated words that can include:\n"
|
|
||||||
" `state' describe the states\n"
|
|
||||||
" `itemset' complete the core item sets with their closure\n"
|
|
||||||
" `lookahead' explicitly associate lookaheads to items\n"
|
|
||||||
" `solved' describe shift/reduce conflicts solving\n"
|
|
||||||
" `all' include all the above information\n"
|
|
||||||
" `none' disable the report\n"
|
|
||||||
msgstr ""
|
|
||||||
"PERKARA adalah senarai perkataan dipisah koma yang boleh termasuk:\n"
|
|
||||||
" `state' nyatakan keadaan\n"
|
|
||||||
" `itemset' lengkapkan perkara asas dengan penutupnya\n"
|
|
||||||
" `lookahead' dengan jelas kaitkan lookahead kepada perkara\n"
|
|
||||||
" `solved' nyatakan penyelesaian konflik pemindahan/pengurangan\n"
|
|
||||||
" `all' masukkan semua maklumat diatas\n"
|
|
||||||
" `none' matikan laporan\n"
|
|
||||||
|
|
||||||
#: src/getargs.c:247
|
|
||||||
msgid "Report bugs to <bug-bison@gnu.org>.\n"
|
|
||||||
msgstr "Lapor pepijat kepada <bug-bison@gnu.org>.\n"
|
|
||||||
|
|
||||||
#: src/getargs.c:264
|
|
||||||
#, c-format
|
|
||||||
msgid "bison (GNU Bison) %s"
|
|
||||||
msgstr "bison (GNU Bison) %s"
|
|
||||||
|
|
||||||
#: src/getargs.c:266
|
|
||||||
msgid "Written by Robert Corbett and Richard Stallman.\n"
|
|
||||||
msgstr "Ditulis oleh Robert Corbett dan Richard Stallman.\n"
|
|
||||||
|
|
||||||
#: src/getargs.c:270
|
|
||||||
#, c-format
|
|
||||||
msgid "Copyright (C) %d Free Software Foundation, Inc.\n"
|
|
||||||
msgstr "Hakcipta (C) %d Free Software Foundation, Inc.\n"
|
|
||||||
|
|
||||||
#: src/getargs.c:272
|
|
||||||
msgid ""
|
|
||||||
"This is free software; see the source for copying conditions. There is NO\n"
|
|
||||||
"warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n"
|
|
||||||
msgstr ""
|
|
||||||
"Ini adalah perisian bebas; lihat sumber untuk syarat menyalin. TIADA\n"
|
|
||||||
"jaminan disediakan; tidak juga untuk KEBOLEHDAGANGAN atau KEUPAYAAN UNTUK "
|
|
||||||
"SESUATU TUJUAN KHUSUS.\n"
|
|
||||||
|
|
||||||
#: src/getargs.c:438
|
|
||||||
#, c-format
|
|
||||||
msgid "missing operand after `%s'"
|
|
||||||
msgstr "operan hilang selepas `%s'"
|
|
||||||
|
|
||||||
#: src/getargs.c:440
|
|
||||||
#, c-format
|
|
||||||
msgid "extra operand `%s'"
|
|
||||||
msgstr "operan tambahan `%s'"
|
|
||||||
|
|
||||||
#: src/gram.c:139
|
|
||||||
msgid "empty"
|
|
||||||
msgstr "kosong"
|
|
||||||
|
|
||||||
#: src/gram.c:233
|
|
||||||
msgid "Grammar"
|
|
||||||
msgstr "Tatabahasa"
|
|
||||||
|
|
||||||
#: src/gram.c:321 src/reduce.c:394
|
|
||||||
msgid "warning"
|
|
||||||
msgstr "amaran"
|
|
||||||
|
|
||||||
#: src/main.c:124
|
|
||||||
msgid "rule never reduced because of conflicts"
|
|
||||||
msgstr "hukum tidak dikurangkan kerana konflik"
|
|
||||||
|
|
||||||
#: src/parse-gram.y:353
|
|
||||||
msgid "POSIX forbids declarations in the grammar"
|
|
||||||
msgstr "POSIX melarang pengisytiharan didalam tatabahasa"
|
|
||||||
|
|
||||||
#: src/parse-gram.y:476
|
|
||||||
msgid "missing identifier in parameter declaration"
|
|
||||||
msgstr "pengecam hilang dalam parameter pengisytiharan"
|
|
||||||
|
|
||||||
#: src/print.c:49
|
|
||||||
#, c-format
|
|
||||||
msgid " type %d is %s\n"
|
|
||||||
msgstr " jenis %d adalah %s\n"
|
|
||||||
|
|
||||||
#: src/print.c:165
|
|
||||||
#, c-format
|
|
||||||
msgid "shift, and go to state %d\n"
|
|
||||||
msgstr "pindah, dan pergi ke keadaan %d\n"
|
|
||||||
|
|
||||||
#: src/print.c:167
|
|
||||||
#, c-format
|
|
||||||
msgid "go to state %d\n"
|
|
||||||
msgstr "pergi ke keadaan %d\n"
|
|
||||||
|
|
||||||
#: src/print.c:204
|
|
||||||
msgid "error (nonassociative)\n"
|
|
||||||
msgstr "ralat (tidak bergabung)\n"
|
|
||||||
|
|
||||||
#: src/print.c:292
|
|
||||||
#, c-format
|
|
||||||
msgid "reduce using rule %d (%s)"
|
|
||||||
msgstr "kurang menggunakan hukum %d (%s)"
|
|
||||||
|
|
||||||
#: src/print.c:294
|
|
||||||
msgid "accept"
|
|
||||||
msgstr "terima"
|
|
||||||
|
|
||||||
#: src/print.c:325 src/print.c:391
|
|
||||||
msgid "$default"
|
|
||||||
msgstr "$default"
|
|
||||||
|
|
||||||
#: src/print.c:420
|
|
||||||
#, c-format
|
|
||||||
msgid "state %d"
|
|
||||||
msgstr "keadaan %d"
|
|
||||||
|
|
||||||
#: src/print.c:456
|
|
||||||
msgid "Terminals, with rules where they appear"
|
|
||||||
msgstr "Terminal, dengan hukum dimana mereka kelihatan"
|
|
||||||
|
|
||||||
#: src/print.c:483
|
|
||||||
msgid "Nonterminals, with rules where they appear"
|
|
||||||
msgstr "Tidak terminal, dengan hukum dimana mereka kelihatan"
|
|
||||||
|
|
||||||
#: src/print.c:512
|
|
||||||
msgid " on left:"
|
|
||||||
msgstr " pada kiri:"
|
|
||||||
|
|
||||||
#: src/print.c:527
|
|
||||||
msgid " on right:"
|
|
||||||
msgstr " pada kanan:"
|
|
||||||
|
|
||||||
#: src/print.c:555
|
|
||||||
msgid "Rules never reduced"
|
|
||||||
msgstr "Hukum tidak dikurangkan"
|
|
||||||
|
|
||||||
#: src/reader.c:53
|
|
||||||
#, c-format
|
|
||||||
msgid "multiple %s declarations"
|
|
||||||
msgstr "pelbagai pengisytiharan %s"
|
|
||||||
|
|
||||||
#: src/reader.c:115
|
|
||||||
#, c-format
|
|
||||||
msgid "result type clash on merge function %s: <%s> != <%s>"
|
|
||||||
msgstr "jenis hasil bertelingkah pada fungsi gabung %s: <%s> != <%s>"
|
|
||||||
|
|
||||||
#: src/reader.c:213
|
|
||||||
#, c-format
|
|
||||||
msgid "rule given for %s, which is a token"
|
|
||||||
msgstr "hukum diberi untuk %s, dimana ia adalah token"
|
|
||||||
|
|
||||||
#: src/reader.c:242
|
|
||||||
#, c-format
|
|
||||||
msgid "type clash on default action: <%s> != <%s>"
|
|
||||||
msgstr "pertelingkahan jenis pada tindakan default: <%s> != <%s>"
|
|
||||||
|
|
||||||
#: src/reader.c:248
|
|
||||||
msgid "empty rule for typed nonterminal, and no action"
|
|
||||||
msgstr "hukum kosong untuk bukan terminal ditaip, dan tiada tindakan"
|
|
||||||
|
|
||||||
#: src/reader.c:318 src/reader.c:332 src/reader.c:345
|
|
||||||
#, c-format
|
|
||||||
msgid "only one %s allowed per rule"
|
|
||||||
msgstr "hanya satu %s dibenarkan setiap hukum"
|
|
||||||
|
|
||||||
#: src/reader.c:328 src/reader.c:343
|
|
||||||
#, c-format
|
|
||||||
msgid "%s affects only GLR parsers"
|
|
||||||
msgstr "%s hanya berkesan kepada parser GLR"
|
|
||||||
|
|
||||||
#: src/reader.c:330
|
|
||||||
#, c-format
|
|
||||||
msgid "%s must be followed by positive number"
|
|
||||||
msgstr "%s mesti diikuti dengan nombor positif"
|
|
||||||
|
|
||||||
#: src/reader.c:487
|
|
||||||
msgid "no rules in the input grammar"
|
|
||||||
msgstr "tiada hukum dalam masukan tatabahasa"
|
|
||||||
|
|
||||||
#: src/reduce.c:242
|
|
||||||
msgid "useless rule"
|
|
||||||
msgstr "hukum tidak berguna"
|
|
||||||
|
|
||||||
#: src/reduce.c:303
|
|
||||||
#, c-format
|
|
||||||
msgid "useless nonterminal: %s"
|
|
||||||
msgstr "bukan terminal tidak berguna: %s"
|
|
||||||
|
|
||||||
#: src/reduce.c:351
|
|
||||||
msgid "Useless nonterminals"
|
|
||||||
msgstr "Bukan terminal tidak berguna"
|
|
||||||
|
|
||||||
#: src/reduce.c:364
|
|
||||||
msgid "Terminals which are not used"
|
|
||||||
msgstr "Terminal yang tidak digunakan"
|
|
||||||
|
|
||||||
#: src/reduce.c:373
|
|
||||||
msgid "Useless rules"
|
|
||||||
msgstr "Hukum tidak berguna"
|
|
||||||
|
|
||||||
#: src/reduce.c:389
|
|
||||||
#, c-format
|
|
||||||
msgid "%d rule never reduced\n"
|
|
||||||
msgid_plural "%d rules never reduced\n"
|
|
||||||
msgstr[0] "%d hukum tidak dikurangkan\n"
|
|
||||||
msgstr[1] "%d hukum tidak dikurangkan\n"
|
|
||||||
|
|
||||||
#: src/reduce.c:397
|
|
||||||
#, c-format
|
|
||||||
msgid "%d useless nonterminal"
|
|
||||||
msgid_plural "%d useless nonterminals"
|
|
||||||
msgstr[0] "%d bukan terminal tidak berguna"
|
|
||||||
msgstr[1] "%d bukan terminal tidak berguna"
|
|
||||||
|
|
||||||
#: src/reduce.c:403
|
|
||||||
msgid " and "
|
|
||||||
msgstr " dan "
|
|
||||||
|
|
||||||
#: src/reduce.c:406
|
|
||||||
#, c-format
|
|
||||||
msgid "%d useless rule"
|
|
||||||
msgid_plural "%d useless rules"
|
|
||||||
msgstr[0] "%d hukum tidak berguna"
|
|
||||||
msgstr[1] "%d hukum tidak berguna"
|
|
||||||
|
|
||||||
#: src/reduce.c:436
|
|
||||||
#, c-format
|
|
||||||
msgid "start symbol %s does not derive any sentence"
|
|
||||||
msgstr "simbol permulaan %s tidak menghasilkan sebarang perkataan"
|
|
||||||
|
|
||||||
#: src/scan-gram.l:160
|
|
||||||
msgid "stray `,' treated as white space"
|
|
||||||
msgstr "`,' sesat dianggap sebagai ruang"
|
|
||||||
|
|
||||||
#: src/scan-gram.l:221
|
|
||||||
#, c-format
|
|
||||||
msgid "invalid directive: %s"
|
|
||||||
msgstr "arahan tidak sah: %s"
|
|
||||||
|
|
||||||
#: src/scan-gram.l:241 src/scan-gram.l:804 src/scan-gram.l:873
|
|
||||||
#, c-format
|
|
||||||
msgid "integer out of range: %s"
|
|
||||||
msgstr "integer diluar julat: %s"
|
|
||||||
|
|
||||||
#: src/scan-gram.l:283
|
|
||||||
#, c-format
|
|
||||||
msgid "invalid character: %s"
|
|
||||||
msgstr "aksara tidak sah: %s"
|
|
||||||
|
|
||||||
#: src/scan-gram.l:412 src/scan-gram.l:422 src/scan-gram.l:441
|
|
||||||
#, c-format
|
|
||||||
msgid "invalid escape sequence: %s"
|
|
||||||
msgstr "turutan escape tidak sah: %s"
|
|
||||||
|
|
||||||
#: src/scan-gram.l:446
|
|
||||||
#, c-format
|
|
||||||
msgid "unrecognized escape sequence: %s"
|
|
||||||
msgstr "turutan escape tidak dikenali: %s"
|
|
||||||
|
|
||||||
#: src/scan-gram.l:534
|
|
||||||
#, c-format
|
|
||||||
msgid "missing `{' in `%s'"
|
|
||||||
msgstr "`(' hilang dalam `%s'"
|
|
||||||
|
|
||||||
#: src/scan-gram.l:774
|
|
||||||
#, c-format
|
|
||||||
msgid "$$ of `%s' has no declared type"
|
|
||||||
msgstr "$$ dari `%s' tiada jenis diisytiharkan"
|
|
||||||
|
|
||||||
#: src/scan-gram.l:795
|
|
||||||
#, c-format
|
|
||||||
msgid "$%d of `%s' has no declared type"
|
|
||||||
msgstr "$%d dari `%s' tiada jenis diisytiharkan"
|
|
||||||
|
|
||||||
#: src/scan-gram.l:840 src/scan-gram.l:908
|
|
||||||
#, c-format
|
|
||||||
msgid "invalid value: %s"
|
|
||||||
msgstr "nilai tidak sah: %s"
|
|
||||||
|
|
||||||
#: src/scan-gram.l:996
|
|
||||||
#, c-format
|
|
||||||
msgid "missing `%s' at end of file"
|
|
||||||
msgstr "`%s' hilang pada penghujung fail"
|
|
||||||
|
|
||||||
#: src/symlist.c:97 src/symlist.c:108
|
|
||||||
msgid "invalid $ value"
|
|
||||||
msgstr "nilai $ tidak sah"
|
|
||||||
|
|
||||||
#: src/symtab.c:84
|
|
||||||
#, c-format
|
|
||||||
msgid "type redeclaration for %s"
|
|
||||||
msgstr "pengisytiharan semula jenis untuk %s"
|
|
||||||
|
|
||||||
#: src/symtab.c:101 src/symtab.c:119
|
|
||||||
#, c-format
|
|
||||||
msgid "%s redeclaration for %s"
|
|
||||||
msgstr "%s pengisytiharan semula untuk %s"
|
|
||||||
|
|
||||||
#: src/symtab.c:138
|
|
||||||
#, c-format
|
|
||||||
msgid "redefining precedence of %s"
|
|
||||||
msgstr "mentakrif semula keutamaan %s"
|
|
||||||
|
|
||||||
#: src/symtab.c:156
|
|
||||||
#, c-format
|
|
||||||
msgid "symbol %s redefined"
|
|
||||||
msgstr "simbol %s ditakrif semula"
|
|
||||||
|
|
||||||
#: src/symtab.c:179
|
|
||||||
#, c-format
|
|
||||||
msgid "redefining user token number of %s"
|
|
||||||
msgstr "mentakrif semula nombor token pengguna %s"
|
|
||||||
|
|
||||||
#: src/symtab.c:206
|
|
||||||
#, c-format
|
|
||||||
msgid "symbol %s is used, but is not defined as a token and has no rules"
|
|
||||||
msgstr ""
|
|
||||||
"simbol %s digunakan, tetapi tidak ditakrifkan sebagai token atau mempunyai "
|
|
||||||
"hukum"
|
|
||||||
|
|
||||||
#: src/symtab.c:231
|
|
||||||
#, c-format
|
|
||||||
msgid "symbol `%s' used more than once as a literal string"
|
|
||||||
msgstr "simbol `%s' digunakan lebih dari sekali sebagai rentetan perkataan"
|
|
||||||
|
|
||||||
#: src/symtab.c:234
|
|
||||||
#, c-format
|
|
||||||
msgid "symbol `%s' given more than one literal string"
|
|
||||||
msgstr "simbol `%s' diberikan lebih daripada satu rentetan perkataan"
|
|
||||||
|
|
||||||
#: src/symtab.c:270
|
|
||||||
#, c-format
|
|
||||||
msgid "conflicting precedences for %s and %s"
|
|
||||||
msgstr "konflik keutamaan untuk %s dan %s"
|
|
||||||
|
|
||||||
#: src/symtab.c:282
|
|
||||||
#, c-format
|
|
||||||
msgid "conflicting associativities for %s (%s) and %s (%s)"
|
|
||||||
msgstr "konflik kaitan bagi %s (%s) dan %s (%s)"
|
|
||||||
|
|
||||||
#: src/symtab.c:367
|
|
||||||
#, c-format
|
|
||||||
msgid "tokens %s and %s both assigned number %d"
|
|
||||||
msgstr "token %s dan %s kedua-dunya diberi nombor %d"
|
|
||||||
|
|
||||||
#: src/symtab.c:590
|
|
||||||
#, c-format
|
|
||||||
msgid "the start symbol %s is undefined"
|
|
||||||
msgstr "simbol permulaan %s tidak ditakrifkan"
|
|
||||||
|
|
||||||
#: src/symtab.c:594
|
|
||||||
#, c-format
|
|
||||||
msgid "the start symbol %s is a token"
|
|
||||||
msgstr "simbol permulaan %s adalah token"
|
|
||||||
|
|
||||||
#: lib/argmatch.c:135
|
|
||||||
#, c-format
|
|
||||||
msgid "invalid argument %s for %s"
|
|
||||||
msgstr "hujah tidak sah %s untuk %s"
|
|
||||||
|
|
||||||
#: lib/argmatch.c:136
|
|
||||||
#, c-format
|
|
||||||
msgid "ambiguous argument %s for %s"
|
|
||||||
msgstr "hujah kabur %s untuk %s"
|
|
||||||
|
|
||||||
#: lib/argmatch.c:155
|
|
||||||
msgid "Valid arguments are:"
|
|
||||||
msgstr "Hujah yang sah adalah:"
|
|
||||||
|
|
||||||
#: lib/bitset_stats.c:179
|
|
||||||
#, c-format
|
|
||||||
msgid "%u bitset_allocs, %u freed (%.2f%%).\n"
|
|
||||||
msgstr "%u bitset_allocs, %u dibebaskan (%.2f%%).\n"
|
|
||||||
|
|
||||||
#: lib/bitset_stats.c:182
|
|
||||||
#, c-format
|
|
||||||
msgid "%u bitset_sets, %u cached (%.2f%%)\n"
|
|
||||||
msgstr "%u bitset_sets, %u disimpan (%.2f%%)\n"
|
|
||||||
|
|
||||||
#: lib/bitset_stats.c:185
|
|
||||||
#, c-format
|
|
||||||
msgid "%u bitset_resets, %u cached (%.2f%%)\n"
|
|
||||||
msgstr "%u bitset_resets, %u disimpan (%.2f%%)\n"
|
|
||||||
|
|
||||||
#: lib/bitset_stats.c:188
|
|
||||||
#, c-format
|
|
||||||
msgid "%u bitset_tests, %u cached (%.2f%%)\n"
|
|
||||||
msgstr "%u bitset_tests, %u disimpan (%.2f%%)\n"
|
|
||||||
|
|
||||||
#: lib/bitset_stats.c:192
|
|
||||||
#, c-format
|
|
||||||
msgid "%u bitset_lists\n"
|
|
||||||
msgstr "%u bitset_lists\n"
|
|
||||||
|
|
||||||
#: lib/bitset_stats.c:194
|
|
||||||
msgid "count log histogram\n"
|
|
||||||
msgstr "kira histogram log\n"
|
|
||||||
|
|
||||||
#: lib/bitset_stats.c:197
|
|
||||||
msgid "size log histogram\n"
|
|
||||||
msgstr "saiz histogram log\n"
|
|
||||||
|
|
||||||
#: lib/bitset_stats.c:200
|
|
||||||
msgid "density histogram\n"
|
|
||||||
msgstr "histogram kepadatan\n"
|
|
||||||
|
|
||||||
#: lib/bitset_stats.c:214
|
|
||||||
msgid ""
|
|
||||||
"Bitset statistics:\n"
|
|
||||||
"\n"
|
|
||||||
msgstr ""
|
|
||||||
"Statistik bitset:\n"
|
|
||||||
"\n"
|
|
||||||
|
|
||||||
#: lib/bitset_stats.c:217
|
|
||||||
#, c-format
|
|
||||||
msgid "Accumulated runs = %u\n"
|
|
||||||
msgstr "Pelaksanaan terkumpul = %u\n"
|
|
||||||
|
|
||||||
#: lib/bitset_stats.c:261 lib/bitset_stats.c:266
|
|
||||||
msgid "Could not read stats file."
|
|
||||||
msgstr "Tidak dapat membaca fail stats."
|
|
||||||
|
|
||||||
#: lib/bitset_stats.c:263
|
|
||||||
msgid "Bad stats file size.\n"
|
|
||||||
msgstr "Saiz fail stats tidak betul.\n"
|
|
||||||
|
|
||||||
#: lib/bitset_stats.c:289 lib/bitset_stats.c:291
|
|
||||||
msgid "Could not write stats file."
|
|
||||||
msgstr "Tidak dapat menulis fail stats."
|
|
||||||
|
|
||||||
#: lib/bitset_stats.c:294
|
|
||||||
msgid "Could not open stats file for writing."
|
|
||||||
msgstr "Tidak dapat membuka fail stats untuk menulis."
|
|
||||||
|
|
||||||
#: lib/getopt.c:688 lib/getopt.c:700
|
|
||||||
#, c-format
|
|
||||||
msgid "%s: option `%s' is ambiguous\n"
|
|
||||||
msgstr "%s: pilihan `%s' adalah kabur\n"
|
|
||||||
|
|
||||||
#: lib/getopt.c:733 lib/getopt.c:737
|
|
||||||
#, c-format
|
|
||||||
msgid "%s: option `--%s' doesn't allow an argument\n"
|
|
||||||
msgstr "%s: pilihan `--%s' tidak mengizinkan hujah\n"
|
|
||||||
|
|
||||||
#: lib/getopt.c:746 lib/getopt.c:751
|
|
||||||
#, c-format
|
|
||||||
msgid "%s: option `%c%s' doesn't allow an argument\n"
|
|
||||||
msgstr "%s: pilihan `%c%s' tidak mengizinkan hujah\n"
|
|
||||||
|
|
||||||
#: lib/getopt.c:787 lib/getopt.c:800 lib/getopt.c:1089 lib/getopt.c:1102
|
|
||||||
#, c-format
|
|
||||||
msgid "%s: option `%s' requires an argument\n"
|
|
||||||
msgstr "%s: pilihan `%s' memerlukan hujah\n"
|
|
||||||
|
|
||||||
#: lib/getopt.c:838 lib/getopt.c:841
|
|
||||||
#, c-format
|
|
||||||
msgid "%s: unrecognized option `--%s'\n"
|
|
||||||
msgstr "%s: pilihan tidak dikenali `--%s'\n"
|
|
||||||
|
|
||||||
#: lib/getopt.c:849 lib/getopt.c:852
|
|
||||||
#, c-format
|
|
||||||
msgid "%s: unrecognized option `%c%s'\n"
|
|
||||||
msgstr "%s: pilihan tidak dikenali '%c%s'\n"
|
|
||||||
|
|
||||||
#: lib/getopt.c:899 lib/getopt.c:902
|
|
||||||
#, c-format
|
|
||||||
msgid "%s: illegal option -- %c\n"
|
|
||||||
msgstr "%s: pilihan salah -- %c\n"
|
|
||||||
|
|
||||||
#: lib/getopt.c:908 lib/getopt.c:911
|
|
||||||
#, c-format
|
|
||||||
msgid "%s: invalid option -- %c\n"
|
|
||||||
msgstr "%s: pilihan tidak sah -- %c\n"
|
|
||||||
|
|
||||||
#: lib/getopt.c:958 lib/getopt.c:969 lib/getopt.c:1155 lib/getopt.c:1168
|
|
||||||
#, c-format
|
|
||||||
msgid "%s: option requires an argument -- %c\n"
|
|
||||||
msgstr "%s: pilihan memerlukan hujah -- %c\n"
|
|
||||||
|
|
||||||
#: lib/getopt.c:1021 lib/getopt.c:1032
|
|
||||||
#, c-format
|
|
||||||
msgid "%s: option `-W %s' is ambiguous\n"
|
|
||||||
msgstr "%s: pilihan `-W %s' adalah kabur\n"
|
|
||||||
|
|
||||||
#: lib/getopt.c:1056 lib/getopt.c:1068
|
|
||||||
#, c-format
|
|
||||||
msgid "%s: option `-W %s' doesn't allow an argument\n"
|
|
||||||
msgstr "%s: pilihan `-W %s' tidak mengizinkan hujah\n"
|
|
||||||
|
|
||||||
#: lib/obstack.c:487 lib/obstack.c:490 lib/xmalloc.c:63
|
|
||||||
msgid "memory exhausted"
|
|
||||||
msgstr "kehabisan memori"
|
|
||||||
|
|
||||||
#: lib/quotearg.c:236
|
|
||||||
msgid "`"
|
|
||||||
msgstr "`"
|
|
||||||
|
|
||||||
#: lib/quotearg.c:237
|
|
||||||
msgid "'"
|
|
||||||
msgstr "'"
|
|
||||||
|
|
||||||
#: lib/subpipe.c:187
|
|
||||||
#, c-format
|
|
||||||
msgid "subsidiary program `%s' could not be invoked"
|
|
||||||
msgstr "program subsidiari `%s' tidak dapat dilaksanakan"
|
|
||||||
|
|
||||||
#: lib/subpipe.c:189
|
|
||||||
#, c-format
|
|
||||||
msgid "subsidiary program `%s' not found"
|
|
||||||
msgstr "program subsidiari `%s' tidak dijumpai"
|
|
||||||
|
|
||||||
#: lib/subpipe.c:191
|
|
||||||
#, c-format
|
|
||||||
msgid "subsidiary program `%s' failed"
|
|
||||||
msgstr "program subsidiari `%s' gagal"
|
|
||||||
|
|
||||||
#: lib/subpipe.c:192
|
|
||||||
#, c-format
|
|
||||||
msgid "subsidiary program `%s' failed (exit status %d)"
|
|
||||||
msgstr "program subsidiari `%s' gagal (status keluar %d)"
|
|
||||||
|
|
||||||
#: lib/timevar.c:476
|
|
||||||
msgid ""
|
|
||||||
"\n"
|
|
||||||
"Execution times (seconds)\n"
|
|
||||||
msgstr ""
|
|
||||||
"\n"
|
|
||||||
"Masa pelaksanaan (saat)\n"
|
|
||||||
|
|
||||||
#: lib/timevar.c:526
|
|
||||||
msgid " TOTAL :"
|
|
||||||
msgstr " JUMLAH :"
|
|
||||||
|
|
||||||
#: lib/timevar.c:562
|
|
||||||
#, c-format
|
|
||||||
msgid "time in %s: %ld.%06ld (%ld%%)\n"
|
|
||||||
msgstr "masa dalam %s: %ld.%06ld (%ld%%)\n"
|
|
||||||
720
po/nl.po
720
po/nl.po
@@ -1,720 +0,0 @@
|
|||||||
# Dutch messages for GNU bison.
|
|
||||||
# Copyright (C) 1996, 2002, 2003 Free Software Foundation, Inc.
|
|
||||||
# Tim Van Holder <tim.van.holder@pandora.be>, 2002, 2003.
|
|
||||||
# Erick Branderhorst <branderh@debian.org>, 1996.
|
|
||||||
#
|
|
||||||
msgid ""
|
|
||||||
msgstr ""
|
|
||||||
"Project-Id-Version: bison 1.875a\n"
|
|
||||||
"Report-Msgid-Bugs-To: bug-bison@gnu.org\n"
|
|
||||||
"POT-Creation-Date: 2003-08-25 17:14+0200\n"
|
|
||||||
"PO-Revision-Date: 2003-02-02 02:19+0100\n"
|
|
||||||
"Last-Translator: Tim Van Holder <tim.van.holder@pandora.be>\n"
|
|
||||||
"Language-Team: Dutch <vertaling@nl.linux.org>\n"
|
|
||||||
"MIME-Version: 1.0\n"
|
|
||||||
"Content-Type: text/plain; charset=iso-8859-1\n"
|
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
|
||||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
|
||||||
|
|
||||||
#: src/complain.c:56 lib/error.c:135 lib/error.c:163
|
|
||||||
msgid "Unknown system error"
|
|
||||||
msgstr "Onbekende systeemfout"
|
|
||||||
|
|
||||||
#: src/complain.c:79 src/complain.c:94
|
|
||||||
msgid "warning: "
|
|
||||||
msgstr "let op: "
|
|
||||||
|
|
||||||
#: src/complain.c:150 src/complain.c:166
|
|
||||||
msgid "fatal error: "
|
|
||||||
msgstr "fatale fout: "
|
|
||||||
|
|
||||||
#: src/conflicts.c:75
|
|
||||||
#, c-format
|
|
||||||
msgid " Conflict between rule %d and token %s resolved as shift"
|
|
||||||
msgstr " Conflict tussen regel %d en token %s opgelost als shift"
|
|
||||||
|
|
||||||
#: src/conflicts.c:83
|
|
||||||
#, c-format
|
|
||||||
msgid " Conflict between rule %d and token %s resolved as reduce"
|
|
||||||
msgstr " Conflict tussen regel %d en token %s opgelost als reductie"
|
|
||||||
|
|
||||||
#: src/conflicts.c:90
|
|
||||||
#, c-format
|
|
||||||
msgid " Conflict between rule %d and token %s resolved as an error"
|
|
||||||
msgstr " Conflict tussen regel %d en token %s opgelost als een fout"
|
|
||||||
|
|
||||||
#: src/conflicts.c:398
|
|
||||||
#, c-format
|
|
||||||
msgid "conflicts: %d shift/reduce, %d reduce/reduce\n"
|
|
||||||
msgstr "conflicten: %d shift/reductie, %d reductie/reductie\n"
|
|
||||||
|
|
||||||
#: src/conflicts.c:401
|
|
||||||
#, c-format
|
|
||||||
msgid "conflicts: %d shift/reduce\n"
|
|
||||||
msgstr "conflicten: %d shift/reductie\n"
|
|
||||||
|
|
||||||
#: src/conflicts.c:403
|
|
||||||
#, c-format
|
|
||||||
msgid "conflicts: %d reduce/reduce\n"
|
|
||||||
msgstr "conflicten: %d reductie/reductie\n"
|
|
||||||
|
|
||||||
#: src/conflicts.c:421
|
|
||||||
#, c-format
|
|
||||||
msgid "State %d "
|
|
||||||
msgstr "Staat %d"
|
|
||||||
|
|
||||||
#: src/conflicts.c:498
|
|
||||||
#, c-format
|
|
||||||
msgid "expected %d shift/reduce conflict"
|
|
||||||
msgid_plural "expected %d shift/reduce conflicts"
|
|
||||||
msgstr[0] "%d shift/reductie conflict werd verwacht"
|
|
||||||
msgstr[1] "%d shift/reductie conflicten werden verwacht"
|
|
||||||
|
|
||||||
#: src/conflicts.c:503
|
|
||||||
msgid "expected 0 reduce/reduce conflicts"
|
|
||||||
msgstr "er werden geen reductie/reductie conflicten verwacht"
|
|
||||||
|
|
||||||
#: src/files.c:99
|
|
||||||
#, c-format
|
|
||||||
msgid "cannot open file `%s'"
|
|
||||||
msgstr "kan bestand `%s' niet openen"
|
|
||||||
|
|
||||||
#: src/files.c:115
|
|
||||||
msgid "I/O error"
|
|
||||||
msgstr "I/O fout"
|
|
||||||
|
|
||||||
#: src/files.c:118
|
|
||||||
msgid "cannot close file"
|
|
||||||
msgstr "kan bestand niet sluiten"
|
|
||||||
|
|
||||||
#: src/files.c:336
|
|
||||||
#, c-format
|
|
||||||
msgid "conflicting outputs to file %s"
|
|
||||||
msgstr "conflicterende uitvoer naar bestand %s"
|
|
||||||
|
|
||||||
#: src/getargs.c:186
|
|
||||||
#, c-format
|
|
||||||
msgid "Try `%s --help' for more information.\n"
|
|
||||||
msgstr "Probeer `%s --help' voor meer informatie.\n"
|
|
||||||
|
|
||||||
# Dank U, Akim :-)
|
|
||||||
#: src/getargs.c:192
|
|
||||||
msgid "GNU bison generates parsers for LALR(1) grammars.\n"
|
|
||||||
msgstr "GNU bison genereert parsers voor LALR(1) grammatica's.\n"
|
|
||||||
|
|
||||||
#: src/getargs.c:196
|
|
||||||
#, c-format
|
|
||||||
msgid "Usage: %s [OPTION]... FILE\n"
|
|
||||||
msgstr "Gebruik: %s [OPTIE]... BESTAND\n"
|
|
||||||
|
|
||||||
#: src/getargs.c:200
|
|
||||||
msgid ""
|
|
||||||
"If a long option shows an argument as mandatory, then it is mandatory\n"
|
|
||||||
"for the equivalent short option also. Similarly for optional arguments.\n"
|
|
||||||
msgstr ""
|
|
||||||
"Wanneer een lange optie een argument als verplicht aanduidt, dan is dat\n"
|
|
||||||
"argument eveneens verplicht bij de overeenkomstige korte optie. Voor\n"
|
|
||||||
"optionele argumenten geldt dezelfde regel.\n"
|
|
||||||
|
|
||||||
# Misschien beter 'een POSIX-compatibele yacc'?
|
|
||||||
#: src/getargs.c:206
|
|
||||||
msgid ""
|
|
||||||
"Operation modes:\n"
|
|
||||||
" -h, --help display this help and exit\n"
|
|
||||||
" -V, --version output version information and exit\n"
|
|
||||||
" -y, --yacc emulate POSIX yacc\n"
|
|
||||||
msgstr ""
|
|
||||||
"Werkwijzes:\n"
|
|
||||||
" -h, --help toon deze hulptekst en beëindig het programma\n"
|
|
||||||
" -V, --version toon versie-informatie en beëindig het programma\n"
|
|
||||||
" -y, --yacc emuleer POSIX yacc\n"
|
|
||||||
|
|
||||||
# Correcte vervoeging van 'voorvoegen'?
|
|
||||||
# Betere vertaling voor 'directives'?
|
|
||||||
#: src/getargs.c:213
|
|
||||||
msgid ""
|
|
||||||
"Parser:\n"
|
|
||||||
" -S, --skeleton=FILE specify the skeleton to use\n"
|
|
||||||
" -t, --debug instrument the parser for debugging\n"
|
|
||||||
" --locations enable locations computation\n"
|
|
||||||
" -p, --name-prefix=PREFIX prepend PREFIX to the external symbols\n"
|
|
||||||
" -l, --no-lines don't generate `#line' directives\n"
|
|
||||||
" -n, --no-parser generate the tables only\n"
|
|
||||||
" -k, --token-table include a table of token names\n"
|
|
||||||
msgstr ""
|
|
||||||
"Parser:\n"
|
|
||||||
" -S, --skeleton=BESTAND geef het te gebruiken skeletbestand op\n"
|
|
||||||
" -t, --debug maak de parser geschikt voor debugging\n"
|
|
||||||
" --locations enable locations computation\n"
|
|
||||||
" -p, --name-prefix=PREFIX geef een PREFIX op voor de externe symbolen\n"
|
|
||||||
" -l, --no-lines genereer geen `#line' directieven\n"
|
|
||||||
" -n, --no-parser genereer alleen de tabellen\n"
|
|
||||||
" -k, --token-table genereer ook een tabel van tokennamen\n"
|
|
||||||
|
|
||||||
#: src/getargs.c:225
|
|
||||||
msgid ""
|
|
||||||
"Output:\n"
|
|
||||||
" -d, --defines also produce a header file\n"
|
|
||||||
" -r, --report=THINGS also produce details on the automaton\n"
|
|
||||||
" -v, --verbose same as `--report=state'\n"
|
|
||||||
" -b, --file-prefix=PREFIX specify a PREFIX for output files\n"
|
|
||||||
" -o, --output=FILE leave output to FILE\n"
|
|
||||||
" -g, --graph also produce a VCG description of the "
|
|
||||||
"automaton\n"
|
|
||||||
msgstr ""
|
|
||||||
"Uitvoer:\n"
|
|
||||||
" -d, --defines genereer ook een header-bestand\n"
|
|
||||||
" -r, --report=DINGEN genereer ook details over de automaat\n"
|
|
||||||
" -v, --verbose hetzelfde als `--report=state'\n"
|
|
||||||
" -b, --file-prefix=PREFIX geef een PREFIX op voor de uitvoerbestanden\n"
|
|
||||||
" -o, --output=BESTAND schrijf uitvoer naar BESTAND\n"
|
|
||||||
" -g, --graph genereer ook een VCG beschrijving van de "
|
|
||||||
"automaat\n"
|
|
||||||
|
|
||||||
# Verschillende dingen die beter zouden moeten kunnen - zeker de 'itemset' tekst
|
|
||||||
#: src/getargs.c:236
|
|
||||||
msgid ""
|
|
||||||
"THINGS is a list of comma separated words that can include:\n"
|
|
||||||
" `state' describe the states\n"
|
|
||||||
" `itemset' complete the core item sets with their closure\n"
|
|
||||||
" `lookahead' explicitly associate lookaheads to items\n"
|
|
||||||
" `solved' describe shift/reduce conflicts solving\n"
|
|
||||||
" `all' include all the above information\n"
|
|
||||||
" `none' disable the report\n"
|
|
||||||
msgstr ""
|
|
||||||
"DINGEN is een door komma's gescheiden lijst van woorden; geldige woorden "
|
|
||||||
"zijn:\n"
|
|
||||||
" `state' beschijft de staten van de automaat\n"
|
|
||||||
" `itemset' vervolledig de verzamelingen van core items met hun "
|
|
||||||
"closures\n"
|
|
||||||
" `lookahead' verbind lookaheads expliciet met items\n"
|
|
||||||
" `solved' beschijft het oplossen van shift/reductie conflicten\n"
|
|
||||||
" `all' bevat al de bovenstaande keuzes\n"
|
|
||||||
" `none' schakel de rapportering uit\n"
|
|
||||||
|
|
||||||
#: src/getargs.c:247
|
|
||||||
msgid "Report bugs to <bug-bison@gnu.org>.\n"
|
|
||||||
msgstr ""
|
|
||||||
"Meld bugs aan <bug-bison@gnu.org>.\n"
|
|
||||||
"Meld fouten in de vertaling aan <vertaling@nl.linux.org>.\n"
|
|
||||||
|
|
||||||
#: src/getargs.c:264
|
|
||||||
#, c-format
|
|
||||||
msgid "bison (GNU Bison) %s"
|
|
||||||
msgstr "bison (GNU Bison) %s"
|
|
||||||
|
|
||||||
#: src/getargs.c:266
|
|
||||||
msgid "Written by Robert Corbett and Richard Stallman.\n"
|
|
||||||
msgstr "Geschreven door Robert Corbett en Richard Stallman.\n"
|
|
||||||
|
|
||||||
#: src/getargs.c:270
|
|
||||||
#, c-format
|
|
||||||
msgid "Copyright (C) %d Free Software Foundation, Inc.\n"
|
|
||||||
msgstr "Copyright (C) %d Free Software Foundation, Inc.\n"
|
|
||||||
|
|
||||||
#: src/getargs.c:272
|
|
||||||
msgid ""
|
|
||||||
"This is free software; see the source for copying conditions. There is NO\n"
|
|
||||||
"warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n"
|
|
||||||
msgstr ""
|
|
||||||
"Dit is vrije software; zie de broncode voor kopieercondities. Er is GEEN\n"
|
|
||||||
"garantie; zelfs niet voor VERKOOPBAARHEID of GESCHIKTHEID VOOR EEN BEPAALD\n"
|
|
||||||
"DOEL.\n"
|
|
||||||
|
|
||||||
#: src/getargs.c:438
|
|
||||||
#, c-format
|
|
||||||
msgid "missing operand after `%s'"
|
|
||||||
msgstr "operand ontbreekt na `%s'"
|
|
||||||
|
|
||||||
#: src/getargs.c:440
|
|
||||||
#, c-format
|
|
||||||
msgid "extra operand `%s'"
|
|
||||||
msgstr "overtollige operand `%s'"
|
|
||||||
|
|
||||||
#: src/gram.c:139
|
|
||||||
msgid "empty"
|
|
||||||
msgstr "leeg"
|
|
||||||
|
|
||||||
#: src/gram.c:233
|
|
||||||
msgid "Grammar"
|
|
||||||
msgstr "Grammatica"
|
|
||||||
|
|
||||||
#: src/gram.c:321 src/reduce.c:394
|
|
||||||
msgid "warning"
|
|
||||||
msgstr "let op"
|
|
||||||
|
|
||||||
#: src/main.c:124
|
|
||||||
msgid "rule never reduced because of conflicts"
|
|
||||||
msgstr "regel wordt nooit gereduceerd omwille van conflicten"
|
|
||||||
|
|
||||||
#: src/parse-gram.y:353
|
|
||||||
msgid "POSIX forbids declarations in the grammar"
|
|
||||||
msgstr "POSIX verbiedt declaraties binnen de grammatica"
|
|
||||||
|
|
||||||
#: src/parse-gram.y:476
|
|
||||||
msgid "missing identifier in parameter declaration"
|
|
||||||
msgstr "naam ontbreekt in parameterdeclaratie"
|
|
||||||
|
|
||||||
#: src/print.c:49
|
|
||||||
#, c-format
|
|
||||||
msgid " type %d is %s\n"
|
|
||||||
msgstr " type %d is %s\n"
|
|
||||||
|
|
||||||
#: src/print.c:165
|
|
||||||
#, c-format
|
|
||||||
msgid "shift, and go to state %d\n"
|
|
||||||
msgstr "shift, en ga naar staat %d\n"
|
|
||||||
|
|
||||||
#: src/print.c:167
|
|
||||||
#, c-format
|
|
||||||
msgid "go to state %d\n"
|
|
||||||
msgstr "ga naar staat %d\n"
|
|
||||||
|
|
||||||
#: src/print.c:204
|
|
||||||
msgid "error (nonassociative)\n"
|
|
||||||
msgstr "fout (niet associatief)\n"
|
|
||||||
|
|
||||||
#: src/print.c:292
|
|
||||||
#, c-format
|
|
||||||
msgid "reduce using rule %d (%s)"
|
|
||||||
msgstr "reduceren via regel %d (%s)"
|
|
||||||
|
|
||||||
#: src/print.c:294
|
|
||||||
msgid "accept"
|
|
||||||
msgstr "accepteer"
|
|
||||||
|
|
||||||
#: src/print.c:325 src/print.c:391
|
|
||||||
msgid "$default"
|
|
||||||
msgstr "$standaard"
|
|
||||||
|
|
||||||
#: src/print.c:420
|
|
||||||
#, c-format
|
|
||||||
msgid "state %d"
|
|
||||||
msgstr "staat %d"
|
|
||||||
|
|
||||||
#: src/print.c:456
|
|
||||||
msgid "Terminals, with rules where they appear"
|
|
||||||
msgstr "Eindsymbolen, met de regels waarin ze voorkomen"
|
|
||||||
|
|
||||||
# Betere vertaling voor non-terminals? 'tussensymbolen'?
|
|
||||||
#: src/print.c:483
|
|
||||||
msgid "Nonterminals, with rules where they appear"
|
|
||||||
msgstr "Niet-eindsymbolen, met de regels waarin ze voorkomen"
|
|
||||||
|
|
||||||
#: src/print.c:512
|
|
||||||
msgid " on left:"
|
|
||||||
msgstr " links:"
|
|
||||||
|
|
||||||
#: src/print.c:527
|
|
||||||
msgid " on right:"
|
|
||||||
msgstr " rechts:"
|
|
||||||
|
|
||||||
#: src/print.c:555
|
|
||||||
msgid "Rules never reduced"
|
|
||||||
msgstr "Regels die nooit gereduceerd worden"
|
|
||||||
|
|
||||||
#: src/reader.c:53
|
|
||||||
#, c-format
|
|
||||||
msgid "multiple %s declarations"
|
|
||||||
msgstr "meerdere %s declaraties"
|
|
||||||
|
|
||||||
#: src/reader.c:115
|
|
||||||
#, c-format
|
|
||||||
msgid "result type clash on merge function %s: <%s> != <%s>"
|
|
||||||
msgstr "botsing tussen resultaattypes bij merge-functie %s: «%s» != «%s»"
|
|
||||||
|
|
||||||
#: src/reader.c:213
|
|
||||||
#, c-format
|
|
||||||
msgid "rule given for %s, which is a token"
|
|
||||||
msgstr "regel opgegeven voor token (%s)"
|
|
||||||
|
|
||||||
#: src/reader.c:242
|
|
||||||
#, c-format
|
|
||||||
msgid "type clash on default action: <%s> != <%s>"
|
|
||||||
msgstr "type-conflict bij standaardaktie: «%s» != «%s»"
|
|
||||||
|
|
||||||
#: src/reader.c:248
|
|
||||||
msgid "empty rule for typed nonterminal, and no action"
|
|
||||||
msgstr "lege regel voor niet-eindsymbool met type, en geen actie"
|
|
||||||
|
|
||||||
#: src/reader.c:318 src/reader.c:332 src/reader.c:345
|
|
||||||
#, c-format
|
|
||||||
msgid "only one %s allowed per rule"
|
|
||||||
msgstr "slechts één %s toegestaan per regel"
|
|
||||||
|
|
||||||
#: src/reader.c:328 src/reader.c:343
|
|
||||||
#, c-format
|
|
||||||
msgid "%s affects only GLR parsers"
|
|
||||||
msgstr "%s is enkel van toepassing op GLR parsers"
|
|
||||||
|
|
||||||
#: src/reader.c:330
|
|
||||||
#, c-format
|
|
||||||
msgid "%s must be followed by positive number"
|
|
||||||
msgstr "%s moet gevolgd worden door een positief getal"
|
|
||||||
|
|
||||||
#: src/reader.c:487
|
|
||||||
msgid "no rules in the input grammar"
|
|
||||||
msgstr "invoergrammatica bevat geen regels"
|
|
||||||
|
|
||||||
#: src/reduce.c:242
|
|
||||||
msgid "useless rule"
|
|
||||||
msgstr "nutteloze regel"
|
|
||||||
|
|
||||||
#: src/reduce.c:303
|
|
||||||
#, c-format
|
|
||||||
msgid "useless nonterminal: %s"
|
|
||||||
msgstr "nutteloos niet-eindsymbool: %s"
|
|
||||||
|
|
||||||
#: src/reduce.c:351
|
|
||||||
msgid "Useless nonterminals"
|
|
||||||
msgstr "Nutteloze niet-eindsymbolen"
|
|
||||||
|
|
||||||
#: src/reduce.c:364
|
|
||||||
msgid "Terminals which are not used"
|
|
||||||
msgstr "Eindsymbolen die niet gebruikt worden"
|
|
||||||
|
|
||||||
#: src/reduce.c:373
|
|
||||||
msgid "Useless rules"
|
|
||||||
msgstr "Nutteloze regels"
|
|
||||||
|
|
||||||
#: src/reduce.c:389
|
|
||||||
#, c-format
|
|
||||||
msgid "%d rule never reduced\n"
|
|
||||||
msgid_plural "%d rules never reduced\n"
|
|
||||||
msgstr[0] "%d regel wordt nooit gereduceerd\n"
|
|
||||||
msgstr[1] "%d regels worden nooit gereduceerd\n"
|
|
||||||
|
|
||||||
#: src/reduce.c:397
|
|
||||||
#, c-format
|
|
||||||
msgid "%d useless nonterminal"
|
|
||||||
msgid_plural "%d useless nonterminals"
|
|
||||||
msgstr[0] "%d nutteloos niet-eindsymbool"
|
|
||||||
msgstr[1] "%d nutteloze niet-eindsymbolen"
|
|
||||||
|
|
||||||
#: src/reduce.c:403
|
|
||||||
msgid " and "
|
|
||||||
msgstr " en "
|
|
||||||
|
|
||||||
#: src/reduce.c:406
|
|
||||||
#, c-format
|
|
||||||
msgid "%d useless rule"
|
|
||||||
msgid_plural "%d useless rules"
|
|
||||||
msgstr[0] "%d nutteloze regel"
|
|
||||||
msgstr[1] "%d nutteloze regels"
|
|
||||||
|
|
||||||
# Ik _denk_ dat dit correct weergeeft wat er bedoeld wordt (m.a.w. er is geen regel voor het startsymbool)
|
|
||||||
#: src/reduce.c:436
|
|
||||||
#, c-format
|
|
||||||
msgid "start symbol %s does not derive any sentence"
|
|
||||||
msgstr "uit startsymbool %s kan geen enkele zin afgeleid worden"
|
|
||||||
|
|
||||||
#: src/scan-gram.l:160
|
|
||||||
msgid "stray `,' treated as white space"
|
|
||||||
msgstr "losse `,' behandeld als witruimte"
|
|
||||||
|
|
||||||
#: src/scan-gram.l:221
|
|
||||||
#, c-format
|
|
||||||
msgid "invalid directive: %s"
|
|
||||||
msgstr "ongeldig commando: %s"
|
|
||||||
|
|
||||||
# Hier zou wel het bereik bij vermeld mogen worden...
|
|
||||||
#: src/scan-gram.l:241 src/scan-gram.l:804 src/scan-gram.l:873
|
|
||||||
#, c-format
|
|
||||||
msgid "integer out of range: %s"
|
|
||||||
msgstr "integer buiten bereik: %s"
|
|
||||||
|
|
||||||
#: src/scan-gram.l:283
|
|
||||||
#, c-format
|
|
||||||
msgid "invalid character: %s"
|
|
||||||
msgstr "ongeldig teken: %s"
|
|
||||||
|
|
||||||
#: src/scan-gram.l:412 src/scan-gram.l:422 src/scan-gram.l:441
|
|
||||||
#, c-format
|
|
||||||
msgid "invalid escape sequence: %s"
|
|
||||||
msgstr "ongeldige escape: %s"
|
|
||||||
|
|
||||||
#: src/scan-gram.l:446
|
|
||||||
#, c-format
|
|
||||||
msgid "unrecognized escape sequence: %s"
|
|
||||||
msgstr "onbekende escape: %s"
|
|
||||||
|
|
||||||
#: src/scan-gram.l:534
|
|
||||||
#, c-format
|
|
||||||
msgid "missing `{' in `%s'"
|
|
||||||
msgstr "`{' ontbreekt in `%s'"
|
|
||||||
|
|
||||||
#: src/scan-gram.l:774
|
|
||||||
#, c-format
|
|
||||||
msgid "$$ of `%s' has no declared type"
|
|
||||||
msgstr "$$ van `%s' heeft geen gedeclareerd type"
|
|
||||||
|
|
||||||
#: src/scan-gram.l:795
|
|
||||||
#, c-format
|
|
||||||
msgid "$%d of `%s' has no declared type"
|
|
||||||
msgstr "$%d van `%s' heeft geen gedeclareerd type"
|
|
||||||
|
|
||||||
#: src/scan-gram.l:840 src/scan-gram.l:908
|
|
||||||
#, c-format
|
|
||||||
msgid "invalid value: %s"
|
|
||||||
msgstr "ongeldige waarde: %s"
|
|
||||||
|
|
||||||
#: src/scan-gram.l:996
|
|
||||||
#, c-format
|
|
||||||
msgid "missing `%s' at end of file"
|
|
||||||
msgstr "`%s' ontbreekt aan einde van bestand"
|
|
||||||
|
|
||||||
#: src/symlist.c:97 src/symlist.c:108
|
|
||||||
msgid "invalid $ value"
|
|
||||||
msgstr "ongeldige $-waarde"
|
|
||||||
|
|
||||||
#: src/symtab.c:84
|
|
||||||
#, c-format
|
|
||||||
msgid "type redeclaration for %s"
|
|
||||||
msgstr "type herdeclaratie voor %s"
|
|
||||||
|
|
||||||
# Dit ziet er een potentieel slechte originele string uit - wat kan er in die eerste '%s' staan?
|
|
||||||
#: src/symtab.c:101 src/symtab.c:119
|
|
||||||
#, c-format
|
|
||||||
msgid "%s redeclaration for %s"
|
|
||||||
msgstr "%s herdeclaratie voor %s"
|
|
||||||
|
|
||||||
#: src/symtab.c:138
|
|
||||||
#, c-format
|
|
||||||
msgid "redefining precedence of %s"
|
|
||||||
msgstr "herdefinitie van de voorrang van %s"
|
|
||||||
|
|
||||||
#: src/symtab.c:156
|
|
||||||
#, c-format
|
|
||||||
msgid "symbol %s redefined"
|
|
||||||
msgstr "symbool %s opnieuw gedefinieerd"
|
|
||||||
|
|
||||||
#: src/symtab.c:179
|
|
||||||
#, c-format
|
|
||||||
msgid "redefining user token number of %s"
|
|
||||||
msgstr "herdefinitie van het door de gebruiker gekozen tokennummer van %s"
|
|
||||||
|
|
||||||
#: src/symtab.c:206
|
|
||||||
#, c-format
|
|
||||||
msgid "symbol %s is used, but is not defined as a token and has no rules"
|
|
||||||
msgstr ""
|
|
||||||
"symbool %s wordt gebruikt, maar is niet gedefinieerd als een teken en heeft "
|
|
||||||
"geen regels"
|
|
||||||
|
|
||||||
#: src/symtab.c:231
|
|
||||||
#, c-format
|
|
||||||
msgid "symbol `%s' used more than once as a literal string"
|
|
||||||
msgstr "symbool `%s' meer dan eens gebruikt als een letterlijke string"
|
|
||||||
|
|
||||||
#: src/symtab.c:234
|
|
||||||
#, c-format
|
|
||||||
msgid "symbol `%s' given more than one literal string"
|
|
||||||
msgstr "symbool `%s' krijgt meer dan één letterlijke string toegewezen"
|
|
||||||
|
|
||||||
#: src/symtab.c:270
|
|
||||||
#, c-format
|
|
||||||
msgid "conflicting precedences for %s and %s"
|
|
||||||
msgstr "voorrangen voor %s en %s geven conflicten"
|
|
||||||
|
|
||||||
#: src/symtab.c:282
|
|
||||||
#, c-format
|
|
||||||
msgid "conflicting associativities for %s (%s) and %s (%s)"
|
|
||||||
msgstr "associativiteitswaarden voor %s (%s) en %s (%s) geven conflicten"
|
|
||||||
|
|
||||||
#: src/symtab.c:367
|
|
||||||
#, c-format
|
|
||||||
msgid "tokens %s and %s both assigned number %d"
|
|
||||||
msgstr "tokens %s en %s hebben beide nummer %d toegewezen gekregen"
|
|
||||||
|
|
||||||
#: src/symtab.c:590
|
|
||||||
#, c-format
|
|
||||||
msgid "the start symbol %s is undefined"
|
|
||||||
msgstr "het startsymbool %s is niet gedefinieerd"
|
|
||||||
|
|
||||||
#: src/symtab.c:594
|
|
||||||
#, c-format
|
|
||||||
msgid "the start symbol %s is a token"
|
|
||||||
msgstr "het startsymbool %s is een token"
|
|
||||||
|
|
||||||
#: lib/argmatch.c:135
|
|
||||||
#, c-format
|
|
||||||
msgid "invalid argument %s for %s"
|
|
||||||
msgstr "ongeldige argument %s voor %s"
|
|
||||||
|
|
||||||
#: lib/argmatch.c:136
|
|
||||||
#, c-format
|
|
||||||
msgid "ambiguous argument %s for %s"
|
|
||||||
msgstr "argument %s voor %s is niet eenduidig"
|
|
||||||
|
|
||||||
#: lib/argmatch.c:155
|
|
||||||
msgid "Valid arguments are:"
|
|
||||||
msgstr "Geldige argumenten zijn:"
|
|
||||||
|
|
||||||
#: lib/bitset_stats.c:179
|
|
||||||
#, c-format
|
|
||||||
msgid "%u bitset_allocs, %u freed (%.2f%%).\n"
|
|
||||||
msgstr "%u bitset_allocs, %u vrijgegeven (%.2f%%).\n"
|
|
||||||
|
|
||||||
#: lib/bitset_stats.c:182
|
|
||||||
#, c-format
|
|
||||||
msgid "%u bitset_sets, %u cached (%.2f%%)\n"
|
|
||||||
msgstr "%u bitset_sets, %u gecached (%.2f%%)\n"
|
|
||||||
|
|
||||||
#: lib/bitset_stats.c:185
|
|
||||||
#, c-format
|
|
||||||
msgid "%u bitset_resets, %u cached (%.2f%%)\n"
|
|
||||||
msgstr "%u bitset_resets, %u gecached (%.2f%%)\n"
|
|
||||||
|
|
||||||
#: lib/bitset_stats.c:188
|
|
||||||
#, c-format
|
|
||||||
msgid "%u bitset_tests, %u cached (%.2f%%)\n"
|
|
||||||
msgstr "%u bitset_tests, %u gecached (%.2f%%)\n"
|
|
||||||
|
|
||||||
#: lib/bitset_stats.c:192
|
|
||||||
#, c-format
|
|
||||||
msgid "%u bitset_lists\n"
|
|
||||||
msgstr "%u bitset_lists\n"
|
|
||||||
|
|
||||||
#: lib/bitset_stats.c:194
|
|
||||||
msgid "count log histogram\n"
|
|
||||||
msgstr "count log histogram\n"
|
|
||||||
|
|
||||||
#: lib/bitset_stats.c:197
|
|
||||||
msgid "size log histogram\n"
|
|
||||||
msgstr "size log histogram\n"
|
|
||||||
|
|
||||||
#: lib/bitset_stats.c:200
|
|
||||||
msgid "density histogram\n"
|
|
||||||
msgstr "density histogram\n"
|
|
||||||
|
|
||||||
#: lib/bitset_stats.c:214
|
|
||||||
msgid ""
|
|
||||||
"Bitset statistics:\n"
|
|
||||||
"\n"
|
|
||||||
msgstr ""
|
|
||||||
"Bitset statistieken:\n"
|
|
||||||
"\n"
|
|
||||||
|
|
||||||
#: lib/bitset_stats.c:217
|
|
||||||
#, c-format
|
|
||||||
msgid "Accumulated runs = %u\n"
|
|
||||||
msgstr "Accumulated runs = %u\n"
|
|
||||||
|
|
||||||
#: lib/bitset_stats.c:261 lib/bitset_stats.c:266
|
|
||||||
msgid "Could not read stats file."
|
|
||||||
msgstr "Kon het statistiekenbestand niet lezen."
|
|
||||||
|
|
||||||
#: lib/bitset_stats.c:263
|
|
||||||
msgid "Bad stats file size.\n"
|
|
||||||
msgstr "Het statistiekenbestand heeft een verkeerde grootte.\n"
|
|
||||||
|
|
||||||
#: lib/bitset_stats.c:289 lib/bitset_stats.c:291
|
|
||||||
msgid "Could not write stats file."
|
|
||||||
msgstr "Kon niet schrijven naar het statistiekenbestand."
|
|
||||||
|
|
||||||
#: lib/bitset_stats.c:294
|
|
||||||
msgid "Could not open stats file for writing."
|
|
||||||
msgstr "Kon het statistiekenbestand niet openen voor schrijven."
|
|
||||||
|
|
||||||
#: lib/getopt.c:688 lib/getopt.c:700
|
|
||||||
#, c-format
|
|
||||||
msgid "%s: option `%s' is ambiguous\n"
|
|
||||||
msgstr "%s: optie `%s' is niet eenduidig\n"
|
|
||||||
|
|
||||||
#: lib/getopt.c:733 lib/getopt.c:737
|
|
||||||
#, c-format
|
|
||||||
msgid "%s: option `--%s' doesn't allow an argument\n"
|
|
||||||
msgstr "%s: optie `--%s' staat geen argument toe\n"
|
|
||||||
|
|
||||||
#: lib/getopt.c:746 lib/getopt.c:751
|
|
||||||
#, c-format
|
|
||||||
msgid "%s: option `%c%s' doesn't allow an argument\n"
|
|
||||||
msgstr "%s: optie `%c%s' staat geen argument toe\n"
|
|
||||||
|
|
||||||
#: lib/getopt.c:787 lib/getopt.c:800 lib/getopt.c:1089 lib/getopt.c:1102
|
|
||||||
#, c-format
|
|
||||||
msgid "%s: option `%s' requires an argument\n"
|
|
||||||
msgstr "%s: optie `%s' vereist een argument\n"
|
|
||||||
|
|
||||||
#: lib/getopt.c:838 lib/getopt.c:841
|
|
||||||
#, c-format
|
|
||||||
msgid "%s: unrecognized option `--%s'\n"
|
|
||||||
msgstr "%s: onbekende optie `--%s'\n"
|
|
||||||
|
|
||||||
#: lib/getopt.c:849 lib/getopt.c:852
|
|
||||||
#, c-format
|
|
||||||
msgid "%s: unrecognized option `%c%s'\n"
|
|
||||||
msgstr "%s: onbekende optie `%c%s'\n"
|
|
||||||
|
|
||||||
#: lib/getopt.c:899 lib/getopt.c:902
|
|
||||||
#, c-format
|
|
||||||
msgid "%s: illegal option -- %c\n"
|
|
||||||
msgstr "%s: ongeldige optie -- %c\n"
|
|
||||||
|
|
||||||
#: lib/getopt.c:908 lib/getopt.c:911
|
|
||||||
#, c-format
|
|
||||||
msgid "%s: invalid option -- %c\n"
|
|
||||||
msgstr "%s: ongeldige optie -- %c\n"
|
|
||||||
|
|
||||||
#: lib/getopt.c:958 lib/getopt.c:969 lib/getopt.c:1155 lib/getopt.c:1168
|
|
||||||
#, c-format
|
|
||||||
msgid "%s: option requires an argument -- %c\n"
|
|
||||||
msgstr "%s: optie vereist een argument -- %c\n"
|
|
||||||
|
|
||||||
#: lib/getopt.c:1021 lib/getopt.c:1032
|
|
||||||
#, c-format
|
|
||||||
msgid "%s: option `-W %s' is ambiguous\n"
|
|
||||||
msgstr "%s: optie `-W %s' is niet eenduidig\n"
|
|
||||||
|
|
||||||
#: lib/getopt.c:1056 lib/getopt.c:1068
|
|
||||||
#, c-format
|
|
||||||
msgid "%s: option `-W %s' doesn't allow an argument\n"
|
|
||||||
msgstr "%s: optie `--%s' staat geen argument toe\n"
|
|
||||||
|
|
||||||
#: lib/obstack.c:487 lib/obstack.c:490 lib/xmalloc.c:63
|
|
||||||
msgid "memory exhausted"
|
|
||||||
msgstr "geen geheugen meer beschikbaar"
|
|
||||||
|
|
||||||
#: lib/quotearg.c:236
|
|
||||||
msgid "`"
|
|
||||||
msgstr "`"
|
|
||||||
|
|
||||||
#: lib/quotearg.c:237
|
|
||||||
msgid "'"
|
|
||||||
msgstr "'"
|
|
||||||
|
|
||||||
#: lib/subpipe.c:187
|
|
||||||
#, c-format
|
|
||||||
msgid "subsidiary program `%s' could not be invoked"
|
|
||||||
msgstr "hulpprogramma `%s' kon niet opgeroepen worden"
|
|
||||||
|
|
||||||
#: lib/subpipe.c:189
|
|
||||||
#, c-format
|
|
||||||
msgid "subsidiary program `%s' not found"
|
|
||||||
msgstr "hulpprogramma `%s' niet gevonden"
|
|
||||||
|
|
||||||
#: lib/subpipe.c:191
|
|
||||||
#, c-format
|
|
||||||
msgid "subsidiary program `%s' failed"
|
|
||||||
msgstr "hulpprogramma `%s' mislukt"
|
|
||||||
|
|
||||||
#: lib/subpipe.c:192
|
|
||||||
#, c-format
|
|
||||||
msgid "subsidiary program `%s' failed (exit status %d)"
|
|
||||||
msgstr "hulpprogramma `%s' mislukt (eindstatus %d)"
|
|
||||||
|
|
||||||
#: lib/timevar.c:476
|
|
||||||
msgid ""
|
|
||||||
"\n"
|
|
||||||
"Execution times (seconds)\n"
|
|
||||||
msgstr ""
|
|
||||||
"\n"
|
|
||||||
"Uitvoeringstijden (in seconden)\n"
|
|
||||||
|
|
||||||
#: lib/timevar.c:526
|
|
||||||
msgid " TOTAL :"
|
|
||||||
msgstr " TOTAAL :"
|
|
||||||
|
|
||||||
#: lib/timevar.c:562
|
|
||||||
#, c-format
|
|
||||||
msgid "time in %s: %ld.%06ld (%ld%%)\n"
|
|
||||||
msgstr "tijd in %s: %ld.%06ld (%ld%%)\n"
|
|
||||||
706
po/pt_BR.po
706
po/pt_BR.po
@@ -1,706 +0,0 @@
|
|||||||
# bison: translation to Brazilian Portuguese (pt_BR)
|
|
||||||
# Copyright (C) 2002 Free Software Foundation, Inc.
|
|
||||||
# Alexandre Folle de Menezes <afmenez@terra.com.br>, 2002, 2003.
|
|
||||||
#
|
|
||||||
msgid ""
|
|
||||||
msgstr ""
|
|
||||||
"Project-Id-Version: bison 1.875\n"
|
|
||||||
"Report-Msgid-Bugs-To: bug-bison@gnu.org\n"
|
|
||||||
"POT-Creation-Date: 2003-08-25 17:14+0200\n"
|
|
||||||
"PO-Revision-Date: 2003-01-06 02:30-0300\n"
|
|
||||||
"Last-Translator: Alexandre Folle de Menezes <afmenez@terra.com.br>\n"
|
|
||||||
"Language-Team: Brazilian Portuguese <ldp-br@bazar.conectiva.com.br>\n"
|
|
||||||
"MIME-Version: 1.0\n"
|
|
||||||
"Content-Type: text/plain; charset=ISO-8859-1\n"
|
|
||||||
"Content-Transfer-Encoding: 8-bit\n"
|
|
||||||
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
|
|
||||||
|
|
||||||
#: src/complain.c:56 lib/error.c:135 lib/error.c:163
|
|
||||||
msgid "Unknown system error"
|
|
||||||
msgstr "Erro de sistema desconhecido"
|
|
||||||
|
|
||||||
#: src/complain.c:79 src/complain.c:94
|
|
||||||
msgid "warning: "
|
|
||||||
msgstr "aviso: "
|
|
||||||
|
|
||||||
#: src/complain.c:150 src/complain.c:166
|
|
||||||
msgid "fatal error: "
|
|
||||||
msgstr "erro fatal: "
|
|
||||||
|
|
||||||
#: src/conflicts.c:75
|
|
||||||
#, c-format
|
|
||||||
msgid " Conflict between rule %d and token %s resolved as shift"
|
|
||||||
msgstr " Conflito entre a regra %d e a token %s resolvido como `shift`."
|
|
||||||
|
|
||||||
#: src/conflicts.c:83
|
|
||||||
#, c-format
|
|
||||||
msgid " Conflict between rule %d and token %s resolved as reduce"
|
|
||||||
msgstr " Conflito entre a regra %d e a token %s resolvido como `reduce`."
|
|
||||||
|
|
||||||
#: src/conflicts.c:90
|
|
||||||
#, c-format
|
|
||||||
msgid " Conflict between rule %d and token %s resolved as an error"
|
|
||||||
msgstr " Conflito entre a regra %d e a token %s resolvido como um erro."
|
|
||||||
|
|
||||||
#: src/conflicts.c:398
|
|
||||||
#, c-format
|
|
||||||
msgid "conflicts: %d shift/reduce, %d reduce/reduce\n"
|
|
||||||
msgstr "conflitos: %d de deslocamento/redução, %d de redução/redução\n"
|
|
||||||
|
|
||||||
#: src/conflicts.c:401
|
|
||||||
#, c-format
|
|
||||||
msgid "conflicts: %d shift/reduce\n"
|
|
||||||
msgstr "conflitos: %d de deslocamento/redução\n"
|
|
||||||
|
|
||||||
#: src/conflicts.c:403
|
|
||||||
#, c-format
|
|
||||||
msgid "conflicts: %d reduce/reduce\n"
|
|
||||||
msgstr "conflitos: %d de redução/redução\n"
|
|
||||||
|
|
||||||
#: src/conflicts.c:421
|
|
||||||
#, c-format
|
|
||||||
msgid "State %d "
|
|
||||||
msgstr "Estado %d"
|
|
||||||
|
|
||||||
#: src/conflicts.c:498
|
|
||||||
#, c-format
|
|
||||||
msgid "expected %d shift/reduce conflict"
|
|
||||||
msgid_plural "expected %d shift/reduce conflicts"
|
|
||||||
msgstr[0] "esperado: %d conflito de deslocamento/redução"
|
|
||||||
msgstr[1] "esperados: %d conflitos de deslocamento/redução"
|
|
||||||
|
|
||||||
#: src/conflicts.c:503
|
|
||||||
msgid "expected 0 reduce/reduce conflicts"
|
|
||||||
msgstr "esperados 0 conflitos de redução/redução"
|
|
||||||
|
|
||||||
#: src/files.c:99
|
|
||||||
#, c-format
|
|
||||||
msgid "cannot open file `%s'"
|
|
||||||
msgstr "impossível abrir o arquivo `%s'"
|
|
||||||
|
|
||||||
#: src/files.c:115
|
|
||||||
msgid "I/O error"
|
|
||||||
msgstr "Erro de E/S"
|
|
||||||
|
|
||||||
#: src/files.c:118
|
|
||||||
msgid "cannot close file"
|
|
||||||
msgstr "impossível fechar o arquivo"
|
|
||||||
|
|
||||||
#: src/files.c:336
|
|
||||||
#, c-format
|
|
||||||
msgid "conflicting outputs to file %s"
|
|
||||||
msgstr "saídas conflitantes para o arquivo %s"
|
|
||||||
|
|
||||||
#: src/getargs.c:186
|
|
||||||
#, c-format
|
|
||||||
msgid "Try `%s --help' for more information.\n"
|
|
||||||
msgstr "tente `%s --help' para mais informações.\n"
|
|
||||||
|
|
||||||
#: src/getargs.c:192
|
|
||||||
msgid "GNU bison generates parsers for LALR(1) grammars.\n"
|
|
||||||
msgstr "GNU bison gera analisadores para gramáticas LALR(1).\n"
|
|
||||||
|
|
||||||
#: src/getargs.c:196
|
|
||||||
#, c-format
|
|
||||||
msgid "Usage: %s [OPTION]... FILE\n"
|
|
||||||
msgstr "Uso: %s [OPCAO]... ARQUIVO\n"
|
|
||||||
|
|
||||||
#: src/getargs.c:200
|
|
||||||
msgid ""
|
|
||||||
"If a long option shows an argument as mandatory, then it is mandatory\n"
|
|
||||||
"for the equivalent short option also. Similarly for optional arguments.\n"
|
|
||||||
msgstr ""
|
|
||||||
"Se uma opção longa mostra um argumento como obrigatório, então ele é\n"
|
|
||||||
"obrigatório para a opção curta equivalente também. Igualmente para os\n"
|
|
||||||
"argumentos opcionais.\n"
|
|
||||||
|
|
||||||
#: src/getargs.c:206
|
|
||||||
msgid ""
|
|
||||||
"Operation modes:\n"
|
|
||||||
" -h, --help display this help and exit\n"
|
|
||||||
" -V, --version output version information and exit\n"
|
|
||||||
" -y, --yacc emulate POSIX yacc\n"
|
|
||||||
msgstr ""
|
|
||||||
"Modos de operação:\n"
|
|
||||||
" -h, --help exibe esta ajuda e sai\n"
|
|
||||||
" -V, --version mostra informações de versão e sai\n"
|
|
||||||
" -y, --yacc emula o yacc POSIX\n"
|
|
||||||
|
|
||||||
#: src/getargs.c:213
|
|
||||||
msgid ""
|
|
||||||
"Parser:\n"
|
|
||||||
" -S, --skeleton=FILE specify the skeleton to use\n"
|
|
||||||
" -t, --debug instrument the parser for debugging\n"
|
|
||||||
" --locations enable locations computation\n"
|
|
||||||
" -p, --name-prefix=PREFIX prepend PREFIX to the external symbols\n"
|
|
||||||
" -l, --no-lines don't generate `#line' directives\n"
|
|
||||||
" -n, --no-parser generate the tables only\n"
|
|
||||||
" -k, --token-table include a table of token names\n"
|
|
||||||
msgstr ""
|
|
||||||
"Analizador:\n"
|
|
||||||
" -S, --skeleton=arquivo especifica o skeleto a ser usado\n"
|
|
||||||
" -t, --debug instrumenta o analisador para depuração\n"
|
|
||||||
" --locations habilita a computação de localizações\n"
|
|
||||||
" -p, --name-prefix=PREFIXO adiciona PREFIXO aos símbolos externos\n"
|
|
||||||
" -l, --no-lines não gera diretivas `#line'\n"
|
|
||||||
" -n, --no-parser apenas gera as tabelas\n"
|
|
||||||
" --k, --token-table inclui uma tabela de nomes de tokens\n"
|
|
||||||
|
|
||||||
#: src/getargs.c:225
|
|
||||||
msgid ""
|
|
||||||
"Output:\n"
|
|
||||||
" -d, --defines also produce a header file\n"
|
|
||||||
" -r, --report=THINGS also produce details on the automaton\n"
|
|
||||||
" -v, --verbose same as `--report=state'\n"
|
|
||||||
" -b, --file-prefix=PREFIX specify a PREFIX for output files\n"
|
|
||||||
" -o, --output=FILE leave output to FILE\n"
|
|
||||||
" -g, --graph also produce a VCG description of the "
|
|
||||||
"automaton\n"
|
|
||||||
msgstr ""
|
|
||||||
"Saída:\n"
|
|
||||||
" -d, --defines também produz um arquivo de cabeçalho\n"
|
|
||||||
" -r, --report=ITENS também produz detalhes do autômato\n"
|
|
||||||
" -v, --verbose o mesmo que `--report=state'\n"
|
|
||||||
" -b, --file-prefix=PREFIXO especifica o PREFIXO para os arquivos de saída\n"
|
|
||||||
" -o, --output=ARQUIVO armazena a saída em ARQUIVO\n"
|
|
||||||
" -g, --graph também produz uma descrição em VCG do autômato\n"
|
|
||||||
|
|
||||||
#: src/getargs.c:236
|
|
||||||
msgid ""
|
|
||||||
"THINGS is a list of comma separated words that can include:\n"
|
|
||||||
" `state' describe the states\n"
|
|
||||||
" `itemset' complete the core item sets with their closure\n"
|
|
||||||
" `lookahead' explicitly associate lookaheads to items\n"
|
|
||||||
" `solved' describe shift/reduce conflicts solving\n"
|
|
||||||
" `all' include all the above information\n"
|
|
||||||
" `none' disable the report\n"
|
|
||||||
msgstr ""
|
|
||||||
"ITENS é uma lista separada por vírgulas, que pode incluir:\n"
|
|
||||||
" `state' descreve os estados\n"
|
|
||||||
" `itemset' completa os conjuntos de ítens básicos com seus "
|
|
||||||
"fechamentos\n"
|
|
||||||
" `lookahead' associa explicitamente as previsões com os ítens\n"
|
|
||||||
" `solved' descreve a solução de conflitos de deslocamento/redução\n"
|
|
||||||
" `all' inclui todas as informações acima\n"
|
|
||||||
" `none' desabilita o relatório\n"
|
|
||||||
|
|
||||||
#: src/getargs.c:247
|
|
||||||
msgid "Report bugs to <bug-bison@gnu.org>.\n"
|
|
||||||
msgstr "Informe os erros para <bug-bison@gnu.org>.\n"
|
|
||||||
|
|
||||||
#: src/getargs.c:264
|
|
||||||
#, c-format
|
|
||||||
msgid "bison (GNU Bison) %s"
|
|
||||||
msgstr "bison (GNU bison) %s"
|
|
||||||
|
|
||||||
#: src/getargs.c:266
|
|
||||||
msgid "Written by Robert Corbett and Richard Stallman.\n"
|
|
||||||
msgstr "Escrito por Robert Corbett e Richard Stallman.\n"
|
|
||||||
|
|
||||||
#: src/getargs.c:270
|
|
||||||
#, c-format
|
|
||||||
msgid "Copyright (C) %d Free Software Foundation, Inc.\n"
|
|
||||||
msgstr "Copyright © %d Free Software Foundation, Inc.\n"
|
|
||||||
|
|
||||||
#: src/getargs.c:272
|
|
||||||
msgid ""
|
|
||||||
"This is free software; see the source for copying conditions. There is NO\n"
|
|
||||||
"warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n"
|
|
||||||
msgstr ""
|
|
||||||
"Este é um software livre; veja o código fonte para condições de copyright. "
|
|
||||||
"Não\n"
|
|
||||||
"existe NENHUMA garantia; nem mesmo a garantia implícita de COMERCIABILIDADE "
|
|
||||||
"ou\n"
|
|
||||||
"ADEQUAÇÃO À QUALQUER FINALIDADE PARTICULAR.\n"
|
|
||||||
|
|
||||||
#: src/getargs.c:438
|
|
||||||
#, c-format
|
|
||||||
msgid "missing operand after `%s'"
|
|
||||||
msgstr "falta operando depois de `%s'"
|
|
||||||
|
|
||||||
#: src/getargs.c:440
|
|
||||||
#, c-format
|
|
||||||
msgid "extra operand `%s'"
|
|
||||||
msgstr "operando `%s' sobrando"
|
|
||||||
|
|
||||||
#: src/gram.c:139
|
|
||||||
msgid "empty"
|
|
||||||
msgstr "vazio"
|
|
||||||
|
|
||||||
#: src/gram.c:233
|
|
||||||
msgid "Grammar"
|
|
||||||
msgstr "Gramática"
|
|
||||||
|
|
||||||
#: src/gram.c:321 src/reduce.c:394
|
|
||||||
msgid "warning"
|
|
||||||
msgstr "aviso"
|
|
||||||
|
|
||||||
#: src/main.c:124
|
|
||||||
msgid "rule never reduced because of conflicts"
|
|
||||||
msgstr "regra não reduzida por causa de conflitos"
|
|
||||||
|
|
||||||
#: src/parse-gram.y:353
|
|
||||||
msgid "POSIX forbids declarations in the grammar"
|
|
||||||
msgstr "o POSIX proíbe declarações na gramática"
|
|
||||||
|
|
||||||
#: src/parse-gram.y:476
|
|
||||||
msgid "missing identifier in parameter declaration"
|
|
||||||
msgstr "identificador faltando na declaração do parâmetro"
|
|
||||||
|
|
||||||
#: src/print.c:49
|
|
||||||
#, c-format
|
|
||||||
msgid " type %d is %s\n"
|
|
||||||
msgstr " tipo %d é %s\n"
|
|
||||||
|
|
||||||
#: src/print.c:165
|
|
||||||
#, c-format
|
|
||||||
msgid "shift, and go to state %d\n"
|
|
||||||
msgstr "deslocar, e ir ao estado %d\n"
|
|
||||||
|
|
||||||
#: src/print.c:167
|
|
||||||
#, c-format
|
|
||||||
msgid "go to state %d\n"
|
|
||||||
msgstr "ir ao estado %d\n"
|
|
||||||
|
|
||||||
#: src/print.c:204
|
|
||||||
msgid "error (nonassociative)\n"
|
|
||||||
msgstr "erro (não associativo)\n"
|
|
||||||
|
|
||||||
#: src/print.c:292
|
|
||||||
#, c-format
|
|
||||||
msgid "reduce using rule %d (%s)"
|
|
||||||
msgstr "reduzir usando a regra %d (%s)"
|
|
||||||
|
|
||||||
#: src/print.c:294
|
|
||||||
msgid "accept"
|
|
||||||
msgstr "aceitar"
|
|
||||||
|
|
||||||
#: src/print.c:325 src/print.c:391
|
|
||||||
msgid "$default"
|
|
||||||
msgstr "$padrão"
|
|
||||||
|
|
||||||
#: src/print.c:420
|
|
||||||
#, c-format
|
|
||||||
msgid "state %d"
|
|
||||||
msgstr "estado %d"
|
|
||||||
|
|
||||||
#: src/print.c:456
|
|
||||||
msgid "Terminals, with rules where they appear"
|
|
||||||
msgstr "Terminais, com as regras onde eles aparecem"
|
|
||||||
|
|
||||||
#: src/print.c:483
|
|
||||||
msgid "Nonterminals, with rules where they appear"
|
|
||||||
msgstr "Não-terminais com as regras onde eles aparecem"
|
|
||||||
|
|
||||||
#: src/print.c:512
|
|
||||||
msgid " on left:"
|
|
||||||
msgstr " à esquerda:"
|
|
||||||
|
|
||||||
#: src/print.c:527
|
|
||||||
msgid " on right:"
|
|
||||||
msgstr " à direita:"
|
|
||||||
|
|
||||||
#: src/print.c:555
|
|
||||||
msgid "Rules never reduced"
|
|
||||||
msgstr "Regras nunca reduzidas"
|
|
||||||
|
|
||||||
#: src/reader.c:53
|
|
||||||
#, c-format
|
|
||||||
msgid "multiple %s declarations"
|
|
||||||
msgstr "declarações de %s múltiplas"
|
|
||||||
|
|
||||||
#: src/reader.c:115
|
|
||||||
#, c-format
|
|
||||||
msgid "result type clash on merge function %s: <%s> != <%s>"
|
|
||||||
msgstr "tipo de resultado conflita na fução de mescla %s: <%s> != <%s>"
|
|
||||||
|
|
||||||
#: src/reader.c:213
|
|
||||||
#, c-format
|
|
||||||
msgid "rule given for %s, which is a token"
|
|
||||||
msgstr "regra fornecida para %s, que é um token"
|
|
||||||
|
|
||||||
#: src/reader.c:242
|
|
||||||
#, c-format
|
|
||||||
msgid "type clash on default action: <%s> != <%s>"
|
|
||||||
msgstr "conflito de tipos na ação padrão: <%s> != <%s>"
|
|
||||||
|
|
||||||
#: src/reader.c:248
|
|
||||||
msgid "empty rule for typed nonterminal, and no action"
|
|
||||||
msgstr "regra vazia para um não-terminal com tipo, e não há ações"
|
|
||||||
|
|
||||||
#: src/reader.c:318 src/reader.c:332 src/reader.c:345
|
|
||||||
#, c-format
|
|
||||||
msgid "only one %s allowed per rule"
|
|
||||||
msgstr "apenas um %s é permitido por regra"
|
|
||||||
|
|
||||||
#: src/reader.c:328 src/reader.c:343
|
|
||||||
#, c-format
|
|
||||||
msgid "%s affects only GLR parsers"
|
|
||||||
msgstr "%s afeta apenas analisadores GLR"
|
|
||||||
|
|
||||||
#: src/reader.c:330
|
|
||||||
#, c-format
|
|
||||||
msgid "%s must be followed by positive number"
|
|
||||||
msgstr "%s deve ser seguido por um número positivo"
|
|
||||||
|
|
||||||
#: src/reader.c:487
|
|
||||||
msgid "no rules in the input grammar"
|
|
||||||
msgstr "não há regras na gramática de entrada"
|
|
||||||
|
|
||||||
#: src/reduce.c:242
|
|
||||||
msgid "useless rule"
|
|
||||||
msgstr "regra inútil"
|
|
||||||
|
|
||||||
#: src/reduce.c:303
|
|
||||||
#, c-format
|
|
||||||
msgid "useless nonterminal: %s"
|
|
||||||
msgstr "não-terminal inútil: %s"
|
|
||||||
|
|
||||||
#: src/reduce.c:351
|
|
||||||
msgid "Useless nonterminals"
|
|
||||||
msgstr "Não-terminais inúteis"
|
|
||||||
|
|
||||||
#: src/reduce.c:364
|
|
||||||
msgid "Terminals which are not used"
|
|
||||||
msgstr "Terminais que não foram usados"
|
|
||||||
|
|
||||||
#: src/reduce.c:373
|
|
||||||
msgid "Useless rules"
|
|
||||||
msgstr "Regras inúteis"
|
|
||||||
|
|
||||||
#: src/reduce.c:389
|
|
||||||
#, c-format
|
|
||||||
msgid "%d rule never reduced\n"
|
|
||||||
msgid_plural "%d rules never reduced\n"
|
|
||||||
msgstr[0] "%d regra que nunca foi reduzida\n"
|
|
||||||
msgstr[1] "%d regras que nunca foram reduzidas\n"
|
|
||||||
|
|
||||||
#: src/reduce.c:397
|
|
||||||
#, c-format
|
|
||||||
msgid "%d useless nonterminal"
|
|
||||||
msgid_plural "%d useless nonterminals"
|
|
||||||
msgstr[0] "%d não-terminal inútil"
|
|
||||||
msgstr[1] "%d não-terminal inútil"
|
|
||||||
|
|
||||||
#: src/reduce.c:403
|
|
||||||
msgid " and "
|
|
||||||
msgstr " e "
|
|
||||||
|
|
||||||
#: src/reduce.c:406
|
|
||||||
#, c-format
|
|
||||||
msgid "%d useless rule"
|
|
||||||
msgid_plural "%d useless rules"
|
|
||||||
msgstr[0] "%d regra inútil"
|
|
||||||
msgstr[1] "%d regras inúteis"
|
|
||||||
|
|
||||||
#: src/reduce.c:436
|
|
||||||
#, c-format
|
|
||||||
msgid "start symbol %s does not derive any sentence"
|
|
||||||
msgstr "símbolo de início %s não deriva nenhuma sentença"
|
|
||||||
|
|
||||||
#: src/scan-gram.l:160
|
|
||||||
msgid "stray `,' treated as white space"
|
|
||||||
msgstr "`,' perdida tratada como branco"
|
|
||||||
|
|
||||||
#: src/scan-gram.l:221
|
|
||||||
#, c-format
|
|
||||||
msgid "invalid directive: %s"
|
|
||||||
msgstr "diretiva inválida: %s"
|
|
||||||
|
|
||||||
#: src/scan-gram.l:241 src/scan-gram.l:804 src/scan-gram.l:873
|
|
||||||
#, c-format
|
|
||||||
msgid "integer out of range: %s"
|
|
||||||
msgstr "inteiro fora de faixa: %s"
|
|
||||||
|
|
||||||
#: src/scan-gram.l:283
|
|
||||||
#, c-format
|
|
||||||
msgid "invalid character: %s"
|
|
||||||
msgstr "caractere inválido: %s"
|
|
||||||
|
|
||||||
#: src/scan-gram.l:412 src/scan-gram.l:422 src/scan-gram.l:441
|
|
||||||
#, c-format
|
|
||||||
msgid "invalid escape sequence: %s"
|
|
||||||
msgstr "seqüência de escape inválida: %s"
|
|
||||||
|
|
||||||
#: src/scan-gram.l:446
|
|
||||||
#, c-format
|
|
||||||
msgid "unrecognized escape sequence: %s"
|
|
||||||
msgstr "seqüência de escape não reconhecida: %s"
|
|
||||||
|
|
||||||
#: src/scan-gram.l:534
|
|
||||||
#, c-format
|
|
||||||
msgid "missing `{' in `%s'"
|
|
||||||
msgstr "falta `{' em `%s'"
|
|
||||||
|
|
||||||
#: src/scan-gram.l:774
|
|
||||||
#, c-format
|
|
||||||
msgid "$$ of `%s' has no declared type"
|
|
||||||
msgstr "$$ de `%s' não tem tipo declarado"
|
|
||||||
|
|
||||||
#: src/scan-gram.l:795
|
|
||||||
#, c-format
|
|
||||||
msgid "$%d of `%s' has no declared type"
|
|
||||||
msgstr "$%d de `%s' não tem tipo declarado"
|
|
||||||
|
|
||||||
#: src/scan-gram.l:840 src/scan-gram.l:908
|
|
||||||
#, c-format
|
|
||||||
msgid "invalid value: %s"
|
|
||||||
msgstr "valor inválido: %s"
|
|
||||||
|
|
||||||
#: src/scan-gram.l:996
|
|
||||||
#, c-format
|
|
||||||
msgid "missing `%s' at end of file"
|
|
||||||
msgstr "`%s' faltando no final do arquivo"
|
|
||||||
|
|
||||||
#: src/symlist.c:97 src/symlist.c:108
|
|
||||||
msgid "invalid $ value"
|
|
||||||
msgstr "valor $ inválido"
|
|
||||||
|
|
||||||
#: src/symtab.c:84
|
|
||||||
#, c-format
|
|
||||||
msgid "type redeclaration for %s"
|
|
||||||
msgstr "redeclaração de tipo para %s"
|
|
||||||
|
|
||||||
#: src/symtab.c:101 src/symtab.c:119
|
|
||||||
#, c-format
|
|
||||||
msgid "%s redeclaration for %s"
|
|
||||||
msgstr "redeclaração de %s para %s"
|
|
||||||
|
|
||||||
#: src/symtab.c:138
|
|
||||||
#, c-format
|
|
||||||
msgid "redefining precedence of %s"
|
|
||||||
msgstr "redefinindo precedência de %s"
|
|
||||||
|
|
||||||
#: src/symtab.c:156
|
|
||||||
#, c-format
|
|
||||||
msgid "symbol %s redefined"
|
|
||||||
msgstr "símbolo %s redefinido"
|
|
||||||
|
|
||||||
#: src/symtab.c:179
|
|
||||||
#, c-format
|
|
||||||
msgid "redefining user token number of %s"
|
|
||||||
msgstr "redefinindo número de token de usuário de %s"
|
|
||||||
|
|
||||||
#: src/symtab.c:206
|
|
||||||
#, c-format
|
|
||||||
msgid "symbol %s is used, but is not defined as a token and has no rules"
|
|
||||||
msgstr "símbolo %s usado, mas não definido como uma token e não tem regras"
|
|
||||||
|
|
||||||
#: src/symtab.c:231
|
|
||||||
#, c-format
|
|
||||||
msgid "symbol `%s' used more than once as a literal string"
|
|
||||||
msgstr "símbolo `%s' usado mais the uma vez como uma string literal"
|
|
||||||
|
|
||||||
#: src/symtab.c:234
|
|
||||||
#, c-format
|
|
||||||
msgid "symbol `%s' given more than one literal string"
|
|
||||||
msgstr "símbolo `%s' associado a mais de uma string literal"
|
|
||||||
|
|
||||||
#: src/symtab.c:270
|
|
||||||
#, c-format
|
|
||||||
msgid "conflicting precedences for %s and %s"
|
|
||||||
msgstr "precedências conflitantes para %s e %s"
|
|
||||||
|
|
||||||
#: src/symtab.c:282
|
|
||||||
#, c-format
|
|
||||||
msgid "conflicting associativities for %s (%s) and %s (%s)"
|
|
||||||
msgstr "valores associativos conflitantes para %s (%s) e %s (%s)"
|
|
||||||
|
|
||||||
#: src/symtab.c:367
|
|
||||||
#, c-format
|
|
||||||
msgid "tokens %s and %s both assigned number %d"
|
|
||||||
msgstr "tokens %s e %s associadas ao mesmo número %d"
|
|
||||||
|
|
||||||
#: src/symtab.c:590
|
|
||||||
#, c-format
|
|
||||||
msgid "the start symbol %s is undefined"
|
|
||||||
msgstr "o símbolo de início %s não está definido"
|
|
||||||
|
|
||||||
#: src/symtab.c:594
|
|
||||||
#, c-format
|
|
||||||
msgid "the start symbol %s is a token"
|
|
||||||
msgstr "o símbolo de início %s é um terminal"
|
|
||||||
|
|
||||||
#: lib/argmatch.c:135
|
|
||||||
#, c-format
|
|
||||||
msgid "invalid argument %s for %s"
|
|
||||||
msgstr "argumento %s inválido para %s"
|
|
||||||
|
|
||||||
#: lib/argmatch.c:136
|
|
||||||
#, c-format
|
|
||||||
msgid "ambiguous argument %s for %s"
|
|
||||||
msgstr "argumento %s ambíguo para %s"
|
|
||||||
|
|
||||||
#: lib/argmatch.c:155
|
|
||||||
msgid "Valid arguments are:"
|
|
||||||
msgstr "Argumentos válidos são:"
|
|
||||||
|
|
||||||
#: lib/bitset_stats.c:179
|
|
||||||
#, c-format
|
|
||||||
msgid "%u bitset_allocs, %u freed (%.2f%%).\n"
|
|
||||||
msgstr "%u bitset_allocs, %u liberados (%.2f%%).\n"
|
|
||||||
|
|
||||||
#: lib/bitset_stats.c:182
|
|
||||||
#, c-format
|
|
||||||
msgid "%u bitset_sets, %u cached (%.2f%%)\n"
|
|
||||||
msgstr "%u bitset_sets, %u em cache (%.2f%%)\n"
|
|
||||||
|
|
||||||
#: lib/bitset_stats.c:185
|
|
||||||
#, c-format
|
|
||||||
msgid "%u bitset_resets, %u cached (%.2f%%)\n"
|
|
||||||
msgstr "%u bitset_resets, %u em cache (%.2f%%)\n"
|
|
||||||
|
|
||||||
#: lib/bitset_stats.c:188
|
|
||||||
#, c-format
|
|
||||||
msgid "%u bitset_tests, %u cached (%.2f%%)\n"
|
|
||||||
msgstr "%u bitset_tests, %u em cache (%.2f%%)\n"
|
|
||||||
|
|
||||||
#: lib/bitset_stats.c:192
|
|
||||||
#, c-format
|
|
||||||
msgid "%u bitset_lists\n"
|
|
||||||
msgstr "%u bitset_lists\n"
|
|
||||||
|
|
||||||
#: lib/bitset_stats.c:194
|
|
||||||
msgid "count log histogram\n"
|
|
||||||
msgstr "histograma de log de contagens\n"
|
|
||||||
|
|
||||||
#: lib/bitset_stats.c:197
|
|
||||||
msgid "size log histogram\n"
|
|
||||||
msgstr "histograma de log de tamanhos\n"
|
|
||||||
|
|
||||||
#: lib/bitset_stats.c:200
|
|
||||||
msgid "density histogram\n"
|
|
||||||
msgstr "histograma de densidades\n"
|
|
||||||
|
|
||||||
#: lib/bitset_stats.c:214
|
|
||||||
msgid ""
|
|
||||||
"Bitset statistics:\n"
|
|
||||||
"\n"
|
|
||||||
msgstr ""
|
|
||||||
"Estatísticas de bitset:\n"
|
|
||||||
"\n"
|
|
||||||
|
|
||||||
#: lib/bitset_stats.c:217
|
|
||||||
#, c-format
|
|
||||||
msgid "Accumulated runs = %u\n"
|
|
||||||
msgstr "Execuções acumuladas = %u\n"
|
|
||||||
|
|
||||||
#: lib/bitset_stats.c:261 lib/bitset_stats.c:266
|
|
||||||
msgid "Could not read stats file."
|
|
||||||
msgstr "Impossível ler o arquivo de estatísticas."
|
|
||||||
|
|
||||||
#: lib/bitset_stats.c:263
|
|
||||||
msgid "Bad stats file size.\n"
|
|
||||||
msgstr "Tamanho do arquivo de estatísticas com erro.\n"
|
|
||||||
|
|
||||||
#: lib/bitset_stats.c:289 lib/bitset_stats.c:291
|
|
||||||
msgid "Could not write stats file."
|
|
||||||
msgstr "Impossível de escrever no arquivo de estatísticas."
|
|
||||||
|
|
||||||
#: lib/bitset_stats.c:294
|
|
||||||
msgid "Could not open stats file for writing."
|
|
||||||
msgstr "Impossível abrir arquivo de estatísticas para escrita."
|
|
||||||
|
|
||||||
#: lib/getopt.c:688 lib/getopt.c:700
|
|
||||||
#, c-format
|
|
||||||
msgid "%s: option `%s' is ambiguous\n"
|
|
||||||
msgstr "%s: a opção `%s' é ambígua\n"
|
|
||||||
|
|
||||||
#: lib/getopt.c:733 lib/getopt.c:737
|
|
||||||
#, c-format
|
|
||||||
msgid "%s: option `--%s' doesn't allow an argument\n"
|
|
||||||
msgstr "%s: a opção `--%s' no admite nenhum argumento\n"
|
|
||||||
|
|
||||||
#: lib/getopt.c:746 lib/getopt.c:751
|
|
||||||
#, c-format
|
|
||||||
msgid "%s: option `%c%s' doesn't allow an argument\n"
|
|
||||||
msgstr "%s: a opção `%c%s' não admite nenhum argumento\n"
|
|
||||||
|
|
||||||
#: lib/getopt.c:787 lib/getopt.c:800 lib/getopt.c:1089 lib/getopt.c:1102
|
|
||||||
#, c-format
|
|
||||||
msgid "%s: option `%s' requires an argument\n"
|
|
||||||
msgstr "%s: a opção `%s' exige um argumento\n"
|
|
||||||
|
|
||||||
#: lib/getopt.c:838 lib/getopt.c:841
|
|
||||||
#, c-format
|
|
||||||
msgid "%s: unrecognized option `--%s'\n"
|
|
||||||
msgstr "%s: opção `--%s' não reconhecida\n"
|
|
||||||
|
|
||||||
#: lib/getopt.c:849 lib/getopt.c:852
|
|
||||||
#, c-format
|
|
||||||
msgid "%s: unrecognized option `%c%s'\n"
|
|
||||||
msgstr "%s: opção `%c%s' não reconhecida\n"
|
|
||||||
|
|
||||||
#: lib/getopt.c:899 lib/getopt.c:902
|
|
||||||
#, c-format
|
|
||||||
msgid "%s: illegal option -- %c\n"
|
|
||||||
msgstr "%s: opção -- %c ilegal\n"
|
|
||||||
|
|
||||||
#: lib/getopt.c:908 lib/getopt.c:911
|
|
||||||
#, c-format
|
|
||||||
msgid "%s: invalid option -- %c\n"
|
|
||||||
msgstr "%s: opção -- %c inválida\n"
|
|
||||||
|
|
||||||
#: lib/getopt.c:958 lib/getopt.c:969 lib/getopt.c:1155 lib/getopt.c:1168
|
|
||||||
#, c-format
|
|
||||||
msgid "%s: option requires an argument -- %c\n"
|
|
||||||
msgstr "%s: a opção -- %c exige um argumento\n"
|
|
||||||
|
|
||||||
#: lib/getopt.c:1021 lib/getopt.c:1032
|
|
||||||
#, c-format
|
|
||||||
msgid "%s: option `-W %s' is ambiguous\n"
|
|
||||||
msgstr "%s: a opção `-W %s' é ambígua\n"
|
|
||||||
|
|
||||||
#: lib/getopt.c:1056 lib/getopt.c:1068
|
|
||||||
#, c-format
|
|
||||||
msgid "%s: option `-W %s' doesn't allow an argument\n"
|
|
||||||
msgstr "%s: a opção `-W %s' não admite nenhum argumento\n"
|
|
||||||
|
|
||||||
#: lib/obstack.c:487 lib/obstack.c:490 lib/xmalloc.c:63
|
|
||||||
msgid "memory exhausted"
|
|
||||||
msgstr "memória esgotada"
|
|
||||||
|
|
||||||
#: lib/quotearg.c:236
|
|
||||||
msgid "`"
|
|
||||||
msgstr "`"
|
|
||||||
|
|
||||||
#: lib/quotearg.c:237
|
|
||||||
msgid "'"
|
|
||||||
msgstr "'"
|
|
||||||
|
|
||||||
#: lib/subpipe.c:187
|
|
||||||
#, c-format
|
|
||||||
msgid "subsidiary program `%s' could not be invoked"
|
|
||||||
msgstr "programa subsidiário `%s' não pôde ser invocado"
|
|
||||||
|
|
||||||
#: lib/subpipe.c:189
|
|
||||||
#, c-format
|
|
||||||
msgid "subsidiary program `%s' not found"
|
|
||||||
msgstr "programa subsidiário `%s' não foi encontrado"
|
|
||||||
|
|
||||||
#: lib/subpipe.c:191
|
|
||||||
#, c-format
|
|
||||||
msgid "subsidiary program `%s' failed"
|
|
||||||
msgstr "programa subsidiário `%s' falhou"
|
|
||||||
|
|
||||||
#: lib/subpipe.c:192
|
|
||||||
#, c-format
|
|
||||||
msgid "subsidiary program `%s' failed (exit status %d)"
|
|
||||||
msgstr "programa subsidiário `%s' falhou (estado de saída %d)"
|
|
||||||
|
|
||||||
#: lib/timevar.c:476
|
|
||||||
msgid ""
|
|
||||||
"\n"
|
|
||||||
"Execution times (seconds)\n"
|
|
||||||
msgstr ""
|
|
||||||
"\n"
|
|
||||||
"Tempos de execução (segundos)\n"
|
|
||||||
|
|
||||||
#: lib/timevar.c:526
|
|
||||||
msgid " TOTAL :"
|
|
||||||
msgstr " TOTAL :"
|
|
||||||
|
|
||||||
#: lib/timevar.c:562
|
|
||||||
#, c-format
|
|
||||||
msgid "time in %s: %ld.%06ld (%ld%%)\n"
|
|
||||||
msgstr "tempo em %s: %ld.%06ld (%ld%%)\n"
|
|
||||||
713
po/ro.po
713
po/ro.po
@@ -1,713 +0,0 @@
|
|||||||
# Mesajele în limba românã pentru GNU Bison.
|
|
||||||
# Copyright (C) 2003 Free Software Foundation, Inc.
|
|
||||||
# Acest fiºier este distribuit sub aceeaºi licenþã ca ºi pachetul bison.
|
|
||||||
# Laurentiu Buzdugan <buzdugan@voyager.net>, 2003.
|
|
||||||
#
|
|
||||||
#
|
|
||||||
#
|
|
||||||
msgid ""
|
|
||||||
msgstr ""
|
|
||||||
"Project-Id-Version: bison 1.875a\n"
|
|
||||||
"Report-Msgid-Bugs-To: bug-bison@gnu.org\n"
|
|
||||||
"POT-Creation-Date: 2003-08-25 17:14+0200\n"
|
|
||||||
"PO-Revision-Date: 2003-03-01 21:43-0500\n"
|
|
||||||
"Last-Translator: Laurentiu Buzdugan <buzdugan@voyager.net>\n"
|
|
||||||
"Language-Team: Romanian <translation-team-ro@lists.sourceforge.net>\n"
|
|
||||||
"MIME-Version: 1.0\n"
|
|
||||||
"Content-Type: text/plain; charset=ISO-8859-2\n"
|
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
|
||||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
|
||||||
|
|
||||||
#: src/complain.c:56 lib/error.c:135 lib/error.c:163
|
|
||||||
msgid "Unknown system error"
|
|
||||||
msgstr "Eroare de sistem necunoscutã"
|
|
||||||
|
|
||||||
#: src/complain.c:79 src/complain.c:94
|
|
||||||
msgid "warning: "
|
|
||||||
msgstr "avertisment:"
|
|
||||||
|
|
||||||
#: src/complain.c:150 src/complain.c:166
|
|
||||||
msgid "fatal error: "
|
|
||||||
msgstr "eroare fatalã:"
|
|
||||||
|
|
||||||
#: src/conflicts.c:75
|
|
||||||
#, c-format
|
|
||||||
msgid " Conflict between rule %d and token %s resolved as shift"
|
|
||||||
msgstr " Conflict între regula %d ºi elementul (token) %s rezolvat ca shift"
|
|
||||||
|
|
||||||
#: src/conflicts.c:83
|
|
||||||
#, c-format
|
|
||||||
msgid " Conflict between rule %d and token %s resolved as reduce"
|
|
||||||
msgstr ""
|
|
||||||
" Conflict între regula %d ºi elementul (token) %s rezolvat ca reduce"
|
|
||||||
|
|
||||||
#: src/conflicts.c:90
|
|
||||||
#, c-format
|
|
||||||
msgid " Conflict between rule %d and token %s resolved as an error"
|
|
||||||
msgstr ""
|
|
||||||
" Conflict între regula %d ºi elementul (token) %s rezolvat ca eroare"
|
|
||||||
|
|
||||||
#: src/conflicts.c:398
|
|
||||||
#, c-format
|
|
||||||
msgid "conflicts: %d shift/reduce, %d reduce/reduce\n"
|
|
||||||
msgstr "conflicte: %d shift/reduce, %d reduce/reduce\n"
|
|
||||||
|
|
||||||
#: src/conflicts.c:401
|
|
||||||
#, c-format
|
|
||||||
msgid "conflicts: %d shift/reduce\n"
|
|
||||||
msgstr "conflicte: %d shift/reduce\n"
|
|
||||||
|
|
||||||
#: src/conflicts.c:403
|
|
||||||
#, c-format
|
|
||||||
msgid "conflicts: %d reduce/reduce\n"
|
|
||||||
msgstr "conflicte: %d reduce/reduce\n"
|
|
||||||
|
|
||||||
#: src/conflicts.c:421
|
|
||||||
#, c-format
|
|
||||||
msgid "State %d "
|
|
||||||
msgstr "Stare %d"
|
|
||||||
|
|
||||||
#: src/conflicts.c:498
|
|
||||||
#, c-format
|
|
||||||
msgid "expected %d shift/reduce conflict"
|
|
||||||
msgid_plural "expected %d shift/reduce conflicts"
|
|
||||||
msgstr[0] "am aºteptat %d conflict shift/reduce"
|
|
||||||
msgstr[1] "am aºteptat %d conflicte shift/reduce"
|
|
||||||
|
|
||||||
#: src/conflicts.c:503
|
|
||||||
msgid "expected 0 reduce/reduce conflicts"
|
|
||||||
msgstr "am aºteptat 0 conflicte reduce/reduce"
|
|
||||||
|
|
||||||
#: src/files.c:99
|
|
||||||
#, c-format
|
|
||||||
msgid "cannot open file `%s'"
|
|
||||||
msgstr "nu am putut deschide fiºierul `%s'"
|
|
||||||
|
|
||||||
#: src/files.c:115
|
|
||||||
msgid "I/O error"
|
|
||||||
msgstr "Eroare I/O"
|
|
||||||
|
|
||||||
#: src/files.c:118
|
|
||||||
msgid "cannot close file"
|
|
||||||
msgstr "nu pot închide fiºierul"
|
|
||||||
|
|
||||||
#: src/files.c:336
|
|
||||||
#, c-format
|
|
||||||
msgid "conflicting outputs to file %s"
|
|
||||||
msgstr "ieºiri în conflict în fiºierul %s"
|
|
||||||
|
|
||||||
#: src/getargs.c:186
|
|
||||||
#, c-format
|
|
||||||
msgid "Try `%s --help' for more information.\n"
|
|
||||||
msgstr "Încercaþi `%s --help' pentru informaþii suplimentare.\n"
|
|
||||||
|
|
||||||
#: src/getargs.c:192
|
|
||||||
msgid "GNU bison generates parsers for LALR(1) grammars.\n"
|
|
||||||
msgstr "GNU bison genereazã parsere pentru gramatici LALR(1).\n"
|
|
||||||
|
|
||||||
#: src/getargs.c:196
|
|
||||||
#, c-format
|
|
||||||
msgid "Usage: %s [OPTION]... FILE\n"
|
|
||||||
msgstr "Folosire: %s [OPÞIUNE]... FIªIER\n"
|
|
||||||
|
|
||||||
#: src/getargs.c:200
|
|
||||||
msgid ""
|
|
||||||
"If a long option shows an argument as mandatory, then it is mandatory\n"
|
|
||||||
"for the equivalent short option also. Similarly for optional arguments.\n"
|
|
||||||
msgstr ""
|
|
||||||
"Dacã o opþiune lungã aratã un argument ca necesar, atunci el este necesar\n"
|
|
||||||
"ºi pentru opþiunea scurtã echivalentã. Similar pentru argumentele "
|
|
||||||
"opþionale.\n"
|
|
||||||
|
|
||||||
#: src/getargs.c:206
|
|
||||||
msgid ""
|
|
||||||
"Operation modes:\n"
|
|
||||||
" -h, --help display this help and exit\n"
|
|
||||||
" -V, --version output version information and exit\n"
|
|
||||||
" -y, --yacc emulate POSIX yacc\n"
|
|
||||||
msgstr ""
|
|
||||||
"Moduri de operare:\n"
|
|
||||||
" -h, --help afiºeazã acest mesaj ºi terminã\n"
|
|
||||||
" -V, --version afiºeazã informaþii despre versiune ºi terminã\n"
|
|
||||||
" -y, --yacc emuleazã POSIX yacc\n"
|
|
||||||
|
|
||||||
#: src/getargs.c:213
|
|
||||||
msgid ""
|
|
||||||
"Parser:\n"
|
|
||||||
" -S, --skeleton=FILE specify the skeleton to use\n"
|
|
||||||
" -t, --debug instrument the parser for debugging\n"
|
|
||||||
" --locations enable locations computation\n"
|
|
||||||
" -p, --name-prefix=PREFIX prepend PREFIX to the external symbols\n"
|
|
||||||
" -l, --no-lines don't generate `#line' directives\n"
|
|
||||||
" -n, --no-parser generate the tables only\n"
|
|
||||||
" -k, --token-table include a table of token names\n"
|
|
||||||
msgstr ""
|
|
||||||
"Parser:\n"
|
|
||||||
" -S, --skeleton=FIªIER specificã scheletul de folosit\n"
|
|
||||||
" -t, --debug instrumenteazã parserul pentru depanare\n"
|
|
||||||
" --locations activeazã calculul locaþiilor\n"
|
|
||||||
" -p, --name-prefix=PREFIX pune prefix PREFIX la simbolurile externe\n"
|
|
||||||
" -l, --no-lines nu genera directive `#line'\n"
|
|
||||||
" -n, --no-parser genereazã numai tabelele\n"
|
|
||||||
" -k, --token-table include un tabel cu nume de elemente\n"
|
|
||||||
|
|
||||||
#: src/getargs.c:225
|
|
||||||
msgid ""
|
|
||||||
"Output:\n"
|
|
||||||
" -d, --defines also produce a header file\n"
|
|
||||||
" -r, --report=THINGS also produce details on the automaton\n"
|
|
||||||
" -v, --verbose same as `--report=state'\n"
|
|
||||||
" -b, --file-prefix=PREFIX specify a PREFIX for output files\n"
|
|
||||||
" -o, --output=FILE leave output to FILE\n"
|
|
||||||
" -g, --graph also produce a VCG description of the "
|
|
||||||
"automaton\n"
|
|
||||||
msgstr ""
|
|
||||||
"Ieºire:\n"
|
|
||||||
" -d, --defines creazã ºi un fiºier header\n"
|
|
||||||
" -r, --report=LUCRURI creazã ºi detalii despre automaton\n"
|
|
||||||
" -v, --verbose la fel ca `--report=state'\n"
|
|
||||||
" -b, --file-prefix=PREFIX specificã un PREFIX pentru fiºierele ieºire\n"
|
|
||||||
" -o, --output=FIªIER creazã ieºire în FIªIER\n"
|
|
||||||
" -g, --graph creazã ºi o descriere VCG a automaton-ului\n"
|
|
||||||
|
|
||||||
#: src/getargs.c:236
|
|
||||||
msgid ""
|
|
||||||
"THINGS is a list of comma separated words that can include:\n"
|
|
||||||
" `state' describe the states\n"
|
|
||||||
" `itemset' complete the core item sets with their closure\n"
|
|
||||||
" `lookahead' explicitly associate lookaheads to items\n"
|
|
||||||
" `solved' describe shift/reduce conflicts solving\n"
|
|
||||||
" `all' include all the above information\n"
|
|
||||||
" `none' disable the report\n"
|
|
||||||
msgstr ""
|
|
||||||
"LUCRURI este o listã de cuvinte separate de virgulã ce pot fi:\n"
|
|
||||||
" `state' descrie stãrile\n"
|
|
||||||
" `itemset' completeazã seturile de elemente nucleu cu închiderea lor\n"
|
|
||||||
" `lookahead' asociazã explicit lookaheads la elemente\n"
|
|
||||||
" `solved' descrie rezolvarea conflictelor shift/reduce\n"
|
|
||||||
" `all' include toatã informaþia de deasupra\n"
|
|
||||||
" `none' deactiveazã raportarea\n"
|
|
||||||
|
|
||||||
#: src/getargs.c:247
|
|
||||||
msgid "Report bugs to <bug-bison@gnu.org>.\n"
|
|
||||||
msgstr "Raportaþi bug-uri la <bug-bison@gnu.org>.\n"
|
|
||||||
|
|
||||||
#: src/getargs.c:264
|
|
||||||
#, c-format
|
|
||||||
msgid "bison (GNU Bison) %s"
|
|
||||||
msgstr "bison (GNU Bison) %s"
|
|
||||||
|
|
||||||
#: src/getargs.c:266
|
|
||||||
msgid "Written by Robert Corbett and Richard Stallman.\n"
|
|
||||||
msgstr "Scris de Robert Corbett ºi Richard Stallman.\n"
|
|
||||||
|
|
||||||
#: src/getargs.c:270
|
|
||||||
#, c-format
|
|
||||||
msgid "Copyright (C) %d Free Software Foundation, Inc.\n"
|
|
||||||
msgstr "Copyright (C) %d Free Software Foundation, Inc.\n"
|
|
||||||
|
|
||||||
#: src/getargs.c:272
|
|
||||||
msgid ""
|
|
||||||
"This is free software; see the source for copying conditions. There is NO\n"
|
|
||||||
"warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n"
|
|
||||||
msgstr ""
|
|
||||||
"Acesta este software liber; vedeþi codul sursã pentru condiþii despre "
|
|
||||||
"copiere.\n"
|
|
||||||
"Nu existã nici o garanþie; nici chiar pentru COMERCIALIZARE sau de "
|
|
||||||
"POTRIVIRE\n"
|
|
||||||
"PENTRU UN SCOP ANUME.\n"
|
|
||||||
|
|
||||||
#: src/getargs.c:438
|
|
||||||
#, c-format
|
|
||||||
msgid "missing operand after `%s'"
|
|
||||||
msgstr "operator lipsã dupã `%s'"
|
|
||||||
|
|
||||||
#: src/getargs.c:440
|
|
||||||
#, c-format
|
|
||||||
msgid "extra operand `%s'"
|
|
||||||
msgstr "extra operator `%s'"
|
|
||||||
|
|
||||||
#: src/gram.c:139
|
|
||||||
msgid "empty"
|
|
||||||
msgstr "goleºte"
|
|
||||||
|
|
||||||
#: src/gram.c:233
|
|
||||||
msgid "Grammar"
|
|
||||||
msgstr "Gramaticã"
|
|
||||||
|
|
||||||
#: src/gram.c:321 src/reduce.c:394
|
|
||||||
msgid "warning"
|
|
||||||
msgstr "avertisment"
|
|
||||||
|
|
||||||
#: src/main.c:124
|
|
||||||
msgid "rule never reduced because of conflicts"
|
|
||||||
msgstr "regula nu este redusã niciodatã din cauza conflictelor"
|
|
||||||
|
|
||||||
#: src/parse-gram.y:353
|
|
||||||
msgid "POSIX forbids declarations in the grammar"
|
|
||||||
msgstr "POSIX interzice declaraþii în gramaticã"
|
|
||||||
|
|
||||||
#: src/parse-gram.y:476
|
|
||||||
msgid "missing identifier in parameter declaration"
|
|
||||||
msgstr "identificator lipsã în declaraþia parametrului"
|
|
||||||
|
|
||||||
#: src/print.c:49
|
|
||||||
#, c-format
|
|
||||||
msgid " type %d is %s\n"
|
|
||||||
msgstr " tipul %d este %s\n"
|
|
||||||
|
|
||||||
#: src/print.c:165
|
|
||||||
#, c-format
|
|
||||||
msgid "shift, and go to state %d\n"
|
|
||||||
msgstr "shift, ºi mergi în starea %d\n"
|
|
||||||
|
|
||||||
#: src/print.c:167
|
|
||||||
#, c-format
|
|
||||||
msgid "go to state %d\n"
|
|
||||||
msgstr "mergi în starea %d\n"
|
|
||||||
|
|
||||||
#: src/print.c:204
|
|
||||||
msgid "error (nonassociative)\n"
|
|
||||||
msgstr "eroare (ne-asociativitate)\n"
|
|
||||||
|
|
||||||
#: src/print.c:292
|
|
||||||
#, c-format
|
|
||||||
msgid "reduce using rule %d (%s)"
|
|
||||||
msgstr "reduce folosind regula %d (%s)"
|
|
||||||
|
|
||||||
#: src/print.c:294
|
|
||||||
msgid "accept"
|
|
||||||
msgstr "accept"
|
|
||||||
|
|
||||||
#: src/print.c:325 src/print.c:391
|
|
||||||
msgid "$default"
|
|
||||||
msgstr "$implicit"
|
|
||||||
|
|
||||||
#: src/print.c:420
|
|
||||||
#, c-format
|
|
||||||
msgid "state %d"
|
|
||||||
msgstr "stare %d"
|
|
||||||
|
|
||||||
#: src/print.c:456
|
|
||||||
msgid "Terminals, with rules where they appear"
|
|
||||||
msgstr "Terminale, cu reguli acolo unde acestea apar"
|
|
||||||
|
|
||||||
#: src/print.c:483
|
|
||||||
msgid "Nonterminals, with rules where they appear"
|
|
||||||
msgstr "Non-terminale, cu reguli acolo unde acestea apar"
|
|
||||||
|
|
||||||
#: src/print.c:512
|
|
||||||
msgid " on left:"
|
|
||||||
msgstr " pe stânga:"
|
|
||||||
|
|
||||||
#: src/print.c:527
|
|
||||||
msgid " on right:"
|
|
||||||
msgstr " pe dreapta:"
|
|
||||||
|
|
||||||
#: src/print.c:555
|
|
||||||
msgid "Rules never reduced"
|
|
||||||
msgstr "Regulile nu au fost reduse"
|
|
||||||
|
|
||||||
#: src/reader.c:53
|
|
||||||
#, c-format
|
|
||||||
msgid "multiple %s declarations"
|
|
||||||
msgstr "declaraþii %s multiple"
|
|
||||||
|
|
||||||
#: src/reader.c:115
|
|
||||||
#, c-format
|
|
||||||
msgid "result type clash on merge function %s: <%s> != <%s>"
|
|
||||||
msgstr ""
|
|
||||||
"tipul rezultatului în conflict cu funcþia de combinare %s: <%s> != <%s>"
|
|
||||||
|
|
||||||
#: src/reader.c:213
|
|
||||||
#, c-format
|
|
||||||
msgid "rule given for %s, which is a token"
|
|
||||||
msgstr "regula datã pentru %s, care este un element (token)"
|
|
||||||
|
|
||||||
#: src/reader.c:242
|
|
||||||
#, c-format
|
|
||||||
msgid "type clash on default action: <%s> != <%s>"
|
|
||||||
msgstr "conflict de tip pentru acþiunea implicitã: <%s> != <%s>"
|
|
||||||
|
|
||||||
#: src/reader.c:248
|
|
||||||
msgid "empty rule for typed nonterminal, and no action"
|
|
||||||
msgstr "regulã vidã pentru nonterminal cu tip, ºi nici o acþiune"
|
|
||||||
|
|
||||||
#: src/reader.c:318 src/reader.c:332 src/reader.c:345
|
|
||||||
#, c-format
|
|
||||||
msgid "only one %s allowed per rule"
|
|
||||||
msgstr "un singur %s permis pe fiecare regulã"
|
|
||||||
|
|
||||||
#: src/reader.c:328 src/reader.c:343
|
|
||||||
#, c-format
|
|
||||||
msgid "%s affects only GLR parsers"
|
|
||||||
msgstr "%s afecteazã numai parsere GLR"
|
|
||||||
|
|
||||||
#: src/reader.c:330
|
|
||||||
#, c-format
|
|
||||||
msgid "%s must be followed by positive number"
|
|
||||||
msgstr "%s trebuie sã fie urmat de numere pozitive"
|
|
||||||
|
|
||||||
#: src/reader.c:487
|
|
||||||
msgid "no rules in the input grammar"
|
|
||||||
msgstr "nici o regulã în gramatica furnizatã"
|
|
||||||
|
|
||||||
#: src/reduce.c:242
|
|
||||||
msgid "useless rule"
|
|
||||||
msgstr "regulã fãrã rost"
|
|
||||||
|
|
||||||
#: src/reduce.c:303
|
|
||||||
#, c-format
|
|
||||||
msgid "useless nonterminal: %s"
|
|
||||||
msgstr "nonterminal fãrã rost: %s"
|
|
||||||
|
|
||||||
#: src/reduce.c:351
|
|
||||||
msgid "Useless nonterminals"
|
|
||||||
msgstr "Nonterminale fãrã rost"
|
|
||||||
|
|
||||||
#: src/reduce.c:364
|
|
||||||
msgid "Terminals which are not used"
|
|
||||||
msgstr "Terminale care nu sunt folosite"
|
|
||||||
|
|
||||||
#: src/reduce.c:373
|
|
||||||
msgid "Useless rules"
|
|
||||||
msgstr "Reguli fãrã rost"
|
|
||||||
|
|
||||||
#: src/reduce.c:389
|
|
||||||
#, c-format
|
|
||||||
msgid "%d rule never reduced\n"
|
|
||||||
msgid_plural "%d rules never reduced\n"
|
|
||||||
msgstr[0] "%d regulã niciodatã redusã\n"
|
|
||||||
msgstr[1] "%d reguli niciodatã reduse\n"
|
|
||||||
|
|
||||||
#: src/reduce.c:397
|
|
||||||
#, c-format
|
|
||||||
msgid "%d useless nonterminal"
|
|
||||||
msgid_plural "%d useless nonterminals"
|
|
||||||
msgstr[0] "%d nonterminal fãrã rost"
|
|
||||||
msgstr[1] "%d nonterminale fãrã rost"
|
|
||||||
|
|
||||||
#: src/reduce.c:403
|
|
||||||
msgid " and "
|
|
||||||
msgstr " ºi "
|
|
||||||
|
|
||||||
#: src/reduce.c:406
|
|
||||||
#, c-format
|
|
||||||
msgid "%d useless rule"
|
|
||||||
msgid_plural "%d useless rules"
|
|
||||||
msgstr[0] "%d regulã fãrã rost"
|
|
||||||
msgstr[1] "%d reguli fãrã rost"
|
|
||||||
|
|
||||||
#: src/reduce.c:436
|
|
||||||
#, c-format
|
|
||||||
msgid "start symbol %s does not derive any sentence"
|
|
||||||
msgstr "simbol de start %s nu deriveazã nici o propoziþie"
|
|
||||||
|
|
||||||
#: src/scan-gram.l:160
|
|
||||||
msgid "stray `,' treated as white space"
|
|
||||||
msgstr "Virgulã `,' rãtãcitã tratatã ca spaþiu gol"
|
|
||||||
|
|
||||||
#: src/scan-gram.l:221
|
|
||||||
#, c-format
|
|
||||||
msgid "invalid directive: %s"
|
|
||||||
msgstr "directivã invalidã: %s"
|
|
||||||
|
|
||||||
#: src/scan-gram.l:241 src/scan-gram.l:804 src/scan-gram.l:873
|
|
||||||
#, c-format
|
|
||||||
msgid "integer out of range: %s"
|
|
||||||
msgstr "întreg în afara domeniului: %s"
|
|
||||||
|
|
||||||
#: src/scan-gram.l:283
|
|
||||||
#, c-format
|
|
||||||
msgid "invalid character: %s"
|
|
||||||
msgstr "caracter invalid: %s"
|
|
||||||
|
|
||||||
#: src/scan-gram.l:412 src/scan-gram.l:422 src/scan-gram.l:441
|
|
||||||
#, c-format
|
|
||||||
msgid "invalid escape sequence: %s"
|
|
||||||
msgstr "secvenþã escape invalidã: %s"
|
|
||||||
|
|
||||||
#: src/scan-gram.l:446
|
|
||||||
#, c-format
|
|
||||||
msgid "unrecognized escape sequence: %s"
|
|
||||||
msgstr "secvenþã escape nerecunoscutã: %s"
|
|
||||||
|
|
||||||
#: src/scan-gram.l:534
|
|
||||||
#, c-format
|
|
||||||
msgid "missing `{' in `%s'"
|
|
||||||
msgstr "`{' lipsã în `%s'"
|
|
||||||
|
|
||||||
#: src/scan-gram.l:774
|
|
||||||
#, c-format
|
|
||||||
msgid "$$ of `%s' has no declared type"
|
|
||||||
msgstr "$$ a lui `%s' nu are nici un tip declarat"
|
|
||||||
|
|
||||||
#: src/scan-gram.l:795
|
|
||||||
#, c-format
|
|
||||||
msgid "$%d of `%s' has no declared type"
|
|
||||||
msgstr "$%d a lui `%s' nu are nici un tip declarat"
|
|
||||||
|
|
||||||
#: src/scan-gram.l:840 src/scan-gram.l:908
|
|
||||||
#, c-format
|
|
||||||
msgid "invalid value: %s"
|
|
||||||
msgstr "valoare invalidã: %s"
|
|
||||||
|
|
||||||
#: src/scan-gram.l:996
|
|
||||||
#, c-format
|
|
||||||
msgid "missing `%s' at end of file"
|
|
||||||
msgstr "`%s' lipsã la sfârºitul fiºierului"
|
|
||||||
|
|
||||||
#: src/symlist.c:97 src/symlist.c:108
|
|
||||||
msgid "invalid $ value"
|
|
||||||
msgstr "valoare $ invalidã"
|
|
||||||
|
|
||||||
#: src/symtab.c:84
|
|
||||||
#, c-format
|
|
||||||
msgid "type redeclaration for %s"
|
|
||||||
msgstr "redeclarare de tip pentru %s"
|
|
||||||
|
|
||||||
#: src/symtab.c:101 src/symtab.c:119
|
|
||||||
#, c-format
|
|
||||||
msgid "%s redeclaration for %s"
|
|
||||||
msgstr "redeclarare %s pentru %s"
|
|
||||||
|
|
||||||
#: src/symtab.c:138
|
|
||||||
#, c-format
|
|
||||||
msgid "redefining precedence of %s"
|
|
||||||
msgstr "precedenþã redefinitã pentru %s"
|
|
||||||
|
|
||||||
#: src/symtab.c:156
|
|
||||||
#, c-format
|
|
||||||
msgid "symbol %s redefined"
|
|
||||||
msgstr "simbol %s redefinit"
|
|
||||||
|
|
||||||
#: src/symtab.c:179
|
|
||||||
#, c-format
|
|
||||||
msgid "redefining user token number of %s"
|
|
||||||
msgstr "numãrul elementului (token) definit de utilizator redefinit pentru %s"
|
|
||||||
|
|
||||||
#: src/symtab.c:206
|
|
||||||
#, c-format
|
|
||||||
msgid "symbol %s is used, but is not defined as a token and has no rules"
|
|
||||||
msgstr ""
|
|
||||||
"simbolul %s e folosit, dar nu este definit ca element (token) ºi nu are nici "
|
|
||||||
"o regulã"
|
|
||||||
|
|
||||||
#: src/symtab.c:231
|
|
||||||
#, c-format
|
|
||||||
msgid "symbol `%s' used more than once as a literal string"
|
|
||||||
msgstr "simbolul `%s' este folosit de mai multe ori ca ºir literar"
|
|
||||||
|
|
||||||
#: src/symtab.c:234
|
|
||||||
#, c-format
|
|
||||||
msgid "symbol `%s' given more than one literal string"
|
|
||||||
msgstr "simbolului `%s' îi este dat mai mult de un singur ºir literar"
|
|
||||||
|
|
||||||
#: src/symtab.c:270
|
|
||||||
#, c-format
|
|
||||||
msgid "conflicting precedences for %s and %s"
|
|
||||||
msgstr "precedenþe în conflict pentru %s ºi %s"
|
|
||||||
|
|
||||||
#: src/symtab.c:282
|
|
||||||
#, c-format
|
|
||||||
msgid "conflicting associativities for %s (%s) and %s (%s)"
|
|
||||||
msgstr "asoaciativitãþi în conflict pentru %s (%s) ºi %s (%s)"
|
|
||||||
|
|
||||||
#: src/symtab.c:367
|
|
||||||
#, c-format
|
|
||||||
msgid "tokens %s and %s both assigned number %d"
|
|
||||||
msgstr "ambelor elementele (tokens) %s ºi %s le sunt alocate acelaºi numãr %d"
|
|
||||||
|
|
||||||
#: src/symtab.c:590
|
|
||||||
#, c-format
|
|
||||||
msgid "the start symbol %s is undefined"
|
|
||||||
msgstr "simbolul de start %s nu este definit"
|
|
||||||
|
|
||||||
#: src/symtab.c:594
|
|
||||||
#, c-format
|
|
||||||
msgid "the start symbol %s is a token"
|
|
||||||
msgstr "simbolul de start %s este un element (token)"
|
|
||||||
|
|
||||||
#: lib/argmatch.c:135
|
|
||||||
#, c-format
|
|
||||||
msgid "invalid argument %s for %s"
|
|
||||||
msgstr "argument invalid %s pentru %s"
|
|
||||||
|
|
||||||
#: lib/argmatch.c:136
|
|
||||||
#, c-format
|
|
||||||
msgid "ambiguous argument %s for %s"
|
|
||||||
msgstr "argument ambiguu %s pentru %s"
|
|
||||||
|
|
||||||
#: lib/argmatch.c:155
|
|
||||||
msgid "Valid arguments are:"
|
|
||||||
msgstr "Argumente valide sunt:"
|
|
||||||
|
|
||||||
#: lib/bitset_stats.c:179
|
|
||||||
#, c-format
|
|
||||||
msgid "%u bitset_allocs, %u freed (%.2f%%).\n"
|
|
||||||
msgstr "%u bitset_allocs, %u eliberate (%.2f%%).\n"
|
|
||||||
|
|
||||||
#: lib/bitset_stats.c:182
|
|
||||||
#, c-format
|
|
||||||
msgid "%u bitset_sets, %u cached (%.2f%%)\n"
|
|
||||||
msgstr "%u bitset_sets, %u stocate (cached) (%.2f%%)\n"
|
|
||||||
|
|
||||||
#: lib/bitset_stats.c:185
|
|
||||||
#, c-format
|
|
||||||
msgid "%u bitset_resets, %u cached (%.2f%%)\n"
|
|
||||||
msgstr "%u bitset_resets, %u stocate (cached) (%.2f%%)\n"
|
|
||||||
|
|
||||||
#: lib/bitset_stats.c:188
|
|
||||||
#, c-format
|
|
||||||
msgid "%u bitset_tests, %u cached (%.2f%%)\n"
|
|
||||||
msgstr "%u bitset_tests, %u stocate (cached) (%.2f%%)\n"
|
|
||||||
|
|
||||||
#: lib/bitset_stats.c:192
|
|
||||||
#, c-format
|
|
||||||
msgid "%u bitset_lists\n"
|
|
||||||
msgstr "%u bitset_lists\n"
|
|
||||||
|
|
||||||
#: lib/bitset_stats.c:194
|
|
||||||
msgid "count log histogram\n"
|
|
||||||
msgstr "numãrã histograma jurnal\n"
|
|
||||||
|
|
||||||
#: lib/bitset_stats.c:197
|
|
||||||
msgid "size log histogram\n"
|
|
||||||
msgstr "dimensiune histogramã jurnal\n"
|
|
||||||
|
|
||||||
#: lib/bitset_stats.c:200
|
|
||||||
msgid "density histogram\n"
|
|
||||||
msgstr "densitate histogramã\n"
|
|
||||||
|
|
||||||
#: lib/bitset_stats.c:214
|
|
||||||
msgid ""
|
|
||||||
"Bitset statistics:\n"
|
|
||||||
"\n"
|
|
||||||
msgstr ""
|
|
||||||
"Statistici bitset:\n"
|
|
||||||
"\n"
|
|
||||||
|
|
||||||
#: lib/bitset_stats.c:217
|
|
||||||
#, c-format
|
|
||||||
msgid "Accumulated runs = %u\n"
|
|
||||||
msgstr "Rulãri acumulate = %u\n"
|
|
||||||
|
|
||||||
#: lib/bitset_stats.c:261 lib/bitset_stats.c:266
|
|
||||||
msgid "Could not read stats file."
|
|
||||||
msgstr "Nu am putut citi fiºierul de statistici."
|
|
||||||
|
|
||||||
#: lib/bitset_stats.c:263
|
|
||||||
msgid "Bad stats file size.\n"
|
|
||||||
msgstr "Dimensiune fiºier cu statistici incorectã.\n"
|
|
||||||
|
|
||||||
#: lib/bitset_stats.c:289 lib/bitset_stats.c:291
|
|
||||||
msgid "Could not write stats file."
|
|
||||||
msgstr "Nu am putut scrie fiºier statistici."
|
|
||||||
|
|
||||||
#: lib/bitset_stats.c:294
|
|
||||||
msgid "Could not open stats file for writing."
|
|
||||||
msgstr "Nu am putut deschide fiºierul de statistici pentru scriere."
|
|
||||||
|
|
||||||
#: lib/getopt.c:688 lib/getopt.c:700
|
|
||||||
#, c-format
|
|
||||||
msgid "%s: option `%s' is ambiguous\n"
|
|
||||||
msgstr "%s: opþiunea `%s' este ambiguã\n"
|
|
||||||
|
|
||||||
#: lib/getopt.c:733 lib/getopt.c:737
|
|
||||||
#, c-format
|
|
||||||
msgid "%s: option `--%s' doesn't allow an argument\n"
|
|
||||||
msgstr "%s: opþiunea `--%s' nu permite un argument\n"
|
|
||||||
|
|
||||||
#: lib/getopt.c:746 lib/getopt.c:751
|
|
||||||
#, c-format
|
|
||||||
msgid "%s: option `%c%s' doesn't allow an argument\n"
|
|
||||||
msgstr "%s: opþiunea `%c%s' nu permite un argument\n"
|
|
||||||
|
|
||||||
#: lib/getopt.c:787 lib/getopt.c:800 lib/getopt.c:1089 lib/getopt.c:1102
|
|
||||||
#, c-format
|
|
||||||
msgid "%s: option `%s' requires an argument\n"
|
|
||||||
msgstr "%s: opþiunea `%s' necesitã un argument\n"
|
|
||||||
|
|
||||||
#: lib/getopt.c:838 lib/getopt.c:841
|
|
||||||
#, c-format
|
|
||||||
msgid "%s: unrecognized option `--%s'\n"
|
|
||||||
msgstr "%s: opþiune nerecunoscutã `--%s'\n"
|
|
||||||
|
|
||||||
#: lib/getopt.c:849 lib/getopt.c:852
|
|
||||||
#, c-format
|
|
||||||
msgid "%s: unrecognized option `%c%s'\n"
|
|
||||||
msgstr "%s: opþiune nerecunoscutã `%c%s'\n"
|
|
||||||
|
|
||||||
#: lib/getopt.c:899 lib/getopt.c:902
|
|
||||||
#, c-format
|
|
||||||
msgid "%s: illegal option -- %c\n"
|
|
||||||
msgstr "%s: opþiune ilegalã -- %c\n"
|
|
||||||
|
|
||||||
#: lib/getopt.c:908 lib/getopt.c:911
|
|
||||||
#, c-format
|
|
||||||
msgid "%s: invalid option -- %c\n"
|
|
||||||
msgstr "%s: opþiune ilegalã -- %c\n"
|
|
||||||
|
|
||||||
#: lib/getopt.c:958 lib/getopt.c:969 lib/getopt.c:1155 lib/getopt.c:1168
|
|
||||||
#, c-format
|
|
||||||
msgid "%s: option requires an argument -- %c\n"
|
|
||||||
msgstr "%s: opþiunea necesitã un argument -- %c\n"
|
|
||||||
|
|
||||||
#: lib/getopt.c:1021 lib/getopt.c:1032
|
|
||||||
#, c-format
|
|
||||||
msgid "%s: option `-W %s' is ambiguous\n"
|
|
||||||
msgstr "%s: opþiunea `-W %s' este ambiguã\n"
|
|
||||||
|
|
||||||
#: lib/getopt.c:1056 lib/getopt.c:1068
|
|
||||||
#, c-format
|
|
||||||
msgid "%s: option `-W %s' doesn't allow an argument\n"
|
|
||||||
msgstr "%s: opþiunea `-W %s' nu permite un argument\n"
|
|
||||||
|
|
||||||
#: lib/obstack.c:487 lib/obstack.c:490 lib/xmalloc.c:63
|
|
||||||
msgid "memory exhausted"
|
|
||||||
msgstr "memorie epuizatã"
|
|
||||||
|
|
||||||
#: lib/quotearg.c:236
|
|
||||||
msgid "`"
|
|
||||||
msgstr "`"
|
|
||||||
|
|
||||||
#: lib/quotearg.c:237
|
|
||||||
msgid "'"
|
|
||||||
msgstr "'"
|
|
||||||
|
|
||||||
#: lib/subpipe.c:187
|
|
||||||
#, c-format
|
|
||||||
msgid "subsidiary program `%s' could not be invoked"
|
|
||||||
msgstr "programul auxiliar `%s' nu poate fi invocat"
|
|
||||||
|
|
||||||
#: lib/subpipe.c:189
|
|
||||||
#, c-format
|
|
||||||
msgid "subsidiary program `%s' not found"
|
|
||||||
msgstr "programul auxiliar `%s' nu a fost gãsit"
|
|
||||||
|
|
||||||
#: lib/subpipe.c:191
|
|
||||||
#, c-format
|
|
||||||
msgid "subsidiary program `%s' failed"
|
|
||||||
msgstr "programul auxiliar `%s' a eºuat"
|
|
||||||
|
|
||||||
#: lib/subpipe.c:192
|
|
||||||
#, c-format
|
|
||||||
msgid "subsidiary program `%s' failed (exit status %d)"
|
|
||||||
msgstr "programul auxiliar `%s' a eºuat (stare de terminare %d)"
|
|
||||||
|
|
||||||
#: lib/timevar.c:476
|
|
||||||
msgid ""
|
|
||||||
"\n"
|
|
||||||
"Execution times (seconds)\n"
|
|
||||||
msgstr ""
|
|
||||||
"\n"
|
|
||||||
"Timp de execuþie (secunde)\n"
|
|
||||||
|
|
||||||
#: lib/timevar.c:526
|
|
||||||
msgid " TOTAL :"
|
|
||||||
msgstr " TOTAL :"
|
|
||||||
|
|
||||||
#: lib/timevar.c:562
|
|
||||||
#, c-format
|
|
||||||
msgid "time in %s: %ld.%06ld (%ld%%)\n"
|
|
||||||
msgstr "timp în %s: %ld.%06ld (%ld%%)\n"
|
|
||||||
958
po/ru.po
958
po/ru.po
@@ -1,958 +0,0 @@
|
|||||||
# ðÅÒÅ×ÏÄ ÓÏÏÂÝÅÎÉÊ bison.
|
|
||||||
# Copyright (C) 1999 Free Software Foundation, Inc.
|
|
||||||
# Dmitry S. Sivachenko <dima@Chg.RU>, 1999,2000,2001,2002.
|
|
||||||
#
|
|
||||||
msgid ""
|
|
||||||
msgstr ""
|
|
||||||
"Project-Id-Version: bison 1.875\n"
|
|
||||||
"Report-Msgid-Bugs-To: bug-bison@gnu.org\n"
|
|
||||||
"POT-Creation-Date: 2003-08-25 17:14+0200\n"
|
|
||||||
"PO-Revision-Date: 2003-01-01 20:35+0300\n"
|
|
||||||
"Last-Translator: Dmitry S. Sivachenko <mitya@cavia.pp.ru>\n"
|
|
||||||
"Language-Team: Russian <ru@li.org>\n"
|
|
||||||
"MIME-Version: 1.0\n"
|
|
||||||
"Content-Type: text/plain; charset=koi8-r\n"
|
|
||||||
"Content-Transfer-Encoding: 8-bit\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"
|
|
||||||
|
|
||||||
#: src/complain.c:56 lib/error.c:135 lib/error.c:163
|
|
||||||
msgid "Unknown system error"
|
|
||||||
msgstr "îÅÉÚ×ÅÓÔÎÁÑ ÓÉÓÔÅÍÎÁÑ ÏÛÉÂËÁ"
|
|
||||||
|
|
||||||
#: src/complain.c:79 src/complain.c:94
|
|
||||||
msgid "warning: "
|
|
||||||
msgstr "ÐÒÅÄÕÐÒÅÖÄÅÎÉÅ: "
|
|
||||||
|
|
||||||
#: src/complain.c:150 src/complain.c:166
|
|
||||||
msgid "fatal error: "
|
|
||||||
msgstr "ÆÁÔÁÌØÎÁÑ ÏÛÉÂËÁ: "
|
|
||||||
|
|
||||||
#: src/conflicts.c:75
|
|
||||||
#, c-format
|
|
||||||
msgid " Conflict between rule %d and token %s resolved as shift"
|
|
||||||
msgstr " ëÏÎÆÌÉËÔ ÍÅÖÄÕ ÐÒÁ×ÉÌÏÍ %d É ÌÅËÓÅÍÏÊ %s ÒÁÚÒÅÛÅÎ ÓÄ×ÉÇÏÍ"
|
|
||||||
|
|
||||||
#: src/conflicts.c:83
|
|
||||||
#, c-format
|
|
||||||
msgid " Conflict between rule %d and token %s resolved as reduce"
|
|
||||||
msgstr " ëÏÎÆÌÉËÔ ÍÅÖÄÕ ÐÒÁ×ÉÌÏÍ %d É ÌÅËÓÅÍÏÊ %s ÒÁÚÒÅÛÅÎ ×Ù×ÏÄÏÍ"
|
|
||||||
|
|
||||||
#: src/conflicts.c:90
|
|
||||||
#, c-format
|
|
||||||
msgid " Conflict between rule %d and token %s resolved as an error"
|
|
||||||
msgstr " ëÏÎÆÌÉËÔ ÍÅÖÄÕ ÐÒÁ×ÉÌÏÍ %d É ÌÅËÓÅÍÏÊ %s ÒÁÚÒÅÛÅÎ ËÁË ÏÛÉÂËÁ"
|
|
||||||
|
|
||||||
#: src/conflicts.c:398
|
|
||||||
#, c-format
|
|
||||||
msgid "conflicts: %d shift/reduce, %d reduce/reduce\n"
|
|
||||||
msgstr "ËÏÎÆÌÉËÔÙ: %d ÓÄ×ÉÇÁ/×Ù×ÏÄÁ, %d ×Ù×ÏÄÁ/×Ù×ÏÄÁ\n"
|
|
||||||
|
|
||||||
#: src/conflicts.c:401
|
|
||||||
#, c-format
|
|
||||||
msgid "conflicts: %d shift/reduce\n"
|
|
||||||
msgstr "ËÏÎÆÌÉËÔÙ: %d ÓÄ×ÉÇÁ/×Ù×ÏÄÁ\n"
|
|
||||||
|
|
||||||
#: src/conflicts.c:403
|
|
||||||
#, c-format
|
|
||||||
msgid "conflicts: %d reduce/reduce\n"
|
|
||||||
msgstr "ËÏÎÆÌÉËÔÙ: %d ×Ù×ÏÄÁ/×Ù×ÏÄÁ\n"
|
|
||||||
|
|
||||||
#: src/conflicts.c:421
|
|
||||||
#, c-format
|
|
||||||
msgid "State %d "
|
|
||||||
msgstr "óÏÓÔÏÑÎÉÅ %d "
|
|
||||||
|
|
||||||
#: src/conflicts.c:498
|
|
||||||
#, c-format
|
|
||||||
msgid "expected %d shift/reduce conflict"
|
|
||||||
msgid_plural "expected %d shift/reduce conflicts"
|
|
||||||
msgstr[0] "ÏÖÉÄÁÌÓÑ %d ËÏÎÆÌÉËÔ ÓÄ×ÉÇÁ/×Ù×ÏÄÁ"
|
|
||||||
msgstr[1] "ÏÖÉÄÁÌÏÓØ %d ËÏÎÆÌÉËÔÁ ÓÄ×ÉÇÁ/×Ù×ÏÄÁ"
|
|
||||||
msgstr[2] "ÏÖÉÄÁÌÏÓØ %d ËÏÎÆÌÉËÔÏ× ÓÄ×ÉÇÁ/×Ù×ÏÄÁ"
|
|
||||||
|
|
||||||
#: src/conflicts.c:503
|
|
||||||
msgid "expected 0 reduce/reduce conflicts"
|
|
||||||
msgstr "ÏÖÉÄÁÌÏÓØ 0 ËÏÎÆÌÉËÔÏ× ×Ù×ÏÄÁ/×Ù×ÏÄÁ"
|
|
||||||
|
|
||||||
#: src/files.c:99
|
|
||||||
#, c-format
|
|
||||||
msgid "cannot open file `%s'"
|
|
||||||
msgstr "ÎÅ ÕÄÁÅÔÓÑ ÏÔËÒÙÔØ ÆÁÊÌ `%s'"
|
|
||||||
|
|
||||||
#: src/files.c:115
|
|
||||||
msgid "I/O error"
|
|
||||||
msgstr "ÏÛÉÂËÁ ××ÏÄÁ-×Ù×ÏÄÁ"
|
|
||||||
|
|
||||||
#: src/files.c:118
|
|
||||||
msgid "cannot close file"
|
|
||||||
msgstr "ÎÅ ÕÄÁÅÔÓÑ ÚÁËÒÙÔØ ÆÁÊÌ"
|
|
||||||
|
|
||||||
#: src/files.c:336
|
|
||||||
#, fuzzy, c-format
|
|
||||||
msgid "conflicting outputs to file %s"
|
|
||||||
msgstr "ÐÒÏÔÉ×ÏÒÅÞÉ×ÙÅ ÚÎÁÞÅÎÉÑ ÁÓÓÏÃÉÁÔÉ×ÎÏÓÔÉ ÄÌÑ %s É %s"
|
|
||||||
|
|
||||||
#: src/getargs.c:186
|
|
||||||
#, c-format
|
|
||||||
msgid "Try `%s --help' for more information.\n"
|
|
||||||
msgstr "éÓÐÏÌØÚÕÊÔÅ `%s --help' ÄÌÑ ÄÏÐÏÌÎÉÔÅÌØÎÏÊ ÉÎÆÏÒÍÁÃÉÉ.\n"
|
|
||||||
|
|
||||||
#: src/getargs.c:192
|
|
||||||
msgid "GNU bison generates parsers for LALR(1) grammars.\n"
|
|
||||||
msgstr "GNU bison ÇÅÎÅÒÉÒÕÅÔ ÁÎÁÌÉÚÁÔÏÒÙ ÄÌÑ ÇÒÁÍÍÁÔÉË LALR(1).\n"
|
|
||||||
|
|
||||||
#: src/getargs.c:196
|
|
||||||
#, c-format
|
|
||||||
msgid "Usage: %s [OPTION]... FILE\n"
|
|
||||||
msgstr "éÓÐÏÌØÚÏ×ÁÎÉÅ: %s [ëìàþé]... æáêì\n"
|
|
||||||
|
|
||||||
#: src/getargs.c:200
|
|
||||||
msgid ""
|
|
||||||
"If a long option shows an argument as mandatory, then it is mandatory\n"
|
|
||||||
"for the equivalent short option also. Similarly for optional arguments.\n"
|
|
||||||
msgstr ""
|
|
||||||
"åÓÌÉ ÄÌÉÎÎÁÑ ÆÏÒÍÁ ËÌÀÞÁ ÏÐÒÅÄÅÌÑÅÔ ÁÒÇÕÍÅÎÔ ËÁË ÏÂÑÚÁÔÅÌØÎÙÊ, ÔÏ ÏÎ ÔÁËÖÅ\n"
|
|
||||||
"Ñ×ÌÑÅÔÓÑ ÏÂÑÚÁÔÅÌØÎÙÍ ÄÌÑ ËÏÒÏÔËÏÊ ÆÏÒÍÙ. ôÏ ÖÅ ËÁÓÁÅÔÓÑ ÎÅÏÂÑÚÁÔÅÌØÎÙÈ\n"
|
|
||||||
"ÁÒÇÕÍÅÎÔÏ×.\n"
|
|
||||||
|
|
||||||
#: src/getargs.c:206
|
|
||||||
msgid ""
|
|
||||||
"Operation modes:\n"
|
|
||||||
" -h, --help display this help and exit\n"
|
|
||||||
" -V, --version output version information and exit\n"
|
|
||||||
" -y, --yacc emulate POSIX yacc\n"
|
|
||||||
msgstr ""
|
|
||||||
"òÅÖÉÍÙ ÆÕÎËÃÉÏÎÉÒÏ×ÁÎÉÑ:\n"
|
|
||||||
" -h, --help ×Ù×ÅÓÔÉ ÜÔÕ ÓÐÒÁ×ËÕ É ×ÙÊÔÉ\n"
|
|
||||||
" -V, --version ×Ù×ÅÓÔÉ ÉÎÆÏÒÍÁÃÉÀ Ï ×ÅÒÓÉÉ É ×ÙÊÔÉ\n"
|
|
||||||
" -y, --yacc ÜÍÕÌÉÒÏ×ÁÔØ POSIX yacc\n"
|
|
||||||
|
|
||||||
#: src/getargs.c:213
|
|
||||||
msgid ""
|
|
||||||
"Parser:\n"
|
|
||||||
" -S, --skeleton=FILE specify the skeleton to use\n"
|
|
||||||
" -t, --debug instrument the parser for debugging\n"
|
|
||||||
" --locations enable locations computation\n"
|
|
||||||
" -p, --name-prefix=PREFIX prepend PREFIX to the external symbols\n"
|
|
||||||
" -l, --no-lines don't generate `#line' directives\n"
|
|
||||||
" -n, --no-parser generate the tables only\n"
|
|
||||||
" -k, --token-table include a table of token names\n"
|
|
||||||
msgstr ""
|
|
||||||
"áÎÁÌÉÚÁÔÏÒ:\n"
|
|
||||||
" -S, --skeleton=æáêì ÕËÁÚÁÔØ ÆÁÊÌ ÛÁÂÌÏÎÁ\n"
|
|
||||||
" -t, --debug ÎÁÓÔÒÏÉÔØ ÁÎÁÌÉÚÁÔÏÒ ÄÌÑ ÏÔÌÁÄËÉ\n"
|
|
||||||
" --locations ×ËÌÀÞÉÔØ ×ÙÞÉÓÌÅÎÉÅ ÍÅÓÔÏÐÏÌÏÖÅÎÉÊ\n"
|
|
||||||
" -p, --name-prefix=ðòåæéëó ÐÏÄÓÔÁ×ÉÔØ ðòåæéëó ÄÌÑ ×ÎÅÛÎÉÈ ÓÉÍ×ÏÌÏ×\n"
|
|
||||||
" -l, --no-lines ÎÅ ÇÅÎÅÒÉÒÏ×ÁÔØ ÄÉÒÅËÔÉ×Ù `#line'\n"
|
|
||||||
" -n, --no-parser ÇÅÎÅÒÉÒÏ×ÁÔØ ÔÏÌØËÏ ÔÁÂÌÉÃÙ\n"
|
|
||||||
" -k, --token-table ×ËÌÀÞÉÔØ ÔÁÂÌÉÃÕ ÉÍÅÎ ÌÅËÓÅÍ\n"
|
|
||||||
|
|
||||||
#: src/getargs.c:225
|
|
||||||
msgid ""
|
|
||||||
"Output:\n"
|
|
||||||
" -d, --defines also produce a header file\n"
|
|
||||||
" -r, --report=THINGS also produce details on the automaton\n"
|
|
||||||
" -v, --verbose same as `--report=state'\n"
|
|
||||||
" -b, --file-prefix=PREFIX specify a PREFIX for output files\n"
|
|
||||||
" -o, --output=FILE leave output to FILE\n"
|
|
||||||
" -g, --graph also produce a VCG description of the "
|
|
||||||
"automaton\n"
|
|
||||||
msgstr ""
|
|
||||||
"÷Ù×ÏÄ:\n"
|
|
||||||
" -d, --defines ÓÏÚÄÁÔØ ÔÁËÖÅ ÆÁÊÌ ÚÁÇÏÌÏ×ËÏ×\n"
|
|
||||||
" -r, --report=THINGS ÓÏÚÄÁÔØ ÔÁËÖÅ ÐÏÑÓÎÅÎÉÑ × Á×ÔÏÍÁÔÕ\n"
|
|
||||||
" -v, --verbose ÔÏ ÖÅ, ÞÔÏ É `--report=state'\n"
|
|
||||||
" -b, --file-prefix=ðòåæéëó ÕËÁÚÁÔØ ðòåæéëó ÄÌÑ ×ÙÈÏÄÎÙÈ ÆÁÊÌÏ×\n"
|
|
||||||
" -o, --output=æáêì ÐÏÍÅÓÔÉÔØ ÒÅÚÕÌØÔÁÔ × æáêì\n"
|
|
||||||
" -g, --graph ÓÏÚÄÁÔØ ÔÁËÖÅ ÐÏÑÓÎÅÎÉÑ Ë Á×ÔÏÍÁÔÕ × ×ÉÄÅ \n"
|
|
||||||
" VCG-ÇÒÁÆÁ\n"
|
|
||||||
|
|
||||||
#: src/getargs.c:236
|
|
||||||
msgid ""
|
|
||||||
"THINGS is a list of comma separated words that can include:\n"
|
|
||||||
" `state' describe the states\n"
|
|
||||||
" `itemset' complete the core item sets with their closure\n"
|
|
||||||
" `lookahead' explicitly associate lookaheads to items\n"
|
|
||||||
" `solved' describe shift/reduce conflicts solving\n"
|
|
||||||
" `all' include all the above information\n"
|
|
||||||
" `none' disable the report\n"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: src/getargs.c:247
|
|
||||||
msgid "Report bugs to <bug-bison@gnu.org>.\n"
|
|
||||||
msgstr "ïÛÉÂËÉ ÓÏÏÂÝÁÊÔÅ ÐÏ ÁÄÒÅÓÕ <bug-bison@gnu.org>.\n"
|
|
||||||
|
|
||||||
#: src/getargs.c:264
|
|
||||||
#, c-format
|
|
||||||
msgid "bison (GNU Bison) %s"
|
|
||||||
msgstr "bison (GNU Bison) %s"
|
|
||||||
|
|
||||||
#: src/getargs.c:266
|
|
||||||
msgid "Written by Robert Corbett and Richard Stallman.\n"
|
|
||||||
msgstr "á×ÔÏÒÙ: òÏÂÅÒÔ ëÏÒÂÅÔ É òÉÞÁÒÄ óÔÏÌÍÅÎ.\n"
|
|
||||||
|
|
||||||
#: src/getargs.c:270
|
|
||||||
#, c-format
|
|
||||||
msgid "Copyright (C) %d Free Software Foundation, Inc.\n"
|
|
||||||
msgstr "Copyright (C) %d Free Software Foundation, Inc.\n"
|
|
||||||
|
|
||||||
#: src/getargs.c:272
|
|
||||||
msgid ""
|
|
||||||
"This is free software; see the source for copying conditions. There is NO\n"
|
|
||||||
"warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n"
|
|
||||||
msgstr ""
|
|
||||||
"üÔÏ Ó×ÏÂÏÄÎÁÑ ÐÒÏÇÒÁÍÍÁ; ÕÓÌÏ×ÉÑ ÒÁÓÐÒÏÓÔÒÁÎÅÎÉÑ ÓÍÏÔÒÉÔÅ × ÉÓÈÏÄÎÙÈ "
|
|
||||||
"ÔÅËÓÔÁÈ.\n"
|
|
||||||
"îéëáëéè ÇÁÒÁÎÔÉÊ ÎÅ ÐÒÅÄÏÓÔÁ×ÌÑÅÔÓÑ, ÄÁÖÅ ÇÁÒÁÎÔÉÉ ðïìåúîïóôé ÉÌÉ "
|
|
||||||
"ðòéçïäîïóôé\n"
|
|
||||||
"äìñ ïðòåäåìåîîïê ãåìé.\n"
|
|
||||||
|
|
||||||
#: src/getargs.c:438
|
|
||||||
#, c-format
|
|
||||||
msgid "missing operand after `%s'"
|
|
||||||
msgstr "ÐÏÓÌÅ `%s' ÐÒÏÐÕÝÅÎ ÏÐÅÒÁÎÄ"
|
|
||||||
|
|
||||||
#: src/getargs.c:440
|
|
||||||
#, c-format
|
|
||||||
msgid "extra operand `%s'"
|
|
||||||
msgstr "ÌÉÛÎÉÊ ÏÐÅÒÁÎÄ `%s'"
|
|
||||||
|
|
||||||
#: src/gram.c:139
|
|
||||||
msgid "empty"
|
|
||||||
msgstr "ÐÕÓÔÏ"
|
|
||||||
|
|
||||||
#: src/gram.c:233
|
|
||||||
msgid "Grammar"
|
|
||||||
msgstr "çÒÁÍÍÁÔÉËÁ"
|
|
||||||
|
|
||||||
#: src/gram.c:321 src/reduce.c:394
|
|
||||||
msgid "warning"
|
|
||||||
msgstr "ÐÒÅÄÕÐÒÅÖÄÅÎÉÅ"
|
|
||||||
|
|
||||||
#: src/main.c:124
|
|
||||||
msgid "rule never reduced because of conflicts"
|
|
||||||
msgstr "ÐÒÁ×ÉÌÏ ÎÅ Ó×ÅÄÅÎÏ ÉÚ-ÚÁ ËÏÎÆÌÉËÔÏ×"
|
|
||||||
|
|
||||||
#: src/parse-gram.y:353
|
|
||||||
msgid "POSIX forbids declarations in the grammar"
|
|
||||||
msgstr "POSIX ÚÁÐÒÅÝÁÅÔ ÐÏÍÅÝÁÔØ ÏÐÉÓÁÎÉÑ × ÇÒÁÍÍÁÔÉËÅ"
|
|
||||||
|
|
||||||
#: src/parse-gram.y:476
|
|
||||||
msgid "missing identifier in parameter declaration"
|
|
||||||
msgstr "× ÏÐÉÓÁÎÉÉ ÐÁÒÁÍÅÔÒÁ ÏÔÓÕÔÓÔ×ÕÅÔ ÉÄÅÎÔÉÆÉËÁÔÏÒ"
|
|
||||||
|
|
||||||
#: src/print.c:49
|
|
||||||
#, c-format
|
|
||||||
msgid " type %d is %s\n"
|
|
||||||
msgstr " ÔÉÐ %d Ñ×ÌÑÅÔÓÑ %s\n"
|
|
||||||
|
|
||||||
#: src/print.c:165
|
|
||||||
#, c-format
|
|
||||||
msgid "shift, and go to state %d\n"
|
|
||||||
msgstr "ÓÄ×ÉÇ, É ÐÅÒÅÈÏÄ × ÓÏÓÔÏÑÎÉÅ %d\n"
|
|
||||||
|
|
||||||
#: src/print.c:167
|
|
||||||
#, c-format
|
|
||||||
msgid "go to state %d\n"
|
|
||||||
msgstr "ÐÅÒÅÈÏÄ × ÓÏÓÔÏÑÎÉÅ %d\n"
|
|
||||||
|
|
||||||
#: src/print.c:204
|
|
||||||
msgid "error (nonassociative)\n"
|
|
||||||
msgstr "ÏÛÉÂËÁ (ÎÅÁÓÓÏÃÉÁÔÉ×ÎÁÑ)\n"
|
|
||||||
|
|
||||||
#: src/print.c:292
|
|
||||||
#, c-format
|
|
||||||
msgid "reduce using rule %d (%s)"
|
|
||||||
msgstr "×Ù×ÏÄ Ó ÉÓÐÏÌØÚÏ×ÁÎÉÅÍ ÐÒÁ×ÉÌÁ %d (%s)"
|
|
||||||
|
|
||||||
#: src/print.c:294
|
|
||||||
msgid "accept"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: src/print.c:325 src/print.c:391
|
|
||||||
msgid "$default"
|
|
||||||
msgstr "$default"
|
|
||||||
|
|
||||||
#: src/print.c:420
|
|
||||||
#, c-format
|
|
||||||
msgid "state %d"
|
|
||||||
msgstr "ÓÏÓÔÏÑÎÉÅ %d"
|
|
||||||
|
|
||||||
#: src/print.c:456
|
|
||||||
msgid "Terminals, with rules where they appear"
|
|
||||||
msgstr "ôÅÒÍÉÎÁÌØÎÙÅ ÓÉÍ×ÏÌÙ Ó ÐÒÁ×ÉÌÁÍÉ, × ËÏÔÏÒÙÈ ÏÎÉ ÐÏÑ×ÌÑÀÔÓÑ"
|
|
||||||
|
|
||||||
#: src/print.c:483
|
|
||||||
msgid "Nonterminals, with rules where they appear"
|
|
||||||
msgstr "îÅÔÅÒÍÉÎÁÌØÎÙÅ ÓÉÍ×ÏÌÙ Ó ÐÒÁ×ÉÌÁÍÉ, × ËÏÔÏÒÙÈ ÏÎÉ ÐÏÑ×ÌÑÀÔÓÑ"
|
|
||||||
|
|
||||||
#: src/print.c:512
|
|
||||||
msgid " on left:"
|
|
||||||
msgstr " ÎÁÌÅ×Ï:"
|
|
||||||
|
|
||||||
#: src/print.c:527
|
|
||||||
msgid " on right:"
|
|
||||||
msgstr " ÎÁÐÒÁ×Ï:"
|
|
||||||
|
|
||||||
#: src/print.c:555
|
|
||||||
msgid "Rules never reduced"
|
|
||||||
msgstr "ðÒÁ×ÉÌÁ ÎÅ Ó×ÅÄÅÎÙ"
|
|
||||||
|
|
||||||
#: src/reader.c:53
|
|
||||||
#, c-format
|
|
||||||
msgid "multiple %s declarations"
|
|
||||||
msgstr "ÍÎÏÖÅÓÔ×ÅÎÎÏÅ ÏÐÉÓÁÎÉÅ %s"
|
|
||||||
|
|
||||||
#: src/reader.c:115
|
|
||||||
#, c-format
|
|
||||||
msgid "result type clash on merge function %s: <%s> != <%s>"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: src/reader.c:213
|
|
||||||
#, c-format
|
|
||||||
msgid "rule given for %s, which is a token"
|
|
||||||
msgstr "ÐÒÁ×ÉÌÏ ÚÁÄÁÎÏ ÄÌÑ %s, ËÏÔÏÒÙÊ Ñ×ÌÑÅÔÓÑ ÌÅËÓÅÍÏÊ"
|
|
||||||
|
|
||||||
#: src/reader.c:242
|
|
||||||
#, c-format
|
|
||||||
msgid "type clash on default action: <%s> != <%s>"
|
|
||||||
msgstr "ËÏÎÆÌÉËÔ ÔÉÐÏ× ÎÁ ÄÅÊÓÔ×ÉÉ ÐÏ ÕÍÏÌÞÁÎÉÀ: <%s> != <%s>"
|
|
||||||
|
|
||||||
#: src/reader.c:248
|
|
||||||
msgid "empty rule for typed nonterminal, and no action"
|
|
||||||
msgstr ""
|
|
||||||
"ÐÕÓÔÏÅ ÐÒÁ×ÉÌÏ ÄÌÑ ÔÉÐÉÚÉÒÏ×ÁÎÎÏÇÏ ÎÅÔÅÒÍÉÎÁÌØÎÏÇÏ ÓÉÍ×ÏÌÁ, É ÎÅÔ ÄÅÊÓÔ×ÉÑ"
|
|
||||||
|
|
||||||
#: src/reader.c:318 src/reader.c:332 src/reader.c:345
|
|
||||||
#, c-format
|
|
||||||
msgid "only one %s allowed per rule"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: src/reader.c:328 src/reader.c:343
|
|
||||||
#, c-format
|
|
||||||
msgid "%s affects only GLR parsers"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: src/reader.c:330
|
|
||||||
#, c-format
|
|
||||||
msgid "%s must be followed by positive number"
|
|
||||||
msgstr "ÚÁ %s ÄÏÌÖÎÏ ÓÌÅÄÏ×ÁÔØ ÐÏÌÏÖÉÔÅÌØÎÏÅ ÞÉÓÌÏ"
|
|
||||||
|
|
||||||
#: src/reader.c:487
|
|
||||||
msgid "no rules in the input grammar"
|
|
||||||
msgstr "ÏÔÓÕÔÓÔ×ÕÀÔ ÐÒÁ×ÉÌÁ ×Ï ×ÈÏÄÎÏÊ ÇÒÁÍÍÁÔÉËÅ"
|
|
||||||
|
|
||||||
#: src/reduce.c:242
|
|
||||||
msgid "useless rule"
|
|
||||||
msgstr "ÂÅÓÐÏÌÅÚÎÏÅ ÐÒÁ×ÉÌÏ"
|
|
||||||
|
|
||||||
#: src/reduce.c:303
|
|
||||||
#, c-format
|
|
||||||
msgid "useless nonterminal: %s"
|
|
||||||
msgstr "ÂÅÓÐÏÌÅÚÎÙÅ ÎÅÔÅÒÍÉÎÁÌ: %s"
|
|
||||||
|
|
||||||
#: src/reduce.c:351
|
|
||||||
msgid "Useless nonterminals"
|
|
||||||
msgstr "âÅÓÐÏÌÅÚÎÙÅ ÎÅÔÅÒÍÉÎÁÌÙ"
|
|
||||||
|
|
||||||
#: src/reduce.c:364
|
|
||||||
msgid "Terminals which are not used"
|
|
||||||
msgstr "îÅÉÓÐÏÌØÚÏ×ÁÎÎÙÅ ÔÅÒÍÉÎÁÌÙ"
|
|
||||||
|
|
||||||
#: src/reduce.c:373
|
|
||||||
msgid "Useless rules"
|
|
||||||
msgstr "âÅÓÐÏÌÅÚÎÙÅ ÐÒÁ×ÉÌÁ"
|
|
||||||
|
|
||||||
#: src/reduce.c:389
|
|
||||||
#, c-format
|
|
||||||
msgid "%d rule never reduced\n"
|
|
||||||
msgid_plural "%d rules never reduced\n"
|
|
||||||
msgstr[0] "%d ÐÒÁ×ÉÌÏ ÎÅ Ó×ÅÄÅÎÏ\n"
|
|
||||||
msgstr[1] "%d ÐÒÁ×ÉÌÁ ÎÅ Ó×ÅÄÅÎÏ\n"
|
|
||||||
msgstr[2] "%d ÐÒÁ×ÉÌ ÎÅ Ó×ÅÄÅÎÏ\n"
|
|
||||||
|
|
||||||
#: src/reduce.c:397
|
|
||||||
#, c-format
|
|
||||||
msgid "%d useless nonterminal"
|
|
||||||
msgid_plural "%d useless nonterminals"
|
|
||||||
msgstr[0] "%d ÂÅÓÐÏÌÅÚÎÙÊ ÎÅÔÅÒÍÉÎÁÌ"
|
|
||||||
msgstr[1] "%d ÂÅÓÐÏÌÅÚÎÙÈ ÎÅÔÅÒÍÉÎÁÌÁ"
|
|
||||||
msgstr[2] "%d ÂÅÓÐÏÌÅÚÎÙÈ ÎÅÔÅÒÍÉÎÁÌÏ×"
|
|
||||||
|
|
||||||
#: src/reduce.c:403
|
|
||||||
msgid " and "
|
|
||||||
msgstr " É "
|
|
||||||
|
|
||||||
#: src/reduce.c:406
|
|
||||||
#, c-format
|
|
||||||
msgid "%d useless rule"
|
|
||||||
msgid_plural "%d useless rules"
|
|
||||||
msgstr[0] "%d ÂÅÓÐÏÌÅÚÎÏÅ ÐÒÁ×ÉÌÏ"
|
|
||||||
msgstr[1] "%d ÂÅÓÐÏÌÅÚÎÙÈ ÐÒÁ×ÉÌÁ"
|
|
||||||
msgstr[2] "%d ÂÅÓÐÏÌÅÚÎÙÈ ÐÒÁ×ÉÌ"
|
|
||||||
|
|
||||||
#: src/reduce.c:436
|
|
||||||
#, c-format
|
|
||||||
msgid "start symbol %s does not derive any sentence"
|
|
||||||
msgstr "ÎÁÞÁÌØÎÙÊ ÓÉÍ×ÏÌ %s ÎÅ ×Ù×ÏÄÉÔ ÎÉ ÏÄÎÏÇÏ ÐÒÅÄÌÏÖÅÎÉÑ"
|
|
||||||
|
|
||||||
#: src/scan-gram.l:160
|
|
||||||
msgid "stray `,' treated as white space"
|
|
||||||
msgstr "ÌÉÛÎÑÑ `,', ÓÞÉÔÁÅÔÓÑ ÐÒÏÂÅÌÏÍ"
|
|
||||||
|
|
||||||
#: src/scan-gram.l:221
|
|
||||||
#, c-format
|
|
||||||
msgid "invalid directive: %s"
|
|
||||||
msgstr "ÎÅ×ÅÒÎÁÑ ÄÉÒÅËÔÉ×Á: %s"
|
|
||||||
|
|
||||||
#: src/scan-gram.l:241 src/scan-gram.l:804 src/scan-gram.l:873
|
|
||||||
#, c-format
|
|
||||||
msgid "integer out of range: %s"
|
|
||||||
msgstr "×ÙÈÏÄ ÚÁ ÇÒÁÎÉÃÙ ÄÉÁÐÁÚÏÎÁ ÃÅÌÏÇÏ: %s"
|
|
||||||
|
|
||||||
#: src/scan-gram.l:283
|
|
||||||
#, c-format
|
|
||||||
msgid "invalid character: %s"
|
|
||||||
msgstr "ÎÅÄÏÐÕÓÔÉÍÙÊ ÓÉÍ×ÏÌ: %s"
|
|
||||||
|
|
||||||
#: src/scan-gram.l:412 src/scan-gram.l:422 src/scan-gram.l:441
|
|
||||||
#, c-format
|
|
||||||
msgid "invalid escape sequence: %s"
|
|
||||||
msgstr "ÎÅÄÏÐÕÓÔÉÍÁÑ ÜËÒÁÎÉÒÕÀÝÁÑ ÐÏÓÌÅÄÏ×ÁÔÅÌØÎÏÓÔØ: %s"
|
|
||||||
|
|
||||||
#: src/scan-gram.l:446
|
|
||||||
#, c-format
|
|
||||||
msgid "unrecognized escape sequence: %s"
|
|
||||||
msgstr "ÎÅÒÁÓÐÏÚÎÁÎÎÁÑ ÜËÒÁÎÉÒÕÀÝÁÑ ÐÏÓÌÅÄÏ×ÁÔÅÌØÎÏÓÔØ: %s"
|
|
||||||
|
|
||||||
#: src/scan-gram.l:534
|
|
||||||
#, c-format
|
|
||||||
msgid "missing `{' in `%s'"
|
|
||||||
msgstr "× `%s' ÏÔÓÕÔÓÔ×ÕÅÔ `{'"
|
|
||||||
|
|
||||||
#: src/scan-gram.l:774
|
|
||||||
#, c-format
|
|
||||||
msgid "$$ of `%s' has no declared type"
|
|
||||||
msgstr "$$ × `%s' ÎÅ ÉÍÅÅÔ ÏÐÉÓÁÎÎÏÇÏ ÔÉÐÁ"
|
|
||||||
|
|
||||||
#: src/scan-gram.l:795
|
|
||||||
#, c-format
|
|
||||||
msgid "$%d of `%s' has no declared type"
|
|
||||||
msgstr "$%d ÉÚ `%s' ÎÅ ÉÍÅÅÔ ÏÐÉÓÁÎÎÏÇÏ ÔÉÐÁ"
|
|
||||||
|
|
||||||
#: src/scan-gram.l:840 src/scan-gram.l:908
|
|
||||||
#, c-format
|
|
||||||
msgid "invalid value: %s"
|
|
||||||
msgstr "ÎÅÄÏÐÕÓÔÉÍÏÅ ÚÎÁÞÅÎÉÅ: %s"
|
|
||||||
|
|
||||||
#: src/scan-gram.l:996
|
|
||||||
#, c-format
|
|
||||||
msgid "missing `%s' at end of file"
|
|
||||||
msgstr "ÏÔÓÕÔÓÔ×ÕÅÔ `%s' × ËÏÎÃÅ ÆÁÊÌÁ"
|
|
||||||
|
|
||||||
#: src/symlist.c:97 src/symlist.c:108
|
|
||||||
msgid "invalid $ value"
|
|
||||||
msgstr "ÎÅ×ÅÒÎÏÅ $ ÚÎÁÞÅÎÉÅ"
|
|
||||||
|
|
||||||
#: src/symtab.c:84
|
|
||||||
#, c-format
|
|
||||||
msgid "type redeclaration for %s"
|
|
||||||
msgstr "ÐÏ×ÔÏÒÎÏÅ ÏÐÉÓÁÎÉÅ ÔÉÐÁ ÄÌÑ %s"
|
|
||||||
|
|
||||||
#: src/symtab.c:101 src/symtab.c:119
|
|
||||||
#, c-format
|
|
||||||
msgid "%s redeclaration for %s"
|
|
||||||
msgstr "ÐÏ×ÔÏÒÎÏÅ ÏÐÉÓÁÎÉÅ %s ÄÌÑ %s"
|
|
||||||
|
|
||||||
#: src/symtab.c:138
|
|
||||||
#, c-format
|
|
||||||
msgid "redefining precedence of %s"
|
|
||||||
msgstr "ÐÅÒÅÏÐÒÅÄÅÌÅÎÉÅ ÐÒÉÏÒÉÔÅÔÁ ÄÌÑ %s"
|
|
||||||
|
|
||||||
#: src/symtab.c:156
|
|
||||||
#, c-format
|
|
||||||
msgid "symbol %s redefined"
|
|
||||||
msgstr "ÐÏ×ÔÏÒÎÏÅ ÏÐÒÅÄÅÌÅÎÉÅ ÓÉÍ×ÏÌÁ %s"
|
|
||||||
|
|
||||||
#: src/symtab.c:179
|
|
||||||
#, c-format
|
|
||||||
msgid "redefining user token number of %s"
|
|
||||||
msgstr "ÐÅÒÅÏÐÒÅÄÅÌÅÎÉÅ ÎÏÍÅÒÁ ÌÅËÓÅÍÙ ÐÏÌØÚÏ×ÁÔÅÌÑ ÄÌÑ %s"
|
|
||||||
|
|
||||||
#: src/symtab.c:206
|
|
||||||
#, c-format
|
|
||||||
msgid "symbol %s is used, but is not defined as a token and has no rules"
|
|
||||||
msgstr "ÓÉÍ×ÏÌ %s ÉÓÐÏÌØÚÕÅÔÓÑ, ÎÏ ÎÅ ÏÐÒÅÄÅÌÅÎ ËÁË ÌÅËÓÅÍÁ É ÎÅ ÉÍÅÅÔ ÐÒÁ×ÉÌ"
|
|
||||||
|
|
||||||
#: src/symtab.c:231
|
|
||||||
#, c-format
|
|
||||||
msgid "symbol `%s' used more than once as a literal string"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: src/symtab.c:234
|
|
||||||
#, c-format
|
|
||||||
msgid "symbol `%s' given more than one literal string"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: src/symtab.c:270
|
|
||||||
#, c-format
|
|
||||||
msgid "conflicting precedences for %s and %s"
|
|
||||||
msgstr "ÐÒÏÔÉ×ÏÒÅÞÉ×ÙÅ ÐÒÉÏÒÉÔÅÔÙ ÄÌÑ %s É %s"
|
|
||||||
|
|
||||||
#: src/symtab.c:282
|
|
||||||
#, c-format
|
|
||||||
msgid "conflicting associativities for %s (%s) and %s (%s)"
|
|
||||||
msgstr "ÐÒÏÔÉ×ÏÒÅÞÉ×ÙÅ ÚÎÁÞÅÎÉÑ ÁÓÓÏÃÉÁÔÉ×ÎÏÓÔÉ ÄÌÑ %s (%s) É %s (%s)"
|
|
||||||
|
|
||||||
#: src/symtab.c:367
|
|
||||||
#, c-format
|
|
||||||
msgid "tokens %s and %s both assigned number %d"
|
|
||||||
msgstr "ÏÂÅÉÍ ÌÅËÓÅÍÁÍ %s É %s ÐÒÉÓ×ÏÅÎ ÎÏÍÅÒ %d"
|
|
||||||
|
|
||||||
#: src/symtab.c:590
|
|
||||||
#, c-format
|
|
||||||
msgid "the start symbol %s is undefined"
|
|
||||||
msgstr "ÎÁÞÁÌØÎÙÊ ÓÉÍ×ÏÌ %s ÎÅÏÐÒÅÄÅÌÅÎ"
|
|
||||||
|
|
||||||
#: src/symtab.c:594
|
|
||||||
#, c-format
|
|
||||||
msgid "the start symbol %s is a token"
|
|
||||||
msgstr "ÎÁÞÁÌØÎÙÊ ÓÉÍ×ÏÌ %s Ñ×ÌÑÅÔÓÑ ÌÅËÓÅÍÏÊ"
|
|
||||||
|
|
||||||
#: lib/argmatch.c:135
|
|
||||||
#, c-format
|
|
||||||
msgid "invalid argument %s for %s"
|
|
||||||
msgstr "ÎÅÄÏÐÕÓÔÉÍÙÊ ÁÒÇÕÍÅÎÔ %s ÄÌÑ %s"
|
|
||||||
|
|
||||||
#: lib/argmatch.c:136
|
|
||||||
#, c-format
|
|
||||||
msgid "ambiguous argument %s for %s"
|
|
||||||
msgstr "ÎÅÏÄÎÏÚÎÁÞÎÙÊ ÁÒÇÕÍÅÎÔ %s ÄÌÑ %s"
|
|
||||||
|
|
||||||
#: lib/argmatch.c:155
|
|
||||||
msgid "Valid arguments are:"
|
|
||||||
msgstr "äÏÐÕÓÔÉÍÙÅ ÁÒÇÕÍÅÎÔÙ:"
|
|
||||||
|
|
||||||
#: lib/bitset_stats.c:179
|
|
||||||
#, c-format
|
|
||||||
msgid "%u bitset_allocs, %u freed (%.2f%%).\n"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: lib/bitset_stats.c:182
|
|
||||||
#, c-format
|
|
||||||
msgid "%u bitset_sets, %u cached (%.2f%%)\n"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: lib/bitset_stats.c:185
|
|
||||||
#, c-format
|
|
||||||
msgid "%u bitset_resets, %u cached (%.2f%%)\n"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: lib/bitset_stats.c:188
|
|
||||||
#, c-format
|
|
||||||
msgid "%u bitset_tests, %u cached (%.2f%%)\n"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: lib/bitset_stats.c:192
|
|
||||||
#, c-format
|
|
||||||
msgid "%u bitset_lists\n"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: lib/bitset_stats.c:194
|
|
||||||
msgid "count log histogram\n"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: lib/bitset_stats.c:197
|
|
||||||
msgid "size log histogram\n"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: lib/bitset_stats.c:200
|
|
||||||
msgid "density histogram\n"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: lib/bitset_stats.c:214
|
|
||||||
msgid ""
|
|
||||||
"Bitset statistics:\n"
|
|
||||||
"\n"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: lib/bitset_stats.c:217
|
|
||||||
#, c-format
|
|
||||||
msgid "Accumulated runs = %u\n"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: lib/bitset_stats.c:261 lib/bitset_stats.c:266
|
|
||||||
msgid "Could not read stats file."
|
|
||||||
msgstr "îÅ ÕÄÁÅÔÓÑ ÐÒÏÞÉÔÁÔØ ÆÁÊÌ ÓÔÁÔÉÓÔÉËÉ."
|
|
||||||
|
|
||||||
#: lib/bitset_stats.c:263
|
|
||||||
msgid "Bad stats file size.\n"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: lib/bitset_stats.c:289 lib/bitset_stats.c:291
|
|
||||||
msgid "Could not write stats file."
|
|
||||||
msgstr "îÅ ÕÄÁÅÔÓÑ ÚÁÐÉÓÁÔØ × ÆÁÊÌ ÓÔÁÔÉÓÔÉËÉ."
|
|
||||||
|
|
||||||
#: lib/bitset_stats.c:294
|
|
||||||
msgid "Could not open stats file for writing."
|
|
||||||
msgstr "îÅ ÕÄÁÅÔÓÑ ÏÔËÒÙÔØ ÆÁÊÌ ÓÔÁÔÉÓÔÉËÉ ÄÌÑ ÚÁÐÉÓÉ."
|
|
||||||
|
|
||||||
#: lib/getopt.c:688 lib/getopt.c:700
|
|
||||||
#, c-format
|
|
||||||
msgid "%s: option `%s' is ambiguous\n"
|
|
||||||
msgstr "%s: ÎÅÏÄÎÏÚÎÁÞÎÙÊ ËÌÀÞ `%s'\n"
|
|
||||||
|
|
||||||
#: lib/getopt.c:733 lib/getopt.c:737
|
|
||||||
#, c-format
|
|
||||||
msgid "%s: option `--%s' doesn't allow an argument\n"
|
|
||||||
msgstr "%s: ËÌÀÞ `--%s' ÄÏÌÖÅÎ ÉÓÐÏÌØÚÏ×ÁÔØÓÑ ÂÅÚ ÁÒÇÕÍÅÎÔÁ\n"
|
|
||||||
|
|
||||||
#: lib/getopt.c:746 lib/getopt.c:751
|
|
||||||
#, c-format
|
|
||||||
msgid "%s: option `%c%s' doesn't allow an argument\n"
|
|
||||||
msgstr "%s: ËÌÀÞ `%c%s' ÄÏÌÖÅÎ ÉÓÐÏÌØÚÏ×ÁÔØÓÑ ÂÅÚ ÁÒÇÕÍÅÎÔÁ\n"
|
|
||||||
|
|
||||||
#: lib/getopt.c:787 lib/getopt.c:800 lib/getopt.c:1089 lib/getopt.c:1102
|
|
||||||
#, c-format
|
|
||||||
msgid "%s: option `%s' requires an argument\n"
|
|
||||||
msgstr "%s: ËÌÀÞ `%s' ÄÏÌÖÅÎ ÉÓÐÏÌØÚÏ×ÁÔØÓÑ Ó ÁÒÇÕÍÅÎÔÏÍ\n"
|
|
||||||
|
|
||||||
#: lib/getopt.c:838 lib/getopt.c:841
|
|
||||||
#, c-format
|
|
||||||
msgid "%s: unrecognized option `--%s'\n"
|
|
||||||
msgstr "%s: ÎÅÉÚ×ÅÓÔÎÙÊ ËÌÀÞ `--%s'\n"
|
|
||||||
|
|
||||||
#: lib/getopt.c:849 lib/getopt.c:852
|
|
||||||
#, c-format
|
|
||||||
msgid "%s: unrecognized option `%c%s'\n"
|
|
||||||
msgstr "%s: ÎÅÉÚ×ÅÓÔÎÙÊ ËÌÀÞ `%c%s'\n"
|
|
||||||
|
|
||||||
#: lib/getopt.c:899 lib/getopt.c:902
|
|
||||||
#, c-format
|
|
||||||
msgid "%s: illegal option -- %c\n"
|
|
||||||
msgstr "%s: ÎÅÄÏÐÕÓÔÉÍÙÊ ËÌÀÞ -- %c\n"
|
|
||||||
|
|
||||||
#: lib/getopt.c:908 lib/getopt.c:911
|
|
||||||
#, c-format
|
|
||||||
msgid "%s: invalid option -- %c\n"
|
|
||||||
msgstr "%s: ÎÅ×ÅÒÎÙÊ ËÌÀÞ -- %c\n"
|
|
||||||
|
|
||||||
#: lib/getopt.c:958 lib/getopt.c:969 lib/getopt.c:1155 lib/getopt.c:1168
|
|
||||||
#, c-format
|
|
||||||
msgid "%s: option requires an argument -- %c\n"
|
|
||||||
msgstr "%s: ËÌÀÞ ÄÏÌÖÅÎ ÉÓÐÏÌØÚÏ×ÁÔØÓÑ Ó ÁÒÇÕÍÅÎÔÏÍ -- %c\n"
|
|
||||||
|
|
||||||
#: lib/getopt.c:1021 lib/getopt.c:1032
|
|
||||||
#, c-format
|
|
||||||
msgid "%s: option `-W %s' is ambiguous\n"
|
|
||||||
msgstr "%s: ÎÅÏÄÎÏÚÎÁÞÎÙÊ ËÌÀÞ `-W %s'\n"
|
|
||||||
|
|
||||||
#: lib/getopt.c:1056 lib/getopt.c:1068
|
|
||||||
#, c-format
|
|
||||||
msgid "%s: option `-W %s' doesn't allow an argument\n"
|
|
||||||
msgstr "%s: ËÌÀÞ `-W %s' ÄÏÌÖÅÎ ÉÓÐÏÌØÚÏ×ÁÔØÓÑ ÂÅÚ ÁÒÇÕÍÅÎÔÁ\n"
|
|
||||||
|
|
||||||
#: lib/obstack.c:487 lib/obstack.c:490 lib/xmalloc.c:63
|
|
||||||
msgid "memory exhausted"
|
|
||||||
msgstr "ÐÁÍÑÔØ ÉÓÞÅÒÐÁÎÁ"
|
|
||||||
|
|
||||||
#: lib/quotearg.c:236
|
|
||||||
msgid "`"
|
|
||||||
msgstr "`"
|
|
||||||
|
|
||||||
#: lib/quotearg.c:237
|
|
||||||
msgid "'"
|
|
||||||
msgstr "'"
|
|
||||||
|
|
||||||
#: lib/subpipe.c:187
|
|
||||||
#, c-format
|
|
||||||
msgid "subsidiary program `%s' could not be invoked"
|
|
||||||
msgstr "ÎÅ ÕÄÁÅÔÓÑ ×ÙÐÏÌÎÉÔØ ×ÓÐÏÍÏÇÁÔÅÌØÎÕÀ ÐÒÏÇÒÁÍÍÕ `%s'"
|
|
||||||
|
|
||||||
#: lib/subpipe.c:189
|
|
||||||
#, c-format
|
|
||||||
msgid "subsidiary program `%s' not found"
|
|
||||||
msgstr "×ÓÐÏÍÏÇÁÔÅÌØÎÁÑ ÐÒÏÇÒÁÍÍÁ `%s' ÎÅ ÎÁÊÄÅÎÁ"
|
|
||||||
|
|
||||||
#: lib/subpipe.c:191
|
|
||||||
#, c-format
|
|
||||||
msgid "subsidiary program `%s' failed"
|
|
||||||
msgstr "×ÓÐÏÍÏÇÁÔÅÌØÎÁÑ ÐÒÏÇÒÁÍÍÁ `%s' ÚÁ×ÅÒÛÉÌÁÓØ ÎÅÕÄÁÞÎÏ"
|
|
||||||
|
|
||||||
#: lib/subpipe.c:192
|
|
||||||
#, c-format
|
|
||||||
msgid "subsidiary program `%s' failed (exit status %d)"
|
|
||||||
msgstr ""
|
|
||||||
"×ÓÐÏÍÏÇÁÔÅÌØÎÁÑ ÐÒÏÇÒÁÍÍÁ `%s' ÚÁ×ÅÒÛÉÌÁÓØ ÎÅÕÄÁÞÎÏ (ËÏÄ ÚÁ×ÅÒÛÅÎÉÑ %d)"
|
|
||||||
|
|
||||||
#: lib/timevar.c:476
|
|
||||||
msgid ""
|
|
||||||
"\n"
|
|
||||||
"Execution times (seconds)\n"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: lib/timevar.c:526
|
|
||||||
msgid " TOTAL :"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: lib/timevar.c:562
|
|
||||||
#, c-format
|
|
||||||
msgid "time in %s: %ld.%06ld (%ld%%)\n"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#~ msgid "too many states (max %d)"
|
|
||||||
#~ msgstr "ÓÌÉÛËÏÍ ÍÎÏÇÏ ÓÏÓÔÏÑÎÉÊ (ÍÁËÓÉÍÁÌØÎÏ %d)"
|
|
||||||
|
|
||||||
#~ msgid "reduce"
|
|
||||||
#~ msgstr "×Ù×ÏÄ"
|
|
||||||
|
|
||||||
#~ msgid "shift"
|
|
||||||
#~ msgstr "ÓÄ×ÉÇ"
|
|
||||||
|
|
||||||
#~ msgid "%d shift/reduce conflict"
|
|
||||||
#~ msgid_plural "%d shift/reduce conflicts"
|
|
||||||
#~ msgstr[0] "%d ËÏÎÆÌÉËÔ ÓÄ×ÉÇÁ/×Ù×ÏÄÁ"
|
|
||||||
#~ msgstr[1] "%d ËÏÎÆÌÉËÔÁ ÓÄ×ÉÇÁ/×Ù×ÏÄÁ"
|
|
||||||
#~ msgstr[2] "%d ËÏÎÆÌÉËÔÏ× ÓÄ×ÉÇÁ/×Ù×ÏÄÁ"
|
|
||||||
|
|
||||||
#~ msgid "and"
|
|
||||||
#~ msgstr "É"
|
|
||||||
|
|
||||||
#~ msgid "State %d contains "
|
|
||||||
#~ msgstr "óÏÓÔÏÑÎÉÅ %d ÓÏÄÅÒÖÉÔ "
|
|
||||||
|
|
||||||
#~ msgid "conflicts: "
|
|
||||||
#~ msgstr "ËÏÎÆÌÉËÔÙ: "
|
|
||||||
|
|
||||||
#~ msgid "%s contains "
|
|
||||||
#~ msgstr "%s ÓÏÄÅÒÖÉÔ "
|
|
||||||
|
|
||||||
#~ msgid "`%s' is no longer supported"
|
|
||||||
#~ msgstr "`%s' ÂÏÌØÛÅ ÎÅ ÐÏÄÄÅÒÖÉ×ÁÅÔÓÑ"
|
|
||||||
|
|
||||||
#~ msgid "%s: no grammar file given\n"
|
|
||||||
#~ msgstr "%s: ÎÅ ÚÁÄÁÎ ÆÁÊÌ Ó ÇÒÁÍÍÁÔÉËÏÊ\n"
|
|
||||||
|
|
||||||
#~ msgid "%s: extra arguments ignored after `%s'\n"
|
|
||||||
#~ msgstr "%s: ÌÉÛÎÉÅ ÁÒÇÕÍÅÎÔÙ ÐÏÓÌÅ `%s' ÉÇÎÏÒÉÒÏ×ÁÎÙ\n"
|
|
||||||
|
|
||||||
#~ msgid "too many gotos (max %d)"
|
|
||||||
#~ msgstr "ÓÌÉÛËÏÍ ÍÎÏÇÏ goto (ÍÁËÓÉÍÁÌØÎÏ %d)"
|
|
||||||
|
|
||||||
#~ msgid "unexpected `/' found and ignored"
|
|
||||||
#~ msgstr "×ÓÔÒÅÞÅÎ É ÐÒÏÉÇÎÏÒÉÒÏ×ÁÎ ÎÅÏÖÉÄÁÎÎÙÊ ÓÉÍ×ÏÌ `/'"
|
|
||||||
|
|
||||||
#~ msgid "unterminated comment"
|
|
||||||
#~ msgstr "ÎÅÚÁËÏÎÞÅÎÎÙÊ ËÏÍÍÅÎÔÁÒÉÊ"
|
|
||||||
|
|
||||||
#~ msgid "unexpected end of file"
|
|
||||||
#~ msgstr "ÎÅÏÖÉÄÁÎÎÙÊ ËÏÎÅÃ ÆÁÊÌÁ"
|
|
||||||
|
|
||||||
#~ msgid "unescaped newline in constant"
|
|
||||||
#~ msgstr "ÎÅÜËÒÁÎÉÒÏ×ÁÎÎÙÊ ÐÅÒÅ×ÏÄ ÓÔÒÏËÉ × ËÏÎÓÔÁÎÔÅ"
|
|
||||||
|
|
||||||
#~ msgid "octal value outside range 0...255: `\\%o'"
|
|
||||||
#~ msgstr "×ÏÓØÍÅÒÉÞÎÁÑ ×ÅÌÉÞÉÎÁ ÚÁ ÐÒÅÄÅÌÁÍÉ ÄÉÁÐÁÚÏÎÁ 0...255: `\\%o'"
|
|
||||||
|
|
||||||
#~ msgid "hexadecimal value above 255: `\\x%x'"
|
|
||||||
#~ msgstr "ÛÅÓÔÎÁÄÃÁÔÅÒÉÞÎÁÑ ×ÅÌÉÞÉÎÁ ÐÒÅ×ÙÛÁÅÔ 255: `\\x%x'"
|
|
||||||
|
|
||||||
#~ msgid "unknown escape sequence: `\\' followed by `%s'"
|
|
||||||
#~ msgstr "ÎÅÉÚ×ÅÓÔÎÁÑ escape-ÐÏÓÌÅÄÏ×ÁÔÅÌØÎÏÓÔØ: `%s' ÐÏÓÌÅ `\\'"
|
|
||||||
|
|
||||||
#~ msgid "unterminated type name at end of file"
|
|
||||||
#~ msgstr "ÎÅÚÁËÏÎÞÅÎÎÏÅ ÉÍÑ ÔÉÐÁ × ËÏÎÃÅ ÆÁÊÌÁ"
|
|
||||||
|
|
||||||
#~ msgid "unterminated type name"
|
|
||||||
#~ msgstr "ÎÅÚÁËÏÎÞÅÎÎÏÅ ÉÍÑ ÔÉÐÁ"
|
|
||||||
|
|
||||||
#~ msgid "use \"...\" for multi-character literal tokens"
|
|
||||||
#~ msgstr "ÉÓÐÏÌØÚÕÊÔÅ \"...\" ÄÌÑ ÍÎÏÇÏÓÉÍ×ÏÌØÎÙÈ ÌÉÔÅÒÁÌØÎÙÈ ÌÅËÓÅÍ"
|
|
||||||
|
|
||||||
#~ msgid "`%s' supports no argument: %s"
|
|
||||||
#~ msgstr "`%s' ÎÅ ÐÏÄÄÅÒÖÉ×ÁÅÔ ÁÒÇÕÍÅÎÔÁ %s"
|
|
||||||
|
|
||||||
#~ msgid "`%s' requires an argument"
|
|
||||||
#~ msgstr "ËÌÀÞ `%s' ÄÏÌÖÅÎ ÉÓÐÏÌØÚÏ×ÁÔØÓÑ Ó ÁÒÇÕÍÅÎÔÏÍ"
|
|
||||||
|
|
||||||
#~ msgid " (rule %d)"
|
|
||||||
#~ msgstr " (ÐÒÁ×ÉÌÏ %d)"
|
|
||||||
|
|
||||||
#~ msgid " %-4s\terror (nonassociative)\n"
|
|
||||||
#~ msgstr " %-4s\tÏÛÉÂËÁ (ÎÅÁÓÓÏÃÉÁÔÉ×ÎÁÑ)\n"
|
|
||||||
|
|
||||||
#~ msgid ""
|
|
||||||
#~ " $default\treduce using rule %d (%s)\n"
|
|
||||||
#~ "\n"
|
|
||||||
#~ msgstr ""
|
|
||||||
#~ " $default\t×Ù×ÏÄ Ó ÉÓÐÏÌØÚÏ×ÁÎÉÅÍ ÐÒÁ×ÉÌÁ %d (%s)\n"
|
|
||||||
#~ "\n"
|
|
||||||
|
|
||||||
#~ msgid " %-4s\t[reduce using rule %d (%s)]\n"
|
|
||||||
#~ msgstr " %-4s\t[×Ù×ÏÄ Ó ÉÓÐÏÌØÚÏ×ÁÎÉÅÍ ÐÒÁ×ÉÌÁ %d (%s)]\n"
|
|
||||||
|
|
||||||
#~ msgid " %-4s\treduce using rule %d (%s)\n"
|
|
||||||
#~ msgstr " %-4s\t×Ù×ÏÄ Ó ÉÓÐÏÌØÚÏ×ÁÎÉÅÍ ÐÒÁ×ÉÌÁ %d (%s)\n"
|
|
||||||
|
|
||||||
#~ msgid " $default\treduce using rule %d (%s)\n"
|
|
||||||
#~ msgstr " $default\t×Ù×ÏÄ Ó ÉÓÐÏÌØÚÏ×ÁÎÉÅÍ ÐÒÁ×ÉÌÁ %d (%s)\n"
|
|
||||||
|
|
||||||
#~ msgid " $default\taccept\n"
|
|
||||||
#~ msgstr " $default\tÐÒÉÎÑÔÉÅ\n"
|
|
||||||
|
|
||||||
#~ msgid " NO ACTIONS\n"
|
|
||||||
#~ msgstr " îåô äåêóô÷éê\n"
|
|
||||||
|
|
||||||
#~ msgid "Number, Line, Rule"
|
|
||||||
#~ msgstr "îÏÍÅÒ, óÔÒÏËÁ, ðÒÁ×ÉÌÏ"
|
|
||||||
|
|
||||||
#~ msgid " %3d %3d %s ->"
|
|
||||||
#~ msgstr " %3d %3d %s ->"
|
|
||||||
|
|
||||||
#~ msgid " Skipping to next \\n"
|
|
||||||
#~ msgstr " ðÒÏÐÕÓË ÄÏ ÓÌÅÄÕÀÝÅÇÏ \\n"
|
|
||||||
|
|
||||||
#~ msgid " Skipping to next %c"
|
|
||||||
#~ msgstr " ðÒÏÐÕÓË ÄÏ ÓÌÅÄÕÀÝÅÇÏ %c"
|
|
||||||
|
|
||||||
#~ msgid "unterminated string"
|
|
||||||
#~ msgstr "ÎÅÚÁËÏÎÞÅÎÎÁÑ ÓÔÒÏËÁ"
|
|
||||||
|
|
||||||
#~ msgid "%s is invalid"
|
|
||||||
#~ msgstr "ÎÅ×ÅÒÎÙÊ ÚÎÁË %s"
|
|
||||||
|
|
||||||
#~ msgid "unterminated `%{' definition"
|
|
||||||
#~ msgstr "ÎÅÚÁËÏÎÞÅÎÎÏÅ ÏÐÒÅÄÅÌÅÎÉÅ `%{'"
|
|
||||||
|
|
||||||
#~ msgid "Premature EOF after %s"
|
|
||||||
#~ msgstr "ðÒÅÖÄÅ×ÒÅÍÅÎÎÙÊ ËÏÎÅà ÆÁÊÌÁ ÐÏÓÌÅ %s"
|
|
||||||
|
|
||||||
#~ msgid "`%s' is invalid in %s"
|
|
||||||
#~ msgstr "`%s' ÎÅ×ÅÒÎÏ × %s"
|
|
||||||
|
|
||||||
#~ msgid "invalid %s declaration"
|
|
||||||
#~ msgstr "ÎÅ×ÅÒÎÏÅ ÏÐÉÓÁÎÉÅ %s"
|
|
||||||
|
|
||||||
#~ msgid "%type declaration has no <typename>"
|
|
||||||
#~ msgstr "ÏÐÉÓÁÎÉÅ %type ÎÅ ÉÍÅÅÔ <ÉÍÑ_ÔÉÐÁ>"
|
|
||||||
|
|
||||||
#~ msgid "invalid %%type declaration due to item: %s"
|
|
||||||
#~ msgstr "ÎÅ×ÅÒÎÏÅ ÏÐÉÓÁÎÉÅ %%type ÉÚ-ÚÁ ÜÌÅÍÅÎÔÁ: %s"
|
|
||||||
|
|
||||||
#~ msgid "invalid text (%s) - number should be after identifier"
|
|
||||||
#~ msgstr "ÎÅ×ÅÒÎÙÊ ÔÅËÓÔ (%s) - ÞÉÓÌÏ ÄÏÌÖÎÏ ÓÌÅÄÏ×ÁÔØ ÚÁ ÉÄÅÎÔÉÆÉËÁÔÏÒÏÍ"
|
|
||||||
|
|
||||||
#~ msgid "unexpected item: %s"
|
|
||||||
#~ msgstr "ÎÅÏÖÉÄÁÎÎÙÊ ÜÌÅÍÅÎÔ: %s"
|
|
||||||
|
|
||||||
#~ msgid "unmatched %s"
|
|
||||||
#~ msgstr "ÎÅÐÁÒÎÁÑ %s"
|
|
||||||
|
|
||||||
#~ msgid "argument of %%expect is not an integer"
|
|
||||||
#~ msgstr "ÁÒÇÕÍÅÎÔ %%expect ÎÅ Ñ×ÌÑÅÔÓÑ ÃÅÌÙÍ ÞÉÓÌÏÍ"
|
|
||||||
|
|
||||||
#~ msgid "unrecognized item %s, expected an identifier"
|
|
||||||
#~ msgstr "ÎÅÒÁÓÐÏÚÎÁÎÎÙÊ ÜÌÅÍÅÎÔ %s, ÏÖÉÄÁÌÓÑ ÉÄÅÎÔÉÆÉËÁÔÏÒ"
|
|
||||||
|
|
||||||
#~ msgid "expected string constant instead of %s"
|
|
||||||
#~ msgstr "×ÍÅÓÔÏ %s ÏÖÉÄÁÌÁÓØ ÓÔÒÏËÏ×ÁÑ ÐÏÓÔÏÑÎÎÁÑ"
|
|
||||||
|
|
||||||
#~ msgid "no input grammar"
|
|
||||||
#~ msgstr "ÎÅÔ ×ÈÏÄÎÏÊ ÇÒÁÍÍÁÔÉËÉ"
|
|
||||||
|
|
||||||
#~ msgid "ill-formed rule: initial symbol not followed by colon"
|
|
||||||
#~ msgstr "ÎÅ×ÅÒÎÏÅ ÐÒÁ×ÉÌÏ: Ä×ÏÅÔÏÞÉÅ ÎÅ ÓÌÅÄÕÅÔ ÚÁ ÎÁÞÁÌØÎÙÍ ÓÉÍ×ÏÌÏÍ"
|
|
||||||
|
|
||||||
#~ msgid "grammar starts with vertical bar"
|
|
||||||
#~ msgstr "ÇÒÁÍÍÁÔÉËÁ ÎÁÞÉÎÁÅÔÓÑ Ó ×ÅÒÔÉËÁÌØÎÏÊ ÞÅÒÔÙ"
|
|
||||||
|
|
||||||
#~ msgid "previous rule lacks an ending `;'"
|
|
||||||
#~ msgstr "× ÐÒÅÄÙÄÕÝÅÍ ÐÒÁ×ÉÌÅ ÏÔÓÕÔÓÔ×ÕÅÔ ÚÁ×ÅÒÛÁÀÝÁÑ `;'"
|
|
||||||
|
|
||||||
#~ msgid "two @prec's in a row"
|
|
||||||
#~ msgstr "Ä×Á @prec ÐÏÄÒÑÄ"
|
|
||||||
|
|
||||||
#~ msgid "%%guard present but %%semantic_parser not specified"
|
|
||||||
#~ msgstr "%%guard ÐÒÉÓÕÔÓÔ×ÕÅÔ, Á %%semantic_parser ÎÅ ÚÁÄÁÎ"
|
|
||||||
|
|
||||||
#~ msgid "two actions at end of one rule"
|
|
||||||
#~ msgstr "Ä×Á ÄÅÊÓÔ×ÉÑ × ËÏÎÃÅ ÏÄÎÏÇÏ ÐÒÁ×ÉÌÁ"
|
|
||||||
|
|
||||||
#~ msgid "too many symbols (tokens plus nonterminals); maximum %d"
|
|
||||||
#~ msgstr "ÓÌÉÛËÏÍ ÍÎÏÇÏ ÓÉÍ×ÏÌÏ× (ÌÅËÓÅÍÙ ÐÌÀÓ ÎÅÔÅÒÍÉÎÁÌÙ); ÍÁËÓÉÍÁÌØÎÏ %d"
|
|
||||||
|
|
||||||
#~ msgid "maximum table size (%d) exceeded"
|
|
||||||
#~ msgstr "ÐÒÅ×ÙÛÅÎ ÍÁËÓÉÍÁÌØÎÙÊ ÒÁÚÍÅÒ ÔÁÂÌÉÃÙ (%d)"
|
|
||||||
|
|
||||||
#~ msgid " $ \tgo to state %d\n"
|
|
||||||
#~ msgstr " $ \tÐÅÒÅÈÏÄ × ÓÏÓÔÏÑÎÉÅ %d\n"
|
|
||||||
|
|
||||||
#~ msgid "unterminated %guard clause"
|
|
||||||
#~ msgstr "ÎÅÚÁËÏÎÞÅÎÎÙÊ ÏÐÅÒÁÔÏÒ %guard"
|
|
||||||
|
|
||||||
#~ msgid " 1 shift/reduce conflict"
|
|
||||||
#~ msgstr " 1 ËÏÎÆÌÉËÔ ÓÄ×ÉÇÁ/×Ù×ÏÄÁ"
|
|
||||||
|
|
||||||
#~ msgid "%s contains"
|
|
||||||
#~ msgstr "%s ÓÏÄÅÒÖÉÔ"
|
|
||||||
|
|
||||||
#~ msgid "DERIVES"
|
|
||||||
#~ msgstr "DERIVES"
|
|
||||||
|
|
||||||
#~ msgid "%s derives"
|
|
||||||
#~ msgstr "%s ×Ù×ÏÄÉÔ"
|
|
||||||
|
|
||||||
#~ msgid "%s: internal error: %s\n"
|
|
||||||
#~ msgstr "%s: ×ÎÕÔÒÅÎÎÑÑ ÏÛÉÂËÁ: %s\n"
|
|
||||||
|
|
||||||
#~ msgid "Entering set_nullable"
|
|
||||||
#~ msgstr "÷ÈÏÄ × set_nullable"
|
|
||||||
|
|
||||||
#~ msgid "\t\t/* empty */"
|
|
||||||
#~ msgstr "\t\t/* ÐÕÓÔÏ */"
|
|
||||||
|
|
||||||
#~ msgid "multiple %%header_extension declarations"
|
|
||||||
#~ msgstr "ÍÎÏÖÅÓÔ×ÅÎÎÙÅ ÏÐÉÓÁÎÉÑ %%header_extension"
|
|
||||||
|
|
||||||
#~ msgid "multiple %%source_extension declarations"
|
|
||||||
#~ msgstr "ÍÎÏÖÅÓÔ×ÅÎÎÙÅ ÏÐÉÓÁÎÉÑ %%source_extension"
|
|
||||||
|
|
||||||
#~ msgid ""
|
|
||||||
#~ "Variables\n"
|
|
||||||
#~ "---------\n"
|
|
||||||
#~ "\n"
|
|
||||||
#~ msgstr ""
|
|
||||||
#~ "ðÅÒÅÍÅÎÎÙÅ\n"
|
|
||||||
#~ "----------\n"
|
|
||||||
#~ "\n"
|
|
||||||
|
|
||||||
#~ msgid "Value Sprec Sassoc Tag\n"
|
|
||||||
#~ msgstr "úÎÁÞ ðÒÉÏÒ áÓÓÏÃ ôÅÇ\n"
|
|
||||||
|
|
||||||
#~ msgid ""
|
|
||||||
#~ "Rules\n"
|
|
||||||
#~ "-----\n"
|
|
||||||
#~ "\n"
|
|
||||||
#~ msgstr ""
|
|
||||||
#~ "ðÒÁ×ÉÌÁ\n"
|
|
||||||
#~ "-------\n"
|
|
||||||
#~ "\n"
|
|
||||||
|
|
||||||
#~ msgid ""
|
|
||||||
#~ "Rules interpreted\n"
|
|
||||||
#~ "-----------------\n"
|
|
||||||
#~ "\n"
|
|
||||||
#~ msgstr ""
|
|
||||||
#~ "éÎÔÅÒÐÒÅÔÉÒÏ×ÁÎÎÙÅ ÐÒÁ×ÉÌÁ\n"
|
|
||||||
#~ "--------------------------\n"
|
|
||||||
#~ "\n"
|
|
||||||
|
|
||||||
#~ msgid ""
|
|
||||||
#~ "reduced %s defines %d terminal%s, %d nonterminal%s, and %d production%s.\n"
|
|
||||||
#~ msgstr ""
|
|
||||||
#~ "×Ù×ÅÄÅÎÎÙÊ %s ÏÐÒÅÄÅÌÑÅÔ %d ÔÅÒÍÉÎÁÌÏ×%s, %d ÎÅÔÅÒÍÉÎÁÌÏ×%s, É %d ÐÒÁ×ÉÌ "
|
|
||||||
#~ "×Ù×ÏÄÁ%s.\n"
|
|
||||||
|
|
||||||
#~ msgid "@%s is invalid"
|
|
||||||
#~ msgstr "ÎÅ×ÅÒÎÙÊ ÚÎÁË @%s"
|
|
||||||
711
po/sv.po
711
po/sv.po
@@ -1,711 +0,0 @@
|
|||||||
# Swedish messages for bison.
|
|
||||||
# Copyright © 2001, 2002, 2003 Free Software Foundation, Inc.
|
|
||||||
# Göran Uddeborg <goeran@uddeborg.pp.se>, 2001, 2002, 2003.
|
|
||||||
# $Revision$
|
|
||||||
#
|
|
||||||
msgid ""
|
|
||||||
msgstr ""
|
|
||||||
"Project-Id-Version: bison 1.875\n"
|
|
||||||
"Report-Msgid-Bugs-To: bug-bison@gnu.org\n"
|
|
||||||
"POT-Creation-Date: 2003-08-25 17:14+0200\n"
|
|
||||||
"PO-Revision-Date: 2003-01-01 23:03+0100\n"
|
|
||||||
"Last-Translator: Göran Uddeborg <goeran@uddeborg.pp.se>\n"
|
|
||||||
"Language-Team: Swedish <sv@li.org>\n"
|
|
||||||
"MIME-Version: 1.0\n"
|
|
||||||
"Content-Type: text/plain; charset=iso-8859-1\n"
|
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
|
||||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
|
||||||
|
|
||||||
#: src/complain.c:56 lib/error.c:135 lib/error.c:163
|
|
||||||
msgid "Unknown system error"
|
|
||||||
msgstr "Okänt systemfel"
|
|
||||||
|
|
||||||
#: src/complain.c:79 src/complain.c:94
|
|
||||||
msgid "warning: "
|
|
||||||
msgstr "varning: "
|
|
||||||
|
|
||||||
#: src/complain.c:150 src/complain.c:166
|
|
||||||
msgid "fatal error: "
|
|
||||||
msgstr "ödesdigert fel: "
|
|
||||||
|
|
||||||
#: src/conflicts.c:75
|
|
||||||
#, c-format
|
|
||||||
msgid " Conflict between rule %d and token %s resolved as shift"
|
|
||||||
msgstr " Konflikt mellan regel %d och element %s löstes som skift"
|
|
||||||
|
|
||||||
#: src/conflicts.c:83
|
|
||||||
#, c-format
|
|
||||||
msgid " Conflict between rule %d and token %s resolved as reduce"
|
|
||||||
msgstr " Konflikt mellan regel %d och element %s löstes som reducera"
|
|
||||||
|
|
||||||
#: src/conflicts.c:90
|
|
||||||
#, c-format
|
|
||||||
msgid " Conflict between rule %d and token %s resolved as an error"
|
|
||||||
msgstr " Konflikt mellan regel %d och element %s löstes som ett fel"
|
|
||||||
|
|
||||||
#: src/conflicts.c:398
|
|
||||||
#, c-format
|
|
||||||
msgid "conflicts: %d shift/reduce, %d reduce/reduce\n"
|
|
||||||
msgstr "konflikter: %d skifta/reducera, %d reducera/reducera\n"
|
|
||||||
|
|
||||||
#: src/conflicts.c:401
|
|
||||||
#, c-format
|
|
||||||
msgid "conflicts: %d shift/reduce\n"
|
|
||||||
msgstr "konflikter: %d skifta/reducera\n"
|
|
||||||
|
|
||||||
#: src/conflicts.c:403
|
|
||||||
#, c-format
|
|
||||||
msgid "conflicts: %d reduce/reduce\n"
|
|
||||||
msgstr "konflikter: %d reducera/reducera\n"
|
|
||||||
|
|
||||||
#: src/conflicts.c:421
|
|
||||||
#, c-format
|
|
||||||
msgid "State %d "
|
|
||||||
msgstr "Tillstånd %d "
|
|
||||||
|
|
||||||
#: src/conflicts.c:498
|
|
||||||
#, c-format
|
|
||||||
msgid "expected %d shift/reduce conflict"
|
|
||||||
msgid_plural "expected %d shift/reduce conflicts"
|
|
||||||
msgstr[0] "förväntade %d skifta/reducerakonflikt"
|
|
||||||
msgstr[1] "förväntade %d skifta/reducerakonflikter"
|
|
||||||
|
|
||||||
#: src/conflicts.c:503
|
|
||||||
msgid "expected 0 reduce/reduce conflicts"
|
|
||||||
msgstr "förväntade 0 reducera/reducerakonflikter"
|
|
||||||
|
|
||||||
#: src/files.c:99
|
|
||||||
#, c-format
|
|
||||||
msgid "cannot open file `%s'"
|
|
||||||
msgstr "kan inte öppna filen \"%s\""
|
|
||||||
|
|
||||||
#: src/files.c:115
|
|
||||||
msgid "I/O error"
|
|
||||||
msgstr "I/O-fel"
|
|
||||||
|
|
||||||
#: src/files.c:118
|
|
||||||
msgid "cannot close file"
|
|
||||||
msgstr "kan inte stänga fil"
|
|
||||||
|
|
||||||
#: src/files.c:336
|
|
||||||
#, c-format
|
|
||||||
msgid "conflicting outputs to file %s"
|
|
||||||
msgstr "motstridiga utmatningar till filen %s"
|
|
||||||
|
|
||||||
#: src/getargs.c:186
|
|
||||||
#, c-format
|
|
||||||
msgid "Try `%s --help' for more information.\n"
|
|
||||||
msgstr "Försök med \"%s --help\" för mer information.\n"
|
|
||||||
|
|
||||||
#: src/getargs.c:192
|
|
||||||
msgid "GNU bison generates parsers for LALR(1) grammars.\n"
|
|
||||||
msgstr "GNU bison genererar parsrar för LALR(1)-grammatiker.\n"
|
|
||||||
|
|
||||||
#: src/getargs.c:196
|
|
||||||
#, c-format
|
|
||||||
msgid "Usage: %s [OPTION]... FILE\n"
|
|
||||||
msgstr "Användning: %s [FLAGGA]... FIL\n"
|
|
||||||
|
|
||||||
#: src/getargs.c:200
|
|
||||||
msgid ""
|
|
||||||
"If a long option shows an argument as mandatory, then it is mandatory\n"
|
|
||||||
"for the equivalent short option also. Similarly for optional arguments.\n"
|
|
||||||
msgstr ""
|
|
||||||
"Om en lång flagga visar ett argument som obligatoriskt är det\n"
|
|
||||||
"obligatoriskt för den motsvarande korta flaggan också. Motsvarande\n"
|
|
||||||
"för valfria argument.\n"
|
|
||||||
|
|
||||||
#: src/getargs.c:206
|
|
||||||
msgid ""
|
|
||||||
"Operation modes:\n"
|
|
||||||
" -h, --help display this help and exit\n"
|
|
||||||
" -V, --version output version information and exit\n"
|
|
||||||
" -y, --yacc emulate POSIX yacc\n"
|
|
||||||
msgstr ""
|
|
||||||
"Arbetslägen:\n"
|
|
||||||
" -h, --help visa denna hjälptext och avsluta\n"
|
|
||||||
" -V, --version visa versionsinformation och avsluta\n"
|
|
||||||
" -y, --yacc emulera POSIX-yacc\n"
|
|
||||||
|
|
||||||
#: src/getargs.c:213
|
|
||||||
msgid ""
|
|
||||||
"Parser:\n"
|
|
||||||
" -S, --skeleton=FILE specify the skeleton to use\n"
|
|
||||||
" -t, --debug instrument the parser for debugging\n"
|
|
||||||
" --locations enable locations computation\n"
|
|
||||||
" -p, --name-prefix=PREFIX prepend PREFIX to the external symbols\n"
|
|
||||||
" -l, --no-lines don't generate `#line' directives\n"
|
|
||||||
" -n, --no-parser generate the tables only\n"
|
|
||||||
" -k, --token-table include a table of token names\n"
|
|
||||||
msgstr ""
|
|
||||||
"Tolk:\n"
|
|
||||||
" -S, --skeleton=FIL ange skelettfilen som skall användas\n"
|
|
||||||
" -t, --debug instrumentera tolken för felsökning\n"
|
|
||||||
" --locations aktivera lägesberäkning\n"
|
|
||||||
" -p, --name-prefix=PREFIX lägg till PREFIX före externa symboler\n"
|
|
||||||
" -l, --no-lines generera inte \"#line\"-direktiv\n"
|
|
||||||
" -n, --no-parser generera endast tabellerna\n"
|
|
||||||
" -k, --token-table inkludera en tabell över elementnamn\n"
|
|
||||||
|
|
||||||
#: src/getargs.c:225
|
|
||||||
msgid ""
|
|
||||||
"Output:\n"
|
|
||||||
" -d, --defines also produce a header file\n"
|
|
||||||
" -r, --report=THINGS also produce details on the automaton\n"
|
|
||||||
" -v, --verbose same as `--report=state'\n"
|
|
||||||
" -b, --file-prefix=PREFIX specify a PREFIX for output files\n"
|
|
||||||
" -o, --output=FILE leave output to FILE\n"
|
|
||||||
" -g, --graph also produce a VCG description of the "
|
|
||||||
"automaton\n"
|
|
||||||
msgstr ""
|
|
||||||
"Utdata:\n"
|
|
||||||
" -d, --defines skapa också en huvudfil\n"
|
|
||||||
" -r, --report=SAKER skapa också detaljer om automaten\n"
|
|
||||||
" -v, --verbose samma som \"--report=state\"\n"
|
|
||||||
" -b, --file-prefix=PREFIX ange ett PREFIX för utdatafiler\n"
|
|
||||||
" -o, --output=FIL lägg utdata i FIL\n"
|
|
||||||
" -g, --graph skapa också en VCG-beskrivning av automaten\n"
|
|
||||||
|
|
||||||
#: src/getargs.c:236
|
|
||||||
msgid ""
|
|
||||||
"THINGS is a list of comma separated words that can include:\n"
|
|
||||||
" `state' describe the states\n"
|
|
||||||
" `itemset' complete the core item sets with their closure\n"
|
|
||||||
" `lookahead' explicitly associate lookaheads to items\n"
|
|
||||||
" `solved' describe shift/reduce conflicts solving\n"
|
|
||||||
" `all' include all the above information\n"
|
|
||||||
" `none' disable the report\n"
|
|
||||||
msgstr ""
|
|
||||||
"SAKER är en lista med kommaseparerade ord som kan innehålla:\n"
|
|
||||||
" \"state\" beskriv tillstånden\n"
|
|
||||||
" \"itemset\" komplettera kärnobjektmängderna med sina höljen\n"
|
|
||||||
" \"lookahead\" koppla uttryckligen framåtblickar till objekt\n"
|
|
||||||
" \"solved\" beskriv lösningar av skifta/reducerakonflikter\n"
|
|
||||||
" \"all\" inkludera all ovanstående information\n"
|
|
||||||
" \"none\" avaktivera rapporten\n"
|
|
||||||
|
|
||||||
#: src/getargs.c:247
|
|
||||||
msgid "Report bugs to <bug-bison@gnu.org>.\n"
|
|
||||||
msgstr ""
|
|
||||||
"Rapportera fel till <bug-bison@gnu.org>.\n"
|
|
||||||
"Rapportera synpunkter på översättningen till <sv@li.org>.\n"
|
|
||||||
|
|
||||||
#: src/getargs.c:264
|
|
||||||
#, c-format
|
|
||||||
msgid "bison (GNU Bison) %s"
|
|
||||||
msgstr "bison (GNU Bison) %s"
|
|
||||||
|
|
||||||
#: src/getargs.c:266
|
|
||||||
msgid "Written by Robert Corbett and Richard Stallman.\n"
|
|
||||||
msgstr "Skriven av Robert Corbett och Richard Stallman.\n"
|
|
||||||
|
|
||||||
#: src/getargs.c:270
|
|
||||||
#, c-format
|
|
||||||
msgid "Copyright (C) %d Free Software Foundation, Inc.\n"
|
|
||||||
msgstr "Copyright © %d Free Software Foundation, Inc.\n"
|
|
||||||
|
|
||||||
#: src/getargs.c:272
|
|
||||||
msgid ""
|
|
||||||
"This is free software; see the source for copying conditions. There is NO\n"
|
|
||||||
"warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n"
|
|
||||||
msgstr ""
|
|
||||||
"Detta är fri programvara, se källkoden för kopieringsvillkor. Det\n"
|
|
||||||
"finns INGEN garanti, inte ens för SÄLJBARHET eller LÄMPLIGHET FÖR ETT\n"
|
|
||||||
"SPECIELLT ÄNDAMÅL.\n"
|
|
||||||
|
|
||||||
#: src/getargs.c:438
|
|
||||||
#, c-format
|
|
||||||
msgid "missing operand after `%s'"
|
|
||||||
msgstr "saknad operand efter \"%s\""
|
|
||||||
|
|
||||||
#: src/getargs.c:440
|
|
||||||
#, c-format
|
|
||||||
msgid "extra operand `%s'"
|
|
||||||
msgstr "extra operand \"%s\""
|
|
||||||
|
|
||||||
#: src/gram.c:139
|
|
||||||
msgid "empty"
|
|
||||||
msgstr "tom"
|
|
||||||
|
|
||||||
#: src/gram.c:233
|
|
||||||
msgid "Grammar"
|
|
||||||
msgstr "Grammatik"
|
|
||||||
|
|
||||||
#: src/gram.c:321 src/reduce.c:394
|
|
||||||
msgid "warning"
|
|
||||||
msgstr "varning"
|
|
||||||
|
|
||||||
#: src/main.c:124
|
|
||||||
msgid "rule never reduced because of conflicts"
|
|
||||||
msgstr "regel aldrig reducerad på grund av konflikter"
|
|
||||||
|
|
||||||
#: src/parse-gram.y:353
|
|
||||||
msgid "POSIX forbids declarations in the grammar"
|
|
||||||
msgstr "POSIX förbjuder deklarationer i grammatiken"
|
|
||||||
|
|
||||||
#: src/parse-gram.y:476
|
|
||||||
msgid "missing identifier in parameter declaration"
|
|
||||||
msgstr "identiferare saknas i parameterdeklaration"
|
|
||||||
|
|
||||||
#: src/print.c:49
|
|
||||||
#, c-format
|
|
||||||
msgid " type %d is %s\n"
|
|
||||||
msgstr " typ %d är %s\n"
|
|
||||||
|
|
||||||
#: src/print.c:165
|
|
||||||
#, c-format
|
|
||||||
msgid "shift, and go to state %d\n"
|
|
||||||
msgstr "skifta, och gå till tillstånd %d\n"
|
|
||||||
|
|
||||||
#: src/print.c:167
|
|
||||||
#, c-format
|
|
||||||
msgid "go to state %d\n"
|
|
||||||
msgstr "gå till tillstånd %d\n"
|
|
||||||
|
|
||||||
#: src/print.c:204
|
|
||||||
msgid "error (nonassociative)\n"
|
|
||||||
msgstr "fel (ickeassociativ)\n"
|
|
||||||
|
|
||||||
#: src/print.c:292
|
|
||||||
#, c-format
|
|
||||||
msgid "reduce using rule %d (%s)"
|
|
||||||
msgstr "reducera med regel %d (%s)"
|
|
||||||
|
|
||||||
#: src/print.c:294
|
|
||||||
msgid "accept"
|
|
||||||
msgstr "acceptera"
|
|
||||||
|
|
||||||
#: src/print.c:325 src/print.c:391
|
|
||||||
msgid "$default"
|
|
||||||
msgstr "$standard"
|
|
||||||
|
|
||||||
#: src/print.c:420
|
|
||||||
#, c-format
|
|
||||||
msgid "state %d"
|
|
||||||
msgstr "tillstånd %d"
|
|
||||||
|
|
||||||
#: src/print.c:456
|
|
||||||
msgid "Terminals, with rules where they appear"
|
|
||||||
msgstr "Terminaler, med regler där de förekommer"
|
|
||||||
|
|
||||||
#: src/print.c:483
|
|
||||||
msgid "Nonterminals, with rules where they appear"
|
|
||||||
msgstr "Icketerminaler, med regler där de förekommer"
|
|
||||||
|
|
||||||
#: src/print.c:512
|
|
||||||
msgid " on left:"
|
|
||||||
msgstr " till vänster:"
|
|
||||||
|
|
||||||
#: src/print.c:527
|
|
||||||
msgid " on right:"
|
|
||||||
msgstr " till höger:"
|
|
||||||
|
|
||||||
#: src/print.c:555
|
|
||||||
msgid "Rules never reduced"
|
|
||||||
msgstr "Aldrig reducerade regler"
|
|
||||||
|
|
||||||
#: src/reader.c:53
|
|
||||||
#, c-format
|
|
||||||
msgid "multiple %s declarations"
|
|
||||||
msgstr "flera %s-deklarationer"
|
|
||||||
|
|
||||||
#: src/reader.c:115
|
|
||||||
#, c-format
|
|
||||||
msgid "result type clash on merge function %s: <%s> != <%s>"
|
|
||||||
msgstr "resultattypskonflikt vid sammanslagningsfunktion %s: <%s> != <%s>"
|
|
||||||
|
|
||||||
#: src/reader.c:213
|
|
||||||
#, c-format
|
|
||||||
msgid "rule given for %s, which is a token"
|
|
||||||
msgstr "regel given för %s, som är ett element"
|
|
||||||
|
|
||||||
#: src/reader.c:242
|
|
||||||
#, c-format
|
|
||||||
msgid "type clash on default action: <%s> != <%s>"
|
|
||||||
msgstr "typkonflikt för standardåtgärd: <%s> <%s>"
|
|
||||||
|
|
||||||
#: src/reader.c:248
|
|
||||||
msgid "empty rule for typed nonterminal, and no action"
|
|
||||||
msgstr "tom regel för typad icketerminal, och ingen åtgärd"
|
|
||||||
|
|
||||||
#: src/reader.c:318 src/reader.c:332 src/reader.c:345
|
|
||||||
#, c-format
|
|
||||||
msgid "only one %s allowed per rule"
|
|
||||||
msgstr "endast en %s tillåts per regel"
|
|
||||||
|
|
||||||
#: src/reader.c:328 src/reader.c:343
|
|
||||||
#, c-format
|
|
||||||
msgid "%s affects only GLR parsers"
|
|
||||||
msgstr "%s påverkar endast GLR-parsrar"
|
|
||||||
|
|
||||||
#: src/reader.c:330
|
|
||||||
#, c-format
|
|
||||||
msgid "%s must be followed by positive number"
|
|
||||||
msgstr "%s måste följas av ett positivt tal"
|
|
||||||
|
|
||||||
#: src/reader.c:487
|
|
||||||
msgid "no rules in the input grammar"
|
|
||||||
msgstr "inga regler i ingrammatiken"
|
|
||||||
|
|
||||||
#: src/reduce.c:242
|
|
||||||
msgid "useless rule"
|
|
||||||
msgstr "oanvändbar regel"
|
|
||||||
|
|
||||||
#: src/reduce.c:303
|
|
||||||
#, c-format
|
|
||||||
msgid "useless nonterminal: %s"
|
|
||||||
msgstr "oanvändbar icketerminal: %s"
|
|
||||||
|
|
||||||
#: src/reduce.c:351
|
|
||||||
msgid "Useless nonterminals"
|
|
||||||
msgstr "Oanvändbara icketerminaler"
|
|
||||||
|
|
||||||
#: src/reduce.c:364
|
|
||||||
msgid "Terminals which are not used"
|
|
||||||
msgstr "Terminaler som inte används"
|
|
||||||
|
|
||||||
#: src/reduce.c:373
|
|
||||||
msgid "Useless rules"
|
|
||||||
msgstr "Oanvändbara regler"
|
|
||||||
|
|
||||||
#: src/reduce.c:389
|
|
||||||
#, c-format
|
|
||||||
msgid "%d rule never reduced\n"
|
|
||||||
msgid_plural "%d rules never reduced\n"
|
|
||||||
msgstr[0] "%d regel reduceras aldrig\n"
|
|
||||||
msgstr[1] "%d regler reduceras aldrig\n"
|
|
||||||
|
|
||||||
#: src/reduce.c:397
|
|
||||||
#, c-format
|
|
||||||
msgid "%d useless nonterminal"
|
|
||||||
msgid_plural "%d useless nonterminals"
|
|
||||||
msgstr[0] "%d oanvändbar icketerminal"
|
|
||||||
msgstr[1] "%d oanvändbara icketerminaler"
|
|
||||||
|
|
||||||
#: src/reduce.c:403
|
|
||||||
msgid " and "
|
|
||||||
msgstr " och "
|
|
||||||
|
|
||||||
#: src/reduce.c:406
|
|
||||||
#, c-format
|
|
||||||
msgid "%d useless rule"
|
|
||||||
msgid_plural "%d useless rules"
|
|
||||||
msgstr[0] "%d oanvändbar regel"
|
|
||||||
msgstr[1] "%d oanvändbara regler"
|
|
||||||
|
|
||||||
#: src/reduce.c:436
|
|
||||||
#, c-format
|
|
||||||
msgid "start symbol %s does not derive any sentence"
|
|
||||||
msgstr "startsymbolen %s genererar inga meningar"
|
|
||||||
|
|
||||||
#: src/scan-gram.l:160
|
|
||||||
msgid "stray `,' treated as white space"
|
|
||||||
msgstr "vilsekommet \",\" hanterat som blank"
|
|
||||||
|
|
||||||
#: src/scan-gram.l:221
|
|
||||||
#, c-format
|
|
||||||
msgid "invalid directive: %s"
|
|
||||||
msgstr "ogiltigt direktiv: %s"
|
|
||||||
|
|
||||||
#: src/scan-gram.l:241 src/scan-gram.l:804 src/scan-gram.l:873
|
|
||||||
#, c-format
|
|
||||||
msgid "integer out of range: %s"
|
|
||||||
msgstr "heltal utanför intervall: %s"
|
|
||||||
|
|
||||||
#: src/scan-gram.l:283
|
|
||||||
#, c-format
|
|
||||||
msgid "invalid character: %s"
|
|
||||||
msgstr "ogiltigt tecken: %s"
|
|
||||||
|
|
||||||
#: src/scan-gram.l:412 src/scan-gram.l:422 src/scan-gram.l:441
|
|
||||||
#, c-format
|
|
||||||
msgid "invalid escape sequence: %s"
|
|
||||||
msgstr "ogiltig specialsekvens: %s"
|
|
||||||
|
|
||||||
#: src/scan-gram.l:446
|
|
||||||
#, c-format
|
|
||||||
msgid "unrecognized escape sequence: %s"
|
|
||||||
msgstr "okänd specialsekvens: %s"
|
|
||||||
|
|
||||||
#: src/scan-gram.l:534
|
|
||||||
#, c-format
|
|
||||||
msgid "missing `{' in `%s'"
|
|
||||||
msgstr "saknad \"{\" i \"%s\""
|
|
||||||
|
|
||||||
#: src/scan-gram.l:774
|
|
||||||
#, c-format
|
|
||||||
msgid "$$ of `%s' has no declared type"
|
|
||||||
msgstr "$$ för \"%s\" har ingen deklarerad typ"
|
|
||||||
|
|
||||||
#: src/scan-gram.l:795
|
|
||||||
#, c-format
|
|
||||||
msgid "$%d of `%s' has no declared type"
|
|
||||||
msgstr "$%d för \"%s\" har ingen deklarerad typ"
|
|
||||||
|
|
||||||
#: src/scan-gram.l:840 src/scan-gram.l:908
|
|
||||||
#, c-format
|
|
||||||
msgid "invalid value: %s"
|
|
||||||
msgstr "felaktigt värde: %s"
|
|
||||||
|
|
||||||
#: src/scan-gram.l:996
|
|
||||||
#, c-format
|
|
||||||
msgid "missing `%s' at end of file"
|
|
||||||
msgstr "saknat \"%s\" vid filslut"
|
|
||||||
|
|
||||||
#: src/symlist.c:97 src/symlist.c:108
|
|
||||||
msgid "invalid $ value"
|
|
||||||
msgstr "felaktigt $-värde"
|
|
||||||
|
|
||||||
#: src/symtab.c:84
|
|
||||||
#, c-format
|
|
||||||
msgid "type redeclaration for %s"
|
|
||||||
msgstr "typen omdeklarerad för %s"
|
|
||||||
|
|
||||||
#: src/symtab.c:101 src/symtab.c:119
|
|
||||||
#, c-format
|
|
||||||
msgid "%s redeclaration for %s"
|
|
||||||
msgstr "%s-omdeklaration för %s"
|
|
||||||
|
|
||||||
#: src/symtab.c:138
|
|
||||||
#, c-format
|
|
||||||
msgid "redefining precedence of %s"
|
|
||||||
msgstr "omdefinition av precedens för %s"
|
|
||||||
|
|
||||||
#: src/symtab.c:156
|
|
||||||
#, c-format
|
|
||||||
msgid "symbol %s redefined"
|
|
||||||
msgstr "symbolen %s omdefinierad"
|
|
||||||
|
|
||||||
#: src/symtab.c:179
|
|
||||||
#, c-format
|
|
||||||
msgid "redefining user token number of %s"
|
|
||||||
msgstr "omdefinition av elementnummer för %s"
|
|
||||||
|
|
||||||
#: src/symtab.c:206
|
|
||||||
#, c-format
|
|
||||||
msgid "symbol %s is used, but is not defined as a token and has no rules"
|
|
||||||
msgstr ""
|
|
||||||
"symbolen %s används, men är inte definierad som ett element och har inga "
|
|
||||||
"regler"
|
|
||||||
|
|
||||||
#: src/symtab.c:231
|
|
||||||
#, c-format
|
|
||||||
msgid "symbol `%s' used more than once as a literal string"
|
|
||||||
msgstr "symbolen \"%s\" används mer än en gång som en bokstavlig sträng"
|
|
||||||
|
|
||||||
#: src/symtab.c:234
|
|
||||||
#, c-format
|
|
||||||
msgid "symbol `%s' given more than one literal string"
|
|
||||||
msgstr "symbolen \"%s\" har fått mer än en bokstavlig sträng"
|
|
||||||
|
|
||||||
#: src/symtab.c:270
|
|
||||||
#, c-format
|
|
||||||
msgid "conflicting precedences for %s and %s"
|
|
||||||
msgstr "motstridiga precedenser mellan %s och %s"
|
|
||||||
|
|
||||||
#: src/symtab.c:282
|
|
||||||
#, c-format
|
|
||||||
msgid "conflicting associativities for %s (%s) and %s (%s)"
|
|
||||||
msgstr "motstridiga associativiteter för %s (%s) och %s (%s)"
|
|
||||||
|
|
||||||
#: src/symtab.c:367
|
|
||||||
#, c-format
|
|
||||||
msgid "tokens %s and %s both assigned number %d"
|
|
||||||
msgstr "elementen %s och %s har båda fått nummer %d"
|
|
||||||
|
|
||||||
#: src/symtab.c:590
|
|
||||||
#, c-format
|
|
||||||
msgid "the start symbol %s is undefined"
|
|
||||||
msgstr "startsymbolen %s är odefinierad"
|
|
||||||
|
|
||||||
#: src/symtab.c:594
|
|
||||||
#, c-format
|
|
||||||
msgid "the start symbol %s is a token"
|
|
||||||
msgstr "startsymbolen %s är ett element"
|
|
||||||
|
|
||||||
#: lib/argmatch.c:135
|
|
||||||
#, c-format
|
|
||||||
msgid "invalid argument %s for %s"
|
|
||||||
msgstr "ogiltigt argument %s till %s"
|
|
||||||
|
|
||||||
#: lib/argmatch.c:136
|
|
||||||
#, c-format
|
|
||||||
msgid "ambiguous argument %s for %s"
|
|
||||||
msgstr "tvetydigt argument %s till %s"
|
|
||||||
|
|
||||||
#: lib/argmatch.c:155
|
|
||||||
msgid "Valid arguments are:"
|
|
||||||
msgstr "Giltiga argument är:"
|
|
||||||
|
|
||||||
#: lib/bitset_stats.c:179
|
|
||||||
#, c-format
|
|
||||||
msgid "%u bitset_allocs, %u freed (%.2f%%).\n"
|
|
||||||
msgstr "%u bitmängdallokeringar, %u frianden (%.2f%%).\n"
|
|
||||||
|
|
||||||
#: lib/bitset_stats.c:182
|
|
||||||
#, c-format
|
|
||||||
msgid "%u bitset_sets, %u cached (%.2f%%)\n"
|
|
||||||
msgstr "%u bitmängdmängder, %u cachade (%.2f%%)\n"
|
|
||||||
|
|
||||||
#: lib/bitset_stats.c:185
|
|
||||||
#, c-format
|
|
||||||
msgid "%u bitset_resets, %u cached (%.2f%%)\n"
|
|
||||||
msgstr "%u bitmängdåterställanden, %u cachade (%.2f%%)\n"
|
|
||||||
|
|
||||||
#: lib/bitset_stats.c:188
|
|
||||||
#, c-format
|
|
||||||
msgid "%u bitset_tests, %u cached (%.2f%%)\n"
|
|
||||||
msgstr "%u bitmängdtester, %u cachade (%.2f%%)\n"
|
|
||||||
|
|
||||||
#: lib/bitset_stats.c:192
|
|
||||||
#, c-format
|
|
||||||
msgid "%u bitset_lists\n"
|
|
||||||
msgstr "%u bitmängdlistor\n"
|
|
||||||
|
|
||||||
#: lib/bitset_stats.c:194
|
|
||||||
msgid "count log histogram\n"
|
|
||||||
msgstr "anropslogghistogram\n"
|
|
||||||
|
|
||||||
#: lib/bitset_stats.c:197
|
|
||||||
msgid "size log histogram\n"
|
|
||||||
msgstr "storlekslogghistogram\n"
|
|
||||||
|
|
||||||
#: lib/bitset_stats.c:200
|
|
||||||
msgid "density histogram\n"
|
|
||||||
msgstr "densitetshistogram\n"
|
|
||||||
|
|
||||||
#: lib/bitset_stats.c:214
|
|
||||||
msgid ""
|
|
||||||
"Bitset statistics:\n"
|
|
||||||
"\n"
|
|
||||||
msgstr ""
|
|
||||||
"Bitmängdsstatistik:\n"
|
|
||||||
"\n"
|
|
||||||
|
|
||||||
#: lib/bitset_stats.c:217
|
|
||||||
#, c-format
|
|
||||||
msgid "Accumulated runs = %u\n"
|
|
||||||
msgstr "Ackumulerade körningar = %u\n"
|
|
||||||
|
|
||||||
#: lib/bitset_stats.c:261 lib/bitset_stats.c:266
|
|
||||||
msgid "Could not read stats file."
|
|
||||||
msgstr "Kunde inte läsa statistikfil."
|
|
||||||
|
|
||||||
#: lib/bitset_stats.c:263
|
|
||||||
msgid "Bad stats file size.\n"
|
|
||||||
msgstr "Dålig statistikfilstorlek.\n"
|
|
||||||
|
|
||||||
#: lib/bitset_stats.c:289 lib/bitset_stats.c:291
|
|
||||||
msgid "Could not write stats file."
|
|
||||||
msgstr "Kunde inte skriva statistikfil."
|
|
||||||
|
|
||||||
#: lib/bitset_stats.c:294
|
|
||||||
msgid "Could not open stats file for writing."
|
|
||||||
msgstr "Kunde inte öppna statistikfil för skrivning."
|
|
||||||
|
|
||||||
#: lib/getopt.c:688 lib/getopt.c:700
|
|
||||||
#, c-format
|
|
||||||
msgid "%s: option `%s' is ambiguous\n"
|
|
||||||
msgstr "%s: flaggan \"%s\" är tvetydig\n"
|
|
||||||
|
|
||||||
#: lib/getopt.c:733 lib/getopt.c:737
|
|
||||||
#, c-format
|
|
||||||
msgid "%s: option `--%s' doesn't allow an argument\n"
|
|
||||||
msgstr "%s: flaggan \"--%s\" tar inget argument\n"
|
|
||||||
|
|
||||||
#: lib/getopt.c:746 lib/getopt.c:751
|
|
||||||
#, c-format
|
|
||||||
msgid "%s: option `%c%s' doesn't allow an argument\n"
|
|
||||||
msgstr "%s: flaggan \"%c%s\" tar inget argument\n"
|
|
||||||
|
|
||||||
#: lib/getopt.c:787 lib/getopt.c:800 lib/getopt.c:1089 lib/getopt.c:1102
|
|
||||||
#, c-format
|
|
||||||
msgid "%s: option `%s' requires an argument\n"
|
|
||||||
msgstr "%s: flaggan \"%s\" behöver ett argument\n"
|
|
||||||
|
|
||||||
#: lib/getopt.c:838 lib/getopt.c:841
|
|
||||||
#, c-format
|
|
||||||
msgid "%s: unrecognized option `--%s'\n"
|
|
||||||
msgstr "%s: okänd flagga \"--%s\"\n"
|
|
||||||
|
|
||||||
#: lib/getopt.c:849 lib/getopt.c:852
|
|
||||||
#, c-format
|
|
||||||
msgid "%s: unrecognized option `%c%s'\n"
|
|
||||||
msgstr "%s: okänd flagga \"%c%s\"\n"
|
|
||||||
|
|
||||||
#: lib/getopt.c:899 lib/getopt.c:902
|
|
||||||
#, c-format
|
|
||||||
msgid "%s: illegal option -- %c\n"
|
|
||||||
msgstr "%s: otillåten flagga -- %c\n"
|
|
||||||
|
|
||||||
#: lib/getopt.c:908 lib/getopt.c:911
|
|
||||||
#, c-format
|
|
||||||
msgid "%s: invalid option -- %c\n"
|
|
||||||
msgstr "%s: ogiltig flagga --%c\n"
|
|
||||||
|
|
||||||
#: lib/getopt.c:958 lib/getopt.c:969 lib/getopt.c:1155 lib/getopt.c:1168
|
|
||||||
#, c-format
|
|
||||||
msgid "%s: option requires an argument -- %c\n"
|
|
||||||
msgstr "%s: flaggan behöver ett argument -- %c\n"
|
|
||||||
|
|
||||||
#: lib/getopt.c:1021 lib/getopt.c:1032
|
|
||||||
#, c-format
|
|
||||||
msgid "%s: option `-W %s' is ambiguous\n"
|
|
||||||
msgstr "%s: flaggan \"-W %s\" är tvetydig\n"
|
|
||||||
|
|
||||||
#: lib/getopt.c:1056 lib/getopt.c:1068
|
|
||||||
#, c-format
|
|
||||||
msgid "%s: option `-W %s' doesn't allow an argument\n"
|
|
||||||
msgstr "%s: flaggan \"-W %s\" tar inget argument\n"
|
|
||||||
|
|
||||||
#: lib/obstack.c:487 lib/obstack.c:490 lib/xmalloc.c:63
|
|
||||||
msgid "memory exhausted"
|
|
||||||
msgstr "minnet slut"
|
|
||||||
|
|
||||||
# När vi går över till Unicode mer allmänt kanske vi bör översätta båda dessa
|
|
||||||
# med U+201D (RIGHT DOUBLE QUOTATION MARK) på svenska. Eller?
|
|
||||||
#
|
|
||||||
#: lib/quotearg.c:236
|
|
||||||
msgid "`"
|
|
||||||
msgstr "\""
|
|
||||||
|
|
||||||
#: lib/quotearg.c:237
|
|
||||||
msgid "'"
|
|
||||||
msgstr "\""
|
|
||||||
|
|
||||||
#: lib/subpipe.c:187
|
|
||||||
#, c-format
|
|
||||||
msgid "subsidiary program `%s' could not be invoked"
|
|
||||||
msgstr "underprogram \"%s\" kunde inte köras"
|
|
||||||
|
|
||||||
#: lib/subpipe.c:189
|
|
||||||
#, c-format
|
|
||||||
msgid "subsidiary program `%s' not found"
|
|
||||||
msgstr "underprogram \"%s\" hittades inte"
|
|
||||||
|
|
||||||
#: lib/subpipe.c:191
|
|
||||||
#, c-format
|
|
||||||
msgid "subsidiary program `%s' failed"
|
|
||||||
msgstr "underprogram \"%s\" misslyckades"
|
|
||||||
|
|
||||||
#: lib/subpipe.c:192
|
|
||||||
#, c-format
|
|
||||||
msgid "subsidiary program `%s' failed (exit status %d)"
|
|
||||||
msgstr "underprogram \"%s\" misslyckades (slutstatus %d)"
|
|
||||||
|
|
||||||
#: lib/timevar.c:476
|
|
||||||
msgid ""
|
|
||||||
"\n"
|
|
||||||
"Execution times (seconds)\n"
|
|
||||||
msgstr ""
|
|
||||||
"\n"
|
|
||||||
"Exekveringstider (sekunder)\n"
|
|
||||||
|
|
||||||
#: lib/timevar.c:526
|
|
||||||
msgid " TOTAL :"
|
|
||||||
msgstr " TOTALT :"
|
|
||||||
|
|
||||||
#: lib/timevar.c:562
|
|
||||||
#, c-format
|
|
||||||
msgid "time in %s: %ld.%06ld (%ld%%)\n"
|
|
||||||
msgstr "tid i %s: %ld.%06ld (%ld%%)\n"
|
|
||||||
902
po/tr.po
902
po/tr.po
@@ -1,902 +0,0 @@
|
|||||||
# Turkish translations for GNU Bison messages.
|
|
||||||
# Copyright (C) 2001 Free Software Foundation, Inc.
|
|
||||||
# Altuð Bayram <altugbayram_2000@yahoo.com>, 2001.
|
|
||||||
#
|
|
||||||
msgid ""
|
|
||||||
msgstr ""
|
|
||||||
"Project-Id-Version: bison 1.49a\n"
|
|
||||||
"Report-Msgid-Bugs-To: bug-bison@gnu.org\n"
|
|
||||||
"POT-Creation-Date: 2003-08-25 17:14+0200\n"
|
|
||||||
"PO-Revision-Date: 2002-06-25 11:03GMT +02:00\n"
|
|
||||||
"Last-Translator: Altuð Bayram <altugbayram_2000@yahoo.com>\n"
|
|
||||||
"Language-Team: Turkish <gnu-tr-u12a@lists.sourceforge.net>\n"
|
|
||||||
"MIME-Version: 1.0\n"
|
|
||||||
"Content-Type: text/plain; charset=ISO-8859-9\n"
|
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
|
||||||
"X-Generator: KBabel 0.9.5\n"
|
|
||||||
"Plural-Forms: nplurals=1; plural=0;\n"
|
|
||||||
|
|
||||||
#: src/complain.c:56 lib/error.c:135 lib/error.c:163
|
|
||||||
msgid "Unknown system error"
|
|
||||||
msgstr "Bilinmeyen sistem hatasý"
|
|
||||||
|
|
||||||
#: src/complain.c:79 src/complain.c:94
|
|
||||||
msgid "warning: "
|
|
||||||
msgstr "uyarý: "
|
|
||||||
|
|
||||||
#: src/complain.c:150 src/complain.c:166
|
|
||||||
msgid "fatal error: "
|
|
||||||
msgstr "ölümcül hata:"
|
|
||||||
|
|
||||||
#: src/conflicts.c:75
|
|
||||||
#, fuzzy, c-format
|
|
||||||
msgid " Conflict between rule %d and token %s resolved as shift"
|
|
||||||
msgstr ""
|
|
||||||
"%d durumu içinde %d kuralý ve %s andaçý arasýndaki çeliþki %s olarak\n"
|
|
||||||
"çözümlendi.\n"
|
|
||||||
|
|
||||||
#: src/conflicts.c:83
|
|
||||||
#, fuzzy, c-format
|
|
||||||
msgid " Conflict between rule %d and token %s resolved as reduce"
|
|
||||||
msgstr ""
|
|
||||||
"%d durumu içinde %d kuralý ve %s andaçý arasýndaki çeliþki %s olarak\n"
|
|
||||||
"çözümlendi.\n"
|
|
||||||
|
|
||||||
#: src/conflicts.c:90
|
|
||||||
#, fuzzy, c-format
|
|
||||||
msgid " Conflict between rule %d and token %s resolved as an error"
|
|
||||||
msgstr ""
|
|
||||||
"%d durumu içinde %d kuralý ve %s andaçý arasýndaki çeliþki %s olarak\n"
|
|
||||||
"çözümlendi.\n"
|
|
||||||
|
|
||||||
#: src/conflicts.c:398
|
|
||||||
#, c-format
|
|
||||||
msgid "conflicts: %d shift/reduce, %d reduce/reduce\n"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: src/conflicts.c:401
|
|
||||||
#, fuzzy, c-format
|
|
||||||
msgid "conflicts: %d shift/reduce\n"
|
|
||||||
msgstr " %d öteleme/indirgeme"
|
|
||||||
|
|
||||||
#: src/conflicts.c:403
|
|
||||||
#, fuzzy, c-format
|
|
||||||
msgid "conflicts: %d reduce/reduce\n"
|
|
||||||
msgstr " %d indirgeme/indirgeme"
|
|
||||||
|
|
||||||
#: src/conflicts.c:421
|
|
||||||
#, fuzzy, c-format
|
|
||||||
msgid "State %d "
|
|
||||||
msgstr "durum %d"
|
|
||||||
|
|
||||||
#: src/conflicts.c:498
|
|
||||||
#, fuzzy, c-format
|
|
||||||
msgid "expected %d shift/reduce conflict"
|
|
||||||
msgid_plural "expected %d shift/reduce conflicts"
|
|
||||||
msgstr[0] "beklenen %d öteleme/indirgeme çeliþkisi\n"
|
|
||||||
msgstr[1] "beklenen %d öteleme/indirgeme çeliþkisi\n"
|
|
||||||
|
|
||||||
#: src/conflicts.c:503
|
|
||||||
#, fuzzy
|
|
||||||
msgid "expected 0 reduce/reduce conflicts"
|
|
||||||
msgstr "%d indirgeme/indirgeme çeliþkisi"
|
|
||||||
|
|
||||||
#: src/files.c:99
|
|
||||||
#, c-format
|
|
||||||
msgid "cannot open file `%s'"
|
|
||||||
msgstr "`%s' dosyasý açýlamadý"
|
|
||||||
|
|
||||||
#: src/files.c:115
|
|
||||||
#, fuzzy
|
|
||||||
msgid "I/O error"
|
|
||||||
msgstr "bir hata"
|
|
||||||
|
|
||||||
#: src/files.c:118
|
|
||||||
msgid "cannot close file"
|
|
||||||
msgstr "dosya kapatýlamýyor"
|
|
||||||
|
|
||||||
#: src/files.c:336
|
|
||||||
#, fuzzy, c-format
|
|
||||||
msgid "conflicting outputs to file %s"
|
|
||||||
msgstr "%s ve %s için çeliþen birleþmeli deðerler"
|
|
||||||
|
|
||||||
#: src/getargs.c:186
|
|
||||||
#, c-format
|
|
||||||
msgid "Try `%s --help' for more information.\n"
|
|
||||||
msgstr "Daha fazla bilgi için `%s --help' yazýn.\n"
|
|
||||||
|
|
||||||
#: src/getargs.c:192
|
|
||||||
msgid "GNU bison generates parsers for LALR(1) grammars.\n"
|
|
||||||
msgstr "GNU bison LALR(1) gramerler için ayrýþtýrýcýlar üretir.\n"
|
|
||||||
|
|
||||||
#: src/getargs.c:196
|
|
||||||
#, c-format
|
|
||||||
msgid "Usage: %s [OPTION]... FILE\n"
|
|
||||||
msgstr "Kullaným: %s [SEÇENEK]... DOSYA\n"
|
|
||||||
|
|
||||||
#: src/getargs.c:200
|
|
||||||
msgid ""
|
|
||||||
"If a long option shows an argument as mandatory, then it is mandatory\n"
|
|
||||||
"for the equivalent short option also. Similarly for optional arguments.\n"
|
|
||||||
msgstr ""
|
|
||||||
"Eðer bir uzun seçenek bir argümaný gerektirirse, bu gereklilik, denk olan "
|
|
||||||
"kýsa\n"
|
|
||||||
"seçenek için de geçerlidir. Bu durum, seçimli argümanlar için de "
|
|
||||||
"geçerlidir.\n"
|
|
||||||
|
|
||||||
#: src/getargs.c:206
|
|
||||||
msgid ""
|
|
||||||
"Operation modes:\n"
|
|
||||||
" -h, --help display this help and exit\n"
|
|
||||||
" -V, --version output version information and exit\n"
|
|
||||||
" -y, --yacc emulate POSIX yacc\n"
|
|
||||||
msgstr ""
|
|
||||||
"Çalýþma kipleri:\n"
|
|
||||||
" -h, --help bu yardýmý göster ve çýk\n"
|
|
||||||
" -V, --version sürüm bilgisini ver ve çýk\n"
|
|
||||||
" -y, --yacc POSIX yacc öykünmesi\n"
|
|
||||||
|
|
||||||
#: src/getargs.c:213
|
|
||||||
msgid ""
|
|
||||||
"Parser:\n"
|
|
||||||
" -S, --skeleton=FILE specify the skeleton to use\n"
|
|
||||||
" -t, --debug instrument the parser for debugging\n"
|
|
||||||
" --locations enable locations computation\n"
|
|
||||||
" -p, --name-prefix=PREFIX prepend PREFIX to the external symbols\n"
|
|
||||||
" -l, --no-lines don't generate `#line' directives\n"
|
|
||||||
" -n, --no-parser generate the tables only\n"
|
|
||||||
" -k, --token-table include a table of token names\n"
|
|
||||||
msgstr ""
|
|
||||||
"Ayrýþtýrýcý:\n"
|
|
||||||
" -S, --skeleton=FILE kullanýlacak iskeleti belirle\n"
|
|
||||||
" -t, --debug ayrýþtýrýcý için hata ayýklayýcý aracý\n"
|
|
||||||
" --locations konum hesaplamalarýný etkinleþtir\n"
|
|
||||||
" -p, --name-prefix=PREFIX dýþ simgelere hazýr bekletilen ÖNEK\n"
|
|
||||||
" -l, --no-lines `#line' bildirimlerini üretme\n"
|
|
||||||
" -n, --no-parser sadece tablolarý üret\n"
|
|
||||||
" -k, --token-table andaç isimlerinin bir tablosunu içer\n"
|
|
||||||
|
|
||||||
#: src/getargs.c:225
|
|
||||||
#, fuzzy
|
|
||||||
msgid ""
|
|
||||||
"Output:\n"
|
|
||||||
" -d, --defines also produce a header file\n"
|
|
||||||
" -r, --report=THINGS also produce details on the automaton\n"
|
|
||||||
" -v, --verbose same as `--report=state'\n"
|
|
||||||
" -b, --file-prefix=PREFIX specify a PREFIX for output files\n"
|
|
||||||
" -o, --output=FILE leave output to FILE\n"
|
|
||||||
" -g, --graph also produce a VCG description of the "
|
|
||||||
"automaton\n"
|
|
||||||
msgstr ""
|
|
||||||
"Çýktý:\n"
|
|
||||||
" -d, --defines bir baþlýk dosyasýda üretir\n"
|
|
||||||
" -v, --verbose otomatýn bir açýklamasýný da üretir\n"
|
|
||||||
" -b, --file-prefix=ÖNEK çýktý dosyalarý için bir önek belirtir\n"
|
|
||||||
" -o, --output=DOSYA çýktýyý dosyaya býrakýr\n"
|
|
||||||
" -g, --graph otomatýn bir VCG grafik açýklamasýný da üretir\n"
|
|
||||||
|
|
||||||
#: src/getargs.c:236
|
|
||||||
msgid ""
|
|
||||||
"THINGS is a list of comma separated words that can include:\n"
|
|
||||||
" `state' describe the states\n"
|
|
||||||
" `itemset' complete the core item sets with their closure\n"
|
|
||||||
" `lookahead' explicitly associate lookaheads to items\n"
|
|
||||||
" `solved' describe shift/reduce conflicts solving\n"
|
|
||||||
" `all' include all the above information\n"
|
|
||||||
" `none' disable the report\n"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: src/getargs.c:247
|
|
||||||
msgid "Report bugs to <bug-bison@gnu.org>.\n"
|
|
||||||
msgstr ""
|
|
||||||
"Hatalarý <bug-bison@gnu.org>'a,\n"
|
|
||||||
"çeviri hatalarýný <gnu-tr-u12a@lists.sourceforge.net>'e bildir.\n"
|
|
||||||
|
|
||||||
#: src/getargs.c:264
|
|
||||||
#, c-format
|
|
||||||
msgid "bison (GNU Bison) %s"
|
|
||||||
msgstr "bison (GNU Bison) %s"
|
|
||||||
|
|
||||||
#: src/getargs.c:266
|
|
||||||
msgid "Written by Robert Corbett and Richard Stallman.\n"
|
|
||||||
msgstr "Yazanlar: Robert Corbett ve Richard Stallman.\n"
|
|
||||||
|
|
||||||
#: src/getargs.c:270
|
|
||||||
#, c-format
|
|
||||||
msgid "Copyright (C) %d Free Software Foundation, Inc.\n"
|
|
||||||
msgstr "Telif Hakký (C) %d Free Software Foundation, Inc.\n"
|
|
||||||
|
|
||||||
#: src/getargs.c:272
|
|
||||||
msgid ""
|
|
||||||
"This is free software; see the source for copying conditions. There is NO\n"
|
|
||||||
"warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n"
|
|
||||||
msgstr ""
|
|
||||||
"Bu bir serbest yazýlýmdýr; kopyalama koþullarý için kaynak koduna bakýnýz.\n"
|
|
||||||
"Hiçbir garantisi yoktur; hatta SATILABÝLÝRLÝÐÝ veya ÞAHSÝ KULLANIMINIZA\n"
|
|
||||||
"UYGUNLUÐU için bile garanti verilmez.\n"
|
|
||||||
|
|
||||||
#: src/getargs.c:438
|
|
||||||
#, c-format
|
|
||||||
msgid "missing operand after `%s'"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: src/getargs.c:440
|
|
||||||
#, c-format
|
|
||||||
msgid "extra operand `%s'"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: src/gram.c:139
|
|
||||||
msgid "empty"
|
|
||||||
msgstr "boþ"
|
|
||||||
|
|
||||||
#: src/gram.c:233
|
|
||||||
msgid "Grammar"
|
|
||||||
msgstr "Gramer"
|
|
||||||
|
|
||||||
#: src/gram.c:321 src/reduce.c:394
|
|
||||||
#, fuzzy
|
|
||||||
msgid "warning"
|
|
||||||
msgstr "uyarý: "
|
|
||||||
|
|
||||||
#: src/main.c:124
|
|
||||||
msgid "rule never reduced because of conflicts"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: src/parse-gram.y:353
|
|
||||||
msgid "POSIX forbids declarations in the grammar"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: src/parse-gram.y:476
|
|
||||||
msgid "missing identifier in parameter declaration"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: src/print.c:49
|
|
||||||
#, c-format
|
|
||||||
msgid " type %d is %s\n"
|
|
||||||
msgstr " tip %d %s'dir\n"
|
|
||||||
|
|
||||||
#: src/print.c:165
|
|
||||||
#, fuzzy, c-format
|
|
||||||
msgid "shift, and go to state %d\n"
|
|
||||||
msgstr " %-4s\tötele, ve durum %d'ye git\n"
|
|
||||||
|
|
||||||
#: src/print.c:167
|
|
||||||
#, fuzzy, c-format
|
|
||||||
msgid "go to state %d\n"
|
|
||||||
msgstr " %-4s\tdurum %d'ye git\n"
|
|
||||||
|
|
||||||
#: src/print.c:204
|
|
||||||
#, fuzzy
|
|
||||||
msgid "error (nonassociative)\n"
|
|
||||||
msgstr "%-4s\thata (birleþmeli deðil)"
|
|
||||||
|
|
||||||
#: src/print.c:292
|
|
||||||
#, fuzzy, c-format
|
|
||||||
msgid "reduce using rule %d (%s)"
|
|
||||||
msgstr "$default\tindirgeme kural %d (%s)'i kullanýyor"
|
|
||||||
|
|
||||||
#: src/print.c:294
|
|
||||||
msgid "accept"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: src/print.c:325 src/print.c:391
|
|
||||||
msgid "$default"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: src/print.c:420
|
|
||||||
#, c-format
|
|
||||||
msgid "state %d"
|
|
||||||
msgstr "durum %d"
|
|
||||||
|
|
||||||
#: src/print.c:456
|
|
||||||
msgid "Terminals, with rules where they appear"
|
|
||||||
msgstr "Sabit simgeler, kurallarýnýn bulunduklarý yerde"
|
|
||||||
|
|
||||||
#: src/print.c:483
|
|
||||||
msgid "Nonterminals, with rules where they appear"
|
|
||||||
msgstr "Deðiþken simgeler, kurallarýnýn bulunduklarý yerde"
|
|
||||||
|
|
||||||
#: src/print.c:512
|
|
||||||
msgid " on left:"
|
|
||||||
msgstr " solda:"
|
|
||||||
|
|
||||||
#: src/print.c:527
|
|
||||||
msgid " on right:"
|
|
||||||
msgstr " saðda:"
|
|
||||||
|
|
||||||
#: src/print.c:555
|
|
||||||
#, fuzzy
|
|
||||||
msgid "Rules never reduced"
|
|
||||||
msgstr "%d kural asla indirgenmedi\n"
|
|
||||||
|
|
||||||
#: src/reader.c:53
|
|
||||||
#, c-format
|
|
||||||
msgid "multiple %s declarations"
|
|
||||||
msgstr "çoklu %s bildirimleri"
|
|
||||||
|
|
||||||
#: src/reader.c:115
|
|
||||||
#, c-format
|
|
||||||
msgid "result type clash on merge function %s: <%s> != <%s>"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: src/reader.c:213
|
|
||||||
#, c-format
|
|
||||||
msgid "rule given for %s, which is a token"
|
|
||||||
msgstr "bir andaç olan %s için verilen kural"
|
|
||||||
|
|
||||||
#: src/reader.c:242
|
|
||||||
#, fuzzy, c-format
|
|
||||||
msgid "type clash on default action: <%s> != <%s>"
|
|
||||||
msgstr "öntanýmlý eylem üzerinde (`%s' `%s') tip çatýþmasý"
|
|
||||||
|
|
||||||
#: src/reader.c:248
|
|
||||||
msgid "empty rule for typed nonterminal, and no action"
|
|
||||||
msgstr ""
|
|
||||||
"Tipli deðiþken simge için boþ kural tanýmlanmýþ, ve eylem belirtilmemiþ"
|
|
||||||
|
|
||||||
#: src/reader.c:318 src/reader.c:332 src/reader.c:345
|
|
||||||
#, c-format
|
|
||||||
msgid "only one %s allowed per rule"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: src/reader.c:328 src/reader.c:343
|
|
||||||
#, c-format
|
|
||||||
msgid "%s affects only GLR parsers"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: src/reader.c:330
|
|
||||||
#, c-format
|
|
||||||
msgid "%s must be followed by positive number"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: src/reader.c:487
|
|
||||||
msgid "no rules in the input grammar"
|
|
||||||
msgstr "girdi grameri içinde kurallar yok"
|
|
||||||
|
|
||||||
#: src/reduce.c:242
|
|
||||||
#, fuzzy
|
|
||||||
msgid "useless rule"
|
|
||||||
msgstr "%d yararsýz kural"
|
|
||||||
|
|
||||||
#: src/reduce.c:303
|
|
||||||
#, fuzzy, c-format
|
|
||||||
msgid "useless nonterminal: %s"
|
|
||||||
msgstr "Yararsýz deðiþken simgeler:"
|
|
||||||
|
|
||||||
#: src/reduce.c:351
|
|
||||||
#, fuzzy
|
|
||||||
msgid "Useless nonterminals"
|
|
||||||
msgstr "Yararsýz deðiþken simgeler:"
|
|
||||||
|
|
||||||
#: src/reduce.c:364
|
|
||||||
#, fuzzy
|
|
||||||
msgid "Terminals which are not used"
|
|
||||||
msgstr "Kullanýlmayan sabit simgeler:"
|
|
||||||
|
|
||||||
#: src/reduce.c:373
|
|
||||||
#, fuzzy
|
|
||||||
msgid "Useless rules"
|
|
||||||
msgstr "Yararsýz kurallar:"
|
|
||||||
|
|
||||||
#: src/reduce.c:389
|
|
||||||
#, c-format
|
|
||||||
msgid "%d rule never reduced\n"
|
|
||||||
msgid_plural "%d rules never reduced\n"
|
|
||||||
msgstr[0] "%d kural asla indirgenmedi\n"
|
|
||||||
msgstr[1] "%d kural asla indirgenmedi\n"
|
|
||||||
|
|
||||||
#: src/reduce.c:397
|
|
||||||
#, c-format
|
|
||||||
msgid "%d useless nonterminal"
|
|
||||||
msgid_plural "%d useless nonterminals"
|
|
||||||
msgstr[0] "%d yararsýz deðiþken simge"
|
|
||||||
msgstr[1] "%d yararsýz deðiþken simge"
|
|
||||||
|
|
||||||
#: src/reduce.c:403
|
|
||||||
msgid " and "
|
|
||||||
msgstr " ve "
|
|
||||||
|
|
||||||
#: src/reduce.c:406
|
|
||||||
#, c-format
|
|
||||||
msgid "%d useless rule"
|
|
||||||
msgid_plural "%d useless rules"
|
|
||||||
msgstr[0] "%d yararsýz kural"
|
|
||||||
msgstr[1] "%d yararsýz kural"
|
|
||||||
|
|
||||||
#: src/reduce.c:436
|
|
||||||
#, fuzzy, c-format
|
|
||||||
msgid "start symbol %s does not derive any sentence"
|
|
||||||
msgstr "Baþlangýç simgesi %s herhangi bir cümleden türemez"
|
|
||||||
|
|
||||||
#: src/scan-gram.l:160
|
|
||||||
msgid "stray `,' treated as white space"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: src/scan-gram.l:221
|
|
||||||
#, fuzzy, c-format
|
|
||||||
msgid "invalid directive: %s"
|
|
||||||
msgstr "geçersiz girdi: %s"
|
|
||||||
|
|
||||||
#: src/scan-gram.l:241 src/scan-gram.l:804 src/scan-gram.l:873
|
|
||||||
#, c-format
|
|
||||||
msgid "integer out of range: %s"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: src/scan-gram.l:283
|
|
||||||
#, fuzzy, c-format
|
|
||||||
msgid "invalid character: %s"
|
|
||||||
msgstr "bilinmeyen karakter: %s"
|
|
||||||
|
|
||||||
#: src/scan-gram.l:412 src/scan-gram.l:422 src/scan-gram.l:441
|
|
||||||
#, fuzzy, c-format
|
|
||||||
msgid "invalid escape sequence: %s"
|
|
||||||
msgstr "geçersiz deðer: %s%d"
|
|
||||||
|
|
||||||
#: src/scan-gram.l:446
|
|
||||||
#, fuzzy, c-format
|
|
||||||
msgid "unrecognized escape sequence: %s"
|
|
||||||
msgstr "tanýnmayan: %s"
|
|
||||||
|
|
||||||
#: src/scan-gram.l:534
|
|
||||||
#, c-format
|
|
||||||
msgid "missing `{' in `%s'"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: src/scan-gram.l:774
|
|
||||||
#, c-format
|
|
||||||
msgid "$$ of `%s' has no declared type"
|
|
||||||
msgstr "`%s''in $$'ý bildirilmiþ tip deðil"
|
|
||||||
|
|
||||||
#: src/scan-gram.l:795
|
|
||||||
#, c-format
|
|
||||||
msgid "$%d of `%s' has no declared type"
|
|
||||||
msgstr "`%2$s''in %1$d'i bildirilmiþ tip deðil"
|
|
||||||
|
|
||||||
#: src/scan-gram.l:840 src/scan-gram.l:908
|
|
||||||
#, fuzzy, c-format
|
|
||||||
msgid "invalid value: %s"
|
|
||||||
msgstr "geçersiz deðer: %s%d"
|
|
||||||
|
|
||||||
#: src/scan-gram.l:996
|
|
||||||
#, fuzzy, c-format
|
|
||||||
msgid "missing `%s' at end of file"
|
|
||||||
msgstr "dosyanýn sonunda sonlandýrýlmamýþ dizge"
|
|
||||||
|
|
||||||
#: src/symlist.c:97 src/symlist.c:108
|
|
||||||
msgid "invalid $ value"
|
|
||||||
msgstr "geçersiz $ deðeri"
|
|
||||||
|
|
||||||
#: src/symtab.c:84
|
|
||||||
#, c-format
|
|
||||||
msgid "type redeclaration for %s"
|
|
||||||
msgstr "%s için yeniden tip bildirimi"
|
|
||||||
|
|
||||||
#: src/symtab.c:101 src/symtab.c:119
|
|
||||||
#, fuzzy, c-format
|
|
||||||
msgid "%s redeclaration for %s"
|
|
||||||
msgstr "%s için yeniden tip bildirimi"
|
|
||||||
|
|
||||||
#: src/symtab.c:138
|
|
||||||
#, c-format
|
|
||||||
msgid "redefining precedence of %s"
|
|
||||||
msgstr "%s'in önceliði tekrar tanýmlandý"
|
|
||||||
|
|
||||||
#: src/symtab.c:156
|
|
||||||
#, c-format
|
|
||||||
msgid "symbol %s redefined"
|
|
||||||
msgstr "%s simgesi yeniden tanýmlandý"
|
|
||||||
|
|
||||||
#: src/symtab.c:179
|
|
||||||
#, fuzzy, c-format
|
|
||||||
msgid "redefining user token number of %s"
|
|
||||||
msgstr "%s'in önceliði tekrar tanýmlandý"
|
|
||||||
|
|
||||||
#: src/symtab.c:206
|
|
||||||
#, c-format
|
|
||||||
msgid "symbol %s is used, but is not defined as a token and has no rules"
|
|
||||||
msgstr ""
|
|
||||||
"simge %s kullanýldý, fakat bir andaç olarak tanýmlanmadý ve kurallarý yok"
|
|
||||||
|
|
||||||
#: src/symtab.c:231
|
|
||||||
#, c-format
|
|
||||||
msgid "symbol `%s' used more than once as a literal string"
|
|
||||||
msgstr "simge `%s' bir harfiyen uyumlu dizgi gibi birden fazla kullanýldý"
|
|
||||||
|
|
||||||
#: src/symtab.c:234
|
|
||||||
#, c-format
|
|
||||||
msgid "symbol `%s' given more than one literal string"
|
|
||||||
msgstr "simge `%s' bir harfiyen uyumlu dizgi gibi birden fazla verilmiþ"
|
|
||||||
|
|
||||||
#: src/symtab.c:270
|
|
||||||
#, c-format
|
|
||||||
msgid "conflicting precedences for %s and %s"
|
|
||||||
msgstr "%s ve %s için çeliþen öncelikler"
|
|
||||||
|
|
||||||
#: src/symtab.c:282
|
|
||||||
#, fuzzy, c-format
|
|
||||||
msgid "conflicting associativities for %s (%s) and %s (%s)"
|
|
||||||
msgstr "%s ve %s için çeliþen birleþmeli deðerler"
|
|
||||||
|
|
||||||
#: src/symtab.c:367
|
|
||||||
#, c-format
|
|
||||||
msgid "tokens %s and %s both assigned number %d"
|
|
||||||
msgstr "%s ve %s andaçlarýnýn her ikisi %d sayýsýna atandý"
|
|
||||||
|
|
||||||
#: src/symtab.c:590
|
|
||||||
#, c-format
|
|
||||||
msgid "the start symbol %s is undefined"
|
|
||||||
msgstr "baþlangýç simgesi %s tanýmlanmadý"
|
|
||||||
|
|
||||||
#: src/symtab.c:594
|
|
||||||
#, c-format
|
|
||||||
msgid "the start symbol %s is a token"
|
|
||||||
msgstr "baþlangýç simgesi %s bir andaçtýr"
|
|
||||||
|
|
||||||
#: lib/argmatch.c:135
|
|
||||||
#, fuzzy, c-format
|
|
||||||
msgid "invalid argument %s for %s"
|
|
||||||
msgstr "geçersiz deðer: %s%d"
|
|
||||||
|
|
||||||
#: lib/argmatch.c:136
|
|
||||||
#, c-format
|
|
||||||
msgid "ambiguous argument %s for %s"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: lib/argmatch.c:155
|
|
||||||
msgid "Valid arguments are:"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: lib/bitset_stats.c:179
|
|
||||||
#, c-format
|
|
||||||
msgid "%u bitset_allocs, %u freed (%.2f%%).\n"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: lib/bitset_stats.c:182
|
|
||||||
#, c-format
|
|
||||||
msgid "%u bitset_sets, %u cached (%.2f%%)\n"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: lib/bitset_stats.c:185
|
|
||||||
#, c-format
|
|
||||||
msgid "%u bitset_resets, %u cached (%.2f%%)\n"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: lib/bitset_stats.c:188
|
|
||||||
#, c-format
|
|
||||||
msgid "%u bitset_tests, %u cached (%.2f%%)\n"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: lib/bitset_stats.c:192
|
|
||||||
#, c-format
|
|
||||||
msgid "%u bitset_lists\n"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: lib/bitset_stats.c:194
|
|
||||||
msgid "count log histogram\n"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: lib/bitset_stats.c:197
|
|
||||||
msgid "size log histogram\n"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: lib/bitset_stats.c:200
|
|
||||||
msgid "density histogram\n"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: lib/bitset_stats.c:214
|
|
||||||
msgid ""
|
|
||||||
"Bitset statistics:\n"
|
|
||||||
"\n"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: lib/bitset_stats.c:217
|
|
||||||
#, c-format
|
|
||||||
msgid "Accumulated runs = %u\n"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: lib/bitset_stats.c:261 lib/bitset_stats.c:266
|
|
||||||
msgid "Could not read stats file."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: lib/bitset_stats.c:263
|
|
||||||
msgid "Bad stats file size.\n"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: lib/bitset_stats.c:289 lib/bitset_stats.c:291
|
|
||||||
msgid "Could not write stats file."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: lib/bitset_stats.c:294
|
|
||||||
msgid "Could not open stats file for writing."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: lib/getopt.c:688 lib/getopt.c:700
|
|
||||||
#, c-format
|
|
||||||
msgid "%s: option `%s' is ambiguous\n"
|
|
||||||
msgstr "%s: `%s' seçeneði belirsiz\n"
|
|
||||||
|
|
||||||
#: lib/getopt.c:733 lib/getopt.c:737
|
|
||||||
#, c-format
|
|
||||||
msgid "%s: option `--%s' doesn't allow an argument\n"
|
|
||||||
msgstr "%s: `--%s' seçeneði argümansýz kullanýlýr\n"
|
|
||||||
|
|
||||||
#: lib/getopt.c:746 lib/getopt.c:751
|
|
||||||
#, c-format
|
|
||||||
msgid "%s: option `%c%s' doesn't allow an argument\n"
|
|
||||||
msgstr "%s: seçenek `%c%s' argümansýz kullanýlýr\n"
|
|
||||||
|
|
||||||
#: lib/getopt.c:787 lib/getopt.c:800 lib/getopt.c:1089 lib/getopt.c:1102
|
|
||||||
#, c-format
|
|
||||||
msgid "%s: option `%s' requires an argument\n"
|
|
||||||
msgstr "%s: `%s' seçeneði bir argümanla kullanýlýr\n"
|
|
||||||
|
|
||||||
#: lib/getopt.c:838 lib/getopt.c:841
|
|
||||||
#, c-format
|
|
||||||
msgid "%s: unrecognized option `--%s'\n"
|
|
||||||
msgstr "%s: `--%s' seçeneði bilinmiyor\n"
|
|
||||||
|
|
||||||
#: lib/getopt.c:849 lib/getopt.c:852
|
|
||||||
#, c-format
|
|
||||||
msgid "%s: unrecognized option `%c%s'\n"
|
|
||||||
msgstr "%s: `%c%s' seçeneði bilinmiyor\n"
|
|
||||||
|
|
||||||
#: lib/getopt.c:899 lib/getopt.c:902
|
|
||||||
#, c-format
|
|
||||||
msgid "%s: illegal option -- %c\n"
|
|
||||||
msgstr "%s: kuraldýþý seçenek -- %c\n"
|
|
||||||
|
|
||||||
#: lib/getopt.c:908 lib/getopt.c:911
|
|
||||||
#, c-format
|
|
||||||
msgid "%s: invalid option -- %c\n"
|
|
||||||
msgstr "%s: geçersiz seçenek -- %c\n"
|
|
||||||
|
|
||||||
#: lib/getopt.c:958 lib/getopt.c:969 lib/getopt.c:1155 lib/getopt.c:1168
|
|
||||||
#, c-format
|
|
||||||
msgid "%s: option requires an argument -- %c\n"
|
|
||||||
msgstr "%s: seçenek bir argümanla kullanýlýr -- %c\n"
|
|
||||||
|
|
||||||
#: lib/getopt.c:1021 lib/getopt.c:1032
|
|
||||||
#, c-format
|
|
||||||
msgid "%s: option `-W %s' is ambiguous\n"
|
|
||||||
msgstr "%s: `-W %s' seçeneði belirsiz\n"
|
|
||||||
|
|
||||||
#: lib/getopt.c:1056 lib/getopt.c:1068
|
|
||||||
#, c-format
|
|
||||||
msgid "%s: option `-W %s' doesn't allow an argument\n"
|
|
||||||
msgstr "%s: `-W %s' seçeneði argümansýz kullanýlýr\n"
|
|
||||||
|
|
||||||
#: lib/obstack.c:487 lib/obstack.c:490 lib/xmalloc.c:63
|
|
||||||
msgid "memory exhausted"
|
|
||||||
msgstr "bellek tükendi"
|
|
||||||
|
|
||||||
#: lib/quotearg.c:236
|
|
||||||
msgid "`"
|
|
||||||
msgstr "`"
|
|
||||||
|
|
||||||
#: lib/quotearg.c:237
|
|
||||||
msgid "'"
|
|
||||||
msgstr "'"
|
|
||||||
|
|
||||||
#: lib/subpipe.c:187
|
|
||||||
#, c-format
|
|
||||||
msgid "subsidiary program `%s' could not be invoked"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: lib/subpipe.c:189
|
|
||||||
#, c-format
|
|
||||||
msgid "subsidiary program `%s' not found"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: lib/subpipe.c:191
|
|
||||||
#, c-format
|
|
||||||
msgid "subsidiary program `%s' failed"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: lib/subpipe.c:192
|
|
||||||
#, c-format
|
|
||||||
msgid "subsidiary program `%s' failed (exit status %d)"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: lib/timevar.c:476
|
|
||||||
msgid ""
|
|
||||||
"\n"
|
|
||||||
"Execution times (seconds)\n"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: lib/timevar.c:526
|
|
||||||
msgid " TOTAL :"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: lib/timevar.c:562
|
|
||||||
#, c-format
|
|
||||||
msgid "time in %s: %ld.%06ld (%ld%%)\n"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#~ msgid "too many states (max %d)"
|
|
||||||
#~ msgstr "çok fazla durum (en fazla %d)"
|
|
||||||
|
|
||||||
#~ msgid "reduce"
|
|
||||||
#~ msgstr "indirgeme"
|
|
||||||
|
|
||||||
#~ msgid "shift"
|
|
||||||
#~ msgstr "shift"
|
|
||||||
|
|
||||||
#~ msgid "%d shift/reduce conflict"
|
|
||||||
#~ msgid_plural "%d shift/reduce conflicts"
|
|
||||||
#~ msgstr[0] "%d öteleme/indirgeme çeliþkisi"
|
|
||||||
#~ msgstr[1] "%d öteleme/indirgeme çeliþkisi"
|
|
||||||
|
|
||||||
#~ msgid "and"
|
|
||||||
#~ msgstr "ve"
|
|
||||||
|
|
||||||
#~ msgid "State %d contains "
|
|
||||||
#~ msgstr "%d durumu içerir"
|
|
||||||
|
|
||||||
#~ msgid "conflicts: "
|
|
||||||
#~ msgstr "çeliþkiler: "
|
|
||||||
|
|
||||||
#~ msgid "%s contains "
|
|
||||||
#~ msgstr "%s içerir"
|
|
||||||
|
|
||||||
#~ msgid "`%s' is no longer supported"
|
|
||||||
#~ msgstr "`%s' artýk desteklenmeyecek"
|
|
||||||
|
|
||||||
#~ msgid "%s: no grammar file given\n"
|
|
||||||
#~ msgstr "%s: gramer dosyasý verilmemiþ\n"
|
|
||||||
|
|
||||||
#~ msgid "%s: extra arguments ignored after `%s'\n"
|
|
||||||
#~ msgstr "%s: '%s' den sonraki argümanlar yoksayýldý\n"
|
|
||||||
|
|
||||||
#~ msgid "too many gotos (max %d)"
|
|
||||||
#~ msgstr "gotos çok fazla (en fazla %d)"
|
|
||||||
|
|
||||||
#~ msgid "unexpected `/' found and ignored"
|
|
||||||
#~ msgstr "beklenmeyen `/' bulundu ve yoksayýldý"
|
|
||||||
|
|
||||||
#~ msgid "unterminated comment"
|
|
||||||
#~ msgstr "sonlandýrýlmamýþ açýklama"
|
|
||||||
|
|
||||||
#~ msgid "unexpected end of file"
|
|
||||||
#~ msgstr "beklenmeyen dosya sonu"
|
|
||||||
|
|
||||||
#~ msgid "unescaped newline in constant"
|
|
||||||
#~ msgstr "sabit içinde kaçamayan yeni satýr"
|
|
||||||
|
|
||||||
#~ msgid "octal value outside range 0...255: `\\%o'"
|
|
||||||
#~ msgstr "sekizli deðer 0...255'in dýþýnda: `\\%o'"
|
|
||||||
|
|
||||||
#~ msgid "hexadecimal value above 255: `\\x%x'"
|
|
||||||
#~ msgstr "onaltýlýk deðer 255'in üstünde: `\\x%x'"
|
|
||||||
|
|
||||||
#~ msgid "unknown escape sequence: `\\' followed by `%s'"
|
|
||||||
#~ msgstr "bilinmeyen kaçýþ sýrasý: `\\' `%s' tarafýndan takip edildi"
|
|
||||||
|
|
||||||
#~ msgid "unterminated type name at end of file"
|
|
||||||
#~ msgstr "dosya sonunda sonlandýrýlmamýþ tip adý"
|
|
||||||
|
|
||||||
#~ msgid "unterminated type name"
|
|
||||||
#~ msgstr "sonlandýrýlmamýþ tip ismi"
|
|
||||||
|
|
||||||
#~ msgid "use \"...\" for multi-character literal tokens"
|
|
||||||
#~ msgstr "çok-karakterli yazýn andaçlarý için \"...\" kullan"
|
|
||||||
|
|
||||||
#~ msgid "`%s' supports no argument: %s"
|
|
||||||
#~ msgstr "`%s' argüman %s'i desteklemez"
|
|
||||||
|
|
||||||
#~ msgid "`%s' requires an argument"
|
|
||||||
#~ msgstr "`%s' bir argüman gerektirir"
|
|
||||||
|
|
||||||
#~ msgid " (rule %d)"
|
|
||||||
#~ msgstr " (kural %d)"
|
|
||||||
|
|
||||||
#~ msgid " %-4s\terror (nonassociative)\n"
|
|
||||||
#~ msgstr " %-4s\thata (birleþmeli deðil)\n"
|
|
||||||
|
|
||||||
#~ msgid ""
|
|
||||||
#~ " $default\treduce using rule %d (%s)\n"
|
|
||||||
#~ "\n"
|
|
||||||
#~ msgstr ""
|
|
||||||
#~ " $default\tindirgeme kural %d (%s)'i kullanýyor\n"
|
|
||||||
#~ "\n"
|
|
||||||
|
|
||||||
#~ msgid " %-4s\t[reduce using rule %d (%s)]\n"
|
|
||||||
#~ msgstr " %-4s\t[indirgeme kural %d (%s)'i kullanýyor]\n"
|
|
||||||
|
|
||||||
#~ msgid " %-4s\treduce using rule %d (%s)\n"
|
|
||||||
#~ msgstr " %-4s\tindirgeme kural %d (%s)'i kullanýyor\n"
|
|
||||||
|
|
||||||
#~ msgid " $default\treduce using rule %d (%s)\n"
|
|
||||||
#~ msgstr " $default\tindirgeme kural %d (%s)'i kullanýyor\n"
|
|
||||||
|
|
||||||
#~ msgid " $default\taccept\n"
|
|
||||||
#~ msgstr " $default\tonayla\n"
|
|
||||||
|
|
||||||
#~ msgid " NO ACTIONS\n"
|
|
||||||
#~ msgstr " EYLEM YOK\n"
|
|
||||||
|
|
||||||
#~ msgid "Number, Line, Rule"
|
|
||||||
#~ msgstr "Sayý, Satýr, Kural"
|
|
||||||
|
|
||||||
#~ msgid " %3d %3d %s ->"
|
|
||||||
#~ msgstr " %3d %3d %s ->"
|
|
||||||
|
|
||||||
#~ msgid " Skipping to next \\n"
|
|
||||||
#~ msgstr " Sonrakine atlanýyor \\n"
|
|
||||||
|
|
||||||
#~ msgid " Skipping to next %c"
|
|
||||||
#~ msgstr " Sonraki %c'ye atlanýyor"
|
|
||||||
|
|
||||||
#~ msgid "unterminated string"
|
|
||||||
#~ msgstr "sonlandýrýlmamýþ dizge"
|
|
||||||
|
|
||||||
#~ msgid "%s is invalid"
|
|
||||||
#~ msgstr "%s geçersizdir"
|
|
||||||
|
|
||||||
#~ msgid "unterminated `%{' definition"
|
|
||||||
#~ msgstr "`%{' tanýmlamasý sonlandýrýlmamýþ"
|
|
||||||
|
|
||||||
#~ msgid "Premature EOF after %s"
|
|
||||||
#~ msgstr "%s'den sonra erken EOF"
|
|
||||||
|
|
||||||
#~ msgid "`%s' is invalid in %s"
|
|
||||||
#~ msgstr "`%s' %s içinde geçersizdir"
|
|
||||||
|
|
||||||
#~ msgid "invalid %s declaration"
|
|
||||||
#~ msgstr "geçersiz %s bildirimi"
|
|
||||||
|
|
||||||
#~ msgid "%type declaration has no <typename>"
|
|
||||||
#~ msgstr "%type bildirimi <tipadý>'na sahip deðil"
|
|
||||||
|
|
||||||
#~ msgid "invalid %%type declaration due to item: %s"
|
|
||||||
#~ msgstr "geçersiz %%type bildirimine neden olan öðe: `%s'"
|
|
||||||
|
|
||||||
#~ msgid "invalid text (%s) - number should be after identifier"
|
|
||||||
#~ msgstr "geçersiz metin (%s) - sayý tanýtýcýdan sonra olmalýdýr"
|
|
||||||
|
|
||||||
#~ msgid "unexpected item: %s"
|
|
||||||
#~ msgstr "beklenmeyen öðe: %s"
|
|
||||||
|
|
||||||
#~ msgid "unmatched %s"
|
|
||||||
#~ msgstr "eþlenemeyen %s"
|
|
||||||
|
|
||||||
#~ msgid "argument of %%expect is not an integer"
|
|
||||||
#~ msgstr "%%expect'in argümaný bir tamsayý deðildir"
|
|
||||||
|
|
||||||
#~ msgid "unrecognized item %s, expected an identifier"
|
|
||||||
#~ msgstr "%s öðesi tanýnmadý, beklenen bir tanýtýcýdýr"
|
|
||||||
|
|
||||||
#~ msgid "expected string constant instead of %s"
|
|
||||||
#~ msgstr "%s'in yerine sabit dizge beklendi"
|
|
||||||
|
|
||||||
#~ msgid "no input grammar"
|
|
||||||
#~ msgstr "girdi grameri yok"
|
|
||||||
|
|
||||||
#~ msgid "ill-formed rule: initial symbol not followed by colon"
|
|
||||||
#~ msgstr "kötü-biçemli kural: baþlangýç simgesini takip eden \":\" yok"
|
|
||||||
|
|
||||||
#~ msgid "grammar starts with vertical bar"
|
|
||||||
#~ msgstr "gramer düþey çubuk ile baþlýyor"
|
|
||||||
|
|
||||||
#~ msgid "previous rule lacks an ending `;'"
|
|
||||||
#~ msgstr "önceki kuralda bir bitiþ `;' eksik"
|
|
||||||
|
|
||||||
#~ msgid "two @prec's in a row"
|
|
||||||
#~ msgstr "bir satýrda iki @prec"
|
|
||||||
|
|
||||||
#~ msgid "%%guard present but %%semantic_parser not specified"
|
|
||||||
#~ msgstr "%%guard sunulmuþ fakat %%semantic_parser belirlenmemiþ"
|
|
||||||
|
|
||||||
#~ msgid "two actions at end of one rule"
|
|
||||||
#~ msgstr "bir kuralýn sonunda iki eylem"
|
|
||||||
|
|
||||||
#~ msgid "too many symbols (tokens plus nonterminals); maximum %d"
|
|
||||||
#~ msgstr "çok fazla simge var (andaçlar ve deðiþken simgeler); en fazla %d"
|
|
||||||
|
|
||||||
#~ msgid "maximum table size (%d) exceeded"
|
|
||||||
#~ msgstr "en büyük tablo uzunluðu (%d) aþýldý"
|
|
||||||
|
|
||||||
#~ msgid " $ \tgo to state %d\n"
|
|
||||||
#~ msgstr " $ \tdurum %d'ye git\n"
|
|
||||||
|
|
||||||
#~ msgid "unterminated %guard clause"
|
|
||||||
#~ msgstr "sonlandýrýlmamýþ %guard yantümcesi"
|
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user