mirror of
https://git.savannah.gnu.org/git/bison.git
synced 2026-03-09 12:23:04 +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>
|
||||
|
||||
* src/conflicts.c (conflicts_print): Correct format string typo:
|
||||
@@ -10179,6 +10324,7 @@
|
||||
obstacks.
|
||||
(output_token_defines, reader_output_yylsp): Use obstacks.
|
||||
* src/system.h (obstack_fgrow3): New.
|
||||
* po/POTFILES.in: Adjust.
|
||||
|
||||
2000-11-01 Akim Demaille <akim@epita.fr>
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
## 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
|
||||
## it under the terms of the GNU General Public License as published by
|
||||
@@ -18,7 +18,7 @@
|
||||
|
||||
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
|
||||
|
||||
|
||||
20
README-cvs
20
README-cvs
@@ -6,15 +6,13 @@ Bison.
|
||||
* Requirements
|
||||
|
||||
Only the sources are installed in the CVS repository (to ease the
|
||||
maintenance, merges etc.), therefore you will have to the maintainer
|
||||
tools we depend upon:
|
||||
|
||||
- Automake 1.7
|
||||
|
||||
- Autoconf 2.57
|
||||
|
||||
- Gettext 0.12.1
|
||||
maintenance, merges etc.), therefore you will have to get the latest
|
||||
stable versions of the maintainer tools we depend upon, including:
|
||||
|
||||
- Automake
|
||||
- Autoconf
|
||||
- Flex
|
||||
- Gettext
|
||||
- CVS Bison itself
|
||||
|
||||
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
|
||||
|
||||
2. Fetch a recent tarball in:
|
||||
http://www.lrde.epita.fr/~akim/download/
|
||||
ftp://alpha.gnu.org/gnu/bison/
|
||||
|
||||
3. Extract it
|
||||
|
||||
4. Override the content of your checkout with the content of this
|
||||
tarball, i.e.:
|
||||
cp -r bison-1.49b/* bison-cvs
|
||||
cp -r bison-1.875c/* bison-cvs
|
||||
|
||||
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.
|
||||
|
||||
|
||||
223
bootstrap
223
bootstrap
@@ -1,6 +1,223 @@
|
||||
#! /bin/sh
|
||||
|
||||
echo "Bootstrapping CVS Bison..."
|
||||
# Bootstrap this package from CVS.
|
||||
|
||||
echo "running: autoreconf --verbose --install --force"
|
||||
autoreconf --verbose --install --force
|
||||
# Copyright (C) 2003, 2004 Free Software Foundation, Inc.
|
||||
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 2, or (at your option)
|
||||
# any later version.
|
||||
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
|
||||
# 02111-1307, USA.
|
||||
|
||||
# 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
|
||||
Makefile
|
||||
Makefile.in
|
||||
mkinstalldirs
|
||||
missing
|
||||
config.sub
|
||||
config.guess
|
||||
mdate-sh
|
||||
texinfo.tex
|
||||
config.rpath
|
||||
config.sub
|
||||
depcomp
|
||||
install-sh
|
||||
mdate-sh
|
||||
missing
|
||||
mkinstalldirs
|
||||
texinfo.tex
|
||||
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-*-
|
||||
#
|
||||
# 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
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
@@ -21,17 +21,16 @@
|
||||
AC_PREREQ(2.57)
|
||||
|
||||
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])
|
||||
AC_CONFIG_HEADERS([config.h:config.hin])
|
||||
|
||||
gl_USE_SYSTEM_EXTENSIONS
|
||||
|
||||
# Checks for the compiler.
|
||||
AC_PROG_CC
|
||||
# Remove with Automake 1.8.
|
||||
AC_ISC_POSIX
|
||||
AC_GNU_SOURCE
|
||||
AC_MINIX
|
||||
AM_PROG_CC_STDC
|
||||
AC_ARG_ENABLE(gcc-warnings,
|
||||
[ --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.])
|
||||
|
||||
# Checks for header files.
|
||||
AC_HEADER_STDC
|
||||
AC_CHECK_HEADERS([ctype.h locale.h memory.h stdlib.h string.h unistd.h])
|
||||
AC_CHECK_HEADERS_ONCE([locale.h])
|
||||
AM_STDBOOL_H
|
||||
|
||||
# Checks for compiler characteristics.
|
||||
@@ -98,36 +96,14 @@ AC_C_INLINE
|
||||
AC_CHECK_TYPES([uintptr_t])
|
||||
|
||||
# Checks for library functions.
|
||||
AC_CHECK_FUNCS(setlocale)
|
||||
AC_CHECK_DECLS([free, getenv, getopt,
|
||||
stpcpy, strchr, strspn, strnlen,
|
||||
malloc, memchr, memrchr])
|
||||
AC_REPLACE_FUNCS(strchr strrchr strspn)
|
||||
AC_CHECK_FUNCS_ONCE([setlocale])
|
||||
AM_WITH_DMALLOC
|
||||
BISON_PREREQ_SUBPIPE
|
||||
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.
|
||||
AM_GNU_GETTEXT([external], [need-ngettext])
|
||||
AM_GNU_GETTEXT_VERSION(0.12.1)
|
||||
# gnulib and gettext.
|
||||
GNULIB_AUTOCONF_SNIPPET
|
||||
AM_GNU_GETTEXT_VERSION([0.14.1])
|
||||
|
||||
# Initialize the test suite.
|
||||
AC_CONFIG_TESTDIR(tests)
|
||||
@@ -145,6 +121,5 @@ AC_CONFIG_FILES([Makefile
|
||||
config/Makefile
|
||||
po/Makefile.in
|
||||
data/Makefile
|
||||
lib/Makefile src/Makefile doc/Makefile
|
||||
m4/Makefile])
|
||||
lib/Makefile src/Makefile doc/Makefile])
|
||||
AC_OUTPUT
|
||||
|
||||
@@ -2,4 +2,59 @@
|
||||
.deps
|
||||
Makefile
|
||||
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
|
||||
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)
|
||||
|
||||
BUILT_SOURCES =
|
||||
EXTRA_DIST =
|
||||
MOSTLYCLEANFILES =
|
||||
|
||||
lib_LIBRARIES = $(YACC_LIBRARY)
|
||||
EXTRA_LIBRARIES = liby.a
|
||||
noinst_LIBRARIES = libbison.a
|
||||
|
||||
liby_a_SOURCES = main.c yyerror.c
|
||||
|
||||
# Heck, we are still using an old version of Automake which does not
|
||||
# understand inner AC_LIBOBJ (i.e., from Autoconf itself, not from
|
||||
# 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 \
|
||||
libbison_a_SOURCES = $(lib_SOURCES)
|
||||
lib_SOURCES = \
|
||||
get-errno.h get-errno.c \
|
||||
getopt.h getopt.c getopt1.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 \
|
||||
subpipe.h subpipe.c \
|
||||
$(bitsets_sources) $(additional_bitsets_sources) $(timevars_sources)
|
||||
|
||||
# Implementation of bitsets
|
||||
@@ -65,3 +49,5 @@ timevars_sources = \
|
||||
|
||||
libbison_a_LIBADD = $(LIBOBJS) $(ALLOCA)
|
||||
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
|
||||
Makefile.in
|
||||
alloca.m4
|
||||
codeset.m4
|
||||
dirname.m4
|
||||
dos.m4
|
||||
error.m4
|
||||
getopt.m4
|
||||
gettext.m4
|
||||
glibc21.m4
|
||||
hash.m4
|
||||
iconv.m4
|
||||
intdiv0.m4
|
||||
inttypes-pri.m4
|
||||
@@ -13,9 +17,20 @@ lcmessage.m4
|
||||
lib-ld.m4
|
||||
lib-link.m4
|
||||
lib-prefix.m4
|
||||
mbrtowc.m4
|
||||
mbswidth.m4
|
||||
nls.m4
|
||||
obstack.m4
|
||||
onceonly.m4
|
||||
po.m4
|
||||
progtest.m4
|
||||
quote.m4
|
||||
quotearg.m4
|
||||
stdbool.m4
|
||||
stdint_h.m4
|
||||
stpcpy.m4
|
||||
strnlen.m4
|
||||
uintmax_t.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.in
|
||||
Makefile.in.in
|
||||
Makevars
|
||||
Makevars.template
|
||||
POTFILES
|
||||
bison.pot
|
||||
stamp-po
|
||||
*.gmo
|
||||
Makefile.in
|
||||
Rules-quot
|
||||
bison.pot
|
||||
boldquot.sed
|
||||
en@boldquot.header
|
||||
en@quot.header
|
||||
@@ -15,3 +16,4 @@ insert-header.sin
|
||||
quot.sed
|
||||
remove-potcdate.sed
|
||||
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